I am having problems with camel routes running in apache-karaf-2.3.3. Currently I have two projects: - camel-example-osgi - Slightly modified version of example project - camel-example-osgi-domain - new project containing only domain classes required by different osgi projects
So essentially the camel-example-osgi-domain is place holder for domain objects. org.apache.camel.example.osgi.MyPojo public class MyPojo implements Serializable { private String id; public MyPojo(String id){ this.id =id; } public String getId() { return id; } } camel-example-osgi defines camel route with two routes: <?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.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd"> <camelContext xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="timer://mytestTrigger?fixedRate=true&period=10000"/> <to uri="myTestFactory"/> </route> <route id="mvelTest"> <from uri="seda://myMvelTest?concurrentConsumers=2"/> <choice> <when> <mvel>request.body instanceof org.apache.camel.example.osgi.MyPojo</mvel> <to uri="log:MvelRouter"/> </when> </choice> </route> </camelContext> <bean id="myTestFactory" class="org.apache.camel.example.osgi.MyTestFactory"> <property name="numberOfMessages" value="2"/> </bean> </beans> So as you can see the camel-example-osgi project depends on camel-example-osgi-domain due to MyPojo class. Therefore to make it work in karaf I have configured two feature.xml files for each project: camel-example-osgi - feature.xml : <features> <repository>mvn:org.apache.camel.karaf/apache-camel/${project.version}/xml/features</repository> <feature name='camel-example-osgi' version='${project.version}'> <feature version="${project.version}">camel-example-osgi-domain</feature> <feature version="${project.version}">camel-spring</feature> <feature version="${project.version}">camel-mvel</feature> <bundle>mvn:org.apache.camel/camel-example-osgi/${project.version}</bundle> </feature> </features> camel-example-osgi-domain - feature.xml : <feature name='camel-example-osgi-domain' version='${project.version}'> <bundle>mvn:org.apache.camel/camel-example-osgi-domain/${project.version}</bundle> </feature> When I deploy both feature to karaf and place a message on seda://myMvelTest?concurrentConsumers=2 queue i get following exception in karaf. ERROR | eda://myMvelTest | DefaultErrorHandler | rg.apache.camel.util.CamelLogger 215 | 73 - org.apache.camel.camel-core - 2.13.0.SNAPSHOT | Failed delivery for (MessageId: ID-localhost-51000-1389691121739-1-56 on ExchangeId: ID-localhost-51000-1389691121739-1-85). Exhausted after delivery attempt: 1 caught: org.apache.camel.ExpressionEvaluationException: [Error: could not access: org; in class: org.apache.camel.language.mvel.RootObject] [Near : {... est.body instanceof org.apache.camel.example.osgi. ....}] ^ [Line: 1, Column: 25] Message History --------------------------------------------------------------------------------------------------------------------------------------- RouteId ProcessorId Processor Elapsed (ms) [mvelTest ] [mvelTest ] [seda://myMvelTest?concurrentConsumers=2 ] [ 14] [mvelTest ] [choice2 ] [when[mvel{Mvel[request.body instanceof org.apache.camel.example.osgi.MyPojo]}]] [ 0] Exchange --------------------------------------------------------------------------------------------------------------------------------------- Exchange[ Id ID-localhost-51000-1389691121739-1-85 ExchangePattern InOut Headers {breadcrumbId=ID-localhost-51000-1389691121739-1-56, CamelRedelivered=false, CamelRedeliveryCounter=0} BodyType org.apache.camel.example.osgi.MyPojo Body org.apache.camel.example.osgi.MyPojo@21093d9e ] Stacktrace --------------------------------------------------------------------------------------------------------------------------------------- org.apache.camel.ExpressionEvaluationException: [Error: could not access: org; in class: org.apache.camel.language.mvel.RootObject] [Near : {... est.body instanceof org.apache.camel.example.osgi. ....}] ^ [Line: 1, Column: 25] at org.apache.camel.language.mvel.MvelExpression.evaluate(MvelExpression.java:60)[103:org.apache.camel.camel-mvel:2.13.0.SNAPSHOT] at org.apache.camel.support.ExpressionSupport.matches(ExpressionSupport.java:32)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:90)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:398)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:291)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:200)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:147)[73:org.apache.camel.camel-core:2.13.0.SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)[:1.6.0_65] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)[:1.6.0_65] at java.lang.Thread.run(Thread.java:695)[:1.6.0_65] Caused by: [Error: could not access: org; in class: org.apache.camel.language.mvel.RootObject] [Near : {... est.body instanceof org.apache.camel.example.osgi. ....}] ^ [Line: 1, Column: 25] at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.getBeanProperty(ReflectiveAccessorOptimizer.java:683)[102:org.mvel2:2.1.7.Final] at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:337)[102:org.mvel2:2.1.7.Final] at org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:140)[102:org.mvel2:2.1.7.Final] at org.mvel2.optimizers.dynamic.DynamicOptimizer.optimizeAccessor(DynamicOptimizer.java:67)[102:org.mvel2:2.1.7.Final] at org.mvel2.ast.ASTNode.optimize(ASTNode.java:159)[102:org.mvel2:2.1.7.Final] at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:115)[102:org.mvel2:2.1.7.Final] at org.mvel2.ast.Instance.getReducedValueAccelerated(Instance.java:21)[102:org.mvel2:2.1.7.Final] at org.mvel2.compiler.ExecutableAccessor.getValue(ExecutableAccessor.java:42)[102:org.mvel2:2.1.7.Final] at org.mvel2.MVEL.executeExpression(MVEL.java:954)[102:org.mvel2:2.1.7.Final] at org.apache.camel.language.mvel.MvelExpression.evaluate(MvelExpression.java:57)[103:org.apache.camel.camel-mvel:2.13.0.SNAPSHOT] Exception suggest that camel-example-osgi is not able to resolve camel-example-osgi-domain classes. Did anybody run into similar problem with osgi bundles deployed to apache-karaf-2.3.3? Any ideas how to resolve that. I believe that was working fine with previous version of camel. Please see the MANIFEST.MF files for both projects: Manifest-Version: 1.0 Bnd-LastModified: 1389690338595 Build-Jdk: 1.7.0_25 Built-By: amajewski Bundle-Description: A simple OSGi example which creates a bundle that ca n be dropped into any OSGi container Bundle-DocURL: http://www.apache.org/ Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Bundle-ManifestVersion: 2 Bundle-Name: camel-example-osgi Bundle-SymbolicName: camel-example-osgi Bundle-Vendor: The Apache Software Foundation Bundle-Version: 2.13.0.SNAPSHOT Created-By: Apache Maven Bundle Plugin Export-Package: org.apache.camel.example.osgi;uses:="org.apache.camel.bu ilder,org.apache.camel.model,org.apache.camel.spring,org.apache.camel,o rg.slf4j";version="2.13.0.SNAPSHOT" Implementation-Title: Apache Camel Implementation-Version: 2.13-SNAPSHOT Import-Package: org.apache.camel;version="[2.13,2.14)",org.apache.camel. builder;version="[2.13,2.14)",org.apache.camel.model;version="[2.13,2.1 4)",org.apache.camel.spring;version="[2.13,2.14)",org.slf4j;version="[1 .6,2)" Karaf-Info: Camel;camel-example-osgi=2.13-SNAPSHOT Tool: Bnd-1.50.0 Manifest-Version: 1.0 Bnd-LastModified: 1389690256120 Build-Jdk: 1.7.0_25 Built-By: amajewski Bundle-Description: Camel Examples Bundle-DocURL: http://www.apache.org/ Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt Bundle-ManifestVersion: 2 Bundle-Name: camel-example-osgi-domain Bundle-SymbolicName: camel-example-osgi-domain Bundle-Vendor: The Apache Software Foundation Bundle-Version: 2.13.0.SNAPSHOT Created-By: Apache Maven Bundle Plugin Export-Package: org.apache.camel.example.osgi;version="2.13.0.SNAPSHOT" Implementation-Title: Apache Camel Implementation-Version: 2.13-SNAPSHOT Karaf-Info: Camel;camel-example-osgi-domain=2.13-SNAPSHOT Tool: Bnd-1.50.0 -- View this message in context: http://camel.465427.n5.nabble.com/Problem-with-camel-routes-running-in-apache-karaf-2-3-3-tp5745929.html Sent from the Camel - Users mailing list archive at Nabble.com.