Hi Felix, Thanks for your reply.
The main problem is we haven't defined versions for Exported packages in the producer bundles. eg: In org.foo.bar:1.0.2 bundle we define Export-Package: org.foo.bar.*; So when building the bundle the producer bundle's Export-Package is defined without any version. The problem is when org.foo.bar.* is used as an Import-Package in a consumer bundle. Even though we define Import-Package: org.foo.bar.*; (without a version defined), when the consumer bundle is built the bundle-plugin has injected a version range like [1.0.0,2.0.0). The problem occurs when installing the bundles to our runtime using Equinox, as it first resolves the bundle resolutions for Imports, Exports. So regardless of the compile-time dependency used to build the consumer bundle, we don't want to have a version injected to the org.foo.bar.* Import, because the exporting package doesn't have a version. Is there any mechanism for us to stop the bundle-plugin from injecting the version for the Import-Package here? In several cases where we faced this issue, we have defined the Import-Package: org.foo.bar.*;*version="0.0.0"* so that it will get wired to any version exported for the org.foo.bar.* But using version="0.0.0" hack for all packages exported without a defined version is not manageable at this moment. I hope the problem we are facing, is clear to you. The best solution here would be to define versions for Exports and use them appropriately in relevant Imports. But at the moment there are so many bundles that are exporting packages without a defined version. So can you please suggest an alternate mechanism to handle Imports Exports with no versions specified in the bundle-plugin? Is there a mechanism we can tell the bundle-plugin not to compute version-ranges for Imports? Or is there an older version of the bundle-plugin this functionality is not available? Thanks a lot! Regards, Dileepa On Wed, Nov 7, 2012 at 2:26 PM, Felix Meschberger <[email protected]>wrote: > Hi, > > Am 07.11.2012 um 08:54 schrieb Dileepa Jayakody: > > > Hi All, > > > > We are having a problem using maven-bundle-plugin to build our bundles, > > where it injects a version-range (I think it computes the version range > > from the compile-time maven-dependency) to the bundle's Import-Packages. > > > > For eg : when I have specified an Import-Package: org.foo.bar; The plugin > > injects a version range like Import-Package: org.foo.bar;version="[1.0.0, > > 2.0.0)" probably by computing from the compile time dependency version of > > the maven artifact exposing org.foo.bar package. > > > > The problem is many of our producer bundles are not exporting their > > packages with versions. So when the bundle-plugin computes and injects a > > version range to relevant consumer bundle's Import-Package, the > resolution > > get broken because there is no exporter for that package within the > > required version-range. > > I know, we should manage versions in Exports/Imports properly but it's > not > > manageable at the moment with the number of bundles has exceeded 300. > > So your dependencies expose exported package version and your deployed > bundles don't ? This sounds like a strange situation. > > Looks like you are building against newer versions than the deployed ones > ? If so, I suggest to build against the same versions as you have deployed. > > In general my take on this is to always compile to the lowest version > dependency that meets the (API) needs of the code you are compiling. This > way your lower version in the range will really expose what the bundle > needs and you will have less surprises at deployment time. > > The idea is that you develop with a certain version of a dependency (even > though Maven's dependencies and OSGi's Import-Package need not be the same) > and that you expect at least that version of the dependency or a newer one > to be actually deployed. > Regards > Felix > > > > > Can I please know how can I explicitly avoid the version-range injected > to > > Import-Package? Is this feature of computing version-range for Imports > > added to maven-bundle-plugin (bnd) in a recent released version? > > We are using 2.3.5 version of the bundle-plugin. > > If this feature has been added to a recent version of the plugin , can > you > > please specify an older version of the bundle-plugin that doesn't compute > > version ranges for Import-Package? > > At the moment our immediate requirement is to stop adding version-ranges > > for Import-Package > > > > Appreciate your insight on this. > > > > Thanks, > > Dileepa > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > -- Dileepa Jayakody, Software Engineer, WSO2 Inc. Lean . Enterprise . Middleware Mobile : +94777-857616

