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 <[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