Thanks Craig!
I am curious as to why it is not supported. I don't see any technical
problems with, so it should be ideological. But if you think about it
forbidding split packages is very similar to supporting Require-Bundle which
is usually frowned upon. I mean if a package comes only from one bundle it
basically means that we have dependency on that bundle (although not by name
of the bundle).

On Wed, Aug 12, 2009 at 5:27 PM, <[email protected]> wrote:

>
> You've encountered a split-packages problem. That is, while multiple
> bundles can export a package, a bundle can only import from one of them.
>
> In general, split-packages are a bad thing and break modularization. But,
> they are a reality and so there are a few ways to deal with them.
>
> I hesitate to suggest it, but Require-Bundle is one way...instead of
> importing the package, require the whole bundle. But use Require-Bundle
> very carefully, as it creates an undesirable bundle-to-bundle coupling.
>
> Another way I've dealt with it is to embed one bundle in the other
> (actually, the embedded one doesn't even have to be a bundle...a plain JAR
> will work). Be sure to put the embedded JAR in the outer bundle's
> Bundle-ClassPath. Then, when the outer bundle exports the package, the
> entire package will be exported (from both JARs). This is especially
> useful if the embedded JAR file is only useful within the context of the
> bundle it is embedded in. For example, I did with with Lucene and Compass.
> Both export some of the same Lucene packages. So, I embedded Lucene within
> a Compass bundle because I wasn't planning on using Lucene without
> Compass.
>
> Others on this list may have other suggestions, but these are the two I've
> used.
>
>
> > Hi,
> > So I have this case when I have two (or more) bundles exporting the same
> > package, but different classes in them and I have another bundle which is
> > importing classes from this package. The problem is that I am getting an
> > error saying that some classes could not be found, i.e. classes from this
> > common package. It seems as though the importing is possible only from
> one
> > of the bundles. Importing the same package in those bundles in a manifest
> > does not help.
> >
> > I am using google guice and basically the error is originated in guice
> > when
> > it tries to inject one of those imported classes. I am suspecting that it
> > has something to do with it, probably proxies guice creates or something
> > like that.
> >
> > Does anybody know what I am talking about here? Any solutions? Bridge
> > classloaders maybe?
> >
> > Thanks!
> >
> > --
> > Dmitry Skavish
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>


-- 
Dmitry Skavish

Reply via email to