[jboss-osgi-dev] AS7-5639 Add OSGi Launcher to AS7
David Bosschaert
david at redhat.com
Wed Oct 10 04:45:05 EDT 2012
These packages are passed to the "jboss.modules.system.pkgs" system
property which is set before the boot module loader is created:
https://github.com/jbossas/jboss-as/blob/master/embedded/src/main/java/org/jboss/as/embedded/InitialModuleLoaderFactory.java#L66
Cheers,
David
On 09/10/2012 17:16, Thomas Diesler wrote:
> > I think it would be fair to assume that the org.osgi.core packages
> are shared from the initiating classloader
>
> sure, but how does this work? The osgi subsystem loads the framework
> from a module which loads the org.osgi.framework packages from another
> module. The osgi system packages that can be configured through
> framework properties still come from the modules hierarchy and not
> from the syscp. So I wonder how anything except java.* and some system
> packages defined though Modules can be used from outside the AS.
>
> On 10/09/2012 05:12 PM, David Bosschaert wrote:
>> I think it would be fair to assume that the org.osgi.core packages
>> are shared from the initiating classloader - the one that kicks off
>> the framework launcher. This is what the TCK does too, it puts these
>> packages explicitly on the org.osgi.framework.system.packages.extra
>> property and this is how I have it currently implemented.
>>
>> I originally implemented a bridging approach where these classes were
>> separate (so one instance of class X owned by the caller and one
>> instance of class X owned by JBoss Modules) but this doesn't work
>> when you are passing objects created by JBOSGi back into framework
>> APIs. For example, if you call
>> BundleContext.getService(ServiceReference sr) our implementation
>> actually expect our own ServiceReferenceImpl to be passed in, which
>> clearly doesn't work with the bridging approach (or it will get very
>> complicated).
>>
>> Cheers,
>>
>> David
>>
>> On 09/10/2012 15:40, Thomas Diesler wrote:
>>>
>>> Hi David,
>>>
>>> I'm wondering how the org.osgi.core class sharing is supposed to
>>> work with this. If the AS7 internal framework is getting those types
>>> from the org.osgi.core module and the launcher/client gets them from
>>> the syscp they cannot be assigned - so the client could not
>>> consume/provide those types through the framework API.
>>>
>>> cheers
>>> --thomas
>>>
>>>> On 10/09/2012 09:57 AM, David Bosschaert wrote:
>>>>>
>>>>> This can only be done with value types from the syscp, right?
>>>>>
>>>>> Yes, correct.
>>>>>
>>>>> This code should not not be needed
>>>>> if (ctrl.getMode() == Mode.ACTIVE)
>>>>> return ctrl.getValue();
>>>>> ctrl.setMode(Mode.ACTIVE);
>>>>>
>>>>> I don't follow what you mean here? Where are you seeing that code?
>>>>> Or what is it a replacement for?
>>>>>
>>>>
>>>
>>> --
>>> xxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>> Thomas Diesler
>>> JBoss OSGi Lead
>>> JBoss, a division of Red Hat
>>> xxxxxxxxxxxxxxxxxxxxxxxxxxxx
>>>
>>>
>>>
>>
>
More information about the jboss-osgi-dev
mailing list