Hi Matt,
Please see section 3.13.2 of the OSGi Service Platform Core Specification,
version 4.2 - "Fragments During Runtime". If you don't have a copy handy,
you can obtain one from http://www.osgi.org/Release4/Download. The section
has moved to 3.14.2 in the latest version, 4.3.

Regards,
Mark

On 7 September 2011 12:43, Matt Madhavan <[email protected]> wrote:

> Hello,
> Thank you very much for the answers. One more question. Can the bundle
> fragment have a resource in its own classpath and that resource can be
> loaded by the host bundle?
>
> Thanks
> Matt
> On Sep 7, 2011 3:11 AM, "Timothy Ward" <[email protected]> wrote:
> >
> > Hi,
> >
> > From the original question I would say "No, there is no way for a host
> bundle to receive a notification when a fragment attaches". Fragments only
> attach at resolution time, therefore the host bundle can never see the
> attachment because it is, by definition, not resolved yet!
> >
> > What you can do is the following at startup (On OSGi 4.3):
> >
> > public void start(BundleContext ctx) throws BundleException {
> >
> > Bundle hostBundle = ctx.getBundle();
> >
> > BundleWiring wiring = hostBundle.adapt(BundleWiring.class);
> >
> > Collection<BundleWire> fragmentWires = wiring.
> > getProvidedWires(BundleRevision.HOST_NAMESPACE);
> >
> > for(BundleWire wire : fragmentWires) {
> > Bundle fragment = wire.getRequirerWiring().getBundle();
> > //Do some stuff with this fragment
> > }
> > }
> >
> > This will allow you to find out which fragments were wired to your bundle
> when it resolved.
> >
> > Regards,
> >
> > Tim
> >
> > From: [email protected]
> > Date: Wed, 7 Sep 2011 08:54:57 +0100
> > Subject: Re: OSGi (Blueprint) fragment and host bundle notification
> > To: [email protected]
> >
> > Hi Matt, A web search for "osgi bundle tracker fragment" yields this
> article: http://java.dzone.com/articles/osgi-junit-test-extender-using.
> This uses a BundleTrackerCustomizer,
> >
> >
> >
> >
> > bundleTracker = new BundleTracker(context, Bundle.RESOLVED,
> testExtender);
> >
> > bundleTracker.open();
> >
> >
> > Which then tests to see if it's been given a fragment:
> > String fragment =
> bundle.getHeaders().get(org.osgi.framework.Constants.FRAGMENT_HOST) + "";
> >
> >
> >> Thanks in advance!
> > You're welcome!
> > Regards, Mark
> >
> > On 6 September 2011 23:14, Matt Madhavan <[email protected]> wrote:
> >
> >
> > Hello,I would like to know when a new BluePrint fragment attaches it self
> to a host bundle will the host bundle be notified? I would like to do some
> work inside of the host bundle anytime a fragment attaches itself to a host.
> >
> >
> >
> > Any ideas?
> > Thanks in advance!Matt Madhavan
> >
> >
>

Reply via email to