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 2018/04/25 09:57:11 UTC
[2/6] jena git commit: [JENA-1524] org.apache.jena.system is split by
org.apache.jena.arq and org.apache.jena.core
[JENA-1524] org.apache.jena.system is split by org.apache.jena.arq and org.apache.jena.core
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d82328d9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d82328d9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d82328d9
Branch: refs/heads/master
Commit: d82328d905b0f8ae40f699990ffe800728824975
Parents: bea3495
Author: Christopher Hanna Johnson <ch...@gmail.com>
Authored: Sun Apr 15 23:24:12 2018 +0200
Committer: Christopher Hanna Johnson <ch...@gmail.com>
Committed: Mon Apr 16 00:23:49 2018 +0200
----------------------------------------------------------------------
apache-jena-osgi/jena-osgi/pom.xml | 2 +-
.../java/org/apache/jena/osgi/Activator.java | 2 +-
...rg.apache.jena.system.JenaSubsystemLifecycle | 2 +-
.../main/java/org/apache/jena/query/ARQ.java | 2 +-
.../main/java/org/apache/jena/query/Query.java | 2 +-
.../apache/jena/query/ResultSetFormatter.java | 2 +-
.../main/java/org/apache/jena/riot/IO_Jena.java | 2 +-
.../java/org/apache/jena/riot/RDFDataMgr.java | 2 +-
.../org/apache/jena/riot/RDFWriterRegistry.java | 2 +-
.../main/java/org/apache/jena/riot/RIOT.java | 2 +-
.../java/org/apache/jena/riot/ResultSetMgr.java | 2 +-
.../jena/riot/resultset/rw/ResultsWriter.java | 2 +-
.../org/apache/jena/riot/system/InitRIOT.java | 2 +-
.../apache/jena/riot/system/SerializerRDF.java | 4 +-
.../java/org/apache/jena/sparql/core/Var.java | 2 +-
.../sparql/core/assembler/AssemblerUtils.java | 2 +-
.../org/apache/jena/sparql/expr/NodeValue.java | 2 +-
.../apache/jena/sparql/graph/GraphFactory.java | 2 +-
.../java/org/apache/jena/sparql/sse/SSE.java | 2 +-
.../org/apache/jena/sparql/system/InitARQ.java | 2 +-
.../org/apache/jena/sparql/util/ExprUtils.java | 2 +-
.../java/org/apache/jena/system/JenaInit.java | 40 ++++
.../java/org/apache/jena/riot/TS_LangSuite.java | 2 +-
.../jena/riot/system/TestSerializable.java | 2 +-
.../org/apache/jena/sparql/ARQTestSuite.java | 2 +-
.../sparql/algebra/optimize/TestOptimizer.java | 2 +-
.../jena/sparql/function/js/TestSPARQL_JS.java | 2 +-
.../function/library/TestFnFunctions.java | 2 +-
.../jena/sparql/resultset/TestResultSet.java | 2 +-
jena-base/pom.xml | 4 +-
jena-cmds/src/main/java/arq/cmdline/CmdARQ.java | 2 +-
.../src/main/java/arq/cmdline/ModContext.java | 2 +-
jena-cmds/src/main/java/arq/qexpr.java | 2 +-
jena-cmds/src/main/java/jena/rdfcat.java | 2 +-
jena-cmds/src/main/java/jena/rdfcompare.java | 2 +-
.../src/main/java/riotcmd/CmdLangParse.java | 2 +-
jena-cmds/src/main/java/riotcmd/dumpthrift.java | 2 +-
.../java/tdb/bulkloader2/CmdIndexBuild.java | 2 +-
.../main/java/tdb/bulkloader2/CmdIndexCopy.java | 2 +-
.../tdb/bulkloader2/CmdNodeTableBuilder.java | 2 +-
.../java/tdb/bulkloader2/CmdRewriteIndex.java | 2 +-
jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java | 2 +-
.../src/main/java/tdb2/cmdline/CmdTDB.java | 2 +-
.../src/test/java/riotcmd/rdflangtest.java | 2 +-
.../assembler/assemblers/AssemblerBase.java | 2 +-
.../main/java/org/apache/jena/graph/Node.java | 2 +-
.../java/org/apache/jena/graph/NodeFactory.java | 2 +-
.../main/java/org/apache/jena/graph/Triple.java | 2 +-
.../org/apache/jena/rdf/model/ModelFactory.java | 2 +-
.../apache/jena/rdf/model/impl/ModelCom.java | 2 +-
.../java/org/apache/jena/sys/InitJenaCore.java | 63 ++++++
.../apache/jena/sys/JenaSubsystemLifecycle.java | 35 +++
.../apache/jena/sys/JenaSubsystemRegistry.java | 53 +++++
.../jena/sys/JenaSubsystemRegistryBasic.java | 92 ++++++++
.../java/org/apache/jena/sys/JenaSystem.java | 225 +++++++++++++++++++
.../java/org/apache/jena/sys/Serializer.java | 84 +++++++
.../org/apache/jena/system/InitJenaCore.java | 63 ------
.../jena/system/JenaSubsystemLifecycle.java | 35 ---
.../jena/system/JenaSubsystemRegistry.java | 53 -----
.../jena/system/JenaSubsystemRegistryBasic.java | 92 --------
.../java/org/apache/jena/system/JenaSystem.java | 225 -------------------
.../java/org/apache/jena/system/Serializer.java | 84 -------
.../java/org/apache/jena/util/FileManager.java | 2 +-
...rg.apache.jena.system.JenaSubsystemLifecycle | 2 +-
.../java/org/apache/jena/test/JenaTestBase.java | 2 +-
.../java/org/apache/jena/lang/csv/InitCSV.java | 2 +-
.../main/java/org/apache/jena/tdb2/TDB2.java | 2 +-
.../java/org/apache/jena/tdb2/TDB2Factory.java | 2 +-
.../tdb2/assembler/DatasetAssemblerTDB.java | 2 +-
.../jena/tdb2/sys/DatabaseConnection.java | 2 +-
.../java/org/apache/jena/tdb2/sys/InitTDB2.java | 2 +-
.../org/apache/jena/tdb2/sys/SystemTDB.java | 2 +-
.../apache/jena/tdb2/store/TestDatasetTDB.java | 2 +-
.../java/org/apache/jena/fuseki/Fuseki.java | 2 +-
.../apache/jena/fuseki/cmds/FusekiBasicCmd.java | 2 +-
.../java/org/apache/jena/fuseki/Fuseki.java | 2 +-
.../org/apache/jena/fuseki/cmd/FusekiCmd.java | 2 +-
.../server/FusekiServerEnvironmentInit.java | 2 +-
.../test/assembler/TestDatasetAssembler.java | 2 +-
.../jena/jdbc/AbstractJenaDriverTests.java | 2 +-
.../AbstractJenaConnectionTests.java | 2 +-
.../results/AbstractDatabaseMetadataTests.java | 2 +-
.../jdbc/results/AbstractResultSetTests.java | 2 +-
.../org/apache/jena/jdbc/mem/MemDriver.java | 2 +-
.../jena/jdbc/remote/RemoteEndpointDriver.java | 2 +-
.../AbstractRemoteEndpointResultSetTests.java | 2 +-
.../org/apache/jena/jdbc/tdb/TDBDriver.java | 2 +-
.../org/apache/jena/permissions/Factory.java | 2 +-
.../rdfconnection/RDFConnectionFactory.java | 2 +-
.../src/main/java/org/apache/jena/sdb/SDB.java | 2 +-
.../java/org/apache/jena/sdb/SDBFactory.java | 2 +-
.../java/org/apache/jena/sdb/core/InitSDB.java | 2 +-
.../jena/query/spatial/InitJenaSpatial.java | 2 +-
.../query/spatial/SpatialDatasetFactory.java | 2 +-
.../apache/jena/query/spatial/SpatialQuery.java | 2 +-
.../src/main/java/org/apache/jena/tdb/TDB.java | 2 +-
.../java/org/apache/jena/tdb/TDBFactory.java | 2 +-
.../jena/tdb/assembler/DatasetAssemblerTDB.java | 2 +-
.../java/org/apache/jena/tdb/sys/InitTDB.java | 2 +-
.../java/org/apache/jena/tdb/sys/SystemTDB.java | 2 +-
.../jena/query/text/es/InitJenaTextES.java | 2 +-
.../org/apache/jena/query/text/es/TextES.java | 2 +-
.../query/text/es/TextESDatasetFactory.java | 2 +-
.../apache/jena/query/text/InitJenaText.java | 2 +-
.../jena/query/text/TextDatasetFactory.java | 2 +-
.../org/apache/jena/query/text/TextQuery.java | 2 +-
.../text/assembler/TestEntityMapAssembler.java | 2 +-
.../assembler/TestGenericAnalyzerAssembler.java | 2 +-
.../assembler/TestTextDatasetAssembler.java | 2 +-
.../assembler/TestTextIndexLuceneAssembler.java | 2 +-
110 files changed, 691 insertions(+), 651 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/apache-jena-osgi/jena-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/apache-jena-osgi/jena-osgi/pom.xml b/apache-jena-osgi/jena-osgi/pom.xml
index 03b3032..aa434ae 100644
--- a/apache-jena-osgi/jena-osgi/pom.xml
+++ b/apache-jena-osgi/jena-osgi/pom.xml
@@ -145,7 +145,7 @@
</dependency>
<!--
NOTE: Also update
- src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
+ src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle
to the concatenation of the different Jena modules' JenaSubsystemLifecycle
(order does not matter). See JENA-1139 for details.
-->
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/apache-jena-osgi/jena-osgi/src/main/java/org/apache/jena/osgi/Activator.java
----------------------------------------------------------------------
diff --git a/apache-jena-osgi/jena-osgi/src/main/java/org/apache/jena/osgi/Activator.java b/apache-jena-osgi/jena-osgi/src/main/java/org/apache/jena/osgi/Activator.java
index 0d9055d..310ba57 100644
--- a/apache-jena-osgi/jena-osgi/src/main/java/org/apache/jena/osgi/Activator.java
+++ b/apache-jena-osgi/jena-osgi/src/main/java/org/apache/jena/osgi/Activator.java
@@ -18,7 +18,7 @@
package org.apache.jena.osgi;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
index 28c4284..52ac905 100644
--- a/apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
+++ b/apache-jena-osgi/jena-osgi/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -1,4 +1,4 @@
-org.apache.jena.system.InitJenaCore
+org.apache.jena.sys.InitJenaCore
org.apache.jena.riot.system.InitRIOT
org.apache.jena.sparql.system.InitARQ
org.apache.jena.tdb.sys.InitTDB
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
index e319bc8..fa99256 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ARQ.java
@@ -37,7 +37,7 @@ import org.apache.jena.sparql.pfunction.PropertyFunctionRegistry ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/query/Query.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/Query.java b/jena-arq/src/main/java/org/apache/jena/query/Query.java
index d29c6ac..3eea849 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/Query.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/Query.java
@@ -40,7 +40,7 @@ import org.apache.jena.sparql.syntax.Element ;
import org.apache.jena.sparql.syntax.PatternVars ;
import org.apache.jena.sparql.syntax.Template ;
import org.apache.jena.sparql.util.FmtUtils ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** The data structure for a query as presented externally.
* There are two ways of creating a query - use the parser to turn
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
index 1b372fc..3d2aa83 100644
--- a/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
+++ b/jena-arq/src/main/java/org/apache/jena/query/ResultSetFormatter.java
@@ -45,7 +45,7 @@ import org.apache.jena.sparql.resultset.ResultsFormat;
import org.apache.jena.sparql.resultset.TextOutput;
import org.apache.jena.sparql.resultset.XMLOutput;
import org.apache.jena.sparql.serializer.SerializationContext ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
/** ResultSetFormatter - Convenience ways to call the various output formatters.
* in various formats.
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/IO_Jena.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/IO_Jena.java b/jena-arq/src/main/java/org/apache/jena/riot/IO_Jena.java
index e04e7e8..12a054f 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/IO_Jena.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/IO_Jena.java
@@ -20,7 +20,7 @@ package org.apache.jena.riot ;
import org.apache.jena.riot.system.IO_JenaReaders ;
import org.apache.jena.riot.system.IO_JenaWriters ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
public class IO_Jena
{
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
index 3430056..df40a2b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFDataMgr.java
@@ -45,7 +45,7 @@ import org.apache.jena.sparql.core.Quad ;
import org.apache.jena.sparql.graph.GraphFactory ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java b/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
index fa367ce..ce371d2 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RDFWriterRegistry.java
@@ -25,7 +25,7 @@ import org.apache.jena.riot.system.RiotLib ;
import org.apache.jena.riot.thrift.WriterDatasetThrift ;
import org.apache.jena.riot.thrift.WriterGraphThrift ;
import org.apache.jena.riot.writer.* ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
public class RDFWriterRegistry
{
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
index 2bd31c3..ccc06c2 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
@@ -24,7 +24,7 @@ import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
public class RIOT {
// Initialization statics must be first in the class to avoid
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java b/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java
index 965d4c8..fa693a1 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/ResultSetMgr.java
@@ -33,7 +33,7 @@ import org.apache.jena.riot.resultset.rw.ResultsWriter;
import org.apache.jena.sparql.resultset.ResultSetException;
import org.apache.jena.sparql.resultset.SPARQLResult;
import org.apache.jena.sparql.util.Context ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
/**
* Reading and writing of Result Sets.
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
index 28c3953..3cf6b09 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/resultset/rw/ResultsWriter.java
@@ -30,7 +30,7 @@ import org.apache.jena.riot.resultset.ResultSetWriter;
import org.apache.jena.riot.resultset.ResultSetWriterFactory;
import org.apache.jena.riot.resultset.ResultSetWriterRegistry;
import org.apache.jena.sparql.util.Context;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
public class ResultsWriter {
static { JenaSystem.init(); }
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
index 1f03826..9f5cec4 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
@@ -19,7 +19,7 @@
package org.apache.jena.riot.system;
import org.apache.jena.riot.RIOT ;
-import org.apache.jena.system.JenaSubsystemLifecycle ;
+import org.apache.jena.sys.JenaSubsystemLifecycle ;
/** RIOT initialization. Used by {@code JenaSystem} */
public class InitRIOT implements JenaSubsystemLifecycle {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/riot/system/SerializerRDF.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/SerializerRDF.java b/jena-arq/src/main/java/org/apache/jena/riot/system/SerializerRDF.java
index f5d7a73..dfb054b 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/SerializerRDF.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/SerializerRDF.java
@@ -28,8 +28,8 @@ import org.apache.thrift.protocol.TProtocol;
public class SerializerRDF {
public static void init() {
- org.apache.jena.system.Serializer.setNodeSerializer(SNode::new);
- org.apache.jena.system.Serializer.setTripleSerializer(STriple::new);
+ org.apache.jena.sys.Serializer.setNodeSerializer(SNode::new);
+ org.apache.jena.sys.Serializer.setTripleSerializer(STriple::new);
org.apache.jena.riot.system.Serializer.setQuadSerializer(SQuad::new);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/core/Var.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Var.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Var.java
index a5c7d8b..cd3faab 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Var.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Var.java
@@ -28,7 +28,7 @@ import org.apache.jena.sparql.ARQConstants ;
import org.apache.jena.sparql.ARQInternalErrorException ;
import org.apache.jena.sparql.engine.binding.Binding ;
import org.apache.jena.sparql.expr.ExprVar ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
/** A SPARQL variable */
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
index a9aa7bb..d358841 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/assembler/AssemblerUtils.java
@@ -35,7 +35,7 @@ import org.apache.jena.sparql.util.MappingRegistry ;
import org.apache.jena.sparql.util.Symbol ;
import org.apache.jena.sparql.util.TypeNotUniqueException ;
import org.apache.jena.sparql.util.graph.GraphUtils ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.vocabulary.RDFS ;
import static org.apache.jena.sparql.core.assembler.DatasetAssemblerVocab.*;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
index ece4fe7..1a1b675 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java
@@ -58,7 +58,7 @@ import org.apache.jena.sparql.graph.NodeConst ;
import org.apache.jena.sparql.graph.NodeTransform ;
import org.apache.jena.sparql.serializer.SerializationContext ;
import org.apache.jena.sparql.util.* ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.vocabulary.RDF ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java
index fe0c12c..e8362fa 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/graph/GraphFactory.java
@@ -26,7 +26,7 @@ import org.apache.jena.graph.impl.GraphPlain ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.ModelFactory ;
import org.apache.jena.sparql.SystemARQ ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** Ways to make graphs and models */
public class GraphFactory
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
index 6de6137..05b83ff 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java
@@ -58,7 +58,7 @@ import org.apache.jena.sparql.sse.writers.WriterOp ;
import org.apache.jena.sparql.util.FmtUtils ;
import org.apache.jena.sparql.vocabulary.FOAF ;
import org.apache.jena.sparql.vocabulary.ListPFunction ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.util.FileUtils ;
import org.apache.jena.vocabulary.* ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java b/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
index d88d989..48a605a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
@@ -19,7 +19,7 @@
package org.apache.jena.sparql.system;
import org.apache.jena.query.ARQ ;
-import org.apache.jena.system.JenaSubsystemLifecycle ;
+import org.apache.jena.sys.JenaSubsystemLifecycle ;
/** ARQ initialization. Used by {@code JenaSystem} */
public class InitARQ implements JenaSubsystemLifecycle {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/sparql/util/ExprUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/ExprUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/ExprUtils.java
index c341e9f..86dc006 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/ExprUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/ExprUtils.java
@@ -42,7 +42,7 @@ import org.apache.jena.sparql.serializer.SerializationContext ;
import org.apache.jena.sparql.sse.SSE ;
import org.apache.jena.sparql.sse.SSEParseException ;
import org.apache.jena.sparql.sse.builders.ExprBuildException ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** Misc support for Expr */
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/main/java/org/apache/jena/system/JenaInit.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/system/JenaInit.java b/jena-arq/src/main/java/org/apache/jena/system/JenaInit.java
new file mode 100644
index 0000000..b159be1
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/system/JenaInit.java
@@ -0,0 +1,40 @@
+/**
+ * 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.system;
+
+import org.apache.jena.sys.JenaSystem;
+
+/**
+ * This is a temporary adapter for implementations to transition to [JENA-1524]
+ */
+public class JenaInit {
+
+ /**
+ * Initialize Jena.
+ */
+ public static void init() {
+ JenaSystem.init();
+ }
+
+ /** Shutdown subsystems */
+ public static void shutdown() {
+ JenaSystem.shutdown();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/riot/TS_LangSuite.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TS_LangSuite.java b/jena-arq/src/test/java/org/apache/jena/riot/TS_LangSuite.java
index cd29ef4..fdb8f5b 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TS_LangSuite.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TS_LangSuite.java
@@ -20,7 +20,7 @@ package org.apache.jena.riot;
import junit.framework.TestSuite ;
import org.apache.jena.riot.langsuite.FactoryTestRiot ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.junit.runner.RunWith ;
import org.junit.runners.AllTests ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/riot/system/TestSerializable.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/TestSerializable.java b/jena-arq/src/test/java/org/apache/jena/riot/system/TestSerializable.java
index 8f4c99b..9de3e05 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/TestSerializable.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/TestSerializable.java
@@ -31,7 +31,7 @@ import org.apache.jena.graph.Triple;
import org.apache.jena.sparql.core.Quad;
import org.apache.jena.sparql.core.Var;
import org.apache.jena.sparql.sse.SSE;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
import org.junit.BeforeClass;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/sparql/ARQTestSuite.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/ARQTestSuite.java b/jena-arq/src/test/java/org/apache/jena/sparql/ARQTestSuite.java
index 29d243c..d10571e 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/ARQTestSuite.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/ARQTestSuite.java
@@ -28,7 +28,7 @@ import org.apache.jena.sparql.engine.main.QueryEngineMain ;
import org.apache.jena.sparql.engine.ref.QueryEngineRef ;
import org.apache.jena.sparql.expr.E_Function ;
import org.apache.jena.sparql.expr.NodeValue ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.system.TS_System ;
import org.apache.jena.web.TS_Web ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestOptimizer.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestOptimizer.java b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestOptimizer.java
index 2fc0f76..0f6d04f 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestOptimizer.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/algebra/optimize/TestOptimizer.java
@@ -29,7 +29,7 @@ import org.apache.jena.sparql.core.VarExprList ;
import org.apache.jena.sparql.expr.ExprVar ;
import org.apache.jena.sparql.expr.nodevalue.NodeValueInteger ;
import org.apache.jena.sparql.sse.SSE ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
import org.junit.Test ;
public class TestOptimizer extends AbstractTestTransform
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/sparql/function/js/TestSPARQL_JS.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/function/js/TestSPARQL_JS.java b/jena-arq/src/test/java/org/apache/jena/sparql/function/js/TestSPARQL_JS.java
index 0e9e85b..dd2ed64 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/function/js/TestSPARQL_JS.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/function/js/TestSPARQL_JS.java
@@ -22,7 +22,7 @@ import junit.framework.TestSuite;
import org.apache.jena.query.ARQ;
import org.apache.jena.sparql.junit.ScriptTestSuiteFactory;
import org.apache.jena.sparql.util.Context;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/sparql/function/library/TestFnFunctions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/function/library/TestFnFunctions.java b/jena-arq/src/test/java/org/apache/jena/sparql/function/library/TestFnFunctions.java
index bb24388..8f2436a 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/function/library/TestFnFunctions.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/function/library/TestFnFunctions.java
@@ -23,7 +23,7 @@ import static org.apache.jena.sparql.function.library.LibTest.test;
import org.apache.jena.sparql.expr.ExprEvalException ;
import org.apache.jena.sparql.expr.ExprException ;
import org.apache.jena.sparql.expr.VariableNotBoundException ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.junit.Test ;
public class TestFnFunctions {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java b/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java
index 11c15c3..bff88a9 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/resultset/TestResultSet.java
@@ -48,7 +48,7 @@ import org.apache.jena.sparql.sse.builders.BuilderResultSet ;
import org.apache.jena.sparql.util.Context;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
import org.apache.jena.sparql.util.ResultSetUtils ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-base/pom.xml
----------------------------------------------------------------------
diff --git a/jena-base/pom.xml b/jena-base/pom.xml
index 5945802..4e2e83d 100644
--- a/jena-base/pom.xml
+++ b/jena-base/pom.xml
@@ -71,8 +71,8 @@
<groupId>com.jayway.awaitility</groupId>
<artifactId>awaitility</artifactId>
<scope>test</scope>
- </dependency>
-
+ </dependency>
+
</dependencies>
<build>
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/arq/cmdline/CmdARQ.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/cmdline/CmdARQ.java b/jena-cmds/src/main/java/arq/cmdline/CmdARQ.java
index d6fb553..77baf0f 100644
--- a/jena-cmds/src/main/java/arq/cmdline/CmdARQ.java
+++ b/jena-cmds/src/main/java/arq/cmdline/CmdARQ.java
@@ -25,7 +25,7 @@ import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.riot.RIOT ;
import org.apache.jena.sparql.engine.iterator.QueryIteratorBase ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
public abstract class CmdARQ extends CmdGeneral
{
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/arq/cmdline/ModContext.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/cmdline/ModContext.java b/jena-cmds/src/main/java/arq/cmdline/ModContext.java
index 96d76bf..4c7c7f5 100644
--- a/jena-cmds/src/main/java/arq/cmdline/ModContext.java
+++ b/jena-cmds/src/main/java/arq/cmdline/ModContext.java
@@ -30,7 +30,7 @@ import org.apache.jena.query.ARQ ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** Set Context items */
public class ModContext extends ModBase
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/arq/qexpr.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/arq/qexpr.java b/jena-cmds/src/main/java/arq/qexpr.java
index 5305517..9ef0144 100644
--- a/jena-cmds/src/main/java/arq/qexpr.java
+++ b/jena-cmds/src/main/java/arq/qexpr.java
@@ -42,7 +42,7 @@ import org.apache.jena.sparql.function.FunctionEnv ;
import org.apache.jena.sparql.sse.WriterSSE ;
import org.apache.jena.sparql.util.ExprUtils ;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** A program to execute expressions from the command line. */
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/jena/rdfcat.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/jena/rdfcat.java b/jena-cmds/src/main/java/jena/rdfcat.java
index 706767d..efe16dc 100644
--- a/jena-cmds/src/main/java/jena/rdfcat.java
+++ b/jena-cmds/src/main/java/jena/rdfcat.java
@@ -33,7 +33,7 @@ import java.util.function.BiConsumer;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.rdf.model.impl.RDFWriterFImpl ;
import org.apache.jena.shared.NoWriterForLangException ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.util.FileManager ;
import org.apache.jena.util.FileUtils ;
import org.apache.jena.vocabulary.OWL ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/jena/rdfcompare.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/jena/rdfcompare.java b/jena-cmds/src/main/java/jena/rdfcompare.java
index a5ccc33..5f23157 100644
--- a/jena-cmds/src/main/java/jena/rdfcompare.java
+++ b/jena-cmds/src/main/java/jena/rdfcompare.java
@@ -25,7 +25,7 @@ import org.apache.jena.rdf.model.ModelFactory ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** A program which read two RDF models and determines if they are the same.
*
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
index 8669e88..10d1d57 100644
--- a/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
+++ b/jena-cmds/src/main/java/riotcmd/CmdLangParse.java
@@ -49,7 +49,7 @@ import org.apache.jena.riot.tokens.Tokenizer ;
import org.apache.jena.riot.tokens.TokenizerFactory ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.DatasetGraphFactory ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** Common framework for running RIOT parsers */
public abstract class CmdLangParse extends CmdGeneral
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/riotcmd/dumpthrift.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/riotcmd/dumpthrift.java b/jena-cmds/src/main/java/riotcmd/dumpthrift.java
index cfadd38..9723a19 100644
--- a/jena-cmds/src/main/java/riotcmd/dumpthrift.java
+++ b/jena-cmds/src/main/java/riotcmd/dumpthrift.java
@@ -24,7 +24,7 @@ import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.riot.thrift.BinRDF ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/** Dump an rdf-thrift file to show structure */
public class dumpthrift {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexBuild.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexBuild.java b/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexBuild.java
index 57c2de4..d3f9262 100644
--- a/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexBuild.java
+++ b/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexBuild.java
@@ -19,7 +19,7 @@
package tdb.bulkloader2;
import org.apache.jena.atlas.logging.LogCtl ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb.store.bulkloader2.ProcIndexBuild ;
public class CmdIndexBuild {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexCopy.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexCopy.java b/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexCopy.java
index 9ea62b8d..9bbcbfa 100644
--- a/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexCopy.java
+++ b/jena-cmds/src/main/java/tdb/bulkloader2/CmdIndexCopy.java
@@ -19,7 +19,7 @@
package tdb.bulkloader2;
import org.apache.jena.atlas.logging.LogCtl ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb.store.bulkloader2.ProcIndexCopy ;
public class CmdIndexCopy
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb/bulkloader2/CmdNodeTableBuilder.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb/bulkloader2/CmdNodeTableBuilder.java b/jena-cmds/src/main/java/tdb/bulkloader2/CmdNodeTableBuilder.java
index bb56b70..0d9d634 100644
--- a/jena-cmds/src/main/java/tdb/bulkloader2/CmdNodeTableBuilder.java
+++ b/jena-cmds/src/main/java/tdb/bulkloader2/CmdNodeTableBuilder.java
@@ -29,7 +29,7 @@ import org.apache.jena.atlas.lib.FileOps ;
import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.setup.DatasetBuilderStd ;
import org.apache.jena.tdb.store.bulkloader2.ProcNodeTableBuilder ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb/bulkloader2/CmdRewriteIndex.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb/bulkloader2/CmdRewriteIndex.java b/jena-cmds/src/main/java/tdb/bulkloader2/CmdRewriteIndex.java
index 43bc29c..ffbfa98 100644
--- a/jena-cmds/src/main/java/tdb/bulkloader2/CmdRewriteIndex.java
+++ b/jena-cmds/src/main/java/tdb/bulkloader2/CmdRewriteIndex.java
@@ -21,7 +21,7 @@ package tdb.bulkloader2;
import org.apache.jena.atlas.lib.FileOps ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.logging.LogCtl ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.store.bulkloader2.ProcRewriteIndex ;
import org.apache.jena.tdb.sys.Names ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java b/jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java
index 8082308..5505fef 100644
--- a/jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java
+++ b/jena-cmds/src/main/java/tdb/cmdline/CmdTDB.java
@@ -25,7 +25,7 @@ import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.setup.DatasetBuilderStd ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/main/java/tdb2/cmdline/CmdTDB.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/main/java/tdb2/cmdline/CmdTDB.java b/jena-cmds/src/main/java/tdb2/cmdline/CmdTDB.java
index ed6f0f0..523f153 100644
--- a/jena-cmds/src/main/java/tdb2/cmdline/CmdTDB.java
+++ b/jena-cmds/src/main/java/tdb2/cmdline/CmdTDB.java
@@ -26,7 +26,7 @@ import org.apache.jena.dboe.base.file.Location;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.tdb2.TDB2;
import org.apache.jena.tdb2.store.DatasetGraphSwitchable;
import org.apache.jena.tdb2.sys.TDBInternal;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-cmds/src/test/java/riotcmd/rdflangtest.java
----------------------------------------------------------------------
diff --git a/jena-cmds/src/test/java/riotcmd/rdflangtest.java b/jena-cmds/src/test/java/riotcmd/rdflangtest.java
index 1f5af3b..d2569d9 100644
--- a/jena-cmds/src/test/java/riotcmd/rdflangtest.java
+++ b/jena-cmds/src/test/java/riotcmd/rdflangtest.java
@@ -43,7 +43,7 @@ import org.apache.jena.sparql.junit.SimpleTestRunner ;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
import org.apache.jena.sparql.vocabulary.DOAP ;
import org.apache.jena.sparql.vocabulary.FOAF ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.vocabulary.DC ;
import org.apache.jena.vocabulary.DCTerms ;
import org.apache.jena.vocabulary.RDF ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/assembler/assemblers/AssemblerBase.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/AssemblerBase.java b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/AssemblerBase.java
index e1f9bc7..73c9ab7 100644
--- a/jena-core/src/main/java/org/apache/jena/assembler/assemblers/AssemblerBase.java
+++ b/jena-core/src/main/java/org/apache/jena/assembler/assemblers/AssemblerBase.java
@@ -23,7 +23,7 @@ import org.apache.jena.assembler.* ;
import org.apache.jena.assembler.exceptions.* ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.shared.JenaException ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.vocabulary.RDF ;
public abstract class AssemblerBase implements Assembler
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/graph/Node.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/graph/Node.java b/jena-core/src/main/java/org/apache/jena/graph/Node.java
index 2251767..d39874f 100644
--- a/jena-core/src/main/java/org/apache/jena/graph/Node.java
+++ b/jena-core/src/main/java/org/apache/jena/graph/Node.java
@@ -27,7 +27,7 @@ import org.apache.jena.datatypes.RDFDatatype ;
import org.apache.jena.graph.impl.LiteralLabel ;
import org.apache.jena.shared.JenaException ;
import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.system.Serializer;
+import org.apache.jena.sys.Serializer;
/**
A Node has five subtypes: Node_Blank, Node_Anon, Node_URI,
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/graph/NodeFactory.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/graph/NodeFactory.java b/jena-core/src/main/java/org/apache/jena/graph/NodeFactory.java
index 566d3ca..920a49c 100644
--- a/jena-core/src/main/java/org/apache/jena/graph/NodeFactory.java
+++ b/jena-core/src/main/java/org/apache/jena/graph/NodeFactory.java
@@ -25,7 +25,7 @@ import org.apache.jena.datatypes.RDFDatatype ;
import org.apache.jena.datatypes.TypeMapper ;
import org.apache.jena.graph.impl.LiteralLabel ;
import org.apache.jena.graph.impl.LiteralLabelFactory ;
-import org.apache.jena.system.JenaSystem;
+import org.apache.jena.sys.JenaSystem;
public class NodeFactory {
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/graph/Triple.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/graph/Triple.java b/jena-core/src/main/java/org/apache/jena/graph/Triple.java
index f5eafea..07848f1 100644
--- a/jena-core/src/main/java/org/apache/jena/graph/Triple.java
+++ b/jena-core/src/main/java/org/apache/jena/graph/Triple.java
@@ -25,7 +25,7 @@ import java.util.function.Function;
import java.util.function.Predicate;
import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.system.Serializer;
+import org.apache.jena.sys.Serializer;
import org.apache.jena.util.iterator.ExtendedIterator ;
import org.apache.jena.util.iterator.NullIterator ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
index 3ff131f..244983e 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/ModelFactory.java
@@ -37,7 +37,7 @@ import org.apache.jena.reasoner.InfGraph ;
import org.apache.jena.reasoner.Reasoner ;
import org.apache.jena.reasoner.ReasonerRegistry ;
import org.apache.jena.shared.PrefixMapping ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
/**
ModelFactory provides methods for creating standard kinds of Model.
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
index 4b632aa..ab90d30 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/ModelCom.java
@@ -37,7 +37,7 @@ import org.apache.jena.graph.impl.LiteralLabelFactory ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.shared.* ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
-import org.apache.jena.system.JenaSystem ;
+import org.apache.jena.sys.JenaSystem ;
import org.apache.jena.util.CollectionFactory ;
import org.apache.jena.util.iterator.* ;
import org.apache.jena.vocabulary.RDF ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java b/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
new file mode 100644
index 0000000..369c59d
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/InitJenaCore.java
@@ -0,0 +1,63 @@
+/**
+ * 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.sys;
+
+import org.apache.jena.vocabulary.OWL ;
+import org.apache.jena.vocabulary.RDF ;
+import org.apache.jena.vocabulary.RDFS ;
+
+public class InitJenaCore implements JenaSubsystemLifecycle {
+ private static volatile boolean initialized = false ;
+ private static Object initLock = new Object() ;
+
+ @Override
+ public void start() {
+ init() ;
+ }
+
+ @Override
+ public void stop() {}
+
+ @Override
+ public int level() {
+ return 10 ;
+ }
+
+ public static void init() {
+ if ( initialized )
+ return ;
+ synchronized (initLock) {
+ if ( initialized ) {
+ JenaSystem.logLifecycle("JenaCore.init - skip") ;
+ return ;
+ }
+ initialized = true ;
+ JenaSystem.logLifecycle("JenaCore.init - start") ;
+
+ // Initialization
+ // Touch classes with constants.
+ // This isn't necessary but it makes it more deterministic.
+ // These constants are reused in various places.
+ RDF.getURI() ;
+ RDFS.getURI() ;
+ OWL.getURI() ;
+ JenaSystem.logLifecycle("JenaCore.init - finish") ;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemLifecycle.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemLifecycle.java b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemLifecycle.java
new file mode 100644
index 0000000..755ce7e
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemLifecycle.java
@@ -0,0 +1,35 @@
+/**
+ * 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.sys;
+
+/** Lifecycle interface for jena modules and subsystems. */
+public interface JenaSubsystemLifecycle {
+
+ /** start - a module should be ready to operate when this returns */
+ public void start() ;
+
+ /** stop - a module should have preformed any shutdown operations by the time this returns */
+ public void stop() ;
+
+ /** Provide a marker as to the level to order initialization, 10,20,30,...
+ * See {@link JenaSystem} for details.
+ */
+ default public int level() { return 9999 ; }
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistry.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistry.java b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistry.java
new file mode 100644
index 0000000..056f956
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistry.java
@@ -0,0 +1,53 @@
+/**
+ * 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.sys;
+
+import java.util.List ;
+
+/**
+ * A {@code JenaSubsystemRegistry} is a set of objects implementing {@link JenaSubsystemLifecycle}.
+ */
+public interface JenaSubsystemRegistry {
+
+ /** Load - perform some kinds of search for {@link JenaSubsystemLifecycle} implementations.
+ * This is called once in the initialization process.
+ */
+ public void load();
+
+ /** Add to the collection. */
+ public void add(JenaSubsystemLifecycle module);
+
+ /** check whether registered */
+ public boolean isRegistered(JenaSubsystemLifecycle module);
+
+ /** Remove from the collection. */
+ public void remove(JenaSubsystemLifecycle module);
+
+ public int size();
+
+ public boolean isEmpty();
+
+ /**
+ * Return the registered items in a copied list.
+ * The list is detached from the
+ * registry and the caller can mutate it.
+ * There is no specific ordering requirement.
+ */
+ public List<JenaSubsystemLifecycle> snapshot();
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistryBasic.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistryBasic.java b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistryBasic.java
new file mode 100644
index 0000000..28af4fe
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSubsystemRegistryBasic.java
@@ -0,0 +1,92 @@
+/**
+ * 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.sys;
+
+import java.util.ArrayList ;
+import java.util.List ;
+import java.util.ServiceLoader ;
+
+/** Implementation of {@link JenaSubsystemRegistry} for use in the simple
+ * but common case of running Jena as a collection of jars
+ * on the classpath.
+ * <p>
+ * Uses {@link ServiceLoader} to find sub-systems.
+ */
+public class JenaSubsystemRegistryBasic implements JenaSubsystemRegistry {
+
+ private List<JenaSubsystemLifecycle> registry = new ArrayList<>() ;
+ private Object registryLock = new Object() ;
+
+ public JenaSubsystemRegistryBasic() {
+ }
+
+ @Override
+ public void load() {
+ synchronized (registryLock) {
+ // Find subsystems asking for initialization.
+ ServiceLoader<JenaSubsystemLifecycle> sl =
+ // Use this->classloader form : better for OSGi
+ ServiceLoader.load(JenaSubsystemLifecycle.class, this.getClass().getClassLoader()) ;
+ sl.forEach(this::add) ;
+ }
+ }
+
+ @Override
+ public void add(JenaSubsystemLifecycle module) {
+ synchronized (registryLock) {
+ if ( ! registry.contains(module) )
+ registry.add(module);
+ }
+ }
+
+ @Override
+ public boolean isRegistered(JenaSubsystemLifecycle module) {
+ synchronized (registryLock) {
+ return registry.contains(module);
+ }
+ }
+
+ @Override
+ public void remove(JenaSubsystemLifecycle module) {
+ synchronized (registryLock) {
+ registry.remove(module);
+ }
+ }
+
+ @Override
+ public int size() {
+ synchronized (registryLock) {
+ return registry.size();
+ }
+ }
+
+ @Override
+ public boolean isEmpty() {
+ synchronized (registryLock) {
+ return registry.isEmpty();
+ }
+ }
+
+ @Override
+ public List<JenaSubsystemLifecycle> snapshot() {
+ synchronized (registryLock) {
+ return new ArrayList<>(registry) ;
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
new file mode 100644
index 0000000..a818a4c
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/JenaSystem.java
@@ -0,0 +1,225 @@
+/**
+ * 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.sys;
+
+import java.util.Collections ;
+import java.util.Comparator ;
+import java.util.List ;
+import java.util.function.Consumer ;
+
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
+
+/** Jena "system" - simple controls for ensuring components are loaded and initialized.
+ * <p>
+ * All initialization should be concurrent and thread-safe. In particular,
+ * some subsystems need initialization in some sort of order (e.g. ARQ before TDB).
+ * <p>
+ * This is achieved by "levels": levels less than 100 are considered "jena system levels"
+ * and are reserved.
+ * <ul>
+ * <li>0 - reserved
+ * <li>10 - jena-core
+ * <li>20 - RIOT
+ * <li>30 - ARQ
+ * <li>40 - TDB
+ * <li>9999 - other
+ * </ul>
+ * See also the <a href="http://jena.apache.org/documentation/notes/system-initialization.html">notes on Jena initialization</a>.
+ */
+public class JenaSystem {
+
+ /** Development support - flag to enable output during
+ * initialization. Output to {@code System.err}, not a logger
+ * to avoid the risk of recursive initialization.
+ */
+ public static boolean DEBUG_INIT = false ;
+
+ // A correct way to manage without synchonized using the double checked locking pattern.
+ // http://en.wikipedia.org/wiki/Double-checked_locking
+ // http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
+ private static volatile boolean initialized = false ;
+ private static Object initLock = new Object() ;
+
+ /** Initialize Jena.
+ * <p>
+ * This function is cheap to call when already initialized so can be called to be sure.
+ * A commonly used idiom in jena is a static initializer in key classes.
+ * <p>
+ * By default, initialization happens by using {@code ServiceLoader.load} to find
+ * {@link JenaSubsystemLifecycle} objects.
+ * See {@link #setSubsystemRegistry} to intercept that choice.
+ */
+ public static void init() {
+ // Any other thread attempting to initialize as well will
+ // first test the volatile outside the lock; if it's
+ // not INITIALIZED, the thread will attempt to grab the lock
+ // and hence wait, then see initialized as true.
+
+ // But we need to cope with recursive calls of JenaSystem.init() as well.
+ // The same thread will not stop at the lock.
+ // Set initialized to true before a recursive call is possible
+ // handles this. The recursive call will see initialized true and
+ // and return on the first test.
+
+ // Net effect:
+ // After a top level call of JenaSystem.init() returns, tjena has
+ // finishes initialization.
+ // Recursive calls do not have this property.
+
+ if ( initialized )
+ return ;
+ synchronized(initLock) {
+ if ( initialized ) {
+ logLifecycle("JenaSystem.init - return");
+ return ;
+ }
+ // Catches recursive calls, same thread.
+ initialized = true ;
+ logLifecycle("JenaSystem.init - start");
+
+ if ( get() == null )
+ setSubsystemRegistry(new JenaSubsystemRegistryBasic()) ;
+
+ get().load() ;
+
+ // Debug : what did we find?
+ if ( JenaSystem.DEBUG_INIT ) {
+ logLifecycle("Found:") ;
+ get().snapshot().forEach(mod->
+ logLifecycle(" %-20s [%d]", mod.getClass().getSimpleName(), mod.level())) ;
+ }
+
+ get().add(new JenaInitLevel0()) ;
+
+ if ( JenaSystem.DEBUG_INIT ) {
+ logLifecycle("Initialization sequence:") ;
+ JenaSystem.forEach( module ->
+ logLifecycle(" %-20s [%d]", module.getClass().getSimpleName(), module.level()) ) ;
+ }
+
+ JenaSystem.forEach( module -> {
+ logLifecycle("Init: %s", module.getClass().getSimpleName());
+ module.start() ;
+ }) ;
+ logLifecycle("JenaSystem.init - finish");
+ }
+ }
+
+ /** Shutdown subsystems */
+ public static void shutdown() {
+ if ( ! initialized ) {
+ logLifecycle("JenaSystem.shutdown - not initialized");
+ return ;
+ }
+ synchronized(initLock) {
+ if ( ! initialized ) {
+ logLifecycle("JenaSystem.shutdown - return");
+ return ;
+ }
+ logLifecycle("JenaSystem.shutdown - start");
+ JenaSystem.forEachReverse(module -> {
+ logLifecycle("Stop: %s", module.getClass().getSimpleName());
+ module.stop() ;
+ }) ;
+ initialized = false ;
+ logLifecycle("JenaSystem.shutdown - finish");
+ }
+ }
+
+ private static JenaSubsystemRegistry singleton = null;
+
+ /**
+ * Set the {@link JenaSubsystemRegistry}.
+ * To have any effect, this function
+ * must be called before any other Jena code,
+ * and especially before calling {@code JenaSystem.init()}.
+ */
+ public static void setSubsystemRegistry(JenaSubsystemRegistry thing) {
+ singleton = thing;
+ }
+
+ /** The current JenaSubsystemRegistry */
+ public static JenaSubsystemRegistry get() {
+ return singleton;
+ }
+
+ /**
+ * Call an action on each item in the registry. Calls are made sequentially
+ * and in increasing level order. The exact order within a level is not
+ * specified; it is not registration order.
+ *
+ * @param action
+ */
+ public static void forEach(Consumer<JenaSubsystemLifecycle> action) {
+ forEach(action, comparator);
+ }
+
+ /**
+ * Call an action on each item in the registry but in the reverse
+ * enumeration order. Calls are made sequentially and in decreasing level
+ * order. The "reverse" is opposite order to {@link #forEach}, which may not
+ * be stable within a level. It is not related to registration order.
+ *
+ * @param action
+ */
+ public static void forEachReverse(Consumer<JenaSubsystemLifecycle> action) {
+ forEach(action, reverseComparator);
+ }
+
+ // Order by level (increasing)
+ private static Comparator<JenaSubsystemLifecycle> comparator = (obj1, obj2) -> Integer.compare(obj1.level(), obj2.level()) ;
+ // Order by level (decreasing)
+ private static Comparator<JenaSubsystemLifecycle> reverseComparator = comparator.reversed();
+
+ private synchronized static void forEach(Consumer<JenaSubsystemLifecycle> action, Comparator<JenaSubsystemLifecycle> ordering) {
+ List<JenaSubsystemLifecycle> x = get().snapshot() ;
+ Collections.sort(x, ordering);
+ x.forEach(action);
+ }
+
+ /** Output a debugging message if DEBUG_INIT is set */
+ public static void logLifecycle(String fmt, Object ...args) {
+ if ( ! DEBUG_INIT )
+ return ;
+ System.err.printf(fmt, args) ;
+ System.err.println() ;
+ }
+
+ /** The level 0 subsystem - inserted without using the Registry load function.
+ * There should be only one such level 0 handler.
+ */
+ private static class JenaInitLevel0 implements JenaSubsystemLifecycle {
+ private static Logger log = LoggerFactory.getLogger("Jena") ;
+ @Override
+ public void start() {
+ log.debug("Jena initialization");
+ }
+
+ @Override
+ public void stop() {
+ log.debug("Jena shutdown");
+ }
+
+ @Override
+ public int level() {
+ return 0;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/sys/Serializer.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/sys/Serializer.java b/jena-core/src/main/java/org/apache/jena/sys/Serializer.java
new file mode 100644
index 0000000..cb9a837
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/sys/Serializer.java
@@ -0,0 +1,84 @@
+/*
+ * 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.sys;
+
+import java.io.Serializable;
+import java.util.function.Function;
+
+import org.apache.jena.graph.Node;
+import org.apache.jena.graph.Triple;
+
+/** The injection points for the Node and Triple {@link Serializable} process.
+ * This class is public to allow system initialization to inject
+ * handler functions for {@link Node} and {@link Triple}.
+ * See also {@code Quad}.
+ */
+public class Serializer {
+
+ /*package*/ static Function<Node, Object> nodeWriteReplaceFunction = null;
+ /*package*/ static Function<Triple, Object> tripleWriteReplaceFunction = null;
+
+ /** Set the node serializer replacement function.
+ * This is a function called by {@code Node.writeReplace} during the {@link Serializable} process.
+ * The return is an object used in place of {@link Node} for the serialization.
+ *
+ * <PRE>
+ * ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException;
+ * </PRE><p>
+ * The returned object must provide
+ * <PRE>
+ * ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;
+ * </PRE><p>
+ * where "Object" is a {@link Node}.
+ *
+ * @see java.io.Serializable
+ */
+ public static void setNodeSerializer(Function<Node, Object> writeReplaceFunction) {
+ nodeWriteReplaceFunction = writeReplaceFunction;
+ }
+
+ /** Return the current node serializer replacement function. */
+ public static Function<Node, Object> getNodeSerializer() {
+ return nodeWriteReplaceFunction;
+ }
+
+ /** Set the triple serializer replacement function.
+ * This is a function called by {@code Triple.writeReplace} during the {@link Serializable} process.
+ * The return is an object used in place of {@link Triple} for the serialization.
+ *
+ * <PRE>
+ * ANY-ACCESS-MODIFIER Object writeReplace() throws ObjectStreamException;
+ * </PRE><p>
+ * The returned object must provide
+ * <PRE>
+ * ANY-ACCESS-MODIFIER Object readResolve() throws ObjectStreamException;
+ * </PRE><p>
+ * where "Object" is a {@link Triple}.
+ *
+ * @see java.io.Serializable
+ */
+ public static void setTripleSerializer(Function<Triple, Object> writeReplaceFunction) {
+ tripleWriteReplaceFunction = writeReplaceFunction;
+ }
+
+ /** Return the current triple serializer replacement function. */
+ public static Function<Triple, Object> getTripleSerializer() {
+ return tripleWriteReplaceFunction;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java b/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
deleted file mode 100644
index 394bf08..0000000
--- a/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
+++ /dev/null
@@ -1,63 +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.system;
-
-import org.apache.jena.vocabulary.OWL ;
-import org.apache.jena.vocabulary.RDF ;
-import org.apache.jena.vocabulary.RDFS ;
-
-public class InitJenaCore implements JenaSubsystemLifecycle {
- private static volatile boolean initialized = false ;
- private static Object initLock = new Object() ;
-
- @Override
- public void start() {
- init() ;
- }
-
- @Override
- public void stop() {}
-
- @Override
- public int level() {
- return 10 ;
- }
-
- public static void init() {
- if ( initialized )
- return ;
- synchronized (initLock) {
- if ( initialized ) {
- JenaSystem.logLifecycle("JenaCore.init - skip") ;
- return ;
- }
- initialized = true ;
- JenaSystem.logLifecycle("JenaCore.init - start") ;
-
- // Initialization
- // Touch classes with constants.
- // This isn't necessary but it makes it more deterministic.
- // These constants are reused in various places.
- RDF.getURI() ;
- RDFS.getURI() ;
- OWL.getURI() ;
- JenaSystem.logLifecycle("JenaCore.init - finish") ;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
deleted file mode 100644
index 3587d79..0000000
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
+++ /dev/null
@@ -1,35 +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.system;
-
-/** Lifecycle interface for jena modules and subsystems. */
-public interface JenaSubsystemLifecycle {
-
- /** start - a module should be ready to operate when this returns */
- public void start() ;
-
- /** stop - a module should have preformed any shutdown operations by the time this returns */
- public void stop() ;
-
- /** Provide a marker as to the level to order initialization, 10,20,30,...
- * See {@link JenaSystem} for details.
- */
- default public int level() { return 9999 ; }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
deleted file mode 100644
index 51d750b..0000000
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
+++ /dev/null
@@ -1,53 +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.system;
-
-import java.util.List ;
-
-/**
- * A {@code JenaSubsystemRegistry} is a set of objects implementing {@link JenaSubsystemLifecycle}.
- */
-public interface JenaSubsystemRegistry {
-
- /** Load - perform some kinds of search for {@link JenaSubsystemLifecycle} implementations.
- * This is called once in the initialization process.
- */
- public void load();
-
- /** Add to the collection. */
- public void add(JenaSubsystemLifecycle module);
-
- /** check whether registered */
- public boolean isRegistered(JenaSubsystemLifecycle module);
-
- /** Remove from the collection. */
- public void remove(JenaSubsystemLifecycle module);
-
- public int size();
-
- public boolean isEmpty();
-
- /**
- * Return the registered items in a copied list.
- * The list is detached from the
- * registry and the caller can mutate it.
- * There is no specific ordering requirement.
- */
- public List<JenaSubsystemLifecycle> snapshot();
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/d82328d9/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
deleted file mode 100644
index 52b6692..0000000
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
+++ /dev/null
@@ -1,92 +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.system;
-
-import java.util.ArrayList ;
-import java.util.List ;
-import java.util.ServiceLoader ;
-
-/** Implementation of {@link JenaSubsystemRegistry} for use in the simple
- * but common case of running Jena as a collection of jars
- * on the classpath.
- * <p>
- * Uses {@link ServiceLoader} to find sub-systems.
- */
-public class JenaSubsystemRegistryBasic implements JenaSubsystemRegistry {
-
- private List<JenaSubsystemLifecycle> registry = new ArrayList<>() ;
- private Object registryLock = new Object() ;
-
- public JenaSubsystemRegistryBasic() {
- }
-
- @Override
- public void load() {
- synchronized (registryLock) {
- // Find subsystems asking for initialization.
- ServiceLoader<JenaSubsystemLifecycle> sl =
- // Use this->classloader form : better for OSGi
- ServiceLoader.load(JenaSubsystemLifecycle.class, this.getClass().getClassLoader()) ;
- sl.forEach(this::add) ;
- }
- }
-
- @Override
- public void add(JenaSubsystemLifecycle module) {
- synchronized (registryLock) {
- if ( ! registry.contains(module) )
- registry.add(module);
- }
- }
-
- @Override
- public boolean isRegistered(JenaSubsystemLifecycle module) {
- synchronized (registryLock) {
- return registry.contains(module);
- }
- }
-
- @Override
- public void remove(JenaSubsystemLifecycle module) {
- synchronized (registryLock) {
- registry.remove(module);
- }
- }
-
- @Override
- public int size() {
- synchronized (registryLock) {
- return registry.size();
- }
- }
-
- @Override
- public boolean isEmpty() {
- synchronized (registryLock) {
- return registry.isEmpty();
- }
- }
-
- @Override
- public List<JenaSubsystemLifecycle> snapshot() {
- synchronized (registryLock) {
- return new ArrayList<>(registry) ;
- }
- }
-}
\ No newline at end of file