[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] Re: Adding to the framework exported libraries?

Thanks for the clarification. I see that fragments are much more limited than I originally thought.


Message: 6
Date: Tue, 13 Feb 2007 20:22:47 -0500
From: BJ Hargrave <hargrave@xxxxxxxxxx>
Subject: Re: [equinox-dev] Re: Adding to the framework exported
To: Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
<OFBEC10328.E87939B0- ON85257282.0007187A-85257282.00079703@xxxxxxxxxx>
Content-Type: text/plain; charset="ISO-8859-1"

A fragment is not a proper bundle. It is designed to satisfy certain use
cases by extending a bundle's contents: adding classes, resource, native
libraries, manifest metadata. It is not intended to be a substitute for a
proper bundle.

Why would you need to use an extension fragment to supply a LogService
impl? Just do it with a normal bundle.

BJ Hargrave
Senior Technical Staff Member, IBM
OSGi Fellow and CTO of the OSGi Alliance

office: +1 386 848 3788
mobile: +1 386 848 3788

David Kemper <djk@xxxxxxxxx> Sent by: equinox-dev-bounces@xxxxxxxxxxx 02/13/2007 07:28 PM Please respond to Equinox development mailing list <equinox-dev@xxxxxxxxxxx>

To equinox-dev@xxxxxxxxxxx cc

Re: [equinox-dev] Re: Adding to the framework exported libraries?

I bring it up for a couple reasons:

1) From time to time I see suggestions to supplement plugin behavior
in a fragment that registers services, as was done in the original
post, so I assume that I'm missing something in how it *could* be done.

2) I've seen the use case for fragments as a) localized resources, b)
native code shared library for a specific os configuration, and c)
extending the functionality of a given bundle such that, depending on
what fragment is installed in the framework, you get modified/adapted

In the cases of 1) and 2c), consider an extension of the system
bundle that wishes to provide an implementation of the Log Service.
How to do this?

This is just one example.  The bottom line:  if you need a bundle
context to do anything "useful" in a running framework, and a
fragment doesn't get one because it can't have a bundle activator,
what is it realistically possible to do in a fragment beyond
resources and native code?


On Feb 13, 2007, at 9:28 AM, Peter Kriens wrote:

> Fragments are supposed to be subservient to its host, for example,
> language translations.
> Why do you need fragments if you need to actively provide services?
> Kind regards,
> Peter Kriens
> DK> I've been wondering how to register services from a fragment.
> DK> As far as I know, a fragment *cannot* have a bundle activator.
> DK> Without a bundle activator, how does a fragment get access to its
> DK> bundle context through which it can register services?
> DK> What am I missing?
> DK> /djk
> >> Message: 4
> >> Date: Mon, 12 Feb 2007 07:44:35 +0100
> >> From: Gunnar Wagenknecht <gunnar@xxxxxxxxxxxxxxx>
> >> Subject: [equinox-dev] Re: Adding to the framework exported
> libraries?
> >> To: equinox-dev@xxxxxxxxxxx
> >> Message-ID: <eqp2ci$9e1$1@xxxxxxxxxxxxx>
> >> Content-Type: text/plain; charset=ISO-8859-1
> >>
> >> Kabe wrote:
> >> > Hi Tom, thanks for the suggestion. Only reason i don't think this
> >> will
> >> > work (and maybe i'm wrong?) is that i need my host application to
> >> expose
> >> > instances (services) to the bundles, so for example my host
> >> application
> >> > creates in instance of FooService, and then registers it with the
> >> root
> >> > BundleContext of the Equinox framework. However, unless i somehow
> >> tell
> >> > Equinox that the package is available from the host (parent
> >> classloader)
> >> > it won't let any bundle load that depends on this package. So far
> >> i'm
> >> > not seeing how Fragment Bundles can solve this problem,
> because they
> >> > seem like they need to be full bundles and not just passed in,
> >> but there
> >> > could be some API or technique i'm not familiar with?
> >>
> >> The system bundle is "org.eclipse.osgi". It exports the system
> >> packages.
> >>
> >> Fragments contribute to the classpath of their bundle host. Thus,
> >> if you
> >> create a fragment to "org.eclipse.osgi" you can add the packages
> from
> >> your application to the set of exported packages of the system
> bundle,
> >> which makes them available to all bundles.
> >>
> >> For registering your services from the host application I suggest
> >> creating a bundle that is started when the framework is started.
> This
> >> bundle can register any OSGi services, etc. It could be also the
> >> fragment you created above.
> >>
> >> Cu, Gunnar
> DK> _______________________________________________
> DK> equinox-dev mailing list
> DK> equinox-dev@xxxxxxxxxxx
> DK> https://dev.eclipse.org/mailman/listinfo/equinox-dev
> --
> Peter Kriens Tel +33467542167
> 9C, Avenue St. Drézéry AOL,Yahoo: pkriens
> 34160 Beaulieu, France ICQ 255570717
> Skype pkriens Fax +1 8153772599

equinox-dev mailing list


equinox-dev mailing list

End of equinox-dev Digest, Vol 22, Issue 23 *******************************************