L.S.,

With this configuration, you're using jar files from three different
Camel versions together: ServiceMix 3.2.3 comes with Camel 1.4.0 and I
see references to 1.6.0 and 2.0-M2 in your pom.xml file.  If you want
to use Camel 1.6.0, I would strongly recommend you to upgrade to
Servicemix 3.3.1 which ships with support for Camel 1.6.0.  The only
way to use Camel 2.0-SNAPSHOT/Mx in ServiceMix at the moment is by
building the servicemix-camel component locally yourself (cfr.
https://issues.apache.org/activemq/browse/SMXCOMP-563)

Aligning on one single version of Camel will probably get rid of most
of the Exceptions 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 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-tp24307006p24308838.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Reply via email to