Move choosePort() to FusekiLib. Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/026d503d Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/026d503d Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/026d503d
Branch: refs/heads/master Commit: 026d503d1e236c81ec5065335d9817e200f7fb19 Parents: 806fd19 Author: Andy Seaborne <[email protected]> Authored: Sun May 28 21:18:37 2017 +0100 Committer: Andy Seaborne <[email protected]> Committed: Sun May 28 21:18:37 2017 +0100 ---------------------------------------------------------------------- .../java/org/apache/jena/fuseki/FusekiLib.java | 13 ++++++++++-- .../apache/jena/fuseki/server/FusekiEnv.java | 11 ---------- .../java/org/apache/jena/fuseki/ServerCtl.java | 2 +- .../jena/fuseki/embedded/FusekiTestAuth.java | 21 ++++++++++++++------ .../jena/fuseki/embedded/FusekiTestServer.java | 4 ++-- .../fuseki/embedded/TestEmbeddedFuseki.java | 20 +++++++++---------- .../fuseki/embedded/TestMultipleEmbedded.java | 16 +++++++-------- 7 files changed, 47 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java index 1138260..3f68563 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/FusekiLib.java @@ -18,6 +18,8 @@ package org.apache.jena.fuseki; +import java.io.IOException; +import java.net.ServerSocket; import java.util.Iterator ; import javax.servlet.http.HttpServletRequest ; @@ -221,12 +223,10 @@ public class FusekiLib { return lit.getLexicalForm() ; } - // XXX Lib public static String strForResource(Resource r) { return strForResource(r, r.getModel()) ; } - // XXX Lib public static String strForResource(Resource r, PrefixMapping pm) { if ( r == null ) return "NULL " ; @@ -254,4 +254,13 @@ public class FusekiLib { } return "<" + uri + ">" ; } + + /** Choose an unused port for a server to listen on */ + public static int choosePort() { + try (ServerSocket s = new ServerSocket(0)) { + return s.getLocalPort(); + } catch (IOException ex) { + throw new FusekiException("Failed to find a port"); + } + } } http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiEnv.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiEnv.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiEnv.java index f18f61b..3799c9a 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiEnv.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiEnv.java @@ -21,7 +21,6 @@ package org.apache.jena.fuseki.server; import static java.lang.String.format ; import java.io.IOException ; -import java.net.ServerSocket; import java.nio.file.DirectoryStream ; import java.nio.file.Files ; import java.nio.file.Path ; @@ -30,7 +29,6 @@ import java.util.ArrayList ; import java.util.List ; import org.apache.jena.atlas.lib.InternalErrorException ; -import org.apache.jena.fuseki.FusekiException; import org.apache.jena.fuseki.servlets.HttpAction ; import org.apache.jena.fuseki.servlets.ServletOps ; @@ -178,15 +176,6 @@ public class FusekiEnv { return x ; } - /** Choose an unused port for a server to listen on */ - public static int choosePort() { - try (ServerSocket s = new ServerSocket(0)) { - return s.getLocalPort(); - } catch (IOException ex) { - throw new FusekiException("Failed to find a port"); - } - } - /** Dataset set name to configuration file name. */ public static String datasetNameToConfigurationFile(HttpAction action, String dsName) { List<String> existing = existingConfigurationFile(dsName) ; http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerCtl.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerCtl.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerCtl.java index d99bb5b..cc8870d 100644 --- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerCtl.java +++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/ServerCtl.java @@ -109,7 +109,7 @@ public class ServerCtl { /*package : for import static */ enum ServerScope { SUITE, CLASS, TEST } private static ServerScope serverScope = ServerScope.CLASS ; - private static int currentPort = FusekiEnv.choosePort() ; + private static int currentPort = FusekiLib.choosePort() ; public static int port() { return currentPort ; http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java index 992b9d2..8b10f50 100644 --- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java +++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestAuth.java @@ -18,12 +18,11 @@ package org.apache.jena.fuseki.embedded; -import static org.apache.jena.fuseki.server.FusekiEnv.choosePort; - import java.util.Objects; import org.apache.jena.atlas.web.HttpException; import org.apache.jena.fuseki.FusekiException; +import org.apache.jena.fuseki.FusekiLib; import org.apache.jena.sparql.core.DatasetGraph ; import org.apache.jena.sparql.core.DatasetGraphFactory; import org.apache.jena.web.HttpSC; @@ -80,7 +79,7 @@ import org.junit.Assert; * large test suite may end up quite slow. */ public class FusekiTestAuth { - private static int currentPort = choosePort() ; + private static int currentPort = FusekiLib.choosePort() ; public static int port() { return currentPort ; @@ -100,10 +99,18 @@ public class FusekiTestAuth { public static final String serviceGSP() { return "http://localhost:"+port()+datasetPath()+"/data" ; } private static FusekiEmbeddedServer server ; - + + /** Setup a testing server, using the given Jetty {@link SecurityHandler} for authentication. + * The server will have an empty, in-emory transactional dataset. + */ public static void setupServer(boolean updateable, SecurityHandler sh) { - // Clean datasets. - dsgTesting = DatasetGraphFactory.createTxnMem(); + setupServer(updateable, sh, DatasetGraphFactory.createTxnMem()); + } + + /** Setup a testing server, using the given Jetty {@link SecurityHandler} for authentication. + */ + public static void setupServer(boolean updateable, SecurityHandler sh, DatasetGraph dsg) { + dsgTesting = dsg; server = FusekiEmbeddedServer.create() .add(datasetPath(), dsgTesting) .setPort(port()) @@ -112,10 +119,12 @@ public class FusekiTestAuth { .start(); } + /** Shutdown the server.*/ public static void teardownServer() { if ( server != null ) { server.stop() ; server = null ; + dsgTesting = null; } } http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java index e1a4488..72deb5d 100644 --- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java +++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/FusekiTestServer.java @@ -21,13 +21,13 @@ package org.apache.jena.fuseki.embedded; import static org.apache.jena.fuseki.embedded.FusekiTestServer.ServerScope.CLASS; import static org.apache.jena.fuseki.embedded.FusekiTestServer.ServerScope.SUITE; import static org.apache.jena.fuseki.embedded.FusekiTestServer.ServerScope.TEST; -import static org.apache.jena.fuseki.server.FusekiEnv.choosePort; import java.util.concurrent.atomic.AtomicInteger ; import org.apache.http.client.HttpClient ; import org.apache.http.impl.client.CloseableHttpClient ; import org.apache.jena.atlas.io.IO ; +import org.apache.jena.fuseki.FusekiLib; import org.apache.jena.riot.web.HttpOp ; import org.apache.jena.sparql.core.DatasetGraph ; import org.apache.jena.sparql.core.DatasetGraphFactory; @@ -121,7 +121,7 @@ public class FusekiTestServer { /*package : for import static */ enum ServerScope { SUITE, CLASS, TEST } private static ServerScope serverScope = ServerScope.CLASS ; - private static int currentPort = choosePort() ; + private static int currentPort = FusekiLib.choosePort() ; public static int port() { return currentPort ; http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java index 7a1826b..2743bcb 100644 --- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java +++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestEmbeddedFuseki.java @@ -33,9 +33,9 @@ import org.apache.http.entity.EntityTemplate ; import org.apache.jena.atlas.web.ContentType ; import org.apache.jena.atlas.web.HttpException ; import org.apache.jena.atlas.web.TypedInputStream ; +import org.apache.jena.fuseki.FusekiLib; import org.apache.jena.fuseki.server.DataAccessPointRegistry ; import org.apache.jena.fuseki.server.DataService ; -import org.apache.jena.fuseki.server.FusekiEnv; import org.apache.jena.fuseki.server.OperationName ; import org.apache.jena.graph.Graph ; import org.apache.jena.query.QueryExecution; @@ -94,7 +94,7 @@ public class TestEmbeddedFuseki { // Different dataset name. @Test public void embedded_03() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) .add("/ds1", dsg) @@ -128,7 +128,7 @@ public class TestEmbeddedFuseki { dataService.addEndpoint(OperationName.Quads_RW, ""); dataService.addEndpoint(OperationName.Query, ""); dataService.addEndpoint(OperationName.Update, ""); - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) @@ -168,7 +168,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_05() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) .add("/ds0", dsg) @@ -183,7 +183,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_06() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) .add("/ds0", dsg) @@ -199,7 +199,7 @@ public class TestEmbeddedFuseki { // Context path. @Test public void embedded_07() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) @@ -217,7 +217,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_08() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) @@ -231,7 +231,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_09() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server = FusekiEmbeddedServer.create() .setPort(port) @@ -252,7 +252,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_20() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; DataService dSrv = new DataService(dsg) ; dSrv.addEndpoint(OperationName.Query, "q") ; @@ -271,7 +271,7 @@ public class TestEmbeddedFuseki { @Test public void embedded_21() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; DataService dSrv = new DataService(dsg) ; dSrv.addEndpoint(OperationName.Query, "q") ; http://git-wip-us.apache.org/repos/asf/jena/blob/026d503d/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java ---------------------------------------------------------------------- diff --git a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java index 3ed297d..bb45b8f 100644 --- a/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java +++ b/jena-fuseki2/jena-fuseki-embedded/src/test/java/org/apache/jena/fuseki/embedded/TestMultipleEmbedded.java @@ -30,7 +30,7 @@ import org.apache.http.entity.ContentProducer ; import org.apache.http.entity.EntityTemplate ; import org.apache.jena.atlas.web.ContentType ; import org.apache.jena.fuseki.FusekiException ; -import org.apache.jena.fuseki.server.FusekiEnv; +import org.apache.jena.fuseki.FusekiLib; import org.apache.jena.graph.Graph ; import org.apache.jena.query.ResultSet ; import org.apache.jena.query.ResultSetFormatter ; @@ -52,7 +52,7 @@ public class TestMultipleEmbedded { public void multiple_01() { DatasetGraph dsg = dataset() ; - int port = FusekiEnv.choosePort() ; + int port = FusekiLib.choosePort() ; FusekiEmbeddedServer server1 = FusekiEmbeddedServer.create().setPort(port).add("/ds1", dsg).build() ; // Same port - Bbad. FusekiEmbeddedServer server2 = FusekiEmbeddedServer.create().setPort(port).add("/ds2", dsg).build() ; @@ -74,11 +74,11 @@ public class TestMultipleEmbedded { @Test public void multiple_02() { DatasetGraph dsg = dataset() ; - int port1 = FusekiEnv.choosePort() ; + int port1 = FusekiLib.choosePort() ; FusekiEmbeddedServer server1 = FusekiEmbeddedServer.create().setPort(port1).add("/ds1", dsg).build() ; // Different port - good - int port2 = FusekiEnv.choosePort() ; + int port2 = FusekiLib.choosePort() ; FusekiEmbeddedServer server2 = FusekiEmbeddedServer.create().setPort(port2).add("/ds2", dsg).build() ; try { @@ -96,11 +96,11 @@ public class TestMultipleEmbedded { DatasetGraph dsg1 = dataset() ; DatasetGraph dsg2 = dataset() ; // Same name. - int port1 = FusekiEnv.choosePort() ; + int port1 = FusekiLib.choosePort() ; FusekiEmbeddedServer server1 = FusekiEmbeddedServer.create().setPort(port1).add("/ds", dsg1).build().start() ; Txn.executeWrite(dsg1, ()->dsg1.add(q1)); - int port2 = FusekiEnv.choosePort() ; + int port2 = FusekiLib.choosePort() ; FusekiEmbeddedServer server2 = FusekiEmbeddedServer.create().setPort(port2).add("/ds", dsg2).build().start() ; Txn.executeWrite(dsg2, ()->dsg2.add(q2)); @@ -129,11 +129,11 @@ public class TestMultipleEmbedded { public void multiple_04() { DatasetGraph dsg = dataset() ; - int port1 = FusekiEnv.choosePort() ; + int port1 = FusekiLib.choosePort() ; FusekiEmbeddedServer server1 = FusekiEmbeddedServer.create().setPort(port1).add("/ds1", dsg).build().start() ; Txn.executeWrite(dsg, ()->dsg.add(q1)); - int port2 = FusekiEnv.choosePort() ; + int port2 = FusekiLib.choosePort() ; FusekiEmbeddedServer server2 = FusekiEmbeddedServer.create().setPort(port2).add("/ds2", dsg).build().start() ; Txn.executeWrite(dsg, ()->dsg.add(q2));
