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

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

commit 38a237ed4deb7c295de3faf1aacc5a9a16889093
Author: Thomas Thelen <[email protected]>
AuthorDate: Wed Aug 5 06:59:54 2026 -0700

    GH-2340: jena-fuseki-geosparql: Run one server per unit test
---
 .../apache/jena/fuseki/geosparql/EmptyTest.java    | 33 +++++++++++++---------
 .../org/apache/jena/fuseki/geosparql/MainTest.java | 27 ++++++++++--------
 .../org/apache/jena/fuseki/geosparql/TDB2Test.java | 27 ++++++++++--------
 .../org/apache/jena/fuseki/geosparql/TDBTest.java  | 27 ++++++++++--------
 4 files changed, 64 insertions(+), 50 deletions(-)

diff --git 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/EmptyTest.java
 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/EmptyTest.java
index f29cffe57f..36326bfd49 100644
--- 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/EmptyTest.java
+++ 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/EmptyTest.java
@@ -28,11 +28,12 @@ import java.util.List;
 
 import com.beust.jcommander.JCommander;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 import org.apache.jena.atlas.web.HttpException;
+import org.apache.jena.atlas.web.WebLib;
 import org.apache.jena.fuseki.geosparql.cli.ArgsConfig;
 import org.apache.jena.geosparql.spatial.SpatialIndexException;
 import org.apache.jena.query.Dataset;
@@ -48,11 +49,13 @@ import org.apache.jena.update.UpdateRequest;
 
 public class EmptyTest {
 
-    private static GeosparqlServer SERVER;
+    // A server per test, on a fresh port.
+    private GeosparqlServer server;
 
-    @BeforeAll
-    public static void setUpClass() throws DatasetException, 
SpatialIndexException {
-        String[] args = {"-u", "--port", "4049"};
+    @BeforeEach
+    public void setUp() throws DatasetException, SpatialIndexException {
+        int port = WebLib.choosePort();
+        String[] args = {"-u", "--port", Integer.toString(port)};
 
         ArgsConfig argsConfig = new ArgsConfig();
         JCommander.newBuilder()
@@ -64,8 +67,8 @@ public class EmptyTest {
         Dataset dataset = DatasetOperations.setup(argsConfig);
 
         //Configure server
-        SERVER = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
-        SERVER.start();
+        server = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
+        server.start();
 
         //Add data
         String update = "PREFIX geo: <http://www.opengis.net/ont/geosparql#>\n"
@@ -84,19 +87,21 @@ public class EmptyTest {
 
         Runnable r = ()->{
             UpdateRequest updateRequest = UpdateFactory.create(update);
-            UpdateExecution updateProcessor = 
UpdateExecution.service(SERVER.getLocalServiceURL()).update(updateRequest).build();
+            UpdateExecution updateProcessor = 
UpdateExecution.service(server.getLocalServiceURL()).update(updateRequest).build();
             updateProcessor.execute();
         } ;
         try {
             Helper.run(r);
         } catch (QueryExceptionHTTP | HttpException ex) {
-            SERVER.shutdown();
+            server.shutdown();
         }
     }
 
-    @AfterAll
-    public static void tearDownClass() {
-        SERVER.shutdown();
+    @AfterEach
+    public void tearDown() {
+        try {
+            server.shutdown();
+        } catch (Throwable th) {}
     }
 
     /**
@@ -112,7 +117,7 @@ public class EmptyTest {
                 + "}ORDER by ?obj";
         Runnable r = ()->{
             List<Resource> result = new ArrayList<>();
-            try (QueryExecution qe = 
QueryExecution.service(SERVER.getLocalServiceURL()).query(query).build()) {
+            try (QueryExecution qe = 
QueryExecution.service(server.getLocalServiceURL()).query(query).build()) {
                 ResultSet rs = qe.execSelect();
 
                 while (rs.hasNext()) {
diff --git 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/MainTest.java
 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/MainTest.java
index 27e924494f..e0939f8f07 100644
--- 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/MainTest.java
+++ 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/MainTest.java
@@ -27,10 +27,11 @@ import java.util.List;
 
 import com.beust.jcommander.JCommander;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import org.apache.jena.atlas.web.WebLib;
 import org.apache.jena.fuseki.geosparql.cli.ArgsConfig;
 import org.apache.jena.geosparql.spatial.SpatialIndexException;
 import org.apache.jena.query.Dataset;
@@ -45,11 +46,13 @@ public class MainTest {
 
     static { JenaSystem.init(); }
 
-    private static GeosparqlServer SERVER;
+    // A server per test, on a fresh port.
+    private GeosparqlServer server;
 
-    @BeforeAll
-    public static void setUpClass() throws DatasetException, 
SpatialIndexException {
-        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "--port", 
"4048"};
+    @BeforeEach
+    public void setUp() throws DatasetException, SpatialIndexException {
+        int port = WebLib.choosePort();
+        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "--port", 
Integer.toString(port)};
 
         ArgsConfig argsConfig = new ArgsConfig();
         JCommander.newBuilder()
@@ -61,14 +64,14 @@ public class MainTest {
         Dataset dataset = DatasetOperations.setup(argsConfig);
 
         //Configure server
-        SERVER = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
-        SERVER.start();
+        server = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
+        server.start();
     }
 
-    @AfterAll
-    public static void tearDownClass() {
+    @AfterEach
+    public void tearDown() {
         try {
-            SERVER.shutdown();
+            server.shutdown();
         } catch (Throwable th) {}
     }
 
@@ -87,7 +90,7 @@ public class MainTest {
 
         Runnable r = ()->{
             List<Resource> result = new ArrayList<>();
-            try (QueryExecution qe = 
QueryExecution.service(SERVER.getLocalServiceURL()).query(query).build()) {
+            try (QueryExecution qe = 
QueryExecution.service(server.getLocalServiceURL()).query(query).build()) {
                 ResultSet rs = qe.execSelect();
 
                 while (rs.hasNext()) {
diff --git 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDB2Test.java
 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDB2Test.java
index 3b00508b89..c77e420e0d 100644
--- 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDB2Test.java
+++ 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDB2Test.java
@@ -30,10 +30,11 @@ import java.util.List;
 
 import com.beust.jcommander.JCommander;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import org.apache.jena.atlas.web.WebLib;
 import org.apache.jena.fuseki.geosparql.cli.ArgsConfig;
 import org.apache.jena.geosparql.spatial.SpatialIndexException;
 import org.apache.jena.query.Dataset;
@@ -45,12 +46,14 @@ import org.apache.jena.rdf.model.ResourceFactory;
 
 public class TDB2Test {
 
-    private static GeosparqlServer SERVER;
+    // A server per test, on a fresh port.
+    private GeosparqlServer server;
 
-    @BeforeAll
-    public static void setUpClass() throws DatasetException, 
SpatialIndexException, IOException {
+    @BeforeEach
+    public void setUp() throws DatasetException, SpatialIndexException, 
IOException {
         Path tempTDBDir = Files.createTempDirectory("geospoarql");
-        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "-t", 
tempTDBDir.toAbsolutePath().toString(), "-t2", "--port", "4047"};
+        int port = WebLib.choosePort();
+        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "-t", 
tempTDBDir.toAbsolutePath().toString(), "-t2", "--port", 
Integer.toString(port)};
 
         ArgsConfig argsConfig = new ArgsConfig();
         JCommander.newBuilder()
@@ -62,14 +65,14 @@ public class TDB2Test {
         Dataset dataset = DatasetOperations.setup(argsConfig);
 
         //Configure server
-        SERVER = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
-        SERVER.start();
+        server = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
+        server.start();
     }
 
-    @AfterAll
-    public static void tearDownClass() {
+    @AfterEach
+    public void tearDown() {
         try {
-            SERVER.shutdown();
+            server.shutdown();
         } catch (Throwable th) {}
     }
 
@@ -88,7 +91,7 @@ public class TDB2Test {
                 + "}ORDER by ?obj";
         Runnable r = () -> {
             List<Resource> result = new ArrayList<>();
-            try (QueryExecution qe = 
QueryExecution.service(SERVER.getLocalServiceURL()).query(query).build()) {
+            try (QueryExecution qe = 
QueryExecution.service(server.getLocalServiceURL()).query(query).build()) {
                 ResultSet rs = qe.execSelect();
 
                 while (rs.hasNext()) {
diff --git 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDBTest.java
 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDBTest.java
index 43814dbe04..95d09dbf23 100644
--- 
a/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDBTest.java
+++ 
b/jena-fuseki2/jena-fuseki-geosparql/src/test/java/org/apache/jena/fuseki/geosparql/TDBTest.java
@@ -30,10 +30,11 @@ import java.util.List;
 
 import com.beust.jcommander.JCommander;
 
-import org.junit.jupiter.api.AfterAll;
-import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import org.apache.jena.atlas.web.WebLib;
 import org.apache.jena.fuseki.geosparql.cli.ArgsConfig;
 import org.apache.jena.geosparql.spatial.SpatialIndexException;
 import org.apache.jena.query.Dataset;
@@ -45,12 +46,14 @@ import org.apache.jena.rdf.model.ResourceFactory;
 
 public class TDBTest {
 
-    private static GeosparqlServer SERVER;
+    // A server per test, on a fresh port.
+    private GeosparqlServer server;
 
-    @BeforeAll
-    public static void setUpClass() throws DatasetException, 
SpatialIndexException, IOException {
+    @BeforeEach
+    public void setUp() throws DatasetException, SpatialIndexException, 
IOException {
         Path tempTDBDir = Files.createTempDirectory("geospoarql");
-        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "-t", 
tempTDBDir.toAbsolutePath().toString(), "-t2", "--port", "4047"};
+        int port = WebLib.choosePort();
+        String[] args = {"-rf", "geosparql_test.rdf>xml", "-i", "-t", 
tempTDBDir.toAbsolutePath().toString(), "-t2", "--port", 
Integer.toString(port)};
 
         ArgsConfig argsConfig = new ArgsConfig();
         JCommander.newBuilder()
@@ -62,14 +65,14 @@ public class TDBTest {
         Dataset dataset = DatasetOperations.setup(argsConfig);
 
         //Configure server
-        SERVER = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
-        SERVER.start();
+        server = new GeosparqlServer(argsConfig.getPort(), 
argsConfig.getDatsetName(), argsConfig.isLoopbackOnly(), dataset, 
argsConfig.isUpdateAllowed());
+        server.start();
     }
 
-    @AfterAll
-    public static void tearDownClass() {
+    @AfterEach
+    public void tearDown() {
         try {
-            SERVER.shutdown();
+            server.shutdown();
         } catch (Throwable th) {}
     }
 
@@ -87,7 +90,7 @@ public class TDBTest {
                 + "    <http://example.org/Geometry#PolygonH> geo:sfContains 
?obj .\n"
                 + "}ORDER by ?obj";
         List<Resource> result = new ArrayList<>();
-        try (QueryExecution qe = 
QueryExecution.service(SERVER.getLocalServiceURL()).query(query).build()) {
+        try (QueryExecution qe = 
QueryExecution.service(server.getLocalServiceURL()).query(query).build()) {
             ResultSet rs = qe.execSelect();
 
             while (rs.hasNext()) {

Reply via email to