Prueba de Spring Boot Apache Camel Routes
Tengo una aplicación Springboot, donde tengo algunas rutas de camellos configuradas.
public class CamelConfig {
private static final Logger LOG = LoggerFactory.getLogger(CamelConfig.class);
@Value("${activemq.broker.url:tcp://localhost:61616}")
String brokerUrl;
@Value("${activemq.broker.maxconnections:1}")
int maxConnections;
@Bean
ConnectionFactory jmsConnectionFactory() {
PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory(new ActiveMQConnectionFactory(brokerUrl));
pooledConnectionFactory.setMaxConnections(maxConnections);
return pooledConnectionFactory;
}
@Bean
public RoutesBuilder route() {
LOG.info("Initializing camel routes......................");
return new SpringRouteBuilder() {
@Override
public void configure() throws Exception {
from("activemq:testQueue").to("bean:queueEventHandler?method=handleQueueEvent");
}
};
}
}
Quiero probar esta ruta desde activemq: testQueue a queueEventHandler :: handleQueueEvent
Intenté diferentes cosas mencionadas aquíhttp://camel.apache.org/camel-test.html, pero no parece que funcione.
Estoy tratando de hacer algo como esto
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {CamelConfig.class, CamelTestContextBootstrapper.class})
public class CamelRouteConfigTest {
@Produce(uri = "activemq:testQueue")
protected ProducerTemplate template;
@Test
public void testSendMatchingMessage() throws Exception {
template.sendBodyAndHeader("testJson", "foo", "bar");
.....
..... verify handleQueueEvent method is called on bean queueEventHandler by mocking
}
Pero mi ProducerTemplate siempre es nulo. Intenté Autowiring Camelcontext, por lo que recibo una excepción que dice que no puede resolver camelContext. Pero eso se puede resolver agregando SpringCamelContext.class a las clases @SpringBootTest. Pero mi ProducerTemplate sigue siendo nulo.
Por favor recomiende. Estoy usando Camel 2.18 Springboot 1.4