in uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/BrokerDeployer.java [81:237]
public void startInternalBroker() throws Exception {
TransportConnector connector = null;
synchronized (brokerInstanceMux) {
if (maxBrokerMemory > 0) {
System.out
.println("Configuring Internal Broker With Max Memory Of:"
+ maxBrokerMemory);
if (UIMAFramework.getLogger(CLASS_NAME)
.isLoggable(Level.CONFIG)) {
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.CONFIG,
CLASS_NAME.getName(), "startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_broker_memory__CONFIG",
new Object[] { maxBrokerMemory });
}
}
String[] connectors = service.getNetworkConnectorURIs();
if (connectors != null) {
for (int i = 0; i < connectors.length; i++) {
System.out
.println("ActiveMQ Broker Started With Connector:"
+ connectors[i]);
}
// brokerURI = service.getMasterConnectorURI();
brokerURI = service.getDefaultSocketURIString();
} else {
String connectorList = "";
service.setPersistent(false);
int startPort = BASE_JMX_PORT;
if (System.getProperties().containsKey(
"com.sun.management.jmxremote.port")) {
startPort = Integer.parseInt(System
.getProperty("com.sun.management.jmxremote.port"));
}
while (startPort < MAX_PORT_THRESHOLD && !openPort(startPort)) {
startPort++;
}
if (startPort < (startPort + MAX_PORT_THRESHOLD)) {
service.getManagementContext().setConnectorPort(
startPort);
service.setUseJmx(true);
System.setProperty("com.sun.management.jmxremote.port",
String.valueOf(startPort));
System.out
.println("JMX Console connect URI: service:jmx:rmi:///jndi/rmi://localhost:"
+ startPort + "/jmxrmi");
if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(
Level.CONFIG)) {
UIMAFramework
.getLogger(CLASS_NAME)
.logrb(
Level.CONFIG,
CLASS_NAME.getName(),
"startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_jmx_uri__CONFIG",
new Object[] { "service:jmx:rmi:///jndi/rmi://localhost:"
+ startPort + "/jmxrmi" });
}
}
brokerURI = generateInternalURI("tcp", 18810, true, false);
// Wait until sucessfull adding connector to the broker
// Sleeps for 1sec between retries until success
int timeBetweenRetries = 1000;
boolean tcpConnectorAcquiredValidPort = false;
while (!tcpConnectorAcquiredValidPort) {
try {
tcpConnector = service.addConnector(brokerURI);
tcpConnectorAcquiredValidPort = true;
} catch (Exception e) {
synchronized (this) {
wait(timeBetweenRetries);
}
} // silence InstanceAlreadyExistsException
}
System.out.println("Adding TCP Connector:"
+ tcpConnector.getConnectUri());
if (UIMAFramework.getLogger(CLASS_NAME)
.isLoggable(Level.CONFIG)) {
UIMAFramework.getLogger(CLASS_NAME).logrb(
Level.CONFIG,
CLASS_NAME.getName(),
"startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_adding_connector__CONFIG",
new Object[] { "Adding TCP Connector",
tcpConnector.getConnectUri() });
}
connectorList = tcpConnector.getName();
if (System.getProperty("StompSupport") != null) {
String stompURI = generateInternalURI("stomp", 61613,
false, false);
connector = service.addConnector(stompURI);
System.out.println("Adding STOMP Connector:"
+ connector.getConnectUri());
if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(
Level.CONFIG)) {
UIMAFramework.getLogger(CLASS_NAME).logrb(
Level.CONFIG,
CLASS_NAME.getName(),
"startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_adding_connector__CONFIG",
new Object[] { "Adding STOMP Connector",
connector.getConnectUri() });
}
connectorList += "," + connector.getName();
}
if (System.getProperty("HTTP") != null) {
String stringPort = System.getProperty("HTTP");
int p = Integer.parseInt(stringPort);
String httpURI = generateInternalURI("http", p, false, true);
httpConnector = service.addConnector(httpURI);
System.out.println("Adding HTTP Connector:"
+ httpConnector.getConnectUri());
if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(
Level.CONFIG)) {
UIMAFramework.getLogger(CLASS_NAME).logrb(
Level.CONFIG,
CLASS_NAME.getName(),
"startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_adding_connector__CONFIG",
new Object[] { "Adding HTTP Connector",
httpConnector.getConnectUri() });
}
connectorList += "," + httpConnector.getName();
}
service.start();
System.setProperty("ActiveMQConnectors", connectorList);
System.out.println("Broker Service Started - URL:"
+ service.getVmConnectorURI());
if (UIMAFramework.getLogger(CLASS_NAME)
.isLoggable(Level.CONFIG)) {
UIMAFramework.getLogger(CLASS_NAME).logrb(Level.CONFIG,
CLASS_NAME.getName(), "startInternalBroker",
JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
"UIMAJMS_broker_started__CONFIG",
new Object[] { service.getVmConnectorURI() });
}
}
}
// Allow the connectors some time to start
synchronized (semaphore) {
semaphore.wait(1000);
}
// System.out.println("JMX Server Port:"+service.getManagementContext().getRmiServerPort());
// setConnectorPort(startPort);
}