Or support Spring AOP in Aries..
________________________________________
From: Bhasin, Vishal  - Dell Team
Sent: Thursday, July 28, 2011 6:37 PM
To: [email protected]
Subject: Question on AOP with Aries in Fuse 4.4.0

Hello All,

I’m working with a team member of migration to blueprint and was wondering how 
can I do AOP with aries blueprint. Configuration file looks like:

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
        xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0";

            <bean id="serverService" 
class="org.springframework.aop.framework.ProxyFactoryBean">
                        <property name="proxyInterfaces">
                                    <value>service.server.ServerService</value>
                        </property>
                        <property name="target" ref="serverServiceImplTarget" />
                        <property name="interceptorNames">
                                    <list>
                                                
<value>loggingInterceptorAdvisor</value>
                                    </list>
                        </property>
            </bean>

            <bean id="serverServiceImplTarget"
                        class="service.server.impl.ServerServiceImpl" />

            <bean id="loggingInterceptor"
                        class=" logging.LoggingInterceptor" />

            <bean id="loggingInterceptorAdvisor"
                        
class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
                        <property name="advice" ref="loggingInterceptor" />
                        <property name="pattern">
                                    <value>.*</value>
                        </property>
            </bean>

<!-- osgi service -->
        <service ref="serverService">
                        <interfaces>
                   <value>service.server.ServerService</value>
                        </interfaces>
        </service>
</blueprint>

I see the following exception in ServiceMix log file:
18:27:49,925 | ERROR | rint Extender: 2 | ServiceRecipe                    | 10 
- org.apache.aries.blueprint - 0.3.1 | Error retrieving service from S
erviceRecipe[name='.component-1']
org.osgi.service.blueprint.container.ComponentDefinitionException: Error 
setting property: PropertyDescriptor <name: proxyInterfaces, getter: null, se
tter: [public void 
org.springframework.aop.framework.ProxyFactoryBean.setProxyInterfaces(java.lang.Class[])
 throws java.lang.ClassNotFoundException]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:807)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:773)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:754)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:720)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:140)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
       at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)[10:org.apache.aries
.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[10:org.apache.aries.blueprint:0.3.1]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_26]
        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]
        at java.lang.Thread.run(Thread.java:662)[:1.6.0_26]
Caused by: java.lang.Exception: Unable to convert value 
service.server.ServerService to type class [Ljava.lang.Class;. Type class [L
java.lang.Class; is an interface or an abstract class
        at 
org.apache.aries.blueprint.container.AggregateConverter.createObject(AggregateConverter.java:298)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.AggregateConverter.convertFromString(AggregateConverter.java:292)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:162)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:373)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:323)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:476)[10:org.apache.aries.bluepri
nt:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:307)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:805)[10:org.apache.aries.blueprint:0.3.1]
        ... 27 more
18:27:49,926 | DEBUG | rint Extender: 2 | ServiceRecipe                    | 10 
- org.apache.aries.blueprint - 0.3.1 | Unregistering service .componen
t-1
18:27:49,927 | DEBUG | rint Extender: 2 | ServerService                    | 
163 ServerService - 1.0.0.SNAPSHOT | ServiceEvent UNR
EGISTERING
18:27:49,927 | ERROR | rint Extender: 2 | BlueprintContainerImpl           | 10 
- org.apache.aries.blueprint - 0.3.1 | Unable to start blueprint conta
iner for bundle ServerService
org.osgi.service.blueprint.container.ComponentDefinitionException: Error 
setting property: PropertyDescriptor <name: proxyInterfaces, getter: null, se
tter: [public void 
org.springframework.aop.framework.ProxyFactoryBean.setProxyInterfaces(java.lang.Class[])
 throws java.lang.ClassNotFoundException]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:807)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:773)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:754)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:720)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:140)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)[10:org.apache.aries
.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[10:org.apache.aries.blueprint:0.3.1]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_26]
        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:754)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:720)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:60)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:198)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:137)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createRecipe(ServiceRecipe.java:370)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.createService(ServiceRecipe.java:278)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalGetService(ServiceRecipe.java:248)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.ServiceRecipe.internalCreate(ServiceRecipe.java:140)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:219)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:147)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:640)[10:org.apache.aries
.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:331)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:227)[10:org.apache.aries.blueprint:0.3.1]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_26]
        at 
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)[:1.6.0_26]
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)[:1.6.0_26]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)[:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]
        at java.lang.Thread.run(Thread.java:662)[:1.6.0_26]
Caused by: java.lang.Exception: Unable to convert value 
service.server.ServerService to type class [Ljava.lang.Class;. Type class [L
java.lang.Class; is an interface or an abstract class
        at 
org.apache.aries.blueprint.container.AggregateConverter.createObject(AggregateConverter.java:298)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.AggregateConverter.convertFromString(AggregateConverter.java:292)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.AggregateConverter.convert(AggregateConverter.java:162)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.convert(BlueprintRepository.java:373)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.convert(ReflectionUtils.java:323)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$MethodPropertyDescriptor.internalSet(ReflectionUtils.java:476)[10:org.apache.aries.bluepri
nt:0.3.1]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils$PropertyDescriptor.set(ReflectionUtils.java:307)[10:org.apache.aries.blueprint:0.3.1]
        at 
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:805)[10:org.apache.aries.blueprint:0.3.1]
        ... 27 more

Any ideas on what can I use instead of 
org.springframework.aop.framework.ProxyFactoryBean in Aries?

Thanks!



Reply via email to