You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2013/11/12 06:34:46 UTC

[16/40] git commit: [OLINGO-34] - fix failing test on Windows (port already in use)

[OLINGO-34] - fix failing test on Windows (port already in use)


Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/commit/ede39100
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/tree/ede39100
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/diff/ede39100

Branch: refs/heads/PocEdmAnnotationsExtension
Commit: ede39100927aadbcd0e0a275f80ebf9804269bbd
Parents: aad5ef3
Author: Stephan Klevenz <sk...@apache.org>
Authored: Fri Oct 25 13:49:36 2013 +0200
Committer: Stephan Klevenz <sk...@apache.org>
Committed: Fri Oct 25 13:49:36 2013 +0200

----------------------------------------------------------------------
 .../basic/issues/TestCxfCacheUriInfoIssue2.java |  4 +-
 .../odata2/testutil/server/TestServer.java      | 54 +++++++++++++-------
 2 files changed, 38 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/ede39100/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/issues/TestCxfCacheUriInfoIssue2.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/issues/TestCxfCacheUriInfoIssue2.java b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/issues/TestCxfCacheUriInfoIssue2.java
index 5085309..fc30efe 100644
--- a/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/issues/TestCxfCacheUriInfoIssue2.java
+++ b/odata2-lib/odata-fit/src/test/java/org/apache/olingo/odata2/fit/basic/issues/TestCxfCacheUriInfoIssue2.java
@@ -43,8 +43,8 @@ public class TestCxfCacheUriInfoIssue2 {
     server1.setPathSplit(0);
     server2.setPathSplit(0);
 
-    server1.startServer(Service1Factory.class);
-    server2.startServer(Service2Factory.class);
+    server1.startServer(Service1Factory.class, 19000);
+    server2.startServer(Service2Factory.class, 19100);
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/ede39100/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
index 0345c98..1a91e05 100644
--- a/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
+++ b/odata2-lib/odata-testutil/src/main/java/org/apache/olingo/odata2/testutil/server/TestServer.java
@@ -41,8 +41,6 @@ public class TestServer {
   private static final int PORT_MAX = 19200;
   private static final int PORT_INC = 1;
 
-  private static int nextFreePort = PORT_MIN;
-
   private static final String DEFAULT_SCHEME = "http";
   private static final String DEFAULT_HOST = "localhost";
   private static final String DEFAULT_PATH = "/test";
@@ -78,27 +76,31 @@ public class TestServer {
 
   private Server server;
 
-  public void startServer(final Class<? extends ODataServiceFactory> factoryClass) {
+  public void startServer(final Class<? extends ODataServiceFactory> factoryClass, int fixedPort) {
     try {
-      for (int port = nextFreePort; port <= PORT_MAX; port += PORT_INC) {
-        nextFreePort = port + PORT_INC;
-        final CXFNonSpringJaxrsServlet odataServlet = new CXFNonSpringJaxrsServlet();
-        final ServletHolder odataServletHolder = new ServletHolder(odataServlet);
-        odataServletHolder.setInitParameter("javax.ws.rs.Application",
-            "org.apache.olingo.odata2.core.rest.app.ODataApplication");
-        odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
-
-        if (pathSplit > 0) {
-          odataServletHolder.setInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL, Integer.toString(pathSplit));
-        }
+      final ServletContextHandler contextHandler = createContextHandler(factoryClass);
+      final InetSocketAddress isa = new InetSocketAddress(DEFAULT_HOST, fixedPort);
+      server = new Server(isa);
+
+      server.setHandler(contextHandler);
+      server.start();
+      endpoint = new URI(DEFAULT_SCHEME, null, DEFAULT_HOST, isa.getPort(), "/abc" + path, null, null);
+      log.trace("Started server at endpoint " + endpoint.toASCIIString());
+    } catch (final Exception e) {
+      log.error(e);
+      throw new ServerRuntimeException(e);
+    }
+  }
 
-        final ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
-        contextHandler.setContextPath("/abc");
-        contextHandler.addServlet(odataServletHolder, path + "/*");
+  public void startServer(final Class<? extends ODataServiceFactory> factoryClass) {
+    try {
+      for (int port = PORT_MIN; port <= PORT_MAX; port += PORT_INC) {
+        final ServletContextHandler contextHandler = createContextHandler(factoryClass);
 
         try {
           final InetSocketAddress isa = new InetSocketAddress(DEFAULT_HOST, port);
           server = new Server(isa);
+
           server.setHandler(contextHandler);
           server.start();
           endpoint = new URI(DEFAULT_SCHEME, null, DEFAULT_HOST, isa.getPort(), "/abc" + path, null, null);
@@ -109,7 +111,6 @@ public class TestServer {
         }
       }
 
-
       if (!server.isStarted()) {
         throw new BindException("no free port in range of [" + PORT_MIN + ".." + PORT_MAX + "]");
       }
@@ -119,6 +120,23 @@ public class TestServer {
     }
   }
 
+  private ServletContextHandler createContextHandler(final Class<? extends ODataServiceFactory> factoryClass) {
+    final CXFNonSpringJaxrsServlet odataServlet = new CXFNonSpringJaxrsServlet();
+    final ServletHolder odataServletHolder = new ServletHolder(odataServlet);
+    odataServletHolder.setInitParameter("javax.ws.rs.Application",
+        "org.apache.olingo.odata2.core.rest.app.ODataApplication");
+    odataServletHolder.setInitParameter(ODataServiceFactory.FACTORY_LABEL, factoryClass.getCanonicalName());
+
+    if (pathSplit > 0) {
+      odataServletHolder.setInitParameter(ODataServiceFactory.PATH_SPLIT_LABEL, Integer.toString(pathSplit));
+    }
+
+    final ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
+    contextHandler.setContextPath("/abc");
+    contextHandler.addServlet(odataServletHolder, path + "/*");
+    return contextHandler;
+  }
+
   public void startServer(final ODataService service) {
     startServer(FitStaticServiceFactory.class);