[ http://issues.apache.org/jira/browse/FELIXM2-5?page=all ]
Lonnie Pryor updated FELIXM2-5:
-------------------------------
Attachment: maven-osgi-plugin-transitiveDependencies-2-patch.txt
Updated patch for the current SVN trunk.
> Enable support for inter-bundle transitive dependencies
> -------------------------------------------------------
>
> Key: FELIXM2-5
> URL: http://issues.apache.org/jira/browse/FELIXM2-5
> Project: Felix M2 Plugin
> Issue Type: New Feature
> Affects Versions: 0.1.2, 0.1.3
> Environment: Multi-bundle build environemnt
> Reporter: Lonnie Pryor
> Assigned To: Timothy Bennett
> Priority: Minor
> Attachments: maven-osgi-plugin-transitiveDependencies-2-patch.txt,
> maven-osgi-plugin-transitiveDependencies-patch.txt
>
>
> The OSGi R4 specification supports transitive dependencies via the
> "visibility:=reexport" directive on the "Require-Bundle" manifest header (see
> OSGi Service Platform Core Specification, Release 4, Chapter 3, Section 13).
> Unfortunately, the Felix M2 Plugin does not support declaring this kind of
> relationship in the POM.
> By only using the dependency scope setting, developers can declare that a
> specific dependency is not to be embedded in the bundle, but that dependency
> is then never transitively passed on to other projects. It would be optimal
> if the Maven transitive dependency mechanism could be configured to mirror
> the one provided by OSGi.
> Since the OsgiJarMojo class only embeds dependencies with the "jar" type, a
> transitive, non-embedded dependency can be declared by giving it a type of
> "osgi-bundle". There are, however, a couple of issues with this approach:
> 1.) The ArtifactHandler implementation configured in
> META-INF/plexus/components.xml specifies "includesDependencies" as true. This
> makes any dependencies inherited through an "osgi-bundle" typed dependency
> unavailable to other phases of the build life cycle. Setting
> "includesDependencies" to false will resolve this issue. While this change
> will create more overhead during bundle builds (a bundle dependency and all
> of its embedded dependencies will be downloaded separately), this is required
> if any of the transitive dependencies are needed on the compile or test class
> paths.
> 2.) The OsgiJarMojo class currently embeds any dependency with the type "jar"
> that is on the runtime or compile scope. With transitive dependencies as
> described above enabled, all jars embedded in bundle dependencies will also
> be embedded in the dependent bundle. To resolve this, the OsgiJarMojo class
> should be changed to only embed dependencies with the type "jar", on the
> runtime or compile scope, and not inherited from a dependency with the
> "osgi-bundle" type. The latter can be accomplished by analyzing the the
> contents of the getDependencyTrail() method for each candidate "jar" artifact.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira