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 07:59:34 GMT

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


Mime
View raw message