Problem during route creation via BlueprintCamelContext

143 views
Skip to first unread message

Alexander Kley

unread,
Aug 20, 2014, 11:02:09 AM8/20/14
to ipf-...@googlegroups.com
Hi group,

during creation my first route with ipf 2.6.4 and blueprint I got FailedToCreateRouteException and it seems that routes can not delivered to camel via blueprint (with ipf framework). 
BTW: Additionally to start Karaf IPF feature i must deploy camel-bluprint bundle to have a NamespaceHandler to process camelContext elements from blueprint.xml. Now thats works fine with right version 2.12.1


My route builder:
public class HL7RouteBuilder extends SpringRouteBuilder 
{
  void configure() {

    from("timer:Startup?repeatCount=1")
        .to('log:HL7RouteBuilder?level=INFO')

    from('file:workspace/input')
        .initFlow(this.class.package.name).application('osgi-file')
        .unmarshal().ghl7()
        .validate().ghl7()        
        .dedupeFlow()
        .marshal().ghl7()
        .to('jms:queue:delivery-file')

    from('jms:queue:delivery-file')
        .to('file:workspace/output?autoCreate=false')
        .ackFlow()

  }
}

My blueprint.xml:
xmlns:camel="http://camel.apache.org/schema/blueprint"               
    xsi:schemaLocation="    
  default-availability="optional">
<!-- obtain flowManager to use it in routes -->  
<reference id="flowManager" timeout="10000"
        interface="org.openehealth.ipf.commons.flow.FlowManager">
    </reference> 
    <bean class="org.openehealth.ipf.platform.camel.flow.osgi.OsgiReplayStrategyRegistry" />    
    <reference id="jms" timeout="10000"
        interface="org.apache.camel.Component">
    </reference>   
    
            
    <!-- add route builder and a Camel context to the bundle's application context  -->    
    <camel:camelContext id="camelContext">
        <camel:routeBuilder ref="routeBuilder"/>
    </camel:camelContext>
 
    <bean id="routeBuilder"
        class="myPackage.HL7RouteBuilder">
    </bean>    
</blueprint>


Exception is:
2014-08-20 16:30:21,358 | ERROR | Local user karaf | BlueprintCamelContext            | 246 - org.apache.camel.camel-blueprint - 2.12.1 | Error occurred during starting Camel: CamelContext(camelContext) due Failed to create route route15 at: >>> FlowEndProcessor[[]] <<< in route: Route(route15)[[From[jms:queue:delivery-file]] -> [To[file:w... because of context argument is not a SpringCamelContext
org.apache.camel.FailedToCreateRouteException: Failed to create route route15 at: >>> FlowEndProcessor[[]] <<< in route: Route(route15)[[From[jms:queue:delivery-file]] -> [To[file:w... because of context argument is not a SpringCamelContext
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:912)
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:177)
        at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:770)
        at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1914)
        at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1670)
        at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1544)
        at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
        at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1512)
        at org.apache.camel.blueprint.BlueprintCamelContext.start(BlueprintCamelContext.java:177)
        at org.apache.camel.blueprint.BlueprintCamelContext.maybeStart(BlueprintCamelContext.java:209)
        at org.apache.camel.blueprint.BlueprintCamelContext.serviceChanged(BlueprintCamelContext.java:147)
        at org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:932)
        at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:793)
        at org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:543)
        at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4419)
        at org.apache.felix.framework.Felix.registerService(Felix.java:3423)
        at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:346)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.registerService(BlueprintContainerImpl.java:452)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:387)
        at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:269)
        at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:276)
        at org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:245)
        at org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:235)
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
        at org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
        at org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1103)
        at org.apache.felix.framework.util.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:695)
        at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:483)
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4403)
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2092)
        at org.apache.felix.framework.Felix.updateBundle(Felix.java:2404)
        at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:973)
        at org.apache.felix.framework.BundleImpl.update(BundleImpl.java:960)
        at org.apache.karaf.bundle.command.Update.doExecute(Update.java:42)
        at org.apache.karaf.bundle.command.BundleCommand.doExecute(BundleCommand.java:49)
        at org.apache.karaf.bundle.command.BundleCommandWithConfirmation.doExecute(BundleCommandWithConfirmation.java:34)
        at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
        at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)
        at org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)
        at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_25]
        at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
        at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
        at org.apache.karaf.shell.console.commands.$BlueprintCommand15737411.execute(Unknown Source)[37:org.apache.karaf.shell.console:3.0.1]
        at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_25]
        at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_25]
        at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
        at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
        at org.apache.karaf.shell.console.commands.$BlueprintCommand15737411.execute(Unknown Source)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
        at org.apache.karaf.shell.console.impl.jline.ConsoleImpl$DelegateSession.execute(ConsoleImpl.java:521)
        at org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:212)
        at java.lang.Thread.run(Thread.java:724)[:1.7.0_25]
        at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3.doRun(ConsoleFactoryService.java:126)[37:org.apache.karaf.shell.console:3.0.1]
        at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3$1.run(ConsoleFactoryService.java:117)
        at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_25]
        at org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:47)[38:org.apache.karaf.jaas.modules:3.0.1]
        at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3.run(ConsoleFactoryService.java:115)[37:org.apache.karaf.shell.console:3.0.1]
Caused by: java.lang.IllegalArgumentException: context argument is not a SpringCamelContext
        at org.openehealth.ipf.platform.camel.core.util.Contexts.getApplicationContext(Contexts.java:57)
        at org.openehealth.ipf.platform.camel.core.util.Contexts.beanOrNull(Contexts.java:38)
        at org.openehealth.ipf.platform.camel.flow.model.FlowEndProcessorDefinition.createFlowEndProcessor(FlowEndProcessorDefinition.java:47)
        at org.openehealth.ipf.platform.camel.flow.model.FlowEndProcessorDefinition.doCreateProcessor(FlowEndProcessorDefinition.java:42)
        at org.openehealth.ipf.platform.camel.flow.model.FlowProcessorDefinition.createProcessor(FlowProcessorDefinition.java:116)
        at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:500)
        at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:213)
        at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:909)
        ... 68 more

Any advices to solve the problem or it is currently not possible to deploy routes via blueprint because IPF does not support blueprint?

Best regards
Alex

Boris Stanojević

unread,
Aug 20, 2014, 11:27:54 AM8/20/14
to ipf-...@googlegroups.com
Hi,

well the IPF's FlowManager is sadly one OSGi aspect which currently don't work on Blueprint. If you really need to use the IPF's FlowManagement you have to stick to SpringDM,

Best Regards,
Boris



--
You received this message because you are subscribed to the Google Groups "ipf-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ipf-user+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages