The NPE is thrown because the CamelContext context in CamelTestSupport is null!?

Christian

Christian Eugster
Docuteam GmbH
Langacker 16
Postfach
CH-5405 Baden-Dättwil
+41 (0)56 470 03 37
c.eugs...@docuteam.ch





> Anfang der weitergeleiteten Nachricht:
> 
> Von: Christian Eugster <c.eugs...@docuteam.ch>
> Betreff: Running test fails due to not transferred file
> Datum: 13. März 2015 13:09:23 MEZ
> An: user@karaf.apache.org
> 
> Hi,
> 
> at last I arrived to run a camel test in karaf, thanks to you. My next issue 
> is, that the test is running. 
> 
> 1. I get a NPE when creating the MockEndpoint int the test method:
> 
> test(ch.eugster.ingest.sip.identification.KarafContainerTest)  Time elapsed: 
> 73.953 sec  <<< ERROR!
> java.lang.NullPointerException: null
>       at 
> org.apache.camel.test.junit4.TestSupport.resolveMandatoryEndpoint(TestSupport.java:287)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.resolveMandatoryEndpoint(CamelTestSupport.java:549)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.getMockEndpoint(CamelTestSupport.java:573)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.getMockEndpoint(CamelTestSupport.java:559)
>       at 
> ch.eugster.ingest.sip.identification.KarafContainerTest.test(KarafContainerTest.java:112)
> 
> 
> 2. The route is not executed.
> 
> Do you have an idea, what this could be?
> 
> Thank you very much!
> 
> Regard Christian
> 
> Following (hopefully) all necessery information:
> 
> The error in log is:
> 
> 2015-03-13 12:58:30,899 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,904 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,916 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,920 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,921 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,921 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:30,922 | WARN  | ce Proxy Creator | GuardProxyCatalog        
>         | 5 - org.apache.karaf.service.guard - 3.0.3 | Problem creating 
> secured service proxy
> java.lang.NullPointerException
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$1.run(GuardProxyCatalog.java:251)[5:org.apache.karaf.service.guard:3.0.3]
>       at 
> org.apache.karaf.service.guard.impl.GuardProxyCatalog$ServiceProxyCreatorCustomizer$1.run(GuardProxyCatalog.java:566)[5:org.apache.karaf.service.guard:3.0.3]
>       at java.lang.Thread.run(Thread.java:745)[:1.8.0_40]
> 2015-03-13 12:58:31,044 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.camel.karaf.camel-karaf-commands
> 2015-03-13 12:58:31,112 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.package.command
> 2015-03-13 12:58:31,125 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.shell.commands
> 2015-03-13 12:58:31,297 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.system.command
> 2015-03-13 12:58:31,322 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.shell.help
> 2015-03-13 12:58:31,329 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.bundle.command
> 2015-03-13 12:58:31,470 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.jaas.modules
> 2015-03-13 12:58:31,492 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.features.command
> 2015-03-13 12:58:31,542 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.deployer.wrap
> 2015-03-13 12:58:31,553 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.system.core
> 2015-03-13 12:58:31,560 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.bundle.core
> 2015-03-13 12:58:31,566 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.deployer.features
> 2015-03-13 12:58:31,570 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.features.core
> 2015-03-13 12:58:31,583 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.deployer.kar
> 2015-03-13 12:58:31,584 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.kar.core
> 2015-03-13 12:58:31,586 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle sip-identification-processor
> 2015-03-13 12:58:31,590 | INFO  | FelixShutdown    | BlueprintCamelContext    
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Apache Camel 2.14.2 
> (CamelContext: blueprintContext) is shutting down
> 2015-03-13 12:58:31,593 | INFO  | FelixShutdown    | DefaultShutdownStrategy  
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Starting to graceful 
> shutdown 1 routes (timeout 300 seconds)
> 2015-03-13 12:58:31,598 | INFO  | 1 - ShutdownTask | DefaultShutdownStrategy  
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Route: route1 shutdown 
> complete, was consuming from: Endpoint[file://target/inbox] 
> <file://target/inbox]>
> 2015-03-13 12:58:31,599 | INFO  | FelixShutdown    | DefaultShutdownStrategy  
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Graceful shutdown of 1 
> routes completed in 0 seconds
> 2015-03-13 12:58:31,605 | INFO  | FelixShutdown    | BlueprintCamelContext    
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Apache Camel 2.14.2 
> (CamelContext: blueprintContext) uptime 2.376 seconds
> 2015-03-13 12:58:31,605 | INFO  | FelixShutdown    | BlueprintCamelContext    
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Apache Camel 2.14.2 
> (CamelContext: blueprintContext) is shutdown in 0.014 seconds
> 2015-03-13 12:58:31,607 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.camel.camel-blueprint
> 2015-03-13 12:58:31,610 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.config.command
> 2015-03-13 12:58:31,668 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.config.core
> 2015-03-13 12:58:31,671 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.management.server
> 2015-03-13 12:58:31,681 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.framework.BundleStateMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.core:type=bundleState,version=1.7,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,681 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.framework.wiring.BundleWiringStateMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.core:type=wiringState,version=1.1,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,701 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.framework.PackageStateMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.core:type=packageState,version=1.5,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,701 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,702 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.framework.FrameworkMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.core:type=framework,version=1.7,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,703 | INFO  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering 
> org.osgi.jmx.framework.ServiceStateMBean to MBeanServer 
> com.sun.jmx.mbeanserver.JmxMBeanServer@263ee920 with name 
> osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36
> 2015-03-13 12:58:31,710 | WARN  | FelixShutdown    | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Task rejected for JMX 
> Notification dispatch of event 
> [org.osgi.framework.ServiceEvent[source=[javax.management.MBeanServer]]] - 
> Dispatcher may have been shutdown
> 2015-03-13 12:58:31,723 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.service.core
> 2015-03-13 12:58:31,726 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.log.core
> 2015-03-13 12:58:31,730 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.diagnostic.core
> 2015-03-13 12:58:31,755 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.instance.core
> 2015-03-13 12:58:31,756 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.package.core
> 2015-03-13 12:58:31,758 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.jaas.config
> 2015-03-13 12:58:31,760 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.shell.console
> 2015-03-13 12:58:31,766 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.deployer.blueprint
> 2015-03-13 12:58:31,768 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.karaf.deployer.spring
> 2015-03-13 12:58:31,769 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.aries.blueprint.core
> 2015-03-13 12:58:31,772 | INFO  | FelixShutdown    | BlueprintExtender        
>         | 15 - org.apache.aries.blueprint.core - 1.4.2 | Destroying 
> BlueprintContainer for bundle org.apache.aries.blueprint.cm
> 2015-03-13 12:58:31,776 | INFO  | FelixShutdown    | ContextLoaderListener    
>         | 91 - org.springframework.osgi.extender - 1.2.1 | Stopping 
> [org.springframework.osgi.extender] bundle v.[1.2.1]
> 2015-03-13 12:58:31,793 | INFO  | FelixShutdown    | TimerTaskExecutor        
>         | 86 - org.apache.servicemix.bundles.spring-context - 
> 3.2.11.RELEASE_1 | Cancelling Timer
> 2015-03-13 12:58:31,815 | INFO  | FelixStartLevel  | Activator                
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Camel activator stopping
> 2015-03-13 12:58:31,815 | INFO  | FelixStartLevel  | Activator                
>         | 46 - org.apache.camel.camel-core - 2.14.2 | Camel activator stopped
> 2015-03-13 12:58:31,817 | INFO  | FelixStartLevel  | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Stopping JMX OSGi agent
> 2015-03-13 12:58:31,818 | INFO  | FelixStartLevel  | core                     
>         | 110 - org.apache.aries.jmx.core - 1.1.2 | Unregistering MBean with 
> ObjectName 
> [osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=be4d8555-a13f-46a1-8b68-18c813031c36]
>  for service with service.id [14]
> [                          main] ReactorManager                 INFO  suite 
> finished
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 74.048 sec 
> <<< FAILURE! - in ch.eugster.ingest.sip.identification.KarafContainerTest
> test(ch.eugster.ingest.sip.identification.KarafContainerTest)  Time elapsed: 
> 73.953 sec  <<< ERROR!
> java.lang.NullPointerException: null
>       at 
> org.apache.camel.test.junit4.TestSupport.resolveMandatoryEndpoint(TestSupport.java:287)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.resolveMandatoryEndpoint(CamelTestSupport.java:549)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.getMockEndpoint(CamelTestSupport.java:573)
>       at 
> org.apache.camel.test.junit4.CamelTestSupport.getMockEndpoint(CamelTestSupport.java:559)
>       at 
> ch.eugster.ingest.sip.identification.KarafContainerTest.test(KarafContainerTest.java:112)
> 
> 
> Results :
> 
> 
> Tests in error: 
>   
> KarafContainerTest.test:112->CamelTestSupport.getMockEndpoint:559->CamelTestSupport.getMockEndpoint:573->CamelTestSupport.resolveMandatoryEndpoint:549->TestSupport.resolveMandatoryEndpoint:287
>  » NullPointer
> 
> 
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
> 
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 01:19 min
> [INFO] Finished at: 2015-03-13T12:58:32+01:00
> [INFO] Final Memory: 18M/225M
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-surefire-plugin:2.18:test (default-test) on 
> project sip-identification-processor: There are test failures.
> [ERROR] 
> [ERROR] Please refer to 
> /Users/christian/Projekte/ceugster/Entwicklung/Test/Workspace-4.4/ingest-engine/sip-identification-processor/target/surefire-reports
>  for the individual test results.
> [ERROR] -> [Help 1]
> [ERROR] 
> [ERROR] To see the full stack trace of the errors, re-run Maven with the -e 
> switch.
> [ERROR] Re-run Maven using the -X switch to enable full debug logging.
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please 
> read the following articles:
> [ERROR] [Help 1] 
> http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
> <http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException>
> 
> My route builder is built from blueprint:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0 
> <http://www.osgi.org/xmlns/blueprint/v1.0.0>"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance 
> <http://www.w3.org/2001/XMLSchema-instance>" 
> xmlns:camel="http://camel.apache.org/schema/blueprint 
> <http://camel.apache.org/schema/blueprint>"
>       xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 
> <http://www.osgi.org/xmlns/blueprint/v1.0.0> 
> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd 
> <http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd>
>               http://camel.apache.org/schema/blueprint 
> <http://camel.apache.org/schema/blueprint> 
> http://camel.apache.org/schema/blueprint/camel-blueprint.xsd 
> <http://camel.apache.org/schema/blueprint/camel-blueprint.xsd>">
> 
>       <reference-list id="sipConnectors" 
> interface="ch.eugster.ingest.sip.connector.api.SipConnector"
>               availability="mandatory">
>               <reference-listener bind-method="bindSipConnector" 
> unbind-method="unbindSipConnector">
>                       <bean 
> class="ch.eugster.ingest.sip.identification.SipIdentificationProcessor"/>     
>    
>               </reference-listener>
>    </reference-list>
> 
>       <bean id="fileroute" 
> class="ch.eugster.ingest.sip.identification.KarafContainerRouteBuilder"/>
>       
>       <camelContext id="blueprintContext" trace="false"
>               xmlns="http://camel.apache.org/schema/blueprint 
> <http://camel.apache.org/schema/blueprint>">
>               <routeBuilder ref="fileroute"/>
>       </camelContext>
> 
> </blueprint>
> 
> and the KarafContainerRouteBuilder looks like:
> 
> package ch.eugster.ingest.sip.identification;
> 
> import org.apache.camel.builder.RouteBuilder;
> 
> /**
>  * A Camel Java DSL Router
>  */
> public class KarafContainerRouteBuilder extends RouteBuilder {
> 
>     /**
>      * Let's configure the Camel routing rules using Java code...
>      */
>     public void configure() {
>               System.out.println("Route configured");
>               SipIdentificationProcessor processor = new 
> SipIdentificationProcessor();
>               from("file://target/inbox 
> <file://target/inbox>").process(processor).to("mock:file");
>     }
> 
> }
> 
> while the test class is:
> 
> package ch.eugster.ingest.sip.identification;
> 
> import static org.ops4j.pax.exam.CoreOptions.maven;
> import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
> import static org.ops4j.pax.exam.CoreOptions.streamBundle;
> import static 
> org.ops4j.pax.exam.karaf.options.KarafDistributionOption.configureConsole;
> import static 
> org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
> import static 
> org.ops4j.pax.exam.karaf.options.KarafDistributionOption.karafDistributionConfiguration;
> import static 
> org.ops4j.pax.exam.karaf.options.KarafDistributionOption.keepRuntimeFolder;
> import static 
> org.ops4j.pax.exam.karaf.options.KarafDistributionOption.logLevel;
> import static org.ops4j.pax.tinybundles.core.TinyBundles.bundle;
> 
> import java.io.File;
> import java.nio.file.FileSystems;
> import java.nio.file.Files;
> import java.nio.file.StandardCopyOption;
> 
> import javax.inject.Inject;
> 
> import org.apache.camel.CamelContext;
> import org.apache.camel.component.mock.MockEndpoint;
> import org.apache.camel.test.junit4.CamelTestSupport;
> import org.apache.karaf.features.FeaturesService;
> import org.junit.Test;
> import org.junit.runner.RunWith;
> import org.ops4j.pax.exam.Configuration;
> import org.ops4j.pax.exam.Option;
> import org.ops4j.pax.exam.junit.PaxExam;
> import org.ops4j.pax.exam.karaf.options.LogLevelOption.LogLevel;
> import org.ops4j.pax.exam.util.Filter;
> import org.osgi.framework.BundleContext;
> import org.osgi.framework.Constants;
> 
> @RunWith(PaxExam.class)
> public class KarafContainerTest extends CamelTestSupport
> {
>       private static final String templatePath = new 
> File("../../../../src/test/resources/SIP_20150306_Matterhorn.zip").getAbsolutePath();
> 
>       private static final String sourcePath = new 
> File("../../../inbox/SIP_20150306_Matterhorn.zip").getAbsolutePath();
> 
>       private static final String targetPath = new 
> File("../../../outbox/SIP_20150306_Matterhorn.zip").getAbsolutePath();
> 
>       @Inject
>       protected BundleContext bundleContext;
>       
>       @Inject
>       protected FeaturesService featuresService;
> 
>       @Inject
>       @Filter(value="(camel.context.name=blueprintContext)", timeout=10000)
>       protected CamelContext testContext;
> 
>       @Configuration
>       public static Option[] configuration() throws Exception 
>       {
>               System.out.println("Configuring container");
>               return new Option[] {
>                               
> karafDistributionConfiguration().frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf")
>                                               
> .type("zip").versionAsInProject())
>                                               .unpackDirectory(new 
> File("target/paxexam/unpack/"))
>                                               .useDeployFolder(false),
>                               configureConsole().ignoreLocalConsole(),
>                               logLevel(LogLevel.INFO),
>                               keepRuntimeFolder(),
>                               features(
>                                               
> maven().groupId("org.apache.camel.karaf").artifactId("apache-camel").type("xml")
>                                                               
> .classifier("features").versionAsInProject(), "camel-blueprint", 
> "camel-test"),
>                               features(
>                                               
> maven().groupId("org.apache.karaf.features")
>                                                               
> .artifactId("standard").type("xml")
>                                                               
> .classifier("features").versionAsInProject(),
>                                               "eventadmin"),
>                               mavenBundle().groupId("ch.eugster.ingest")
>                                               .artifactId("sip-connector-api")
>                                               .version("0.0.1-SNAPSHOT"),
>                               mavenBundle().groupId("ch.eugster.ingest")
>                                               .artifactId("checksum-api")
>                                               .version("0.0.1-SNAPSHOT"),
>                               mavenBundle().groupId("ch.eugster.ingest")
>                                               
> .artifactId("sip-connector-matterhorn")
>                                               .version("0.0.1-SNAPSHOT"),
>                               streamBundle(
>                                               bundle()
>                                                               
> .add(SipIdentificationProcessor.class)
>                                                               
> .add(KarafContainerRouteBuilder.class)
>                                                               
> .add("OSGI-INF/blueprint/camel-context.xml",
>                                                                               
> new File("src/main/resources/OSGI-INF/blueprint/blueprint.xml")
>                                                                               
>                 .toURL())
>                                                                               
> .set(Constants.BUNDLE_SYMBOLICNAME, "sip-identification-processor")
>                                                                               
> .set(Constants.DYNAMICIMPORT_PACKAGE, "*").build())
>                                                               .start() 
>                               };
>       }
>       
>       @Override
>       public boolean isCreateCamelContextPerClass() 
>       {
>               // we override this method and return true, to tell Camel 
> test-kit that
>               // it should only create CamelContext once (per class), so we 
> will
>               // re-use the CamelContext between each test method in this 
> class
>               return true;
>       }
>       
>       @Test
>       public void test() throws Exception 
>       {
>               System.out.println("test running");
>               
> assertTrue(featuresService.isInstalled(featuresService.getFeature("eventadmin")));
>               
> assertTrue(featuresService.isInstalled(featuresService.getFeature("camel-core")));
>               
> assertTrue(featuresService.isInstalled(featuresService.getFeature("camel-blueprint")));
>               
>               MockEndpoint mock = getMockEndpoint("mock:file");
>               System.out.println(mock.toString());
>               mock.expectedFileExists(targetPath);
> 
> //            Files.copy(FileSystems.getDefault().getPath(templatePath), 
> FileSystems.getDefault().getPath(sourcePath), 
> StandardCopyOption.REPLACE_EXISTING);
>               assertTrue(new File(sourcePath).exists());
>               System.out.println(sourcePath);
> 
>               Thread.sleep(5000);
> 
>               assertMockEndpointsSatisfied();
>       }
> 
> }
> 
> 
> 
> 
> 
> 
> Christian Eugster
> Docuteam GmbH
> Langacker 16
> Postfach
> CH-5405 Baden-Dättwil
> +41 (0)56 470 03 37
> c.eugs...@docuteam.ch <mailto:c.eugs...@docuteam.ch>
> 
> 
> 
> 
> 

Reply via email to