On 25 May 2012 15:51, Holly Cummins <[email protected]> wrote:
> Jeremy wrote:
>
> "So that raises the question as to how the other proxy bundles cope with 
> this."
>
> I was quoting from the current pom of the proxy impl bundle. I guess
> the assumption is that if the framework doesn't support weaving the
> weaving code won't get driven so the classes with 1.6 dependencies
> won't be driven.

Yeah. The ProxyManagerActivator checks to see if ASM is available and
if so, registers a weaving hook.

        Class<?> cls =
Class.forName("org.apache.aries.proxy.impl.weaving.ProxyWeavingHook");
        context.registerService("org.osgi.framework.hooks.weaving.WeavingHook",
            cls.getConstructor(BundleContext.class).newInstance(context), null);

so if WeavingHook is not available on the classpath (because it's
running on org.osgi.framework.osgi 1.5) I'd expect an Exception. Still
this is all conjecture, I haven't tried anything.

> I agree it seems like a risky strategy compared to
> just carving the weaving-related classes off into their own bundles or
> fragments, though - and that kind of major refactoring is something
> we'd want to do before 1.0.0.
>
> FWIW, the other bundle with a 1.6 osgi.framework dependency is the
> ejb-extender, which has dependencies on BundleWiring.
>
> Holly
>
> On Fri, May 25, 2012 at 3:14 PM, Jeremy Hughes <[email protected]> wrote:
>> On 25 May 2012 14:59, Holly Cummins <[email protected]> wrote:
>>> I've just looked at how the rest of the proxy bundles build and they
>>> use OSGi 4.3, but override the osgi framework package import version
>>> so that things still work with OSGi 4.2. They also make the weaving
>>> code optional. That's probably what the proxy.api bundle should do as
>>> well:
>>>
>>>            org.osgi.framework;version="[1.5,2)",
>>>            org.osgi.framework.hooks.weaving;resolution:=optional,
>>>            org.osgi.framework.wiring;resolution:=optional,
>>
>> I don't think that's a good idea. proxy-api needs
>> org.osgi.framework.hooks.weaving. If the proxy-api bundle imports
>> [1.5,2) and is run on a '1.5' framework there could be
>> ClassNotFoundExceptions.
>>
>> So that raises the question as to how the other proxy bundles cope with this.
>>
>>>
>>> Do you want to raise a JIRA, Balázs?
>>>
>>> Holly
>>>
>>> On Fri, May 25, 2012 at 2:47 PM, Holly Cummins
>>> <[email protected]> wrote:
>>>> On Fri, May 25, 2012 at 2:09 PM, Balázs Zsoldos
>>>> <[email protected]> wrote:
>>>>> Hi,
>>>>>
>>>>> as I look at it org.apache.aries.proxy.api needs at least
>>>>> org.osgi.framework 1.6 which is part of OSGI 4.3. Is it knowingly changed?
>>>>> Based on this proxy will not work with older OSGI containers (e.g.
>>>>> glassfish till version 3.1.1).
>>>>
>>>> I was wondering about this as well. It doesn't seem ideal, does it?
>>>>>
>>>>> This problem may occurs at other places as well where the osgi.core
>>>>> dependency was changed to 4.3.
>>>>
>>>> It looks like the proxy changes were made as part of ARIES-826. I
>>>> think the original intention of the weaving code was that it would
>>>> still be compatible with OSGi 4.2. I guess our options are to do
>>>> something like what we've done with util-42, or split off an optional
>>>> advanced.api bundle with the 4.3-dependent classes.
>>>>
>>>> Holly

Reply via email to