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!
