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 6162653593e92261b32ae556ebf7245370b3db4a Author: Andy Seaborne <[email protected]> AuthorDate: Wed Jul 30 10:40:49 2025 +0100 Fix handling FUSEKI_BASE for during restart testing --- .../src/main/java/org/apache/jena/atlas/lib/Lib.java | 9 +++++++++ .../org/apache/jena/fuseki/mgt/FusekiServerCtl.java | 4 ++-- .../apache/jena/fuseki/server/TestFusekiServerCmd.java | 17 ++++++----------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java index ac8a079dfb..e31eee664d 100644 --- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java +++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Lib.java @@ -181,6 +181,15 @@ public class Lib System.getProperties().setProperty(sysPropName, value); } + /** + * Remove the system property. + * The process environment variables are immutable.). + * {@link #getenv(String)} looks in the system properties as well as the process environment variables. + */ + public static void unsetenv(String sysPropName) { + System.getProperties().remove(sysPropName); + } + /** Test whether a property (environment variable or system property) is true. */ public static boolean isPropertyOrEnvVarSetToTrue(String name) { return isPropertyOrEnvVarSetToTrue(name, name); diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java index 9cc1a4fd43..a573ae384e 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/mgt/FusekiServerCtl.java @@ -384,8 +384,8 @@ public class FusekiServerCtl { /** Running a full-features server sets some global state. Clear this up. (mainly for tests.)*/ public static void clearUpSystemState() { - System.getProperties().remove(FusekiServerCtl.envFusekiShiro); - System.getProperties().remove(FusekiServerCtl.envFusekiBase); + Lib.unsetenv(FusekiServerCtl.envFusekiShiro); + Lib.unsetenv(FusekiServerCtl.envFusekiBase); FusekiMain.resetCustomisers(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java index 52dd4f6c61..46b555af24 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/server/TestFusekiServerCmd.java @@ -25,7 +25,6 @@ import java.io.File; import java.io.IOException; import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -42,10 +41,9 @@ import org.apache.jena.sparql.exec.http.Params; */ public class TestFusekiServerCmd { - static String basearea = "target/run"; - static { - Lib.setenv("FUSEKI_BASE", basearea); - } + private static String FUSEKI_BASE = FusekiServerCtl.envFusekiBase; + + private static String basearea = "target/run"; private static void deleteFusekiDir() throws IOException { File file = new File(basearea); @@ -53,10 +51,6 @@ public class TestFusekiServerCmd { FileUtils.deleteDirectory(file); } - @BeforeAll static void beforeAll() throws IOException { - deleteFusekiDir(); - } - @BeforeEach void setup() throws IOException { clearUp(); } @@ -68,6 +62,8 @@ public class TestFusekiServerCmd { static void clearUp() throws IOException { deleteFusekiDir(); FusekiServerCtl.clearUpSystemState(); + // Put back the FUSEKI_BASE setting. + Lib.setenv(FUSEKI_BASE, basearea); } @Test public void plainStart() { @@ -80,7 +76,6 @@ public class TestFusekiServerCmd { // Create a persistent configuration. String dbName = "/ds93" ; - FusekiServer server0 = FusekiServerRunner.construct(); server0.start(); addDataset(server0, dbName); @@ -105,7 +100,7 @@ public class TestFusekiServerCmd { String actionDataset = serverURL+"$/datasets"; String datasetURL = server.datasetURL(dbName); Params params = Params.create().add("dbName", dbName).add("dbType", "mem"); - // Use the template form of adding a dataset.s + // Use the template form of adding a dataset. HttpOp.httpPostForm(actionDataset, params); }
