Index: pom.xml IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- pom.xml (revision 1378039) +++ pom.xml (revision ) @@ -73,6 +73,33 @@ + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + reserve-network-port + + reserve-network-port + + process-resources + + + jetty.http.port + + + + + + + maven-surefire-plugin + + + ${jetty.http.port} + + + Index: src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java (revision 1378039) +++ src/test/java/org/apache/jackrabbit/oak/run/BasicServerTest.java (revision ) @@ -29,11 +29,22 @@ public class BasicServerTest { + private static final String SERVER_URL; + + static { + String p = System.getProperty("jetty.http.port"); + if (p != null) { + SERVER_URL = "http://localhost:" + p + "/"; + } else { + SERVER_URL = Main.URI; + } + } + private Main.HttpServer server; @Before public void startServer() throws Exception { - server = new Main.HttpServer(Main.URI, new String[0]); + server = new Main.HttpServer(SERVER_URL, new String[0]); server.start(); } @@ -45,7 +56,7 @@ @Test public void testServerOk() throws Exception { - URL server = new URL(Main.URI); + URL server = new URL(SERVER_URL); HttpURLConnection conn = (HttpURLConnection) server.openConnection(); conn.setRequestProperty("Authorization", "Basic " + Base64.encode("a:a")); Index: src/main/java/org/apache/jackrabbit/oak/run/Main.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/main/java/org/apache/jackrabbit/oak/run/Main.java (revision 1378039) +++ src/main/java/org/apache/jackrabbit/oak/run/Main.java (revision ) @@ -102,17 +102,23 @@ private final MicroKernel[] kernels; public HttpServer(String uri, String args[]) { + int port = java.net.URI.create(uri).getPort(); + if (port == -1) { + // use default + port = PORT; + } + context = new ServletContextHandler(ServletContextHandler.SECURITY); context.setContextPath("/"); if (args.length == 0) { System.out.println("Starting an in-memory repository"); - System.out.println(URI + " -> [memory]"); + System.out.println(uri + " -> [memory]"); kernels = new MicroKernel[] { new MicroKernelImpl() }; addServlets(kernels[0], ""); } else if (args.length == 1) { System.out.println("Starting a standalone repository"); - System.out.println(URI + " -> " + args[0]); + System.out.println(uri + " -> " + args[0]); kernels = new MicroKernel[] { new MicroKernelImpl(args[0]) }; addServlets(kernels[0], ""); } else { @@ -120,13 +126,13 @@ kernels = new MicroKernel[args.length]; for (int i = 0; i < args.length; i++) { // FIXME: Use a clustered MicroKernel implementation - System.out.println(URI + "/node" + i + "/ -> " + args[i]); + System.out.println(uri + "/node" + i + "/ -> " + args[i]); kernels[i] = new MicroKernelImpl(args[i]); addServlets(kernels[i], "/node" + i); } } - server = new Server(PORT); + server = new Server(port); server.setHandler(context); }