felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stuart McCulloch (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-954) Import-Package should include packages from optional Maven dependencies with resolution=optional
Date Mon, 23 Feb 2009 04:16:01 GMT

    [ https://issues.apache.org/jira/browse/FELIX-954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12675757#action_12675757

Stuart McCulloch commented on FELIX-954:

This is a non-trivial feature that will probably require co-operation from the Bnd Tool, so
it's unlikely to be in the next release (expected end of Feb).

We also have to be careful not to mark packages as optional when they are imported by both
optional and non-optional dependencies, or when packages from optional dependencies are embedded
inside the bundle (as embedded packages should then be considered as non-optional).

FYI, there are a number of existing options you can use to make your life easier when handling
optional dependencies:

1)  when embedding dependencies you can exclude optional dependencies by using:

         <!-- etc. -->

2) with the 1.5.0-SNAPSHOT bundleplugin you can exclude optional dependencies from the classpath
passed to the Bnd Tool:


both of which may reduce the number of imports when processing large graphs full of optional

You can also take advantage of the wildcard support provided by the Bnd Tool, for example
to mark all imports as optional:

         <!-- etc. -->

and if you know that the packages from optional dependencies have a common prefix you can
be a bit more specific:

         <!-- etc. -->

Also when people talk about bundles with hundreds of imports that sounds like either they're
trying to create a "mega-bundle" which contains (and exports) a large number of packages,
or they have extremely tight coupling between their main bundle and their optional dependencies.
Either way creating smaller bundles along with possibly some refactoring to reduce coupling
should drastically reduce your number of imports.

> Import-Package should include packages from optional Maven dependencies with resolution=optional
> ------------------------------------------------------------------------------------------------
>                 Key: FELIX-954
>                 URL: https://issues.apache.org/jira/browse/FELIX-954
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven Bundle Plugin
>    Affects Versions: maven-bundle-plugin-1.4.3
>            Reporter: Pavol Juhos
> It would be great if maven-bundle-plugin used resolution=optional for packages that are
coming from _optional_ Maven dependencies.
> The current behavior causes problems e.g. when embedding libraries with lots of optional
dependencies. As described by Detelin Yordanov: "[I]t seems that BND finds the
> references to [the optional packages] and assumes them to be mandatory adding a bunch
of imports in the manifest." This can easily result in hundreds of import-package declarations
importing packages that are actually not required by the application. In these cases it is
not practical to handle this manually in the plug-in / BND configuration.
> This issue was already discussed on felix-users list in Jan 2009 -- see thread "Maven
bundle plugin: Is it possible to mark optional Maven dependencies to be imported with resolition=optional"
> http://mail-archives.apache.org/mod_mbox/felix-users/200901.mbox/%3C81f0d9c0901280604x6097dc19r8aa460673bfdad6@mail.gmail.com%3E

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message