You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2011/02/23 16:31:28 UTC
svn commit: r1073786 -
/uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java
Author: cwiklik
Date: Wed Feb 23 15:31:28 2011
New Revision: 1073786
URL: http://svn.apache.org/viewvc?rev=1073786&view=rev
Log:
UIMA-2069 Remove hard coded broker URLs. Auto detects open ports.
Modified:
uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java
Modified: uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java?rev=1073786&r1=1073785&r2=1073786&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java (original)
+++ uima/uima-as/trunk/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/ActiveMQSupport.java Wed Feb 23 15:31:28 2011
@@ -47,7 +47,16 @@ import org.apache.uima.util.Level;
public class ActiveMQSupport extends TestCase {
private static final Class CLASS_NAME = ActiveMQSupport.class;
+ protected static final String DEFAULT_BROKER_URL_KEY="DefaultBrokerURL";
+ protected static final String DEFAULT_BROKER_URL_KEY_2="DefaultBrokerURL2";
+ protected static final String DEFAULT_HTTP_BROKER_URL_KEY="DefaultHttpBrokerURL";
+ protected static final String DEFAULT_HTTP_BROKER_URL_KEY_2="DefaultHttpBrokerURL2";
+ protected static final int DEFAULT_BROKER_PORT=61617;
+ protected static final int DEFAULT_BROKER_PORT_2=61620;
+ protected static final int DEFAULT_HTTP_PORT = 18888;
+ protected static final int DEFAULT_HTTP_PORT2 = 18890;
+
protected static BrokerService broker;
protected String uri = null;
@@ -75,7 +84,15 @@ public class ActiveMQSupport extends Tes
broker = createBroker();
broker.start();
broker.setMasterConnectorURI(uri);
- addHttpConnector(8888);
+ addHttpConnector(DEFAULT_HTTP_PORT);
+ if ( System.getProperty(DEFAULT_BROKER_URL_KEY) != null) {
+ System.clearProperty(DEFAULT_BROKER_URL_KEY);
+ }
+ System.setProperty(DEFAULT_BROKER_URL_KEY, broker.getMasterConnectorURI());
+ if ( System.getProperty(DEFAULT_HTTP_BROKER_URL_KEY) != null) {
+ System.clearProperty(DEFAULT_HTTP_BROKER_URL_KEY);
+ }
+ System.setProperty(DEFAULT_HTTP_BROKER_URL_KEY, httpConnector.getConnectUri().toString());
}
protected void cleanBroker( BrokerService targetBroker) throws Exception {
// Remove messages from all queues
@@ -145,7 +162,27 @@ public class ActiveMQSupport extends Tes
httpConnector.stop();
broker.removeConnector(httpConnector);
}
+ protected int findOpenPort(int startWithPort) {
+ boolean success = false;
+ ServerSocket ssocket = null;
+ while (!success) {
+ try {
+ ssocket = new ServerSocket(startWithPort);
+ success = true;
+ } catch (Exception e) {
+ startWithPort++;
+ } finally {
+ try {
+ if (ssocket != null) {
+ ssocket.close();
+ }
+ } catch (IOException ioe) {
+ }
+ }
+ }
+ return startWithPort;
+ }
private String generateInternalURI(String aProtocol, int aDefaultPort) throws Exception {
boolean success = false;
int openPort = aDefaultPort;
@@ -154,19 +191,11 @@ public class ActiveMQSupport extends Tes
while (!success) {
try {
ssocket = new ServerSocket(openPort);
- // String uri = aProtocol + "://" +
- // ssocket.getInetAddress().getLocalHost().getCanonicalHostName()
- // + ":" + openPort;
String uri = aProtocol + "://localhost:" + openPort;
success = true;
return uri;
} catch (Exception e) {
- if (UIMAFramework.getLogger(CLASS_NAME).isLoggable(Level.WARNING)) {
- UIMAFramework.getLogger(CLASS_NAME).logrb(Level.WARNING, CLASS_NAME.getName(),
- "generateInternalURI", JmsConstants.JMS_LOG_RESOURCE_BUNDLE,
- "UIMAJMS_exception__WARNING", e);
- }
- throw e;
+ openPort++;
} finally {
try {
if (ssocket != null) {
@@ -193,24 +222,23 @@ public class ActiveMQSupport extends Tes
}
public BrokerService createBroker() throws Exception {
- return createBroker(8118, true, false);
+ return createBroker(findOpenPort(DEFAULT_BROKER_PORT), true, false);
}
protected BrokerService createBroker(int port, boolean useJmx, boolean secondaryBroker) throws Exception {
- ServerSocket ssocket = null;
System.out.println(">>>> Starting Broker On Port:" + port);
- try {
- ssocket = new ServerSocket();
- String hostName = "localhost"; //ssocket.getInetAddress().getLocalHost().getCanonicalHostName();
+ String hostName = "localhost";
uri = "tcp://" + hostName + ":" + port;
BrokerService broker = BrokerFactory.createBroker(new URI("broker:()/" + hostName
+ "?persistent=false"));
+ tcpConnector = broker.addConnector(uri);
if ( secondaryBroker ) {
broker.getManagementContext().setJmxDomainName(broker.getManagementContext().getJmxDomainName()+".test");
+ tcpConnector.setName(DEFAULT_BROKER_URL_KEY_2);
+ } else {
+ tcpConnector.setName(DEFAULT_BROKER_URL_KEY);
}
broker.setUseJmx(useJmx);
- tcpConnector = broker.addConnector(uri);
-
PolicyEntry policy = new PolicyEntry();
policy.setDeadLetterStrategy(new SharedDeadLetterStrategy());
@@ -230,12 +258,16 @@ public class ActiveMQSupport extends Tes
}
return broker;
- } finally {
- if (ssocket != null)
- ssocket.close();
+ }
+ protected BrokerService setupSecondaryBroker(boolean addProperty) throws Exception {
+ System.setProperty("activemq.broker.jmx.domain","org.apache.activemq.test");
+ BrokerService broker2 = createBroker(findOpenPort(DEFAULT_BROKER_PORT_2), true, true);
+ broker2.start();
+ if ( addProperty ) {
+ System.setProperty("BrokerURL", broker2.getConnectorByName(DEFAULT_BROKER_URL_KEY_2).getUri().toString());
}
+ return broker2;
}
-
protected void stopBroker() throws Exception {
if (broker != null) {
System.out.println(">>> Stopping Broker");