You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2012/03/27 23:50:49 UTC
svn commit: r1306026 -
/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java
Author: cmueller
Date: Tue Mar 27 21:50:49 2012
New Revision: 1306026
URL: http://svn.apache.org/viewvc?rev=1306026&view=rev
Log:
fixed broken unit test
Modified:
camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java
Modified: camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java?rev=1306026&r1=1306025&r2=1306026&view=diff
==============================================================================
--- camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java (original)
+++ camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationWithConnectorTest.java Tue Mar 27 21:50:49 2012
@@ -16,7 +16,11 @@
*/
package org.apache.camel.management;
-import java.util.Random;
+import java.io.IOException;
+import java.net.DatagramSocket;
+import java.net.ServerSocket;
+import java.util.NoSuchElementException;
+
import javax.management.MBeanServerConnection;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
@@ -50,14 +54,14 @@ public class JmxInstrumentationWithConne
protected void setUp() throws Exception {
sleepForConnection = 3000;
- int port = 30000 + new Random().nextInt(10000);
+ int port = getNextAvailable(9500);
log.info("Using port " + port);
url = "service:jmx:rmi:///jndi/rmi://localhost:" + port + "/jmxrmi/camel";
// need to explicit set it to false to use non-platform mbs
System.setProperty(JmxSystemPropertyKeys.USE_PLATFORM_MBS, "false");
System.setProperty(JmxSystemPropertyKeys.CREATE_CONNECTOR, "true");
- System.setProperty(JmxSystemPropertyKeys.REGISTRY_PORT, "" + port);
+ System.setProperty(JmxSystemPropertyKeys.REGISTRY_PORT, String.valueOf(port));
super.setUp();
}
@@ -84,4 +88,35 @@ public class JmxInstrumentationWithConne
}
return mbsc;
}
+
+ private synchronized int getNextAvailable(int fromPort) {
+ ServerSocket ss = null;
+ DatagramSocket ds = null;
+
+ for (int port = fromPort; port <= 49151; port++) {
+ try {
+ ss = new ServerSocket(port);
+ ss.setReuseAddress(true);
+ ds = new DatagramSocket(port);
+ ds.setReuseAddress(true);
+ return port;
+ } catch (IOException e) {
+ // Do nothing
+ } finally {
+ if (ds != null) {
+ ds.close();
+ }
+
+ if (ss != null) {
+ try {
+ ss.close();
+ } catch (IOException e) {
+ /* should not be thrown */
+ }
+ }
+ }
+ }
+
+ throw new NoSuchElementException("Could not find an available port above " + fromPort);
+ }
}