geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: How to define those bundlized dependencies which would be published by Geronimo
Date Thu, 03 Dec 2009 08:49:06 GMT

On Dec 3, 2009, at 12:24 AM, Ivan wrote:

> I remembered that while the configuration <optional>true</optional>  
> is added, it should not cause the transitive dependency of the  
> original jar file. Will re-validate it later ......

That is not my experience.  At least, our geronimo dependency  
management doesn't see it that way.  Maybe this is a bug in the car- 
maven-plugin.

thanks
david jencks

>
> 2009/12/3 David Jencks <david_jencks@yahoo.com>
>
> On Dec 2, 2009, at 9:22 PM, Ivan wrote:
>
>>
>>
>> 2009/12/2 David Jencks <david_jencks@yahoo.com>
>>
>> On Dec 2, 2009, at 1:01 AM, David Jencks wrote:
>>
>> I have no problem with the idea of including dependencies on  
>> bundleized versions of the original dependencies, this seems to me  
>> like a good convention.
>>
>> However I don't see any use in the exclusions  you show, since the  
>> original non-bundleized jar is a dependency of the new bundle, and  
>> needs to be excluded whenever we use it.  Excluding the original  
>> jar will also exclude all of its dependencies, so the exclusions  
>> you show won't have any effect.
>>
>> I think we need to work hard to push the bundleization back into  
>> the originating project and to modify the felix bundle plugin so  
>> the original non-bundle doesn't end up as a transitive dependency  
>> of the bundle.
>>
>> I think I found a way to avoid the transitive dependencies problem  
>> using <Embed-Package>.  Here's a bit of the jstl bundleization pom:
>>
>>
>>    <dependencies>
>>        <dependency>
>>            <groupId>${pkgGroupId}</groupId>
>>            <artifactId>${pkgArtifactId}</artifactId>
>>            <version>${pkgVersion}</version>
>>            <scope>provided</scope>
>>        </dependency>
>>    </dependencies>
>>
>>    <build>
>>        <plugins>
>>            <plugin>
>>                <groupId>org.apache.felix</groupId>
>>                <artifactId>maven-bundle-plugin</artifactId>
>>                <!--<version>2.0.1-SNAPSHOT</version>-->
>>                <configuration>
>>                    <instructions>
>>                        <Export- 
>> Package>javax.servlet.jsp.jstl*;version="1.2",*</Export-Package>
>>                        <Import- 
>> Package>com.sun.org.apache*;resolution:=optional,*</Import-Package>
>>                        <!--<_versionpolicy>[$(version;==;$(@)),$ 
>> (version;+;$(@)))</_versionpolicy>-->
>>                        <Embed- 
>> Dependency>*;scope=provided;inline=true</Embed-Dependency>
>>                    </instructions>
>>                </configuration>
>>            </plugin>
>>        </plugins>
>>    </build>
>>
>> I have some moderately extensive changes pending so I'd appreciate  
>> it if anyone interested in adopting this approach wait a day or so  
>> before committing it.
>>
>>   Could you please explain it more ? From the generated manifest.mf  
>> file and the dependency tree, I did not find any different. Thanks !
>
> The files included in the bundle should be exactly the same.   
> However, since the dependency in the pom is marked "provided", it is  
> not a maven transitive dependency of the bundle.  Therefore the  
> original jar does not need to be excluded from the bundle when you  
> use the bundle as a maven dependency in a project.
>
> hope this is clearer :-)
>
> thanks
> david jencks
>
>>
>>
>> thanks
>> david jencks
>>
>>
>>
>>
>> thanks
>> david jencks
>>
>> On Dec 1, 2009, at 8:53 PM, Ivan wrote:
>>
>> Hi,
>>   In the plugin enabling work, we always need to exclude those non- 
>> bundle depdencies, and add the bundlized ones somewhere.
>>   But for those bundlized 3rd componenets which would publish by  
>> Geronimo in the folder framework/bundles, I think we may have two  
>> ways, take org.apache.geronimo.bundles/woden-impl-dom as an  
>> example, currently, the dependency setting in the pom file is like :
>>  <dependency>
>>           <groupId>${pkgGroupId}</groupId>
>>           <artifactId>${pkgArtifactId}</artifactId>
>>           <version>${pkgVersion}</version>
>>           <exclusions>
>>               <exclusion>
>>                   <groupId>org.apache.ant</groupId>
>>                   <artifactId>ant</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>xerces</groupId>
>>                   <artifactId>xercesImpl</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>xerces</groupId>
>>                   <artifactId>xmlParserAPIs</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>wsdl</groupId>
>>                   <artifactId>wsdl</artifactId>
>>               </exclusion>
>>           </exclusions>
>>       </dependency>
>>
>>  All the non-bundlized components are excluded, so when using this  
>> bundle, we may also need to add the bundlized wsdl there.
>>  While it seems that we could also add the bundlized wsdl in the  
>> pom file of org.apache.geronimo.bundles/woden-impl-dom. It may be  
>> like :
>>
>>  <dependencies>
>>       <dependency>
>>           <groupId>${pkgGroupId}</groupId>
>>           <artifactId>${pkgArtifactId}</artifactId>
>>           <version>${pkgVersion}</version>
>>           <exclusions>
>>               <exclusion>
>>                   <groupId>org.apache.ant</groupId>
>>                   <artifactId>ant</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>xerces</groupId>
>>                   <artifactId>xercesImpl</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>xerces</groupId>
>>                   <artifactId>xmlParserAPIs</artifactId>
>>               </exclusion>
>>               <exclusion>
>>                   <groupId>wsdl</groupId>
>>                   <artifactId>wsdl</artifactId>
>>               </exclusion>
>>           </exclusions>
>>       </dependency>
>>       <dependency>
>>           <groupId>org.apache.servicemix.bundles</groupId>
>>           <artifactId>org.apache.servicemix.bundles.wsdl4j</ 
>> artifactId>
>>           <version>1.6.2_2</version>
>>       </dependency>
>>   </dependencies>
>>
>>  Then, when we use it, we may not need to add bundlized wsdl there,  
>> I think car-maven-plugin could find it. I am thinking that we might  
>> need a uniform way to do it, any comment ?
>>
>> -- 
>> Ivan
>>
>>
>>
>>
>>
>> -- 
>> Ivan
>
>
>
>
> -- 
> Ivan


Mime
View raw message