You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by an...@apache.org on 2014/07/17 11:22:45 UTC

svn commit: r1611306 - in /tomee/tomee/trunk/server: openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/ openejb-cxf/src/test/java/org/apache/openejb/server/cx...

Author: andygumbrecht
Date: Thu Jul 17 09:22:44 2014
New Revision: 1611306

URL: http://svn.apache.org/r1611306
Log:
Give ServiceDaemon another chance.
Test on random ports.

Modified:
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/AdvancedProviderConfigTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiConstructorInjectionTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProvidersShouldBeScannedTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsCDIInterceptorTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInterceptorInjectionTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsWithInterfaceTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingWithNoAppPathTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithMappingTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimplePojoTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
    tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/WebXmlSpecApplicationTest.java
    tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfContainerClassLoader.java
    tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CdiHandlersTest.java
    tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiByConfigTest.java
    tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiTest.java
    tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianInitialContextTest.java
    tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianServiceTest.java
    tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/FilterRegistrationTest.java
    tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/ServletRegistrationTest.java
    tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/AdvancedProviderConfigTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/AdvancedProviderConfigTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/AdvancedProviderConfigTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/AdvancedProviderConfigTest.java Thu Jul 17 09:22:44 2014
@@ -38,7 +38,6 @@ import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
-import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.Providers;
 import javax.xml.bind.ValidationEvent;
 import javax.xml.bind.ValidationEventHandler;

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CDIApplicationTest.java Thu Jul 17 09:22:44 2014
@@ -21,14 +21,19 @@ import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.server.cxf.rs.beans.MyFirstRestClass;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.inject.Inject;
 import javax.ws.rs.core.Application;
 import java.util.HashSet;
+import java.util.Properties;
 import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
@@ -37,6 +42,19 @@ import static org.junit.Assert.assertTru
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class CDIApplicationTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes(cdi = true, value = {MyCdiRESTApplication.class, MyFirstRestClass.class, ACdiBeanInjectedInApp.class})
     public WebApp war() {
@@ -49,7 +67,7 @@ public class CDIApplicationTest {
     @Test
     public void isCdi() {
         assertTrue(MyCdiRESTApplication.injection);
-        assertEquals("Hi from REST World!", WebClient.create("http://localhost:4204/foo/").path("/first/hi").get(String.class));
+        assertEquals("Hi from REST World!", WebClient.create("http://localhost:" + port + "/foo/").path("/first/hi").get(String.class));
     }
 
     public static class ACdiBeanInjectedInApp {

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiConstructorInjectionTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiConstructorInjectionTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiConstructorInjectionTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/CdiConstructorInjectionTest.java Thu Jul 17 09:22:44 2014
@@ -16,10 +16,18 @@
  */
 package org.apache.openejb.server.cxf.rs;
 
-import static org.junit.Assert.assertEquals;
-
-import java.util.HashSet;
-import java.util.Set;
+import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.jee.WebApp;
+import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
+import org.apache.openejb.testing.EnableServices;
+import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
@@ -28,19 +36,28 @@ import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
 import javax.ws.rs.core.Context;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
 
-import org.apache.cxf.jaxrs.client.WebClient;
-import org.apache.openejb.jee.WebApp;
-import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.testing.Classes;
-import org.apache.openejb.testing.EnableServices;
-import org.apache.openejb.testing.Module;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class CdiConstructorInjectionTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes(value = {FullCDI.class, Service.class, CDIAndContext.class}, cdi = true)
     public WebApp war() {
@@ -52,12 +69,12 @@ public class CdiConstructorInjectionTest
 
     @Test
     public void standardCDI() {
-        assertEquals("service", WebClient.create("http://localhost:4204/app").path("/foo").get(String.class));
+        assertEquals("service", WebClient.create("http://localhost:" + port + "/app").path("/foo").get(String.class));
     }
 
     @Test
     public void cdiAndContext() {
-        assertEquals("GET", WebClient.create("http://localhost:4204/app").path("/bar").get(String.class));
+        assertEquals("GET", WebClient.create("http://localhost:" + port + "/app").path("/bar").get(String.class));
     }
 
     public static class Service {

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProviderWithConstructorTest.java Thu Jul 17 09:22:44 2014
@@ -17,11 +17,16 @@
 package org.apache.openejb.server.cxf.rs;
 
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -40,6 +45,7 @@ import java.io.OutputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.HashSet;
+import java.util.Properties;
 import java.util.Set;
 
 import static org.junit.Assert.assertEquals;
@@ -47,6 +53,22 @@ import static org.junit.Assert.assertEqu
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class ProviderWithConstructorTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
     @Module
     @Classes(value = {AnEndpointToCheckAProvider.class})
     public WebApp war() {
@@ -58,7 +80,7 @@ public class ProviderWithConstructorTest
 
     @Test
     public void checkServiceWasDeployed() {
-        assertEquals("/app", WebClient.create("http://localhost:4204/app").path("/foo").accept("openejb/constructor").get(String.class));
+        assertEquals("/app", WebClient.create("http://localhost:" + port + "/app").path("/foo").accept("openejb/constructor").get(String.class));
     }
 
     @Path("/foo")

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProvidersShouldBeScannedTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProvidersShouldBeScannedTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProvidersShouldBeScannedTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/ProvidersShouldBeScannedTest.java Thu Jul 17 09:22:44 2014
@@ -20,8 +20,12 @@ import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -32,12 +36,28 @@ import javax.ws.rs.ext.ExceptionMapper;
 import javax.ws.rs.ext.Provider;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class ProvidersShouldBeScannedTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .build();
+    }
+
     @Module
     @Classes({NeedAProvider.class, DontLetResourcesFail.class})
     public static WebApp service() throws Exception {
@@ -46,7 +66,7 @@ public class ProvidersShouldBeScannedTes
 
     @Test
     public void check() throws Exception {
-        final HttpURLConnection conn = HttpURLConnection.class.cast(new URL("http://127.0.0.1:4204/app/need-provider").openConnection());
+        final HttpURLConnection conn = HttpURLConnection.class.cast(new URL("http://127.0.0.1:" + port + "/app/need-provider").openConnection());
         assertEquals("ok", IO.slurp(conn.getInputStream()));
         conn.getInputStream().close();
     }

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsCDIInterceptorTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsCDIInterceptorTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsCDIInterceptorTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsCDIInterceptorTest.java Thu Jul 17 09:22:44 2014
@@ -16,12 +16,17 @@
  */
 package org.apache.openejb.server.cxf.rs;
 
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -38,12 +43,29 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.net.URL;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class RsCDIInterceptorTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
     @Module
     @Classes(cdi = true, value = {InterceptedEJBRs.class, InterceptedRs.class}, cdiInterceptors = MockingInterceptor.class)
     public WebApp war() {
@@ -53,13 +75,13 @@ public class RsCDIInterceptorTest {
 
     @Test
     public void ejb() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/foo/session-bean/check-ejb"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/foo/session-bean/check-ejb"));
         assertEquals("mock", response);
     }
 
     @Test
     public void pojo() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/foo/pojo/check-pojo"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/foo/pojo/check-pojo"));
         assertEquals("mock", response);
     }
 

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInjectionTest.java Thu Jul 17 09:22:44 2014
@@ -23,6 +23,9 @@ import org.apache.openejb.junit.Applicat
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -41,6 +44,22 @@ import static org.junit.Assert.assertEqu
 
 @RunWith(ApplicationComposer.class)
 public class RsInjectionTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
     @Module
     public static SingletonBean service() throws Exception {
         final SingletonBean bean = new SingletonBean(RsInjection.class);
@@ -48,16 +67,9 @@ public class RsInjectionTest {
         return bean;
     }
 
-    @Configuration
-    public static Properties configuration() throws Exception {
-        final Properties properties = new Properties();
-        properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
-        return properties;
-    }
-
     @Test
     public void rest() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/RsInjectionTest/injections/check"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/RsInjectionTest/injections/check"));
         assertEquals("true", response);
     }
 

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInterceptorInjectionTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInterceptorInjectionTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInterceptorInjectionTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsInterceptorInjectionTest.java Thu Jul 17 09:22:44 2014
@@ -23,7 +23,10 @@ import org.apache.openejb.junit.Applicat
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
 import org.junit.Assert;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -52,6 +55,21 @@ import static org.junit.Assert.assertEqu
 @RunWith(ApplicationComposer.class)
 public class RsInterceptorInjectionTest {
 
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
     @Module
     public static SingletonBean service() throws Exception {
         final SingletonBean bean = new SingletonBean(RsInjection.class);
@@ -59,16 +77,9 @@ public class RsInterceptorInjectionTest 
         return bean;
     }
 
-    @Configuration
-    public static Properties configuration() throws Exception {
-        final Properties properties = new Properties();
-        properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
-        return properties;
-    }
-
     @Test
     public void rest() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/RsInterceptorInjectionTest/injections/check"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/RsInterceptorInjectionTest/injections/check"));
         assertEquals("true", response);
     }
 

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsJMXTest.java Thu Jul 17 09:22:44 2014
@@ -20,8 +20,11 @@ import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.monitoring.LocalMBeanServer;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
 import org.hamcrest.CoreMatchers;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -32,6 +35,7 @@ import javax.management.MalformedObjectN
 import javax.management.ObjectName;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
+import java.util.Properties;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
@@ -41,6 +45,19 @@ import static org.junit.Assert.assertTru
 @RunWith(ApplicationComposer.class)
 public class RsJMXTest {
     private static ObjectName name;
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .build();
+    }
 
     @Module
     @Classes(AnEndpoint.class)
@@ -50,7 +67,7 @@ public class RsJMXTest {
 
     @BeforeClass
     public static void before() throws MalformedObjectNameException {
-        name = new ObjectName("openejb.management:j2eeType=JAX-RS,J2EEServer=openejb,J2EEApplication=http_//127.0.0.1_4204/app,EndpointType=Pojo,name=org.apache.openejb.server.cxf.rs.RsJMXTest$AnEndpoint");
+        name = new ObjectName("openejb.management:j2eeType=JAX-RS,J2EEServer=openejb,J2EEApplication=http_//127.0.0.1_" + port + "/app,EndpointType=Pojo,name=org.apache.openejb.server.cxf.rs.RsJMXTest$AnEndpoint");
     }
 
     @Test
@@ -58,7 +75,7 @@ public class RsJMXTest {
         assertTrue(LocalMBeanServer.get().isRegistered(name));
 
         final String wadlXml = String.class.cast(LocalMBeanServer.get().invoke(name, "getWadl", new Object[]{null}, new String[0]));
-        assertThat(wadlXml, wadlXml, CoreMatchers.containsString("<resources base=\"http://127.0.0.1:4204/app/"));
+        assertThat(wadlXml, wadlXml, CoreMatchers.containsString("<resources base=\"http://127.0.0.1:" + port + "/app/"));
 
         /* need a fix from cxf which will be shipped soon so deactivating it ATM
         final String wadlJson = String.class.cast(LocalMBeanServer.get().invoke(name, "getWadl", new Object[]{"json"}, new String[0]));

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsWithInterfaceTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsWithInterfaceTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsWithInterfaceTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/RsWithInterfaceTest.java Thu Jul 17 09:22:44 2014
@@ -21,6 +21,9 @@ import org.apache.openejb.junit.Applicat
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -41,21 +44,30 @@ import static org.junit.Assert.assertEqu
 
 @RunWith(ApplicationComposer.class)
 public class RsWithInterfaceTest {
-    @Module
-    public static Class<?>[] service() throws Exception {
-        return new Class<?>[]{RsImpl.class, App.class};
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
     }
 
     @Configuration
-    public static Properties configuration() throws Exception {
-        final Properties properties = new Properties();
-        properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
-        return properties;
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
+    @Module
+    public static Class<?>[] service() throws Exception {
+        return new Class<?>[]{RsImpl.class, App.class};
     }
 
     @Test
     public void rest() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/RsWithInterfaceTest/itf/check"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/RsWithInterfaceTest/itf/check"));
         assertEquals("true", response);
     }
 

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationTest.java Thu Jul 17 09:22:44 2014
@@ -18,19 +18,35 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.server.cxf.rs.beans.*;
+import org.apache.openejb.server.cxf.rs.beans.HookedRest;
+import org.apache.openejb.server.cxf.rs.beans.MyExpertRestClass;
+import org.apache.openejb.server.cxf.rs.beans.MyFirstRestClass;
+import org.apache.openejb.server.cxf.rs.beans.MyRESTApplication;
+import org.apache.openejb.server.cxf.rs.beans.MySecondRestClass;
+import org.apache.openejb.server.cxf.rs.beans.RestWithInjections;
+import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.ws.rs.core.Application;
 import javax.ws.rs.core.Response;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringWriter;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -38,7 +54,23 @@ import static org.junit.Assert.assertTru
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class SimpleApplicationTest {
-    public static final String BASE_URL = "http://localhost:4204/foo/my-app";
+
+    private static int port = -1;
+    public static String BASE_URL = "undefined";
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+        BASE_URL = "http://localhost:" + port + "/foo/my-app/";
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
 
     @Module
     @Classes(cdi = true, value = {MySecondRestClass.class, HookedRest.class, RestWithInjections.class, SimpleEJB.class, MyExpertRestClass.class, MyFirstRestClass.class})

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingTest.java Thu Jul 17 09:22:44 2014
@@ -18,6 +18,7 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.server.cxf.rs.beans.HookedRest;
@@ -28,19 +29,40 @@ import org.apache.openejb.server.cxf.rs.
 import org.apache.openejb.server.cxf.rs.beans.RestWithInjections;
 import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.ws.rs.core.Application;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class SimpleApplicationWithLongMappingTest {
-    public static final String BASE_URL = "http://localhost:4204/foo/mapping/part2/my-app/";
+
+    private static int port = -1;
+    public static String BASE_URL = "undefined";
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+        BASE_URL = "http://localhost:" + port + "/foo/mapping/part2/my-app/";
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
 
     @Module
     @Classes(cdi = true, value = {MySecondRestClass.class, HookedRest.class, RestWithInjections.class, SimpleEJB.class, MyExpertRestClass.class, MyFirstRestClass.class})

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingWithNoAppPathTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingWithNoAppPathTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingWithNoAppPathTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithLongMappingWithNoAppPathTest.java Thu Jul 17 09:22:44 2014
@@ -18,6 +18,7 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.server.cxf.rs.beans.HookedRest;
@@ -28,19 +29,40 @@ import org.apache.openejb.server.cxf.rs.
 import org.apache.openejb.server.cxf.rs.beans.RestWithInjections;
 import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.ws.rs.core.Application;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class SimpleApplicationWithLongMappingWithNoAppPathTest {
-    public static final String BASE_URL = "http://localhost:4204/foo/mapping/part2/";
+
+    private static int port = -1;
+    public static String BASE_URL = "undefined";
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+        BASE_URL = "http://localhost:" + port + "/foo/mapping/part2/";
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
 
     @Module
     @Classes(cdi = true, value = {MySecondRestClass.class, HookedRest.class, RestWithInjections.class, SimpleEJB.class, MyExpertRestClass.class, MyFirstRestClass.class})

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithMappingTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithMappingTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithMappingTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimpleApplicationWithMappingTest.java Thu Jul 17 09:22:44 2014
@@ -18,6 +18,7 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.jaxrs.client.ServerWebApplicationException;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.openejb.OpenEjbContainer;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.server.cxf.rs.beans.HookedRest;
@@ -28,19 +29,40 @@ import org.apache.openejb.server.cxf.rs.
 import org.apache.openejb.server.cxf.rs.beans.RestWithInjections;
 import org.apache.openejb.server.cxf.rs.beans.SimpleEJB;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.ws.rs.core.Application;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class SimpleApplicationWithMappingTest {
-    public static final String BASE_URL = "http://localhost:4204/foo/mapping/my-app/";
+
+    private static int port = -1;
+    public static String BASE_URL = "undefined";
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+        BASE_URL = "http://localhost:" + port + "/foo/mapping/my-app/";
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
 
     @Module
     @Classes(cdi = true, value = {MySecondRestClass.class, HookedRest.class, RestWithInjections.class, SimpleEJB.class, MyExpertRestClass.class, MyFirstRestClass.class})

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimplePojoTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimplePojoTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimplePojoTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SimplePojoTest.java Thu Jul 17 09:22:44 2014
@@ -22,12 +22,15 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.config.WebModule;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.server.cxf.rs.beans.MyFirstRestClass;
 import org.apache.openejb.testing.Classes;
 import org.apache.openejb.testing.Component;
-import org.apache.openejb.server.cxf.rs.beans.MyFirstRestClass;
 import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
 import org.apache.openejb.web.LightweightWebAppBuilder;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -37,16 +40,25 @@ import static org.junit.Assert.assertEqu
 
 @RunWith(ApplicationComposer.class)
 public class SimplePojoTest {
-    @Component
-    public WebAppBuilder webAppBuilder() {
-        return new LightweightWebAppBuilder();
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
     }
 
     @Configuration
-    public Properties configuration() {
-        final Properties properties = new Properties();
-        properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
-        return properties;
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
+    @Component
+    public WebAppBuilder webAppBuilder() {
+        return new LightweightWebAppBuilder();
     }
 
     @Module
@@ -59,6 +71,6 @@ public class SimplePojoTest {
 
     @Test
     public void checkServiceWasDeployed() {
-        assertEquals("Hi from REST World!", WebClient.create("http://localhost:4204/foo").path("/first/hi").get(String.class));
+        assertEquals("Hi from REST World!", WebClient.create("http://localhost:" + port + "/foo").path("/first/hi").get(String.class));
     }
 }

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/SubResourceTest.java Thu Jul 17 09:22:44 2014
@@ -22,6 +22,9 @@ import org.apache.openejb.junit.Applicat
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -36,21 +39,30 @@ import static org.junit.Assert.assertEqu
 
 @RunWith(ApplicationComposer.class)
 public class SubResourceTest {
-    @Module
-    public SingletonBean bean() {
-        return (SingletonBean) new SingletonBean(Endpoint1.class).localBean();
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
     }
 
     @Configuration
-    public static Properties configuration() throws Exception {
-        final Properties properties = new Properties();
-        properties.setProperty(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true");
-        return properties;
+    public Properties props() {
+        return new PropertiesBuilder()
+            .p("httpejbd.port", Integer.toString(port))
+            .p(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE, "true")
+            .build();
+    }
+
+    @Module
+    public SingletonBean bean() {
+        return (SingletonBean) new SingletonBean(Endpoint1.class).localBean();
     }
 
     @Test
     public void rest() throws IOException {
-        final String response = IO.slurp(new URL("http://127.0.0.1:4204/SubResourceTest/sub1/sub2/value"));
+        final String response = IO.slurp(new URL("http://127.0.0.1:" + port + "/SubResourceTest/sub1/sub2/value"));
         assertEquals("2", response);
     }
 

Modified: tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/WebXmlSpecApplicationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/WebXmlSpecApplicationTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/WebXmlSpecApplicationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-rs/src/test/java/org/apache/openejb/server/cxf/rs/WebXmlSpecApplicationTest.java Thu Jul 17 09:22:44 2014
@@ -19,26 +19,39 @@ package org.apache.openejb.server.cxf.rs
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.server.cxf.rs.beans.MyFirstRestClass;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import javax.inject.Inject;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.core.Application;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 
 @EnableServices("jax-rs")
 @RunWith(ApplicationComposer.class)
 public class WebXmlSpecApplicationTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes(Resource.class)
     public WebApp war() {
@@ -49,7 +62,7 @@ public class WebXmlSpecApplicationTest {
 
     @Test
     public void checkItIsDeployed() {
-        assertEquals("r", WebClient.create("http://localhost:4204/foo/").path("/resources/r").get(String.class));
+        assertEquals("r", WebClient.create("http://localhost:" + port + "/foo/").path("/resources/r").get(String.class));
     }
 
     @Path("r")

Modified: tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfContainerClassLoader.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfContainerClassLoader.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfContainerClassLoader.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/util/CxfContainerClassLoader.java Thu Jul 17 09:22:44 2014
@@ -63,7 +63,7 @@ public class CxfContainerClassLoader ext
     @Override
     protected Class<?> findClass(final String name) throws ClassNotFoundException {
         if (name.startsWith(CXF_PACKAGE)) {
-            Throwable th;
+            Throwable th = new ClassNotFoundException(name);
             try {
                 return CONTAINER_LOADER.loadClass(name);
             } catch (final Exception e) {

Modified: tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CdiHandlersTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CdiHandlersTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CdiHandlersTest.java (original)
+++ tomee/tomee/trunk/server/openejb-cxf/src/test/java/org/apache/openejb/server/cxf/CdiHandlersTest.java Thu Jul 17 09:22:44 2014
@@ -16,28 +16,45 @@
  */
 package org.apache.openejb.server.cxf;
 
-import static org.junit.Assert.assertTrue;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.jws.HandlerChain;
-import javax.jws.WebService;
-import javax.xml.namespace.QName;
-import javax.xml.ws.Service;
-
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.server.cxf.handler.SimpleHandler;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import javax.jws.HandlerChain;
+import javax.jws.WebService;
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.Properties;
+
+import static org.junit.Assert.assertTrue;
+
 @EnableServices("jax-ws")
 @RunWith(ApplicationComposer.class)
 public class CdiHandlersTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes(value = {MyHandledWebservice.class, ACdiSimpleTaste.class, SimpleHandler.class}, cdi = true)
     public WebApp module() {
@@ -47,7 +64,7 @@ public class CdiHandlersTest {
     @Test
     public void checkHandlersAreCDIBeans() throws MalformedURLException {
         SimpleHandler.reset();
-        Service.create(new URL("http://localhost:4204/test/ws?wsdl"),
+        Service.create(new URL("http://localhost:" + port + "/test/ws?wsdl"),
             new QName("http://cxf.server.openejb.apache.org/", "MyHandledWebserviceService"))
             .getPort(MyHandledWsApi.class).test();
         assertTrue(SimpleHandler.close);

Modified: tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiByConfigTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiByConfigTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiByConfigTest.java (original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiByConfigTest.java Thu Jul 17 09:22:44 2014
@@ -25,6 +25,8 @@ import org.apache.openejb.testing.Config
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
 import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -39,6 +41,14 @@ import static org.junit.Assert.assertTha
 @EnableServices({"hessian", "httpejbd"})
 @RunWith(ApplicationComposer.class)
 public class HessianCdiByConfigTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
     @Module
     @Classes(cdi = true, value = MyCdiHessianService.class)
     public WebApp webApp() {
@@ -47,7 +57,8 @@ public class HessianCdiByConfigTest {
 
     @Configuration
     public Properties config() {
-        return new PropertiesBuilder().p("openejb.hessian." + MyCdiHessianService.class.getName() + "_" + CdiService.class.getName() + ".path", "foo").build();
+        return new PropertiesBuilder().p("openejb.hessian." + MyCdiHessianService.class.getName() + "_" + CdiService.class.getName() + ".path", "foo")
+            .p("httpejbd.port", Integer.toString(port)).build();
     }
 
     @Test
@@ -57,7 +68,7 @@ public class HessianCdiByConfigTest {
         final SerializerFactory factory = new SerializerFactory(loader);
         factory.setAllowNonSerializable(true);
         clientFactory.setSerializerFactory(factory);
-        final CdiService client = CdiService.class.cast(clientFactory.create(CdiService.class, "http://127.0.0.1:4204/web/hessian/foo"));
+        final CdiService client = CdiService.class.cast(clientFactory.create(CdiService.class, "http://127.0.0.1:" + port + "/web/hessian/foo"));
 
         final Out out = client.call(new In("test"));
         assertThat(out, instanceOf(Out.class));

Modified: tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiTest.java (original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianCdiTest.java Thu Jul 17 09:22:44 2014
@@ -22,15 +22,19 @@ import org.apache.openejb.cdi.api.Hessia
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
-import java.beans.Beans;
 import java.net.MalformedURLException;
+import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertEquals;
@@ -40,6 +44,19 @@ import static org.junit.Assert.assertTha
 @EnableServices({"hessian", "httpejbd"})
 @RunWith(ApplicationComposer.class)
 public class HessianCdiTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes(cdi = true, value = {MyCdiHessianService.class, CdiBean.class})
     public WebApp webApp() {
@@ -53,7 +70,7 @@ public class HessianCdiTest {
         final SerializerFactory factory = new SerializerFactory(loader);
         factory.setAllowNonSerializable(true);
         clientFactory.setSerializerFactory(factory);
-        final CdiService client = CdiService.class.cast(clientFactory.create(CdiService.class, "http://127.0.0.1:4204/web/hessian/service"));
+        final CdiService client = CdiService.class.cast(clientFactory.create(CdiService.class, "http://127.0.0.1:" + port + "/web/hessian/service"));
 
         final Out out = client.call(new In("test"));
         assertThat(out, instanceOf(Out.class));

Modified: tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianInitialContextTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianInitialContextTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianInitialContextTest.java (original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianInitialContextTest.java Thu Jul 17 09:22:44 2014
@@ -18,9 +18,12 @@ package org.apache.openejb.server.hessia
 
 import org.apache.openejb.client.hessian.HessianInitialContextFactory;
 import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
 import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -28,6 +31,7 @@ import javax.ejb.Remote;
 import javax.ejb.Singleton;
 import javax.naming.Context;
 import javax.naming.InitialContext;
+import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertEquals;
@@ -36,6 +40,19 @@ import static org.junit.Assert.assertTha
 @EnableServices({"hessian", "httpejbd"})
 @RunWith(ApplicationComposer.class)
 public class HessianInitialContextTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     public Class<?>[] classes() {
         return new Class<?>[]{Server.class};
@@ -46,7 +63,7 @@ public class HessianInitialContextTest {
         final MyApi client = MyApi.class.cast(
             new InitialContext(new PropertiesBuilder()
                 .p(Context.INITIAL_CONTEXT_FACTORY, HessianInitialContextFactory.class.getName())
-                .p(Context.PROVIDER_URL, "http://127.0.0.1:4204/HessianInitialContextTest/hessian/")
+                .p(Context.PROVIDER_URL, "http://127.0.0.1:" + port + "/HessianInitialContextTest/hessian/")
                 .build())
                 .lookup("Server"));
 

Modified: tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianServiceTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianServiceTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianServiceTest.java (original)
+++ tomee/tomee/trunk/server/openejb-hessian/src/test/java/org/apache/openejb/server/hessian/HessianServiceTest.java Thu Jul 17 09:22:44 2014
@@ -19,14 +19,19 @@ package org.apache.openejb.server.hessia
 import com.caucho.hessian.client.HessianProxyFactory;
 import com.caucho.hessian.io.SerializerFactory;
 import org.apache.openejb.junit.ApplicationComposer;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import javax.ejb.Remote;
 import javax.ejb.Singleton;
 import java.net.MalformedURLException;
+import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertEquals;
@@ -35,6 +40,19 @@ import static org.junit.Assert.assertTha
 @EnableServices({"hessian", "httpejbd"})
 @RunWith(ApplicationComposer.class)
 public class HessianServiceTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     public Class<?>[] classes() {
         return new Class<?>[]{MyHessianWebService.class};
@@ -47,7 +65,7 @@ public class HessianServiceTest {
         final SerializerFactory factory = new SerializerFactory(loader);
         factory.setAllowNonSerializable(true);
         clientFactory.setSerializerFactory(factory);
-        final HessianWebService client = HessianWebService.class.cast(clientFactory.create(HessianWebService.class, "http://127.0.0.1:4204/HessianServiceTest/hessian/" + MyHessianWebService.class.getSimpleName()));
+        final HessianWebService client = HessianWebService.class.cast(clientFactory.create(HessianWebService.class, "http://127.0.0.1:" + port + "/HessianServiceTest/hessian/" + MyHessianWebService.class.getSimpleName()));
 
         final Out out = client.call(new In("test"));
         assertThat(out, instanceOf(Out.class));

Modified: tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/FilterRegistrationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/FilterRegistrationTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/FilterRegistrationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/FilterRegistrationTest.java Thu Jul 17 09:22:44 2014
@@ -18,10 +18,13 @@ package org.apache.openejb.server.httpd;
 
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.junit.Classes;
-import org.apache.openejb.junit.EnableServices;
-import org.apache.openejb.junit.Module;
 import org.apache.openejb.loader.IO;
+import org.apache.openejb.testing.Configuration;
+import org.apache.openejb.testing.EnableServices;
+import org.apache.openejb.testing.Module;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -38,6 +41,7 @@ import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -45,6 +49,19 @@ import static org.junit.Assert.assertTru
 @EnableServices({"httpejbd"})
 @RunWith(ApplicationComposer.class)
 public class FilterRegistrationTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     public WebApp app() {
         return new WebApp()
@@ -56,7 +73,7 @@ public class FilterRegistrationTest {
 
     @Test
     public void touch() throws IOException {
-        assertEquals("/filter/touch", IO.slurp(new URL("http://localhost:4204/filter/touch")));
+        assertEquals("/filter/touch", IO.slurp(new URL("http://localhost:" + port + "/filter/touch")));
         assertTrue(TestFilter.init);
         assertTrue(TestFilter.ok);
         assertTrue(TestFilter2.ok);

Modified: tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/ServletRegistrationTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/ServletRegistrationTest.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/ServletRegistrationTest.java (original)
+++ tomee/tomee/trunk/server/openejb-http/src/test/java/org/apache/openejb/server/httpd/ServletRegistrationTest.java Thu Jul 17 09:22:44 2014
@@ -18,10 +18,14 @@ package org.apache.openejb.server.httpd;
 
 import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.junit.ApplicationComposer;
-import org.apache.openejb.loader.IO;
 import org.apache.openejb.testing.Classes;
+import org.apache.openejb.testing.Configuration;
 import org.apache.openejb.testing.EnableServices;
 import org.apache.openejb.testing.Module;
+import org.apache.openejb.loader.IO;
+import org.apache.openejb.testng.PropertiesBuilder;
+import org.apache.openejb.util.NetworkUtil;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -34,12 +38,26 @@ import javax.servlet.http.HttpServletReq
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URL;
+import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
 @EnableServices("httpejbd")
 @RunWith(ApplicationComposer.class)
 public class ServletRegistrationTest {
+
+    private static int port = -1;
+
+    @BeforeClass
+    public static void beforeClass() {
+        port = NetworkUtil.getNextAvailablePort();
+    }
+
+    @Configuration
+    public Properties props() {
+        return new PropertiesBuilder().p("httpejbd.port", Integer.toString(port)).build();
+    }
+
     @Module
     @Classes({TestServlet.class, TestServlet2.class, TestServlet3.class, TestServlet4.class, SomeEjb.class})
     public WebApp app() {
@@ -50,22 +68,22 @@ public class ServletRegistrationTest {
 
     @Test
     public void touch() throws IOException {
-        assertEquals("touched", IO.slurp(new URL("http://localhost:4204/servlet/touch")));
+        assertEquals("touched", IO.slurp(new URL("http://localhost:" + port + "/servlet/touch")));
     }
 
     @Test
     public void discover() throws IOException {
-        assertEquals("discovered", IO.slurp(new URL("http://localhost:4204/servlet/discover")));
+        assertEquals("discovered", IO.slurp(new URL("http://localhost:" + port + "/servlet/discover")));
     }
 
     @Test
     public void wildcard() throws IOException {
-        assertEquals("wildcard", IO.slurp(new URL("http://localhost:4204/servlet/bar/openejb")));
+        assertEquals("wildcard", IO.slurp(new URL("http://localhost:" + port + "/servlet/bar/openejb")));
     }
 
     @Test
     public void injections() throws IOException {
-        assertEquals("true", IO.slurp(new URL("http://localhost:4204/servlet/injection")));
+        assertEquals("true", IO.slurp(new URL("http://localhost:" + port + "/servlet/injection")));
     }
 
     private static class TestServlet extends HttpServlet {

Modified: tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java?rev=1611306&r1=1611305&r2=1611306&view=diff
==============================================================================
--- tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java (original)
+++ tomee/tomee/trunk/server/openejb-server/src/main/java/org/apache/openejb/server/ServiceDaemon.java Thu Jul 17 09:22:44 2014
@@ -29,6 +29,7 @@ import javax.net.ssl.SSLServerSocketFact
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.net.BindException;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.ServerSocket;
@@ -149,7 +150,15 @@ public class ServiceDaemon implements Se
                 } else {
                     serverSocket = new ServerSocket();
                     serverSocket.setReuseAddress(true);
+
+                    try {
                     serverSocket.bind(new InetSocketAddress(this.inetAddress, this.port), this.backlog);
+
+                    } catch (final BindException e) {
+                        //One retry - Port may be closing
+                        Thread.sleep(1000);
+                        serverSocket.bind(new InetSocketAddress(this.inetAddress, this.port), this.backlog);
+                }
                 }
 
                 serverSocket.setSoTimeout(this.timeout);