package com.megatim.fdxconsultation.service.impl.camel; import com.megatim.fdxcommons.model.camel.BrokerProperties; import com.megatim.fdxcommons.model.camel.FileProperties; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.annotation.PostConstruct; import javax.ejb.Singleton; import javax.ejb.Startup; import javax.enterprise.event.Observes; import javax.inject.Inject; import org.apache.camel.cdi.CdiCamelConfiguration; import org.apache.camel.cdi.CdiCamelContext; import org.apache.camel.component.rabbitmq.RabbitMQComponent; @Singleton @Startup public class CamelBootstrap { @Inject private CdiCamelContext camelContext; @PostConstruct public void init() { try { FileProperties fileProperties = new FileProperties(com.megatim.fdxcommons.tools.context.AppContext.BROKER_FILE_PATH); // Add RabbitMQ Component with connection details RabbitMQComponent rabbitMQComponent = new RabbitMQComponent(); rabbitMQComponent.setHostname(brokerHostName(fileProperties)); rabbitMQComponent.setPortNumber(brokerPortNumber(fileProperties)); rabbitMQComponent.setUsername(brokerUserName(fileProperties)); rabbitMQComponent.setPassword(brokerPassword(fileProperties)); camelContext.addComponent("rabbitmq", rabbitMQComponent); camelContext.start(); } catch (IOException ex) { Logger.getLogger(CamelBootstrap.class.getName()).log(Level.SEVERE, ex.getMessage(), ex); } } public static void configuration(@Observes CdiCamelConfiguration configuration) { System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("INSIDE CONFIGURE OF ROUTE"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); System.out.println("<-------------------------------------------------------------------------------------------->"); // configuration.autoConfigureRoutes(false); configuration.autoStartContexts(false); } private String brokerHostName(FileProperties fileProperties) throws IOException { return fileProperties.properties().getProperty(BrokerProperties.HOSTNAME); } private int brokerPortNumber(FileProperties fileProperties) throws IOException { return Integer.parseInt(fileProperties.properties().getProperty(BrokerProperties.PORT_NUMBER)); } private String brokerUserName(FileProperties fileProperties) throws IOException { return fileProperties.properties().getProperty(BrokerProperties.USER_NAME); } private String brokerPassword(FileProperties fileProperties) throws IOException { return fileProperties.properties().getProperty(BrokerProperties.PASSWORD); } }