Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.0
-
None
Description
Following unit test fails.
Similar test, but using Spring XML with <routeBuilder ref="..."/> instead of Spring JavaConfig, would succeed.
@ContextConfiguration( locations = "org.plos.camel.BeanJavaConfigTest$ContextConfig", loader = JavaConfigContextLoader.class ) public class BeanJavaConfigTest extends AbstractTestNGSpringContextTests { @EndpointInject(uri = "mock:end") protected MockEndpoint endpoint; @EndpointInject(uri = "mock:error") protected MockEndpoint errorEndpoint; @Produce(uri = "direct:start") protected ProducerTemplate producer; @Test @DirtiesContext public void testSomething() throws Exception { endpoint.expectedMessageCount(1); endpoint.message(0).body().isEqualTo("Message Body"); producer.sendBody("Message Body"); endpoint.assertIsSatisfied(); } public static class SomeBean { @Handler public String someMethod(String body) { System.out.println("Received: " + body); return body; } } @Configuration public static class ContextConfig extends SingleRouteCamelConfiguration { @Bean @Override public RouteBuilder route() { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:start") .bean(new SomeBean()) .to("mock:end") .errorHandler(deadLetterChannel("mock:end")); } }; } } }
Error stack:
java.lang.IllegalStateException: Failed to load ApplicationContext ... Caused by: java.lang.NullPointerException at org.apache.camel.spring.spi.ApplicationContextRegistry.lookup(ApplicationContextRegistry.java:41) at org.apache.camel.component.bean.BeanInfo.createParameterMappingStrategy(BeanInfo.java:115) at org.apache.camel.component.bean.BeanProcessor.<init>(BeanProcessor.java:55) at org.apache.camel.model.BeanDefinition.createProcessor(BeanDefinition.java:156) at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:276) at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:116) at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:439) at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:126) at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:569) at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:924) at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:901) at org.apache.camel.spring.SpringCamelContext.maybeDoStart(SpringCamelContext.java:165) at org.apache.camel.spring.SpringCamelContext.doStart(SpringCamelContext.java:160) at org.apache.camel.impl.ServiceSupport.start(ServiceSupport.java:52) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:816) at org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:99) at org.apache.camel.spring.SpringCamelContext.afterPropertiesSet(SpringCamelContext.java:87) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335) ... 74 more