package camelinaction;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Named;
import org.apache.activemq.camel.component.ActiveMQComponent;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jms.JmsComponent;
import org.apache.camel.converter.jaxb.JaxbDataFormat;
/**
* Camel route that calls the legacy system
*/
@ApplicationScoped
public class InventoryRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
from("direct:inventory")
// call the legacy system using JMS
.to("jms:queue:inventory")
// the returned data is in XML format so convert that to POJO using JAXB
.unmarshal().jaxb("camelinaction");
}
/**
* Setup JMS component
*/
@Produces
@Named("jms")
public static JmsComponent jmsComponent() {
ActiveMQComponent jms = new ActiveMQComponent();
jms.setBrokerURL("tcp://localhost:61616");
return jms;
}
}