I believe I used service-mix-camel-service-unit while creating the service unit.To avoid the exception unexpected element (uri:"http://camel.apache.org/schema/spring", local:"camelContext"), I think I would have to use camel-archetype-spring.
My main concern is how to make the aspect run on routebuilder. akshay_ajmani wrote: > > Hi, > I will tell u the complete procedure that I followed. > 1)Created the various service units and assemblies corresponding to the > example: > http://cwiki.apache.org/SM/order-file-processing.html > > 2) In order to try spring aspects , I did all possible steps required for > it i.e defining the pointcuts etc. > My camel-context.xml looked like the one pasted in the previous. > > 3) After deploying it in service mix, I got exception ..RefelectionUtils . > isNotEqualMethod not defined. > > I changed the camel version in the pom.xml to avoid this error. The > relevant portion of pom.xml currently is like this: > > <plugin> > <groupId>org.apache.camel</groupId> > <artifactId>camel-maven-plugin</artifactId> > <version>1.6.0</version> > </plugin> > <dependency> > <groupId>org.apache.servicemix</groupId> > <artifactId>servicemix-camel</artifactId> > <version>${servicemix-version}</version> > </dependency> > <dependency> > <groupId>org.apache.servicemix</groupId> > <artifactId>servicemix-core</artifactId> > <version>${servicemix-version}</version> > <scope>provided</scope> > </dependency> > > <dependency> > <groupId>org.apache.camel</groupId> > <artifactId>camel-spring</artifactId> > <version>2.0-M2</version> > </dependency> > </dependencies> > > <properties> > <servicemix-version>3.2.3</servicemix-version> > <!-- <camel-version>1.4.0</camel-version>--> > <camel-version>1.6.0.0-fuse</camel-version> > </properties> > > 4) After doing this , the aspect was not being called.I think the pointcut > expression i.e the method which the aspect was defined, its class was not > being loaded by spring framework. > > 5)So I tried to create an aspect on the route builder class.I changed my > camel-context.xml to the following: > > <?xml version="1.0" encoding="UTF-8"?> > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:camel="http://camel.apache.org/schema/spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.5.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd > http://www.springframework.org/schema/aop > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd > http://camel.apache.org/schema/spring/camel-spring.xsd > http://www.springframework.org/schema/context > > http://www.springframework.org/schema/context/spring-context-2.5.xsd > http://www.springframework.org/schema/aop > http://www.springframework.org/schema/aop/spring-aop-2.5.xsd > http://www.springframework.org/schema/context > > http://www.springframework.org/schema/context/spring-context-2.5.xsd > "> > > <context:annotation-config /> > > <aop:aspectj-autoproxy/> > > <camelContext id="camel5" xmlns="http://camel.apache.org/schema/spring"> > <routeBuilder ref="myBuilder" /> > </camelContext> > > <bean id="myBuilder" class="org.camel.su.MyRouteBuilder"/> > <bean id="firstAspect" class="org.aspect.FirstAspect"/> > </beans> > > > I changed my point cut expression so that my advice gets called before the > routebuilder configure method. > > But now I am getting an exception > unexpected element (uri:"http://camel.apache.org/schema/spring", > local:"camelContext").It is expecting all uris having activemq. > > I have attached my camel-su pom.xml for your reference > > http://www.nabble.com/file/p24308838/pom.xml pom.xml > > > Gert Vanthienen wrote: >> >> L.S., >> >> We should be able to get this to work, but I guess the way classes are >> loaded in JBI can make this just a bit harder -- some of the Spring >> AOP bits are being loaded from the JBI container classloader so we >> might have to add things there. Just a few informational questions >> before we start digging into this: >> - what version of servicemix are you using and which version of the >> servicemix-camel component? >> - could you make sure that you're using the same version of Camel in >> your own pom.xml (e.g. when defining extra components etc)? >> - can you send us the complete stack trace that you're seeing? >> >> Regards, >> >> Gert Vanthienen >> ------------------------ >> Open Source SOA: http://fusesource.com >> Blog: http://gertvanthienen.blogspot.com/ >> >> >> >> 2009/7/2 akshay_ajmani <[email protected]>: >>> >>> Hi, >>> >>> I have implemented the following example >>> http://cwiki.apache.org/SM/order-file-processing.html and it is working >>> fine. I need to add few modifications to my camel context.xml. My >>> question >>> is , is it possible to add spring aspects to camel-context.xml i.e >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> >>> <beans xmlns="http://www.springframework.org/schema/beans" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xmlns:aop="http://www.springframework.org/schema/aop" >>> >>> xmlns:context="http://www.springframework.org/schema/context" >>> xsi:schemaLocation=" >>> http://www.springframework.org/schema/beans >>> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >>> http://activemq.apache.org/camel/schema/spring >>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd >>> http://www.springframework.org/schema/aop >>> http://www.springframework.org/schema/aop/spring-aop-2.5.xsd >>> http://www.springframework.org/schema/context >>> >>> http://www.springframework.org/schema/context/spring-context-2.5.xsd"> >>> >>> >>> <context:annotation-config /> >>> >>> <aop:aspectj-autoproxy/> >>> >>> >>> >>> <camelContext id="camel" >>> xmlns="http://activemq.apache.org/camel/schema/spring"> >>> <package>org.camel.su</package> >>> </camelContext> >>> <bean id="firstAspect" class="org.aspect.FirstAspect"/> >>> >>> </beans> >>> >>> >>> >>> I have my pointcuts defined in the java code using spring annotations. >>> >>> The code is as follows: >>> >>> @Aspect >>> public class SystemArchitecture { >>> >>> >>> >>> �...@pointcut("execution(* *(..))") >>> public void myFirstPointCut() >>> { >>> >>> } >>> >>> } >>> >>> package org.aspect; >>> >>> import org.aspectj.lang.ProceedingJoinPoint; >>> import org.aspectj.lang.annotation.Around; >>> import org.aspectj.lang.annotation.Aspect; >>> >>> @Aspect >>> public class FirstAspect { >>> >>> >>> �...@around("SystemArchitecture.myFirstPointCut()") >>> public void firstAspect(ProceedingJoinPoint joinPoint) >>> { >>> System.out.println("PRINTING FIRST ASPECT"); >>> try { >>> joinPoint.proceed(); >>> } catch (Throwable e) { >>> // TODO Auto-generated catch block >>> e.printStackTrace(); >>> } >>> } >>> } >>> >>> >>> >>> >>> If defining aspects in camel-context.xml is possible, then how do I >>> define >>> aspects on my RouteBuilder class.Because I want a particular piece of >>> code >>> to be always executed before my route builder class is called and I do >>> not >>> want to embed that code in the routebuilder class. >>> >>> For ex: If I do some thing like this below, >>> <?xml version="1.0" encoding="UTF-8"?> >>> >>> <beans xmlns="http://www.springframework.org/schema/beans" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xmlns:aop="http://www.springframework.org/schema/aop" >>> >>> xmlns:context="http://www.springframework.org/schema/context" >>> xsi:schemaLocation=" >>> http://www.springframework.org/schema/beans >>> http://www.springframework.org/schema/beans/spring-beans-2.5.xsd >>> http://activemq.apache.org/camel/schema/spring >>> http://activemq.apache.org/camel/schema/spring/camel-spring.xsd >>> http://www.springframework.org/schema/aop >>> http://www.springframework.org/schema/aop/spring-aop-2.5.xsd >>> http://www.springframework.org/schema/context >>> >>> http://www.springframework.org/schema/context/spring-context-2.5.xsd"> >>> >>> >>> <context:annotation-config /> >>> >>> <aop:aspectj-autoproxy/> >>> >>> >>> >>> <camelContext id="camel" >>> xmlns="http://activemq.apache.org/camel/schema/spring"> >>> <routeBuilder ref="someRouterBuilder"/> >>> </camelContext> >>> <bean id="firstAspect" class="org.aspect.FirstAspect"/> >>> <bean id="someRouterBuilder" class="org.camel.su.MyRouteBuilder"/> >>> </beans> >>> >>> public class MyRouteBuilder extends RouteBuilder { >>> >>> �...@override >>> public void configure() throws Exception { >>> System.out.println("IN ROUTE BUILDER#####"); >>> >>> // from our camelService which is called by the file >>> poller >>> >>> from("jbi:service:http://servicemix.apache.org/example/orderProcessing") >>> // we process the received order xml >>> .process(new OrderProcessor()) >>> // and send the result xml back to the file sender >>> >>> .to("jbi:service:http://servicemix.apache.org/example/fileSender"); >>> >>> >>> } >>> >>> >>> } >>> >>> >>> >>> I get an exception is saying that routeBuilder should of type >>> org.apache.camel.builder.RouteBuilder. I do not understand why I am >>> getting >>> this exception as my RouteBuilder class is already extending the camel >>> RouteBuilder class. >>> >>> >>> Please help me these queries.I thank you all for your time. >>> >>> >>> >>> >>> >>> >>> >>> -- >>> View this message in context: >>> http://www.nabble.com/Service-mix-%2B-camel-%2B-spring-aop-aspects-tp24307006p24307006.html >>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>> >>> >> >> >> ----- >> --- >> Gert Vanthienen >> http://gertvanthienen.blogspot.com >> > > -- View this message in context: http://www.nabble.com/Service-mix-%2B-camel-%2B-spring-aop-aspects-tp24307006p24309002.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
