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 ......
2009/12/3 David Jencks <[email protected]> > > On Dec 2, 2009, at 9:22 PM, Ivan wrote: > > > > 2009/12/2 David Jencks <[email protected]> > >> >> 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
