2009/6/24 Andreas Mucha <[email protected]>

> I know. This was the original plan.
> But it does not work.
> If the activator is in the a.b.impl package
> i will recive errors like '...unable to load class activator' .
> Only if all packages are exported via bundle, it works.
>

this really sounds like your build is not working properly and
you are not getting the "impl" classes in your final JAR file.

please do a "jar tvf" on your JAR, as I explained later on in
my reply (my comments were interleaved with your email)

if the impl classes are missing then add this Bnd instruction:

   Private-Package: a.b.impl

as Filippo also suggested - this will then pull in your impl
classes, at which point moving your bundle activator to
also be in 'impl' will also work (as I also explained in my
earlier reply ;)

HTH


> -------- Original-Nachricht --------
> > Datum: Tue, 23 Jun 2009 21:12:40 +0200
> > Von: Stuart McCulloch <[email protected]>
> > An: [email protected]
> > Betreff: Re: packaging problem in bundle
>
> > 2009/6/23 Andreas Mucha <[email protected]>
> >
> > > Hello all,
> > >
> > > i have the following packaging problem.
> > > I have e.g. the following package structure:
> > >
> > > a.b
> > >   SomeInterface.java
> > >   SomeBundleActivator.java
> > >
> >
> > FYI your bundle activator does not have to be exported, it only needs to
> > be
> > a public class.
> > Best-practice is to keep your activator under the implementation package,
> > as
> > it's often an
> > implementation detail rather than part of the external API
> >
> >
> > > a.b.impl
> > >   SomeInterfaceImpl.java
> > >
> > > Based on this i create a bnd file like this:
> > >
> > > Bundle-Version: 1.0.0
> > > Export-Package: a.b;version=1.0.0
> > > Bundle-Name: a.b
> > > Bundle-SymbolicName: SomeBundle
> > > Bundle-Activator: a.b.SomeBundleActivator
> > > Bundle-Vendor: AnM
> > >
> > > If i create a bundle based on this i get an error while starting
> > > because the a.b.impl package cannot be resolved.
> > > How can this be??? It is only used within the bundle.
> >
> >
> > Check the package actually exists in your bundle (ie. "jar tvf
> > myBundle.jar")
> >
> > Because if you are using Bnd's Ant task then you need to tell it to also
> > pull in the private packages as well as the exported packages like so:
> >
> >    Export-Package: a.b;version=1.0.0
> >    Private-Package: a.b.impl
> >
> > Otherwise you'll just end up with the exported packages in the final
> > bundle.
> > ( Bnd uses a "pull" approach, as explained in http://aqute.biz/Code/Bnd)
> >
> > FYI if you use the 2.0.0 maven-bundle-plugin then it will automatically
> > add
> > the Private-Package instruction based your source code if you miss it
> out,
> > before calling Bnd to create the actuall bundle
> >
> > HTH
> >
> > I will hide the a.b.impl package. Only the a.b package
> > > should be available to other bundles.
> > > I thought that a bundle is selfcontaint.
> > >
> > > If i export all packages than it works.
> > >
> > > Can you tell me what is happening here ?
> > >
> > > Thanks in advance.
> > >
> > > Andreas .
> > > --
> > > GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> > > Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [email protected]
> > > For additional commands, e-mail: [email protected]
> > >
> > >
> > --
> > Cheers, Stuart
>
> --
> GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
> Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>
-- 
Cheers, Stuart

Reply via email to