FYI, there's also a minor difference between OSGi and Maven:
1.0.0-SNAPSHOT < 1.0.0 in Maven
but
1.0.0.SNAPSHOT > 1.0.0 in OSGi
which can sometimes lead to confusion during development :)
On 07/09/2007, Felix Meschberger <[EMAIL PROTECTED]> wrote:
>
> Am Freitag, den 07.09.2007, 11:11 +0800 schrieb Stuart McCulloch:
> > On 07/09/07, Carlos Sanchez <[EMAIL PROTECTED]> wrote:
> > >
> > > I have a couple of concept questions for improvements to the bundle
> > > plugin manifest generation
> > >
> > > * Version resolution
> > > Let's say bundle A exports a package with version 2.0, and bundle B
> > > imports that package version 1.0
> > >
> > > When B is started, will it fail because A 1.0 is not present?
> >
> >
> > yes, unless another bundle provides version 1.0
>
> Well, not quite: If B specifies the import as version=1.0, this means
> any version >= 1.0. So, yes, bundle B will resolve the package using the
> export from Bundle A in this case.
>
> > * Optional packages
> > > If a bundle imports packages from several bundles A,B,C... but only
> > > one is required at runtime, will it work?
>
> But keep in mind: A bundle imports packages and does not care where
> these packages come from. This is very important and very useful but
> might be somewhat strange at first sight. But if you look behind the
> scenes it makes sense a lot.
>
> > yes, if only one will be available - or you could use
> DynamicImport-Package
> > (but if you know the packages up front, then imho Import-Package is
> better)
>
> resolution:=optional imports are tried to resolve when the bundle is
> resolved. If the fail to resolve, they are just ignored and may only
> become available when the bundle is resolved again (probably due to a
> PackageAdmin refresh). DynamicImport-Package imports on the other hand
> are not resolved up-front when the bundle is resolved. They are only
> resolved when actually needed and will be re-checked as long as they
> cannot be resolved. Of course after being resolved, the
> DynamicImport-Package imports remain wired until the bundle is being
> resolved again.
>
> At the end of the day, I agree with Stuart, that resolution:=optional
> tends to be clearer and possibly more performant. But your milage and
> use cases may vary.
>
> Regards
> Felix
>
>
--
Cheers, Stuart