You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2015/05/26 19:23:27 UTC
activemq git commit: Fix test failure in CI due to fixed port being
in use.
Repository: activemq
Updated Branches:
refs/heads/master 3125caee5 -> 2518ab280
Fix test failure in CI due to fixed port being in use.
Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/2518ab28
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/2518ab28
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/2518ab28
Branch: refs/heads/master
Commit: 2518ab280260881eebcf5c5273e3d14d829f3caa
Parents: 3125cae
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue May 26 13:23:19 2015 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue May 26 13:23:19 2015 -0400
----------------------------------------------------------------------
.../org/apache/activemq/proxy/AMQ4889Test.java | 80 +++++++++++++-------
1 file changed, 54 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/activemq/blob/2518ab28/activemq-unit-tests/src/test/java/org/apache/activemq/proxy/AMQ4889Test.java
----------------------------------------------------------------------
diff --git a/activemq-unit-tests/src/test/java/org/apache/activemq/proxy/AMQ4889Test.java b/activemq-unit-tests/src/test/java/org/apache/activemq/proxy/AMQ4889Test.java
index 8ee85e0..0b3d7ab 100644
--- a/activemq-unit-tests/src/test/java/org/apache/activemq/proxy/AMQ4889Test.java
+++ b/activemq-unit-tests/src/test/java/org/apache/activemq/proxy/AMQ4889Test.java
@@ -18,10 +18,24 @@
package org.apache.activemq.proxy;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSSecurityException;
+import javax.jms.Session;
+import javax.net.ServerSocketFactory;
+
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.BrokerPlugin;
import org.apache.activemq.broker.BrokerService;
-import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.security.AuthenticationUser;
import org.apache.activemq.security.SimpleAuthenticationPlugin;
import org.apache.activemq.util.Wait;
@@ -31,34 +45,29 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.JMSSecurityException;
-import javax.jms.Session;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
public class AMQ4889Test {
+
protected static final Logger LOG = LoggerFactory.getLogger(AMQ4889Test.class);
public static final String USER = "user";
public static final String GOOD_USER_PASSWORD = "password";
public static final String WRONG_PASSWORD = "wrongPassword";
- public static final String PROXY_URI = "tcp://localhost:6002";
- public static final String LOCAL_URI = "tcp://localhost:6001";
+ public static final String PROXY_URI_PREFIX = "tcp://localhost:";
+ public static final String LOCAL_URI_PREFIX = "tcp://localhost:";
- protected BrokerService brokerService;
+ private String proxyURI;
+ private String localURI;
+
+ private BrokerService brokerService;
private ProxyConnector proxyConnector;
- protected TransportConnector transportConnector;
- protected ConnectionFactory connectionFactory;
+ private ConnectionFactory connectionFactory;
private static final Integer ITERATIONS = 100;
protected BrokerService createBroker() throws Exception {
+ proxyURI = PROXY_URI_PREFIX + findOpenPort();
+ localURI = LOCAL_URI_PREFIX + findOpenPort();
+
brokerService = new BrokerService();
brokerService.setPersistent(false);
@@ -68,11 +77,11 @@ public class AMQ4889Test {
BrokerPlugin[] array = new BrokerPlugin[plugins.size()];
brokerService.setPlugins(plugins.toArray(array));
- transportConnector = brokerService.addConnector(LOCAL_URI);
+ brokerService.addConnector(localURI);
proxyConnector = new ProxyConnector();
proxyConnector.setName("proxy");
- proxyConnector.setBind(new URI(PROXY_URI));
- proxyConnector.setRemote(new URI(LOCAL_URI));
+ proxyConnector.setBind(new URI(proxyURI));
+ proxyConnector.setRemote(new URI(localURI));
brokerService.addProxyConnector(proxyConnector);
brokerService.start();
@@ -92,7 +101,7 @@ public class AMQ4889Test {
@Before
public void setUp() throws Exception {
brokerService = createBroker();
- connectionFactory = new ActiveMQConnectionFactory(PROXY_URI);
+ connectionFactory = new ActiveMQConnectionFactory(proxyURI);
}
@After
@@ -101,8 +110,7 @@ public class AMQ4889Test {
brokerService.waitUntilStopped();
}
-
- @Test(timeout = 1 * 60 * 1000)
+ @Test(timeout = 60000)
public void testForConnectionLeak() throws Exception {
Integer expectedConnectionCount = 0;
for (int i=0; i < ITERATIONS; i++) {
@@ -110,15 +118,14 @@ public class AMQ4889Test {
if (i % 2 == 0) {
LOG.debug("Iteration {} adding bad connection", i);
Connection connection = connectionFactory.createConnection(USER, WRONG_PASSWORD);
- Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
fail("createSession should fail");
} else {
LOG.debug("Iteration {} adding good connection", i);
Connection connection = connectionFactory.createConnection(USER, GOOD_USER_PASSWORD);
- Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
expectedConnectionCount++;
}
- //
} catch (JMSSecurityException e) {
}
LOG.debug("Iteration {} Connections? {}", i, proxyConnector.getConnectionCount());
@@ -132,4 +139,25 @@ public class AMQ4889Test {
}, 20);
assertEquals(val, proxyConnector.getConnectionCount());
}
+
+ protected int findOpenPort() throws IOException {
+ int openPort = 0;
+ ServerSocket ss = null;
+ try {
+ ss = ServerSocketFactory.getDefault().createServerSocket(0);
+ openPort = ss.getLocalPort();
+ } catch (IOException e) {
+ LOG.error("Could not locate an open port: ", e);
+ throw e;
+ } finally {
+ try {
+ if (ss != null ) {
+ ss.close();
+ }
+ } catch (IOException e) { // ignore
+ }
+ }
+
+ return openPort;
+ }
}