You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2024/03/14 13:49:46 UTC

(jena) branch main updated (4adf5fd5c4 -> a19b2b2088)

This is an automated email from the ASF dual-hosted git repository.

andy pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git


    from 4adf5fd5c4 GH-2331: Fix test to match the DOM structure (due to replacing JenaTable by TableListing to get pagination)
     new 7c82b10d4a Tidy up test logging configuration
     new c8e1af6d44 GH-2328: Simplify running auth tests for Fuseki
     new a19b2b2088 GH-2313: Skip unstable test

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/maven_windows.yml                |  1 -
 apache-jena/log4j2.properties                      |  7 +--
 jena-arq/src/test/resources/log4j2.properties      |  4 --
 jena-fuseki2/apache-jena-fuseki/log4j2.properties  |  7 +--
 .../src/test/resources/log4j2.properties           |  4 --
 .../java/org/apache/jena/fuseki/test/HttpTest.java |  4 +-
 jena-fuseki2/jena-fuseki-docker/log4j2.properties  |  7 +--
 .../src/test/resources/log4j2.properties           |  4 --
 .../jena/fuseki/main/AbstractFusekiTest.java       | 67 +++++++++++-----------
 .../jena/fuseki/main/AbstractTestAuth_JDK.java     | 38 ++++++------
 .../apache/jena/fuseki/main/BaseFusekiTest.java    | 65 ---------------------
 .../apache/jena/fuseki/main/TestAuthQuery_JDK.java |  4 +-
 .../org/apache/jena/fuseki/main/TestMetrics.java   |  2 +-
 .../org/apache/jena/fuseki/main/TestQuery.java     |  4 +-
 .../main/access/TestServiceDataAuthBuild.java      | 10 ++--
 .../src/test/resources/log4j2.properties           |  4 --
 .../src/main/webapp/log4j2.properties              |  4 +-
 .../jena/fuseki/AbstractTestWebappAuth_JDK.java    | 22 +++----
 .../jena/fuseki/TestWebappAuthQuery_JDK.java       | 16 +++---
 .../jena/fuseki/TestWebappAuthUpdate_JDK.java      | 12 ++--
 .../src/test/resources/log4j2.properties           |  7 +--
 .../galbiston/expiring_map/ExpiringMapTest.java    |  9 +--
 .../src/test/resources/log4j2.properties           |  4 --
 .../java/org/apache/jena/http/TestAuthRemote.java  | 13 ++---
 .../java/org/apache/jena/test/conn/EnvTest.java    | 15 ++---
 .../src/test/resources/log4j2.properties           |  4 --
 26 files changed, 109 insertions(+), 229 deletions(-)
 delete mode 100644 jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/BaseFusekiTest.java


(jena) 03/03: GH-2313: Skip unstable test

Posted by an...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit a19b2b20885969c8d9242b876d73768f7309f22f
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Tue Mar 12 17:19:30 2024 +0000

    GH-2313: Skip unstable test
---
 .github/workflows/maven_windows.yml                              | 1 -
 .../ext/io/github/galbiston/expiring_map/ExpiringMapTest.java    | 9 +++------
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/maven_windows.yml b/.github/workflows/maven_windows.yml
index 04b17d4a01..1fc57394d1 100644
--- a/.github/workflows/maven_windows.yml
+++ b/.github/workflows/maven_windows.yml
@@ -31,6 +31,5 @@ jobs:
       run: bash -c "cp -r /d/a/jena/jena /c/jena"
 
     - name: Build with Maven for windows-latest
-      # If Windows and java 11, then MJAVADOC-586 / JDK issue.
       run: bash -c "mvn -B --file pom.xml -Dmaven.javadoc.skip=true install"
       working-directory: c:\jena
diff --git a/jena-geosparql/src/test/java/org/apache/jena/ext/io/github/galbiston/expiring_map/ExpiringMapTest.java b/jena-geosparql/src/test/java/org/apache/jena/ext/io/github/galbiston/expiring_map/ExpiringMapTest.java
index b7129a1938..ac22947475 100644
--- a/jena-geosparql/src/test/java/org/apache/jena/ext/io/github/galbiston/expiring_map/ExpiringMapTest.java
+++ b/jena-geosparql/src/test/java/org/apache/jena/ext/io/github/galbiston/expiring_map/ExpiringMapTest.java
@@ -17,16 +17,12 @@
  */
 package org.apache.jena.ext.io.github.galbiston.expiring_map;
 
-import org.junit.After;
-import org.junit.AfterClass;
-
 import static org.apache.jena.ext.io.github.galbiston.expiring_map.MapDefaultValues.MAP_CLEANER_INTERVAL;
 import static org.apache.jena.ext.io.github.galbiston.expiring_map.MapDefaultValues.MINIMUM_MAP_CLEANER_INTERVAL;
 import static org.apache.jena.ext.io.github.galbiston.expiring_map.MapDefaultValues.UNLIMITED_EXPIRY;
 import static org.junit.Assert.assertEquals;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+
+import org.junit.*;
 
 /**
  *
@@ -441,6 +437,7 @@ public class ExpiringMapTest {
      *
      * @throws java.lang.InterruptedException
      */
+    @Ignore // This test is not stable on loaded CI servers.
     @Test
     public void testExpiry_set_cleaner() throws InterruptedException {
         //System.out.println("expiry_set_cleaner");


(jena) 01/03: Tidy up test logging configuration

Posted by an...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit 7c82b10d4acf47e5b521a32349463090725a9809
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Mon Mar 11 19:14:35 2024 +0000

    Tidy up test logging configuration
---
 apache-jena/log4j2.properties                                      | 7 ++-----
 jena-arq/src/test/resources/log4j2.properties                      | 4 ----
 jena-fuseki2/apache-jena-fuseki/log4j2.properties                  | 7 ++-----
 .../jena-fuseki-access/src/test/resources/log4j2.properties        | 4 ----
 jena-fuseki2/jena-fuseki-docker/log4j2.properties                  | 7 ++-----
 .../jena-fuseki-geosparql/src/test/resources/log4j2.properties     | 4 ----
 jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2.properties | 4 ----
 jena-fuseki2/jena-fuseki-webapp/src/main/webapp/log4j2.properties  | 4 +---
 .../jena-fuseki-webapp/src/test/resources/log4j2.properties        | 7 ++-----
 jena-geosparql/src/test/resources/log4j2.properties                | 4 ----
 jena-integration-tests/src/test/resources/log4j2.properties        | 4 ----
 11 files changed, 9 insertions(+), 47 deletions(-)

diff --git a/apache-jena/log4j2.properties b/apache-jena/log4j2.properties
index a7756e27f6..7a6e435070 100644
--- a/apache-jena/log4j2.properties
+++ b/apache-jena/log4j2.properties
@@ -49,13 +49,10 @@ logger.fuseki-admin.level = INFO
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 logger.shiro.name = org.apache.shiro
 logger.shiro.level = WARN
-# Hide bug in Shiro 1.5.0
+
+# Hide issue with Shiro 1.5.0+, 2.0.0
 logger.shiro-realm.name = org.apache.shiro.realm.text.IniRealm
 logger.shiro-realm.level = ERROR
 
diff --git a/jena-arq/src/test/resources/log4j2.properties b/jena-arq/src/test/resources/log4j2.properties
index b4d38967a2..a1a1ef3824 100644
--- a/jena-arq/src/test/resources/log4j2.properties
+++ b/jena-arq/src/test/resources/log4j2.properties
@@ -25,7 +25,3 @@ logger.arq-info.level = INFO
 
 logger.riot.name  = org.apache.jena.riot
 logger.riot.level = INFO
-
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
diff --git a/jena-fuseki2/apache-jena-fuseki/log4j2.properties b/jena-fuseki2/apache-jena-fuseki/log4j2.properties
index 73746a3aec..81dac1df7b 100644
--- a/jena-fuseki2/apache-jena-fuseki/log4j2.properties
+++ b/jena-fuseki2/apache-jena-fuseki/log4j2.properties
@@ -46,13 +46,10 @@ logger.fuseki-admin.level = INFO
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 logger.shiro.name = org.apache.shiro
 logger.shiro.level = WARN
-# Hide bug in Shiro 1.5.0
+
+# Hide bug with Shiro 1.5.0+, 2.0.0
 logger.shiro-realm.name = org.apache.shiro.realm.text.IniRealm
 logger.shiro-realm.level = ERROR
 
diff --git a/jena-fuseki2/jena-fuseki-access/src/test/resources/log4j2.properties b/jena-fuseki2/jena-fuseki-access/src/test/resources/log4j2.properties
index a857ca8284..286860583b 100644
--- a/jena-fuseki2/jena-fuseki-access/src/test/resources/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-access/src/test/resources/log4j2.properties
@@ -40,10 +40,6 @@ logger.fuseki-admin.level = WARN
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN
diff --git a/jena-fuseki2/jena-fuseki-docker/log4j2.properties b/jena-fuseki2/jena-fuseki-docker/log4j2.properties
index 07f360da58..4f219d5844 100644
--- a/jena-fuseki2/jena-fuseki-docker/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-docker/log4j2.properties
@@ -51,13 +51,10 @@ logger.fuseki-admin.level = INFO
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 logger.shiro.name = org.apache.shiro
 logger.shiro.level = WARN
-# Hide bug in Shiro 1.5.x
+
+# Hide issue with Shiro 1.5.0+, 2.0.0
 logger.shiro-realm.name = org.apache.shiro.realm.text.IniRealm
 logger.shiro-realm.level = ERROR
 
diff --git a/jena-fuseki2/jena-fuseki-geosparql/src/test/resources/log4j2.properties b/jena-fuseki2/jena-fuseki-geosparql/src/test/resources/log4j2.properties
index bc633a6c14..f1fe56f2ce 100644
--- a/jena-fuseki2/jena-fuseki-geosparql/src/test/resources/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-geosparql/src/test/resources/log4j2.properties
@@ -52,10 +52,6 @@ logger.fuseki-admin.level = WARN
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2.properties b/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2.properties
index 4cbc992f92..6502551e14 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-main/src/test/resources/log4j2.properties
@@ -54,10 +54,6 @@ logger.fuseki-autoload.level = ERROR
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/webapp/log4j2.properties b/jena-fuseki2/jena-fuseki-webapp/src/main/webapp/log4j2.properties
index 14986c3bd6..0524e408b0 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/main/webapp/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-webapp/src/main/webapp/log4j2.properties
@@ -43,12 +43,10 @@ logger.fuseki-admin.level = INFO
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
 logger.shiro.name = org.apache.shiro
 logger.shiro.level = WARN
 
-# Hide bug in Shiro 1.5.0
+# Hide issue with Shiro 1.5.0+, 2.0.0
 logger.shiro-realm.name = org.apache.shiro.realm.text.IniRealm
 logger.shiro-realm.level = ERROR
 
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/resources/log4j2.properties b/jena-fuseki2/jena-fuseki-webapp/src/test/resources/log4j2.properties
index 7538a8ca91..9b915f0a7f 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/resources/log4j2.properties
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/resources/log4j2.properties
@@ -47,16 +47,13 @@ logger.fuseki-config.level = WARN
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# Hide bug in Shiro 1.5.0
 logger.shiro.name = org.apache.shiro
 logger.shiro.level = WARN
+
+# Hide issue with Shiro 1.5.0+, 2.0.0
 logger.shiro-realm.name = org.apache.shiro.realm.text.IniRealm
 logger.shiro-realm.level = ERROR
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN
diff --git a/jena-geosparql/src/test/resources/log4j2.properties b/jena-geosparql/src/test/resources/log4j2.properties
index 5326bddb4e..4330ba0fc0 100644
--- a/jena-geosparql/src/test/resources/log4j2.properties
+++ b/jena-geosparql/src/test/resources/log4j2.properties
@@ -46,10 +46,6 @@ logger.fuseki-admin.level = WARN
 logger.jetty.name  = org.eclipse.jetty
 logger.jetty.level = WARN
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN
diff --git a/jena-integration-tests/src/test/resources/log4j2.properties b/jena-integration-tests/src/test/resources/log4j2.properties
index 98766b0c03..6d3061598f 100644
--- a/jena-integration-tests/src/test/resources/log4j2.properties
+++ b/jena-integration-tests/src/test/resources/log4j2.properties
@@ -49,10 +49,6 @@ logger.jetty.level = WARN
 logger.geosparql-registry.name = org.apache.jena.geosparql.implementation.registry.SRSRegistry
 logger.geosparql-registry.level = ERROR
 
-# May be useful to turn up to DEBUG if debugging HTTP communication issues
-logger.apache-http.name   = org.apache.http
-logger.apache-http.level  = WARN
-
 # This goes out in NCSA format
 appender.plain.type = Console
 appender.plain.name = PLAIN


(jena) 02/03: GH-2328: Simplify running auth tests for Fuseki

Posted by an...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

andy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/jena.git

commit c8e1af6d442ae3b1b1a2e80ab9ee5c47a4758bf9
Author: Andy Seaborne <an...@apache.org>
AuthorDate: Mon Mar 11 19:15:56 2024 +0000

    GH-2328: Simplify running auth tests for Fuseki
---
 .../java/org/apache/jena/fuseki/test/HttpTest.java |  4 +-
 .../jena/fuseki/main/AbstractFusekiTest.java       | 67 +++++++++++-----------
 .../jena/fuseki/main/AbstractTestAuth_JDK.java     | 38 ++++++------
 .../apache/jena/fuseki/main/BaseFusekiTest.java    | 65 ---------------------
 .../apache/jena/fuseki/main/TestAuthQuery_JDK.java |  4 +-
 .../org/apache/jena/fuseki/main/TestMetrics.java   |  2 +-
 .../org/apache/jena/fuseki/main/TestQuery.java     |  4 +-
 .../main/access/TestServiceDataAuthBuild.java      | 10 ++--
 .../jena/fuseki/AbstractTestWebappAuth_JDK.java    | 22 +++----
 .../jena/fuseki/TestWebappAuthQuery_JDK.java       | 16 +++---
 .../jena/fuseki/TestWebappAuthUpdate_JDK.java      | 12 ++--
 .../java/org/apache/jena/http/TestAuthRemote.java  | 13 ++---
 .../java/org/apache/jena/test/conn/EnvTest.java    | 15 ++---
 13 files changed, 97 insertions(+), 175 deletions(-)

diff --git a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/test/HttpTest.java b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/test/HttpTest.java
index df24ba45b3..06d88dfc92 100644
--- a/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/test/HttpTest.java
+++ b/jena-fuseki2/jena-fuseki-core/src/test/java/org/apache/jena/fuseki/test/HttpTest.java
@@ -70,10 +70,10 @@ public class HttpTest {
             Assert.fail("Expected HttpException "+expectedStatusCode);
         } catch (QueryExceptionHTTP ex) {
             if ( expectedStatusCode > 0 )
-                Assert.assertEquals(ex.getMessage()+":: ", expectedStatusCode, ex.getStatusCode());
+                Assert.assertEquals(ex.getMessage()+" ::", expectedStatusCode, ex.getStatusCode());
         } catch (HttpException ex) {
             if ( expectedStatusCode > 0 )
-                Assert.assertEquals(ex.getMessage()+":: ", expectedStatusCode, ex.getStatusCode());
+                Assert.assertEquals(ex.getMessage()+" ::", expectedStatusCode, ex.getStatusCode());
         }
     }
 
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java
index 533438a815..7904221478 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractFusekiTest.java
@@ -18,41 +18,40 @@
 
 package org.apache.jena.fuseki.main;
 
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.junit.After;
-import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.BeforeClass;
-
-public class AbstractFusekiTest extends BaseFusekiTest {
-    @BeforeClass public static void startServer() {
-
-//      FusekiLogging.setLogging();
-//      LogCtl.enable(Fuseki.actionLog);
-//      LogCtl.enable(Fuseki.serverLog);
-
-      server = FusekiServer.create()
-              .port(0)
-              //.verbose(true)
-              .add(datasetPath(), dsgTesting)
-              .enablePing(true)
-              .enableMetrics(true)
-              .build();
-      server.start();
-      port = server.getPort();
-      serverURL = "http://localhost:"+port+"/";
-  }
-
-  @AfterClass public static void stopServer() {
-      try {
-          if ( server != null )
-              server.stop();
-      } catch (Throwable th) {
-          th.printStackTrace();
-      }
-  }
-
-
-  @Before public void beforeTest() { resetDatabase(); }
-  @After public void afterTest() {}
 
+/**
+ * Common setup for running a server with services and an initially empty database.
+ */
+public class AbstractFusekiTest {
+    private FusekiServer server;
+
+    protected String datasetName()    { return "database"; }
+    protected String datasetPath()    { return "/"+datasetName(); }
+    protected String databaseURL()    { return server.datasetURL(datasetPath()); }
+    protected String serverURL()      { return server.serverURL(); }
+
+    protected String serviceUpdate()  { return databaseURL()+"/update"; }
+    protected String serviceQuery()   { return databaseURL()+"/query"; }
+    protected String serviceGSP_R()   { return databaseURL()+"/get"; }
+    protected String serviceGSP()     { return databaseURL()+"/data"; }
+
+    @Before public void startServer() {
+        DatasetGraph dsgTesting = DatasetGraphFactory.createTxnMem();
+        server = FusekiServer.create()
+                .port(0)
+                //.verbose(true)
+                .add(datasetPath(), dsgTesting)
+                .enablePing(true)
+                .enableMetrics(true)
+                .start();
+    }
+
+    @After public void stopServer() {
+        if ( server != null )
+            server.stop();
+    }
 }
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java
index 30130a6830..b897f07446 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/AbstractTestAuth_JDK.java
@@ -22,24 +22,31 @@ import java.net.Authenticator;
 import java.net.http.HttpClient;
 
 import org.apache.jena.http.auth.AuthLib;
+import org.apache.jena.sparql.core.DatasetGraph;
+import org.apache.jena.sparql.core.DatasetGraphFactory;
 import org.apache.jena.sparql.exec.http.QueryExecutionHTTP;
 import org.apache.jena.sparql.exec.http.QueryExecutionHTTPBuilder;
 import org.apache.jena.sparql.exec.http.UpdateExecutionHTTP;
 import org.apache.jena.sparql.exec.http.UpdateExecutionHTTPBuilder;
 import org.junit.After;
-import org.junit.AfterClass;
 import org.junit.Before;
-import org.junit.BeforeClass;
 
-public class AbstractTestAuth_JDK extends BaseFusekiTest {
+/**
+ * Common setup for running a server with an initially empty database with authentication by password file.
+ */
+
+public class AbstractTestAuth_JDK {
 
-    @BeforeClass public static void startServer() {
+    private FusekiServer server;
 
-//      FusekiLogging.setLogging();
-//      LogCtl.enable(Fuseki.actionLog);
-//      LogCtl.enable(Fuseki.serverLog);
+    protected String datasetName()    { return "database"; }
+    protected String datasetPath()    { return "/"+datasetName(); }
+    protected String databaseURL()    { return server.datasetURL(datasetPath()); }
+    protected String serverURL()      { return server.serverURL(); }
 
+    @Before public void startServer() {
         String passwordFile = "testing/Access/auth-jdk-passwd";
+        DatasetGraph dsgTesting = DatasetGraphFactory.createTxnMem();
         server = FusekiServer.create()
                 .port(0)
                 .passwordFile(passwordFile)
@@ -48,24 +55,13 @@ public class AbstractTestAuth_JDK extends BaseFusekiTest {
                 .add(datasetPath(), dsgTesting)
                 .build();
         server.start();
-        port = server.getPort();
-        serverURL = "http://localhost:"+port+"/";
-        //String authServiceQuery
     }
 
-    @AfterClass public static void stopServer() {
-//        try {
-//            if ( server != null )
-//                server.stop();
-//            server = null;
-//        } catch (Throwable th) {
-//            th.printStackTrace();
-//        }
+    @After public void stopServer() {
+        if ( server != null )
+            server.stop();
     }
 
-    @Before public void beforeTest() { resetDatabase(); }
-    @After public void afterTest() {}
-
     public static QueryExecutionHTTP withAuthJDK(QueryExecutionHTTPBuilder builder, String user, String passwd) {
         Authenticator authenticator = AuthLib.authenticator(user, passwd);
         HttpClient hc = HttpClient.newBuilder().authenticator(authenticator).build();
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/BaseFusekiTest.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/BaseFusekiTest.java
deleted file mode 100644
index 7931798985..0000000000
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/BaseFusekiTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.fuseki.main;
-
-import org.apache.jena.sparql.core.DatasetGraph;
-import org.apache.jena.sparql.core.DatasetGraphFactory;
-import org.apache.jena.sparql.exec.http.UpdateExecHTTP;
-import org.apache.jena.sparql.modify.request.Target;
-import org.apache.jena.sparql.modify.request.UpdateDrop;
-import org.apache.jena.system.Txn;
-import org.apache.jena.update.Update;
-
-public class BaseFusekiTest
-{
-    // Must be set by test
-    protected static DatasetGraph dsgTesting = DatasetGraphFactory.createTxnMem();
-    protected static FusekiServer server;
-    protected static int port;
-    protected static String serverURL;
-
-    public static final String datasetName()    { return "database"; }
-    public static final String datasetPath()    { return "/"+datasetName(); }
-
-
-    // Whether to use a transaction on the dataset or to use SPARQL Update.
-    protected static boolean CLEAR_DSG_DIRECTLY = true;
-
-    protected static void resetDatabase() {
-        if ( CLEAR_DSG_DIRECTLY ) {
-            Txn.executeWrite(dsgTesting, ()->dsgTesting.clear());
-        } else {
-            Update clearRequest = new UpdateDrop(Target.ALL);
-            try {
-                UpdateExecHTTP.service(serviceUpdate()).update(clearRequest).execute();
-            }
-            catch (Throwable e) {e.printStackTrace(); throw e;}
-        }
-    }
-
-    // Abstraction that runs a SPARQL server for tests.
-    protected static final String urlRoot()        { return serverURL; }
-    protected static final String databaseURL()    { return serverURL+datasetName(); }
-
-    protected static final String serviceUpdate()  { return databaseURL()+"/update"; }
-    protected static final String serviceQuery()   { return databaseURL()+"/query"; }
-    protected static final String serviceGSP_R()   { return databaseURL()+"/get"; }
-    protected static final String serviceGSP()     { return databaseURL()+"/data"; }
-}
-
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java
index 9004b858c7..996bacc440 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestAuthQuery_JDK.java
@@ -72,7 +72,7 @@ public class TestAuthQuery_JDK extends AbstractTestAuth_JDK {
     public void query_authenv_02_prefix_good() {
         QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(databaseURL()).query("ASK { }").build();
         // Server URL - a prefix.
-        String dsURL = serverURL;
+        String dsURL = serverURL();
         URI uri = URI.create(dsURL);
         AuthEnv.get().registerUsernamePassword(uri, "user", "password");
         try {
@@ -86,7 +86,7 @@ public class TestAuthQuery_JDK extends AbstractTestAuth_JDK {
     public void query_authenv_03_bad_endpoint() {
         QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(databaseURL()).query("ASK { }").build();
         // Wrong registration
-        String dsURL = serverURL+"anotherPlace";
+        String dsURL = serverURL()+"anotherPlace";
         URI uri = URI.create(dsURL);
         AuthEnv.get().registerUsernamePassword(uri, "user", "password");
         try {
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java
index b1320b7bfb..841626938b 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestMetrics.java
@@ -35,7 +35,7 @@ public class TestMetrics extends AbstractFusekiTest {
 
     @Test
     public void can_retrieve_metrics() {
-        String r = urlRoot() + "$/metrics";
+        String r = serverURL() + "$/metrics";
         HttpRequest request = HttpRequest.newBuilder().uri(HttpLib.toRequestURI(r)).build();
         HttpResponse<InputStream> response = HttpLib.executeJDK(HttpEnv.getDftHttpClient(), request, BodyHandlers.ofInputStream());
         String body = handleResponseRtnString(response);
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java
index a08d8d02ae..3fa37a4256 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/TestQuery.java
@@ -308,7 +308,7 @@ public class TestQuery extends AbstractFusekiTest {
         Assert.assertTrue(result.contains("http://example/x"));
     }
 
-    private static void execQuery(String queryString, int exceptedRowCount) {
+    private void execQuery(String queryString, int exceptedRowCount) {
         try ( QueryExecution qExec = QueryExecution.service(serviceQuery(), queryString) ) {
             ResultSet rs = qExec.execSelect();
             int x = ResultSetFormatter.consume(rs);
@@ -316,7 +316,7 @@ public class TestQuery extends AbstractFusekiTest {
         }
     }
 
-    private static void execQuery(String queryString, ResultSet expectedResultSet) {
+    private void execQuery(String queryString, ResultSet expectedResultSet) {
         try ( QueryExecution qExec = QueryExecution.service(serviceQuery(), queryString) ) {
             ResultSet rs = qExec.execSelect();
             boolean b = ResultSetCompare.equalsByTerm(rs, expectedResultSet);
diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java
index b9e0fa76f4..80871ac333 100644
--- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java
+++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/TestServiceDataAuthBuild.java
@@ -19,17 +19,17 @@
 package org.apache.jena.fuseki.main.access;
 
 import org.apache.jena.fuseki.main.FusekiServer;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Before;
 
 /**
  * AbstractTestServiceDatasetAuth with a configuration file.
  */
 public class TestServiceDataAuthBuild extends AbstractTestServiceDatasetAuth {
 
-    static FusekiServer server;
+    private FusekiServer server;
 
-    @BeforeClass public static void beforeClass () {
+    @Before public void before () {
         server = FusekiServer.create()
             //.verbose(true)
             .port(port)
@@ -38,7 +38,7 @@ public class TestServiceDataAuthBuild extends AbstractTestServiceDatasetAuth {
         server.start();
     }
 
-    @AfterClass public static void afterClass () {
+    @After public void afterClass () {
         server.stop();
     }
 
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/AbstractTestWebappAuth_JDK.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/AbstractTestWebappAuth_JDK.java
index c1b4255042..6b4d247950 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/AbstractTestWebappAuth_JDK.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/AbstractTestWebappAuth_JDK.java
@@ -34,17 +34,17 @@ import org.apache.jena.sparql.exec.http.QueryExecutionHTTP;
 import org.apache.jena.sparql.exec.http.QueryExecutionHTTPBuilder;
 import org.apache.jena.sparql.exec.http.UpdateExecutionHTTP;
 import org.apache.jena.sparql.exec.http.UpdateExecutionHTTPBuilder;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Before;
 
 public class AbstractTestWebappAuth_JDK {
 
-    protected static final int authPort             = WebLib.choosePort();
-    protected static final String authUrlRoot       = "http://localhost:"+authPort+"/";
-    protected static final String authDatasetPath   = "/dataset";
-    protected static final String authServiceUpdate = "http://localhost:"+authPort+authDatasetPath+"/update";
-    protected static final String authServiceQuery  = "http://localhost:"+authPort+authDatasetPath+"/query";
-    protected static final String authServiceREST   = "http://localhost:"+authPort+authDatasetPath+"/data";
+    protected int authPort               = WebLib.choosePort();
+    protected String authUrlRoot()       { return "http://localhost:"+authPort+"/"; }
+    protected String authDatasetPath()   { return "/dataset"; }
+    protected String authServiceUpdate() { return "http://localhost:"+authPort+authDatasetPath()+"/update"; }
+    protected String authServiceQuery()  { return "http://localhost:"+authPort+authDatasetPath()+"/query"; }
+    protected String authServiceREST()   { return "http://localhost:"+authPort+authDatasetPath()+"/data";}
     private static File realmFile;
 
     private static final String FusekiTestHome = "target/FusekiTest";
@@ -53,7 +53,7 @@ public class AbstractTestWebappAuth_JDK {
     // False when in TS_FusekiWebapp
     public static boolean RunDependently = true;
 
-    @BeforeClass public static void setupFusekiServer() throws IOException {
+    @Before public void setupFusekiServer() throws IOException {
         ensureEnvironment();
 
         realmFile = File.createTempFile("realm", ".properties");
@@ -64,7 +64,7 @@ public class AbstractTestWebappAuth_JDK {
             writer.write("forbidden: password, other");
         }
 
-        ServerCtl.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath, true);
+        ServerCtl.setupServer(authPort, realmFile.getAbsolutePath(), authDatasetPath(), true);
     }
 
     private static void ensureEnvironment() {
@@ -79,7 +79,7 @@ public class AbstractTestWebappAuth_JDK {
        }
     }
 
-    @AfterClass public static void teardownServer() {
+    @After public void teardownServer() {
         JettyFusekiWebapp.instance.stop();
     }
 
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthQuery_JDK.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthQuery_JDK.java
index 287687ba00..f504e5afed 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthQuery_JDK.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthQuery_JDK.java
@@ -32,7 +32,7 @@ import org.junit.runners.MethodSorters;
 public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
     @Test
     public void query_auth_jdk_01_no_auth() {
-        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }").build();
+        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }").build();
         // No auth credentials should result in an error
         HttpTest.expectQuery401(()->qe.execAsk());
     }
@@ -40,7 +40,7 @@ public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
     @Test
     public void query_auth_jdk_02_bad_auth() {
         // Auth - bad password
-        QueryExecutionHTTP qe = withAuthJDK(QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }"),
+        QueryExecutionHTTP qe = withAuthJDK(QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }"),
                                               "allowed", "incorrect");
         HttpTest.expectQuery401(()->qe.execAsk());
     }
@@ -48,7 +48,7 @@ public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
     @Test
     public void query_auth_jdk_03_good_auth() {
         // Auth credentials for valid user with correct password
-        QueryExecutionHTTP qe = withAuthJDK(QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }"),
+        QueryExecutionHTTP qe = withAuthJDK(QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }"),
                                               "allowed", "password");
         Assert.assertTrue(qe.execAsk());
     }
@@ -56,8 +56,8 @@ public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
     @Test
     public void query_authenv_01_good() {
         // Auth credentials for valid user with correct password
-        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }").build();
-        String dsURL = authServiceQuery;
+        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }").build();
+        String dsURL = authServiceQuery();
         URI uri = URI.create(dsURL);
         AuthEnv.get().registerUsernamePassword(uri, "allowed", "password");
         try {
@@ -69,8 +69,8 @@ public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
 
     @Test
     public void query_authenv_02_prefix_good() {
-        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }").build();
-        String dsURL = "http://localhost:"+authPort+authDatasetPath;
+        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }").build();
+        String dsURL = "http://localhost:"+authPort+authDatasetPath();
         URI uri = URI.create(dsURL);
         AuthEnv.get().registerUsernamePassword(uri, "allowed", "password");
         try {
@@ -82,7 +82,7 @@ public class TestWebappAuthQuery_JDK extends AbstractTestWebappAuth_JDK {
 
     @Test
     public void query_authenv_03_bad_endpoint() {
-        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery).query("ASK { }").build();
+        QueryExecutionHTTP qe = QueryExecutionHTTP.create().endpoint(authServiceQuery()).query("ASK { }").build();
         // Wrong registration
         String dsURL = "http://localhost:"+authPort+"/anotherPlace";
         URI uri = URI.create(dsURL);
diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthUpdate_JDK.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthUpdate_JDK.java
index cac628cb32..93f897d273 100644
--- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthUpdate_JDK.java
+++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/TestWebappAuthUpdate_JDK.java
@@ -36,7 +36,7 @@ public class TestWebappAuthUpdate_JDK extends AbstractTestWebappAuth_JDK {
     public void update_jdk_auth_01() {
         UpdateRequest updates = UpdateFactory.create("CREATE SILENT GRAPH <http://graph>");
         UpdateProcessor ue = UpdateExecutionHTTP.create()
-                                    .endpoint(authServiceUpdate)
+                                    .endpoint(authServiceUpdate())
                                     .update(updates)
                                     .build();
         // No auth credentials should result in an error
@@ -47,7 +47,7 @@ public class TestWebappAuthUpdate_JDK extends AbstractTestWebappAuth_JDK {
     public void update_jdk_auth_02() {
         UpdateRequest updates = UpdateFactory.create("CREATE SILENT GRAPH <http://graph>");
         UpdateProcessor ue = withAuthJDK(UpdateExecutionHTTP.create()
-                                               .endpoint(authServiceUpdate)
+                                               .endpoint(authServiceUpdate())
                                                .update(updates),
                                            "allowed", "bad-password");
         HttpTest.expect401(()->ue.execute());
@@ -57,7 +57,7 @@ public class TestWebappAuthUpdate_JDK extends AbstractTestWebappAuth_JDK {
     public void update_jdk_auth_03() {
         UpdateRequest updates = UpdateFactory.create("CREATE SILENT GRAPH <http://graph>");
         UpdateProcessor ue = withAuthJDK(UpdateExecutionHTTP.create()
-                                               .endpoint(authServiceUpdate)
+                                               .endpoint(authServiceUpdate())
                                                .update(updates),
                                            "allowed", "password");
         ue.execute();
@@ -67,7 +67,7 @@ public class TestWebappAuthUpdate_JDK extends AbstractTestWebappAuth_JDK {
     public void update_with_auth_04() {
         UpdateRequest updates = UpdateFactory.create("CREATE SILENT GRAPH <http://graph>");
         UpdateProcessor ue = withAuthJDK(UpdateExecutionHTTP.create()
-                                               .endpoint(authServiceUpdate)
+                                               .endpoint(authServiceUpdate())
                                                .update(updates),
                                            "allowed", "password");
         ue.execute();
@@ -77,8 +77,8 @@ public class TestWebappAuthUpdate_JDK extends AbstractTestWebappAuth_JDK {
     public void update_authenv_01_good() {
         // Auth credentials for valid user with correct password
         UpdateRequest updates = UpdateFactory.create("CREATE SILENT GRAPH <http://graph>");
-        UpdateProcessor ue = UpdateExecutionHTTP.create().endpoint(authServiceUpdate).update(updates).build();
-        String dsURL = authServiceUpdate;
+        UpdateProcessor ue = UpdateExecutionHTTP.create().endpoint(authServiceUpdate()).update(updates).build();
+        String dsURL = authServiceUpdate();
         URI uri = URI.create(dsURL);
         AuthEnv.get().registerUsernamePassword(uri, "allowed", "password");
         try {
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/http/TestAuthRemote.java b/jena-integration-tests/src/test/java/org/apache/jena/http/TestAuthRemote.java
index 171e8be009..fef420a02f 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/http/TestAuthRemote.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/http/TestAuthRemote.java
@@ -41,9 +41,8 @@ import org.apache.jena.sparql.exec.http.UpdateExecHTTP;
 import org.apache.jena.sparql.graph.GraphFactory;
 import org.apache.jena.sparql.sse.SSE;
 import org.apache.jena.test.conn.EnvTest;
-import org.junit.AfterClass;
+import org.junit.After;
 import org.junit.Before;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
@@ -53,17 +52,13 @@ public class TestAuthRemote {
     private static String user = "user";
     private static String password = "password";
 
-    private static EnvTest env;
-    @BeforeClass public static void beforeClass() {
+    private EnvTest env;
+    @Before public void beforeClass() {
         //FusekiLogging.setLogging();
         env = EnvTest.createAuth("/ds", DatasetGraphFactory.createTxnMem(), user, password);
     }
 
-    @Before public void before() {
-        env.clear();
-    }
-
-    @AfterClass public static void afterClass() {
+    @After public void after() {
         EnvTest.stop(env);
     }
 
diff --git a/jena-integration-tests/src/test/java/org/apache/jena/test/conn/EnvTest.java b/jena-integration-tests/src/test/java/org/apache/jena/test/conn/EnvTest.java
index 57a3ec7341..ee6021f198 100644
--- a/jena-integration-tests/src/test/java/org/apache/jena/test/conn/EnvTest.java
+++ b/jena-integration-tests/src/test/java/org/apache/jena/test/conn/EnvTest.java
@@ -55,17 +55,15 @@ import org.eclipse.jetty.security.UserStore;
 public class EnvTest {
 
 /* Cut&Paste
-    private static EnvTest env;
-    @BeforeClass public static void beforeClass() {
-        //FusekiLogging.setLogging(); -- development only
-        env = EnvTest.create("/ds");
-    }
+  For MS Windows
+
+    private EnvTest env;
 
     @Before public void before() {
-        env.clear();
+        env = EnvTest.create("/ds");
     }
 
-    @AfterClass public static void afterClass() {
+    @After public void after() {
         EnvTest.stop(env);
     }
 */
@@ -129,8 +127,7 @@ public class EnvTest {
                    .serverAuthPolicy(Auth.policyAllowSpecific(user));
         }
 
-        FusekiServer server = builder.build();
-        server.start();
+        FusekiServer server = builder.start();
         return server;
     }