You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2011/10/13 23:24:25 UTC

svn commit: r1183114 - /openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java

Author: rmannibucau
Date: Thu Oct 13 21:24:24 2011
New Revision: 1183114

URL: http://svn.apache.org/viewvc?rev=1183114&view=rev
Log:
allowing to use random port in tomee embedded

Modified:
    openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java

Modified: openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java?rev=1183114&r1=1183113&r2=1183114&view=diff
==============================================================================
--- openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java (original)
+++ openejb/trunk/arquillian-tomee/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java Thu Oct 13 21:24:24 2011
@@ -21,6 +21,7 @@ import org.apache.openejb.arquillian.com
 import org.apache.openejb.arquillian.common.TomEEConfiguration;
 import org.apache.openejb.arquillian.common.TomEEContainer;
 import org.apache.openejb.core.ivm.naming.ContextWrapper;
+import org.apache.openejb.util.NetworkUtil;
 import org.apache.tomee.embedded.Configuration;
 import org.apache.tomee.embedded.Container;
 import org.jboss.arquillian.container.spi.client.container.DeploymentException;
@@ -35,19 +36,15 @@ import org.jboss.arquillian.core.api.ann
 import org.jboss.shrinkwrap.api.Archive;
 import org.jboss.shrinkwrap.api.exporter.ZipExporter;
 
-import javax.naming.Binding;
-import javax.naming.CompositeName;
 import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NameClassPair;
-import javax.naming.NameParser;
-import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import java.io.File;
-import java.util.Hashtable;
 
 public class EmbeddedTomEEContainer extends TomEEContainer {
 
+    public static final String TOMEE_ARQUILLIAN_HTTP_PORT = "tomee.arquillian.http";
+    public static final String TOMEE_ARQUILLIAN_STOP_PORT = "tomee.arquillian.stop";
+
     @Inject @ContainerScoped private InstanceProducer<Context> jndiContext;
 
     private Container container;
@@ -72,13 +69,22 @@ public class EmbeddedTomEEContainer exte
     private Configuration convertConfiguration(TomEEConfiguration tomeeConfiguration) {
     	Configuration configuration = new Configuration();
     	configuration.setDir(tomeeConfiguration.getDir());
-    	configuration.setHttpPort(tomeeConfiguration.getHttpPort());
-    	configuration.setStopPort(tomeeConfiguration.getStopPort());
+    	configuration.setHttpPort(getPortAndShare(TOMEE_ARQUILLIAN_HTTP_PORT, tomeeConfiguration.getHttpPort()));
+    	configuration.setStopPort(getPortAndShare(TOMEE_ARQUILLIAN_STOP_PORT, tomeeConfiguration.getStopPort()));
     	
 		return configuration;
 	}
 
-	public void start() throws LifecycleException {
+    private int getPortAndShare(String systemPropName, int value) {
+        int port = value;
+        if (port <= 0) {
+            port = NetworkUtil.getNextAvailablePort();
+        }
+        System.setProperty(systemPropName, Integer.toString(port));
+        return port;
+    }
+
+    public void start() throws LifecycleException {
         try {
             container.start();
         } catch (Exception e) {