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);
|
}
|
}
|