diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java index 15510439a00..22528e97904 100644 --- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java @@ -26,15 +26,12 @@ import org.apache.jena.atlas.lib.DateTimeUtils; import org.apache.jena.atlas.lib.Version; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.query.ARQ; import org.apache.jena.riot.system.stream.LocatorFTP; import org.apache.jena.riot.system.stream.LocatorHTTP; import org.apache.jena.riot.system.stream.StreamManager; import org.apache.jena.sparql.util.Context; -import org.apache.jena.sparql.util.MappingRegistry; -import org.apache.jena.sys.JenaSystem; -import org.apache.jena.tdb1.TDB1; -import org.apache.jena.tdb1.transaction.TransactionManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -103,6 +100,12 @@ public class Fuseki { public static boolean outputJettyServerHeader = developmentMode; public static boolean outputFusekiServerHeader = developmentMode; + /** + * Initialize is class. + * See also {@link FusekiCore} for Fuseki core initialization. + */ + public static void initConsts() {} + /** An identifier for the HTTP Fuseki server instance */ static public final String serverHttpName = NAME + " (" + VERSION + ")"; @@ -226,28 +229,6 @@ public static String serverStartedAt() { return startDateTime; } - private static boolean initialized = false; - /** - * Initialize an instance of the Fuseki server stack. - * This is not done via Jena's initialization mechanism - * but done explicitly to give more control. - * It is done after Jena initializes. - * Fuseki-main adds a Fuseki specific custom initialization - * round after this is run. - */ - public synchronized static void init() { - if ( initialized ) - return; - initialized = true; - JenaSystem.init(); - MappingRegistry.addPrefixMapping("fuseki", FusekiSymbolIRI); - - TDB1.setOptimizerWarningFlag(false); - // Don't use TDB1 batch commits. - // This can be slower, but it less memory hungry and more predictable. - TransactionManager.QueueBatchSize = 0; - } - /** * Get server global {@link org.apache.jena.sparql.util.Context}. * diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/FusekiCore.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/FusekiCore.java new file mode 100644 index 00000000000..c6025fd78d8 --- /dev/null +++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/system/FusekiCore.java @@ -0,0 +1,61 @@ +/* + * 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.system; + +import org.apache.jena.fuseki.Fuseki; +import org.apache.jena.sparql.util.MappingRegistry; +import org.apache.jena.sys.JenaSystem; +import org.apache.jena.tdb1.TDB1; +import org.apache.jena.tdb1.transaction.TransactionManager; + +/** + * Fuseki core initialization. + *

+ * Initialize an instance of the Fuseki server core code.. + * This is not done via Jena's initialization mechanism + * but done explicitly to give control. + *

+ * It is done after Jena initializes. + *

+ * {@code InitFusekiMain} is the code for Jena's initialization mechanism. + * It calls this class. + */ +public class FusekiCore { + + private static boolean initialized = false; + + public synchronized static void init() { + if ( initialized ) + return; + + // Avoid re-entrancy. + initialized = true; + + JenaSystem.init(); + // Touch the Fuseki class to make sure statics get initialized. + Fuseki.initConsts(); + MappingRegistry.addPrefixMapping("fuseki", Fuseki.FusekiSymbolIRI); + + // TDB1 + TDB1.setOptimizerWarningFlag(false); + // Don't use TDB1 batch commits. + // This can be slower, but it less memory hungry and more predictable. + TransactionManager.QueueBatchSize = 0; + } +} diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java index 62eddff7799..5846b72da89 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/FusekiServer.java @@ -65,7 +65,6 @@ import org.apache.jena.sparql.util.Context; import org.apache.jena.sparql.util.NotUniqueException; import org.apache.jena.sparql.util.graph.GraphUtils; -import org.apache.jena.sys.JenaSystem; import org.apache.jena.system.G; import org.apache.jena.web.HttpSC; import org.eclipse.jetty.ee10.servlet.DefaultServlet; @@ -114,8 +113,7 @@ public class FusekiServer { static { - JenaSystem.init(); - Fuseki.init(); + InitFusekiMain.init(); } /** diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java index d70f7f6571a..275ce679ea4 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/cmds/FusekiMain.java @@ -40,8 +40,9 @@ import org.apache.jena.fuseki.FusekiException; import org.apache.jena.fuseki.main.FusekiMainInfo; import org.apache.jena.fuseki.main.FusekiServer; -import org.apache.jena.fuseki.main.sys.FusekiModules; import org.apache.jena.fuseki.main.sys.FusekiAutoModules; +import org.apache.jena.fuseki.main.sys.FusekiModules; +import org.apache.jena.fuseki.main.sys.InitFusekiMain; import org.apache.jena.fuseki.server.DataAccessPoint; import org.apache.jena.fuseki.server.DataAccessPointRegistry; import org.apache.jena.fuseki.server.FusekiCoreInfo; @@ -163,7 +164,7 @@ public static FusekiServer.Builder builder(String... args) { static void run(String... argv) { JenaSystem.init(); - Fuseki.init(); + InitFusekiMain.init(); new FusekiMain(argv).mainRun(); } diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/mgt/ActionReload.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/mgt/ActionReload.java index cdd8a5e4ea0..410afb976f7 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/mgt/ActionReload.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/mgt/ActionReload.java @@ -64,4 +64,3 @@ public void execute(HttpAction action) { FusekiLib.reload(server, model); } } - diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/FusekiLifecycle.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/FusekiLifecycle.java index 70ddbb3973a..365346715a3 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/FusekiLifecycle.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/FusekiLifecycle.java @@ -24,7 +24,7 @@ * A {@link SubsystemLifecycle} for Fuseki. * This lifecycle is run after Jena system initialization. * Jena system initialization includes system initialization of Fuseki itself - * in {@link InitFuseki}. + * in {@link InitFusekiMain}. * This lifecycle is for extensions to an initialized Fuseki server * and is used via {@link FusekiAutoModule}. */ diff --git a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFuseki.java b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFusekiMain.java similarity index 89% rename from jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFuseki.java rename to jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFusekiMain.java index 0b0daafe870..4f6378ed4a9 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFuseki.java +++ b/jena-fuseki2/jena-fuseki-main/src/main/java/org/apache/jena/fuseki/main/sys/InitFusekiMain.java @@ -20,6 +20,7 @@ import org.apache.jena.cmd.Cmds; import org.apache.jena.fuseki.main.cmds.FusekiMainCmd; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.sys.JenaSubsystemLifecycle; import org.apache.jena.sys.JenaSystem; @@ -28,7 +29,7 @@ * Level 101 - called during Jena system initialization * and after Jena itself has initialized. */ -public class InitFuseki implements JenaSubsystemLifecycle { +public class InitFusekiMain implements JenaSubsystemLifecycle { private static volatile boolean initialized = false; @@ -49,13 +50,18 @@ public static void init() { if ( initialized ) { return; } - synchronized (InitFuseki.class) { + + synchronized (InitFusekiMain.class) { if ( initialized ) { JenaSystem.logLifecycle("Fuseki.init - skip"); return; } initialized = true; JenaSystem.logLifecycle("Fuseki.init - start"); + + // Ensure core constants are initialized first. + FusekiCore.init(); + // Leave until known to be needed FusekiServer build with no specific FusekikModules given. // FusekiModulesCtl.setup(); try { diff --git a/jena-fuseki2/jena-fuseki-main/src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle b/jena-fuseki2/jena-fuseki-main/src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle index 892450f9114..d6287470161 100644 --- a/jena-fuseki2/jena-fuseki-main/src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle +++ b/jena-fuseki2/jena-fuseki-main/src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle @@ -1 +1 @@ -org.apache.jena.fuseki.main.sys.InitFuseki +org.apache.jena.fuseki.main.sys.InitFusekiMain diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java index 5d823fad799..ade33038b79 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/access/AbstractTestFusekiSecurityAssembler.java @@ -36,6 +36,7 @@ import org.apache.jena.fuseki.Fuseki; import org.apache.jena.fuseki.main.FusekiLib; import org.apache.jena.fuseki.main.FusekiServer; +import org.apache.jena.fuseki.main.sys.InitFusekiMain; import org.apache.jena.graph.Node; import org.apache.jena.query.Dataset; import org.apache.jena.query.QuerySolution; @@ -46,7 +47,6 @@ import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.Quad; import org.apache.jena.sparql.sse.SSE; -import org.apache.jena.sys.JenaSystem; import org.apache.jena.system.Txn; import org.junit.AfterClass; import org.junit.Before; @@ -63,7 +63,7 @@ */ public abstract class AbstractTestFusekiSecurityAssembler { - static { JenaSystem.init(); } + static { InitFusekiMain.init(); } static final String DIR = "testing/Access/"; private final String assemblerFile; diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Inline.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Inline.java index fce39ffd2de..38aef337da9 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Inline.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Inline.java @@ -25,6 +25,7 @@ import org.apache.jena.fuseki.build.FusekiExt; import org.apache.jena.fuseki.main.FusekiServer; import org.apache.jena.fuseki.main.sys.FusekiModule; +import org.apache.jena.fuseki.main.sys.InitFusekiMain; import org.apache.jena.fuseki.server.Operation; import org.apache.jena.fuseki.servlets.ActionService; import org.apache.jena.fuseki.servlets.HttpAction; @@ -32,7 +33,6 @@ import org.apache.jena.http.HttpOp; import org.apache.jena.riot.WebContent; import org.apache.jena.sparql.core.DatasetGraphFactory; -import org.apache.jena.sys.JenaSystem; import org.apache.jena.web.HttpSC; /** @@ -46,8 +46,8 @@ public class ExFuseki_04_CustomOperation_Inline { static { - JenaSystem.init(); FusekiLogging.setLogging(); + InitFusekiMain.init(); } public static void main(String...args) { diff --git a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Module.java b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Module.java index b9429c34233..e4791698b5a 100644 --- a/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Module.java +++ b/jena-fuseki2/jena-fuseki-main/src/test/java/org/apache/jena/fuseki/main/examples/ExFuseki_04_CustomOperation_Module.java @@ -27,6 +27,7 @@ import org.apache.jena.fuseki.main.FusekiServer; import org.apache.jena.fuseki.main.sys.FusekiModule; import org.apache.jena.fuseki.main.sys.FusekiModules; +import org.apache.jena.fuseki.main.sys.InitFusekiMain; import org.apache.jena.fuseki.server.Operation; import org.apache.jena.fuseki.servlets.ActionService; import org.apache.jena.fuseki.servlets.HttpAction; @@ -35,7 +36,6 @@ import org.apache.jena.rdf.model.Model; import org.apache.jena.riot.WebContent; import org.apache.jena.sparql.core.DatasetGraphFactory; -import org.apache.jena.sys.JenaSystem; import org.apache.jena.web.HttpSC; /** @@ -48,8 +48,8 @@ public class ExFuseki_04_CustomOperation_Module { static { - JenaSystem.init(); FusekiLogging.setLogging(); + InitFusekiMain.init(); } // Example usage. diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java index d80d5b6fc94..d5316083a3d 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java @@ -32,6 +32,7 @@ import org.apache.jena.fuseki.FusekiException; import org.apache.jena.fuseki.mgt.Template; import org.apache.jena.fuseki.system.FusekiLogging; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.fuseki.webapp.FusekiEnv; import org.apache.jena.fuseki.webapp.FusekiServerListener; import org.apache.jena.fuseki.webapp.FusekiWebapp; @@ -95,8 +96,7 @@ static class FusekiCmdInner extends CmdARQ { static public void innerMain(String... argv) { JenaSystem.init(); - // Do explicitly so it happens after subsystem initialization. - Fuseki.init(); + FusekiCore.init(); new FusekiCmdInner(argv).mainRun(); } diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java index 02578d5a3a3..2af9efbebd3 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/cmd/JettyFusekiWebapp.java @@ -31,7 +31,9 @@ import org.apache.jena.fuseki.FusekiException; import org.apache.jena.fuseki.server.DataAccessPointRegistry; import org.apache.jena.fuseki.server.FusekiCoreInfo; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.fuseki.webapp.FusekiEnv; +import org.apache.jena.sys.JenaSystem; import org.eclipse.jetty.ee10.servlet.ServletContextHandler; import org.eclipse.jetty.ee10.servlet.security.ConstraintMapping; import org.eclipse.jetty.ee10.servlet.security.ConstraintSecurityHandler; @@ -59,7 +61,10 @@ public class JettyFusekiWebapp { // This class is becoming less important - it now sets up a Jetty server for in-process use // either for the command line in development // and in testing but not direct webapp deployments. - static { Fuseki.init(); } + static { + JenaSystem.init(); + FusekiCore.init(); + } public static JettyFusekiWebapp instance = null; diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiServerEnvironmentInit.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiServerEnvironmentInit.java index db676f05527..85b5e5ad838 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiServerEnvironmentInit.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiServerEnvironmentInit.java @@ -22,6 +22,7 @@ import jakarta.servlet.ServletContextListener; import org.apache.jena.fuseki.system.FusekiLogging; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.sys.JenaSystem; /** Setup the environment and logging. @@ -49,6 +50,8 @@ public void contextInitialized(ServletContextEvent sce) { } } JenaSystem.init(); + FusekiCore.init(); + } @Override diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiWebapp.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiWebapp.java index 19ae12803bb..a02335d1b85 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiWebapp.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/FusekiWebapp.java @@ -47,6 +47,7 @@ import org.apache.jena.fuseki.server.DataService; import org.apache.jena.fuseki.servlets.HttpAction; import org.apache.jena.fuseki.servlets.ServletOps; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.graph.Graph; import org.apache.jena.rdf.model.*; import org.apache.jena.rdfs.RDFSFactory; @@ -56,6 +57,7 @@ import org.apache.jena.riot.RDFParser; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.assembler.AssemblerUtils; +import org.apache.jena.sys.JenaSystem; public class FusekiWebapp { @@ -123,7 +125,8 @@ public class FusekiWebapp Path FUSEKI_HOME = FusekiEnv.FUSEKI_HOME; Path FUSEKI_BASE = FusekiEnv.FUSEKI_BASE; - Fuseki.init(); + JenaSystem.init(); + FusekiCore.init(); Fuseki.configLog.info("FUSEKI_HOME="+ ((FUSEKI_HOME==null) ? "unset" : FUSEKI_HOME.toString())); Fuseki.configLog.info("FUSEKI_BASE="+FUSEKI_BASE.toString()); diff --git a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/ShiroEnvironmentLoader.java b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/ShiroEnvironmentLoader.java index 30e4dd0b653..389a9946fcc 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/ShiroEnvironmentLoader.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/main/java/org/apache/jena/fuseki/webapp/ShiroEnvironmentLoader.java @@ -26,7 +26,9 @@ import jakarta.servlet.ServletContextListener; import org.apache.jena.fuseki.Fuseki; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.irix.IRIs; +import org.apache.jena.sys.JenaSystem; import org.apache.shiro.lang.io.ResourceUtils; import org.apache.shiro.web.env.EnvironmentLoader; import org.apache.shiro.web.env.ResourceBasedWebEnvironment; @@ -86,8 +88,9 @@ protected void customizeEnvironment(WebEnvironment environment) { /** Look for a Shiro ini file, or return null */ private static String huntForShiroIni(String[] locations) { + JenaSystem.init(); + FusekiCore.init(); FusekiEnv.setEnvironment(); - Fuseki.init(); for ( String loc : locations ) { // If file:, look for that file. // If a relative name without scheme, look in FUSEKI_BASE, FUSEKI_HOME, webapp. diff --git a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java index 39838f9ed84..0a573f9c719 100644 --- a/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java +++ b/jena-fuseki2/jena-fuseki-webapp/src/test/java/org/apache/jena/fuseki/ServerCtl.java @@ -30,6 +30,7 @@ import org.apache.jena.fuseki.cmd.FusekiArgs; import org.apache.jena.fuseki.cmd.JettyFusekiWebapp; import org.apache.jena.fuseki.cmd.JettyServerConfig; +import org.apache.jena.fuseki.system.FusekiCore; import org.apache.jena.fuseki.webapp.FusekiEnv; import org.apache.jena.fuseki.webapp.FusekiServerListener; import org.apache.jena.fuseki.webapp.FusekiWebapp; @@ -37,6 +38,7 @@ import org.apache.jena.sparql.core.DatasetGraphFactory; import org.apache.jena.sparql.modify.request.Target; import org.apache.jena.sparql.modify.request.UpdateDrop; +import org.apache.jena.sys.JenaSystem; import org.apache.jena.system.Txn; import org.apache.jena.update.Update; import org.apache.jena.update.UpdateExecutionFactory; @@ -83,7 +85,10 @@ * */ public class ServerCtl { - static { Fuseki.init(); } + static { + JenaSystem.init(); + FusekiCore.init(); + } /* Cut&Paste versions: