aries-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bengt Rodehav <be...@rodehav.com>
Subject Re: Aries Blueprint and cglib
Date Sun, 26 Sep 2010 01:48:59 GMT
That will work but I regard this as a bug in Blueprint. A well behaved OSGi
citizen should keep track of dependencies coming and going. It shouldn't
matter if cglib was not present when Blueprint was started as long as its
there when it's needed (in this case when creating my blueprint container
that requires interceptors).

Should I create a JIRA for this?

/Bengt

2010/9/25 Guillaume Nodet <gnodet@gmail.com>

> Try to restart or osgi:refresh the blueprint bundle in case the wiring
> hasn't been correctly done.
>
>
> On Sat, Sep 25, 2010 at 18:11, Bengt Rodehav <bengt@rodehav.com> wrote:
>
>> It seems like the Aries Blueprint bundle requires cglib (or asm) to be
>> installed before Blueprint is activated. If I first install Blueprint, then
>> cglib and then my bundle requiring transaction interceptors it fails with
>> with following exception:
>>
>> 2010-09-25 18:10:24,998 | ERROR | rint Extender: 2 |
>>> BlueprintContainerImpl           | container.BlueprintContainerImpl  342 |
>>> Unable to start blueprint container for bundle refdata
>>
>> org.osgi.service.blueprint.container.ComponentDefinitionException:
>>> Interceptors have been configured but neither asm nor cglib are available
>>
>>  at
>>> org.apache.aries.blueprint.container.BeanRecipe.addInterceptors(BeanRecipe.java:694)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:748)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:624)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:315)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:213)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_18]
>>
>>  at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_18]
>>
>>  at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_18]
>>
>>  at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_18]
>>
>>  at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)[:1.6.0_18]
>>
>>  at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_18]
>>
>>  at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_18]
>>
>>  at java.lang.Thread.run(Thread.java:619)[:1.6.0_18]
>>
>> Caused by: java.lang.ClassNotFoundException: net.sf.cglib.proxy.Enhancer
>>
>>  at
>>> org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:772)[org.apache.felix.framework-3.0.2.jar:]
>>
>>  at
>>> org.apache.felix.framework.ModuleImpl.access$200(ModuleImpl.java:73)[org.apache.felix.framework-3.0.2.jar:]
>>
>>  at
>>> org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1690)[org.apache.felix.framework-3.0.2.jar:]
>>
>>  at java.lang.ClassLoader.loadClass(ClassLoader.java:248)[:1.6.0_18]
>>
>>  at
>>> org.apache.aries.blueprint.container.BeanRecipe.addInterceptors(BeanRecipe.java:691)[7:org.apache.aries.blueprint:0.2.0.incubating]
>>
>>  ... 15 more
>>
>>
>>
>> If I make sure that cglib is started before Blueprint then everything
>> works. Shouldn't it be enough that cglib is installed by the time I install
>> my bundle requiring interceptors. Blueprint should pick up cglib when it is
>> installed even if it happens after Blueprint itself is started.
>>
>> I use Karaf 2.1, Aries 0.2-incubating and the Servicemix packaging of
>> cglib version 2.1_3_4.
>>
>> /Bengt
>>
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com
>
>
>

Mime
View raw message