camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From akshay_ajmani <akshay.ajm...@gmail.com>
Subject Re: camel + service mix + spring aspect
Date Fri, 03 Jul 2009 17:55:12 GMT



akshay_ajmani wrote:
> 
> This is my pom.xml
> <?xml version="1.0" encoding="UTF-8"?><project>
>   <parent>
>     <artifactId>camel</artifactId>
>     <groupId>camel.trial</groupId>
>     <version>0.0.1-SNAPSHOT</version>
>   </parent>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>camel.trial</groupId>
>   <artifactId>camel-su</artifactId>
>   <packaging>jbi-service-unit</packaging>
>   <name>A Camel based JBI Service Unit</name>
>   <version>0.0.1-SNAPSHOT</version>
>   <url>http://www.myorganization.org</url>
>   <build>
>     <defaultGoal>install</defaultGoal>
>     <plugins>
>       <plugin>
>         <artifactId>maven-compiler-plugin</artifactId>
>         <configuration>
>           <source>1.5</source>
>           <target>1.5</target>
>         </configuration>
>       </plugin>
>       <plugin>
>         <groupId>org.apache.servicemix.tooling</groupId>
>         <artifactId>jbi-maven-plugin</artifactId>
>         <version>${servicemix-version}</version>
>         <extensions>true</extensions>
>       </plugin>
>       <plugin>
>         <groupId>org.apache.camel</groupId>
>         <artifactId>camel-maven-plugin</artifactId>
>         <version>${camel-version}</version> <!--  ${camel-version}-->
>       </plugin>
>     </plugins>
>   </build>
>   <repositories>
>   <repository>
>   	<releases>
> 				<enabled>false</enabled>
> 			</releases>
> 			<snapshots />
> 			<id>open.iona.m2-snapshot</id>
> 			<name>IONA Open Source Community Snapshot Repository</name>
> 			<url>http://repo.open.iona.com/maven2-snapshot
> 			</url>
> 		</repository>
>     <repository>
>       <releases />
>       <snapshots>
>         <enabled>false</enabled>
>       </snapshots>
>       <id>apache</id>
>       <name>Apache Repository</name>
>       <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
>     </repository>
>     <repository>
>       <releases>
>         <enabled>false</enabled>
>       </releases>
>       <snapshots />
>       <id>apache.snapshots</id>
>       <name>Apache Snapshots Repository</name>
>       <url>http://people.apache.org/repo/m2-snapshot-repository</url>
>     </repository>
>   </repositories>
>   <pluginRepositories>
>     <pluginRepository>
>       <releases />
>       <snapshots>
>         <enabled>false</enabled>
>       </snapshots>
>       <id>apache</id>
>       <name>Apache Repository</name>
>       <url>http://people.apache.org/repo/m2-ibiblio-rsync-repository</url>
>     </pluginRepository>
>     <pluginRepository>
>       <releases>
>         <enabled>false</enabled>
>       </releases>
>       <snapshots />
>       <id>apache.snapshots</id>
>       <name>Apache Snapshots Repository</name>
>       <url>http://people.apache.org/repo/m2-snapshot-repository</url>
>     </pluginRepository>
>   </pluginRepositories>
>   <dependencies>
>     <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.aspectj</groupId>
>     	<artifactId>aspectjrt</artifactId>
>     	<version>1.6.5</version>
>     </dependency>
>      <!-- 
>         <dependency>
>     	<groupId>org.apache.camel</groupId>
>     	<artifactId>camel-spring</artifactId>
>         <version>${camel-version}</version>
>     </dependency>
>       -->
>   </dependencies>
>   <properties>
>     		<servicemix-version>3.3.1.17-fuse</servicemix-version>
>     <camel-version>1.6.0</camel-version> <!-- 1.4.0 original value -->
>   </properties>
> </project>
> 
> I am getting the following error.It seems there is some jar version
> mismatch.
> 
> Caused by: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'camelContext': Invoca
> tion of init method failed; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating
> bean with name 'myBuilder' defined in file
> [C:\progress\fuse-esb-3.4.0.2\data\smx\service-assemblies\camel-sa\version_15
> \sus\servicemix-camel\camel-su\camel-context.xml]: Initialization of bean
> failed; nested exception is java.lang.NoSuchMe
> thodError:
> org.springframework.util.ReflectionUtils.isEqualsMethod(Ljava/lang/reflect/Method;)Z
> 
> My camel context file is
> <?xml version="1.0"?>
> 
> <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"
> 		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://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="camelContext" useJmx="true"
> xmlns="http://activemq.apache.org/camel/schema/spring">
>      <routeBuilder ref="myBuilder" />  
>   </camelContext> 
> 
> <bean id="myBuilder" class="org.camel.su.MyRouteBuilder"/>
> <bean id="firstAspect" class="org.aspect.FirstAspect"/>
> </beans>
> 
> I have spring core 2.5.6 jar which does not have this method defined.Is my
> POM.xml correct as I think I may need to change the version of the jar to
> make this work.
> 
> 
> Claus Ibsen-2 wrote:
>> 
>> Hi
>> 
>> What version of Camel are you using?
>> There was an issue with 1.6.0 or older not being able to be IoC in
>> some circumstances if the bean was a RouteBuilder instance.
>> And thats the case with your route builder.
>> 
>> However when using proxy it can be on interface or class level. And
>> aspectj looks like it does at classlevel so hence something can go
>> wrong when Camel is not able to see it as a RouteBuilder instance.
>> 
>> 
>> 
>> On Thu, Jul 2, 2009 at 3:46 PM, akshay_ajmani<akshay.ajmani@gmail.com>
>> wrote:
>>>
>>> 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/camel-%2B-service-mix-%2B-spring-aspect-tp24307030p24307030.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
>> 
>> -- 
>> Claus Ibsen
>> Apache Camel Committer
>> 
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/camel-%2B-service-mix-%2B-spring-aspect-tp24307030p24326755.html
Sent from the Camel - Users mailing list archive at Nabble.com.


Mime
View raw message