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 2015/09/21 20:30:55 UTC
[01/25] jena git commit: Make Turtle legal.
Repository: jena
Updated Branches:
refs/heads/master 53ceeaf4d -> 31a2534c5
Make Turtle legal.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8389829d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8389829d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8389829d
Branch: refs/heads/master
Commit: 8389829d6ae15ad0a2a0214b72035283d110d69e
Parents: 53ceeaf
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 17 16:06:53 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 17 16:06:53 2015 +0100
----------------------------------------------------------------------
.../resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8389829d/jena-permissions/src/test/resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl b/jena-permissions/src/test/resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl
index b1313e6..8e31231 100644
--- a/jena-permissions/src/test/resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl
+++ b/jena-permissions/src/test/resources/org/apache/jena/permissions/SecuredAssemblerTest.ttl
@@ -5,7 +5,7 @@
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix sec: <http://apache.org/jena/permissions/Assembler#> .
@prefix my: <http://apache.org/jena/permissions/test#> .
-@prefix xsd: <http://www.w3.org/2001/XMLSchema#>
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
<> ja:loadClass "org.apache.jena.permissions.SecuredAssembler" .
[08/25] jena git commit: JENA-1029: Comment and clean JenaSystem.
Posted by an...@apache.org.
JENA-1029: Comment and clean JenaSystem.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/68a76909
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/68a76909
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/68a76909
Branch: refs/heads/master
Commit: 68a769098846bee02a843ddf3fb77edbc491c1dd
Parents: 3e96cae
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 08:59:56 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 08:59:56 2015 +0100
----------------------------------------------------------------------
.../apache/jena/system/JenaSubsystemRegistryBasic.java | 11 +++++------
.../src/main/java/org/apache/jena/system/JenaSystem.java | 10 +++++++++-
2 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/68a76909/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
index 3e12fca..7a23b4f 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
@@ -23,7 +23,10 @@ import java.util.List ;
import java.util.ServiceLoader ;
/** Implementation of {@link JenaSubsystemRegistry} for use in the simple
- * but common case of runing a a collection (classpath) of jars.
+ * 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 {
@@ -38,11 +41,7 @@ public class JenaSubsystemRegistryBasic implements JenaSubsystemRegistry {
synchronized (registryLock) {
// Find subsystems asking for initialization.
ServiceLoader<JenaSubsystemLifecycle> sl = ServiceLoader.load(JenaSubsystemLifecycle.class) ;
- sl.forEach(life-> {
- if ( JenaSystem.DEBUG_INIT )
- System.err.println(" "+life.getClass().getSimpleName()) ;
- add(life);
- }) ;
+ sl.forEach(this::add) ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/68a76909/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 8360f3b..5e8e9a8 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -57,6 +57,8 @@ public class JenaSystem {
/** Initialize Jena.
* <p>
* This function is cheap to call when already initialized so can be called to be sure.
+ * A commonly used idom in jena is in static initailizers in key classes.
+ * <p>
* By default, initialization happens by using {@code ServiceLoader.load} to find
* {@link JenaSubsystemLifecycle} objects.
* See {@link #set} to intercept that choice.
@@ -79,8 +81,14 @@ public class JenaSystem {
set(new JenaSubsystemRegistryBasic()) ;
get().load() ;
- get().add(new JenaInitLevel0());
+ // Debug : what did we find?
+ if ( JenaSystem.DEBUG_INIT ) {
+ get().snapshot().forEach(mod->
+ System.err.println(" "+mod.getClass().getSimpleName())) ;
+ }
+ get().add(new JenaInitLevel0()) ;
+
JenaSystem.forEach( module -> {
if ( DEBUG_INIT )
System.err.println("Init: "+module.getClass().getSimpleName());
[05/25] jena git commit: JENA-1029: Subsystem initialization (default,
ServiceLoader)
Posted by an...@apache.org.
JENA-1029: Subsystem initialization (default, ServiceLoader)
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/55a8eab3
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/55a8eab3
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/55a8eab3
Branch: refs/heads/master
Commit: 55a8eab39657e5d5beba8ffe6a2a6af15949a0c7
Parents: 0da50bf
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 00:25:07 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 00:25:07 2015 +0100
----------------------------------------------------------------------
jena-arq/pom.xml | 2 +-
jena-arq/src/main/java/arq/cmdline/CmdARQ.java | 3 +-
.../src/main/java/arq/cmdline/ModSymbol.java | 6 +-
.../main/java/org/apache/jena/query/ARQ.java | 137 ++++++++-------
.../main/java/org/apache/jena/query/Query.java | 3 +-
.../java/org/apache/jena/riot/RDFDataMgr.java | 6 +-
.../main/java/org/apache/jena/riot/RIOT.java | 12 +-
.../org/apache/jena/riot/system/InitRIOT.java | 39 +++++
.../org/apache/jena/sparql/ARQConstants.java | 34 ++--
.../java/org/apache/jena/sparql/SystemARQ.java | 17 ++
.../jena/sparql/algebra/optimize/Optimize.java | 3 +-
.../sparql/algebra/optimize/TransformTopN.java | 4 +-
.../sparql/core/assembler/AssemblerUtils.java | 3 +-
.../apache/jena/sparql/engine/http/Service.java | 16 +-
.../engine/join/AbstractIterHashJoin.java | 5 +-
.../jena/sparql/engine/main/StageBuilder.java | 18 +-
.../engine/optimizer/reorder/ReorderFixed.java | 1 +
.../apache/jena/sparql/lang/ParserSPARQL11.java | 1 +
.../java/org/apache/jena/sparql/sse/SSE.java | 3 +
.../org/apache/jena/sparql/system/InitARQ.java | 39 +++++
...rg.apache.jena.system.JenaSubsystemLifecycle | 2 +
jena-arq/src/test/java/arq/qtest.java | 7 +-
.../org/apache/jena/sparql/ARQTestSuite.java | 6 +-
jena-core/src/main/java/jena/rdfcat.java | 14 +-
.../org/apache/jena/assembler/Assembler.java | 1 +
.../assembler/assemblers/AssemblerBase.java | 4 +-
.../org/apache/jena/rdf/model/ModelFactory.java | 2 +
.../org/apache/jena/rdf/model/impl/IO_Ctl.java | 71 --------
.../apache/jena/rdf/model/impl/ModelCom.java | 3 +-
.../org/apache/jena/system/InitJenaCore.java | 67 +++++++
.../jena/system/JenaSubsystemLifecycle.java | 32 ++++
.../jena/system/JenaSubsystemRegistry.java | 56 ++++++
.../jena/system/JenaSubsystemRegistryBasic.java | 89 ++++++++++
.../java/org/apache/jena/system/JenaSystem.java | 175 +++++++++++++++++++
.../java/org/apache/jena/util/FileManager.java | 8 +-
...rg.apache.jena.system.JenaSubsystemLifecycle | 2 +
.../jena/propertytable/impl/InitJenaCSV.java | 34 ++++
...rg.apache.jena.system.JenaSubsystemLifecycle | 1 +
.../java/org/apache/jena/fuseki/Fuseki.java | 6 +-
.../apache/jena/fuseki/migrate/Registry.java | 42 -----
.../jena/fuseki/server/DatasetRegistry.java | 4 +-
.../java/org/apache/jena/fuseki/ServerTest.java | 2 +
.../java/org/apache/jena/fuseki/Fuseki.java | 8 +-
.../org/apache/jena/fuseki/cmd/FusekiCmd.java | 6 +-
.../server/FusekiServerEnvironmentInit.java | 6 +-
jena-parent/pom.xml | 3 +-
.../src/main/java/org/apache/jena/sdb/SDB.java | 89 +++++-----
.../java/org/apache/jena/sdb/SDBFactory.java | 2 +
.../jena/sdb/assembler/StoreDescAssembler.java | 3 -
.../java/org/apache/jena/sdb/core/InitSDB.java | 39 +++++
jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java | 1 -
...rg.apache.jena.system.JenaSubsystemLifecycle | 1 +
.../apache/jena/sdb/test/SDBQueryTestSuite.java | 7 +-
.../jena/query/spatial/InitJenaSpatial.java | 32 ++++
.../apache/jena/query/spatial/SpatialQuery.java | 28 ++-
...rg.apache.jena.system.JenaSubsystemLifecycle | 1 +
.../src/main/java/org/apache/jena/tdb/TDB.java | 76 ++++----
.../java/org/apache/jena/tdb/TDBFactory.java | 3 +
.../org/apache/jena/tdb/store/GraphTDB.java | 4 +-
.../java/org/apache/jena/tdb/sys/InitTDB.java | 42 +++++
.../java/org/apache/jena/tdb/sys/SystemTDB.java | 3 +
...rg.apache.jena.system.JenaSubsystemLifecycle | 1 +
.../apache/jena/query/text/InitJenaText.java | 33 ++++
.../org/apache/jena/query/text/TextQuery.java | 24 ++-
...rg.apache.jena.system.JenaSubsystemLifecycle | 1 +
65 files changed, 1011 insertions(+), 382 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/pom.xml
----------------------------------------------------------------------
diff --git a/jena-arq/pom.xml b/jena-arq/pom.xml
index 854c3ec..fbcbd68 100644
--- a/jena-arq/pom.xml
+++ b/jena-arq/pom.xml
@@ -153,7 +153,7 @@
<includes>
<!--
The test collections TC_General, TC_Riot, TC_Atlas
- are development support that collect the relavent
+ are development support that collect the relevant
tests for partial testing during development.
-->
<include>**/TS_*.java</include>
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/arq/cmdline/CmdARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/arq/cmdline/CmdARQ.java b/jena-arq/src/main/java/arq/cmdline/CmdARQ.java
index ac18c00..2d82d98 100644
--- a/jena-arq/src/main/java/arq/cmdline/CmdARQ.java
+++ b/jena-arq/src/main/java/arq/cmdline/CmdARQ.java
@@ -25,10 +25,11 @@ 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 ;
public abstract class CmdARQ extends CmdGeneral
{
- static { ARQ.init() ; }
+ static { JenaSystem.init() ; }
protected ModSymbol modSymbol = new ModSymbol() ;
ArgDecl strictDecl = new ArgDecl(ArgDecl.NoValue, "strict") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/arq/cmdline/ModSymbol.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/arq/cmdline/ModSymbol.java b/jena-arq/src/main/java/arq/cmdline/ModSymbol.java
index 3bac01f..689dafe 100644
--- a/jena-arq/src/main/java/arq/cmdline/ModSymbol.java
+++ b/jena-arq/src/main/java/arq/cmdline/ModSymbol.java
@@ -30,11 +30,14 @@ 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 ;
public class ModSymbol extends ModBase
{
+ static { JenaSystem.init(); }
+
protected final ArgDecl setDecl = new ArgDecl(ArgDecl.HasValue, "set", "define", "defn", "def") ;
- Context context = new Context() ;
+private Context context = new Context() ;
@Override
public void registerWith(CmdGeneral cmdLine)
@@ -49,7 +52,6 @@ public class ModSymbol extends ModBase
@Override
public void processArgs(CmdArgModule cmdLine)
{
- ARQ.init();
if ( cmdLine.getValues(setDecl) == null || cmdLine.getValues(setDecl).size() == 0 )
return ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 5ba3074..dfef428 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
@@ -19,19 +19,18 @@
package org.apache.jena.query;
import org.apache.jena.riot.RIOT ;
-import org.apache.jena.sparql.ARQConstants ;
import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.algebra.optimize.TransformOrderByDistinctApplication ;
import org.apache.jena.sparql.engine.http.Service ;
-import org.apache.jena.sparql.engine.main.StageBuilder ;
import org.apache.jena.sparql.lib.Metadata ;
import org.apache.jena.sparql.mgt.ARQMgt ;
import org.apache.jena.sparql.mgt.Explain ;
-import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.mgt.Explain.InfoLevel ;
+import org.apache.jena.sparql.mgt.SystemInfo ;
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.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -39,6 +38,19 @@ import org.slf4j.LoggerFactory ;
public class ARQ
{
+ private static volatile boolean initialized = false ;
+ // Must be initialized early for reentrant initialization.
+ private static final Object initLock = new Object() ;
+
+ // Initialization notes:
+ // No use of ARQConstants before the initialization block. (Can be afterwards.)
+ // Risk is
+ // ARQConstants -> OWL -> ModelFactory -> jena initialization
+ // -> ARQ.init while initializing -> StageBuilder.init -> NodeConst -> rdf.type -> OWL
+ // recursing initialization, hits NPE via OWL.
+
+ // And stageGenerator must be set before call ARQ.init.
+
/** Name of the execution logger */
public static final String logExecName = "com.hp.hpl.jena.arq.exec" ;
@@ -67,7 +79,7 @@ public class ARQ
* e.g. log4j.properties -- log4j.logger.com.hp.hpl.jena.sparql.exec=INFO
* See the <a href="http://jena.apache.org/documentation/query/logging.html">ARQ Logging Documentation</a>.
*/
- public static final Symbol symLogExec = ARQConstants.allocSymbol("logExec") ;
+ public static final Symbol symLogExec = SystemARQ.allocSymbol("logExec") ;
/** Get the currently global execution logging setting */
public static Explain.InfoLevel getExecutionLogging() { return (Explain.InfoLevel)ARQ.getContext().get(ARQ.symLogExec) ; }
@@ -100,7 +112,7 @@ public class ARQ
/** Stick exactly to the spec.
*/
public static final Symbol strictSPARQL =
- ARQConstants.allocSymbol("strictSPARQL") ;
+ SystemARQ.allocSymbol("strictSPARQL") ;
/** Controls bNode labels as <_:...> or not -
* that is a pseudo URIs.
@@ -108,7 +120,7 @@ public class ARQ
*/
public static final Symbol constantBNodeLabels =
- ARQConstants.allocSymbol("constantBNodeLabels") ;
+ SystemARQ.allocSymbol("constantBNodeLabels") ;
/** Enable built-in property functions - also called "magic properties".
* These are properties in triple patterns that need
@@ -117,27 +129,27 @@ public class ARQ
*/
public static final Symbol enablePropertyFunctions =
- ARQConstants.allocSymbol("enablePropertyFunctions") ;
+ SystemARQ.allocSymbol("enablePropertyFunctions") ;
/** Enable logging of execution timing.
*/
public static final Symbol enableExecutionTimeLogging =
- ARQConstants.allocSymbol("enableExecutionTimeLogging") ;
+ SystemARQ.allocSymbol("enableExecutionTimeLogging") ;
/** If true, XML result sets written will contain the graph bNode label
* See also inputGraphBNodeLabels
*/
public static final Symbol outputGraphBNodeLabels =
- ARQConstants.allocSymbol("outputGraphBNodeLabels") ;
+ SystemARQ.allocSymbol("outputGraphBNodeLabels") ;
/** If true, XML result sets will use the bNode label in the result set itself.
* See also outputGraphBNodeLabels
*/
public static final Symbol inputGraphBNodeLabels =
- ARQConstants.allocSymbol("inputGraphBNodeLabels") ;
+ SystemARQ.allocSymbol("inputGraphBNodeLabels") ;
/** Turn on processing of blank node labels in queries */
public static void enableBlankNodeResultLabels() { enableBlankNodeResultLabels(true) ; }
@@ -150,7 +162,6 @@ public class ARQ
globalContext.set(outputGraphBNodeLabels, b) ;
}
-
/**
* Set timeout. The value of this symbol gives thevalue of the timeout in milliseconds
* <ul>
@@ -161,7 +172,7 @@ public class ARQ
* @see QueryExecution#setTimeout(long)
* @see QueryExecution#setTimeout(long,long)
*/
- public static final Symbol queryTimeout = ARQConstants.allocSymbol("queryTimeout") ;
+ public static final Symbol queryTimeout = SystemARQ.allocSymbol("queryTimeout") ;
// This can't be a context constant because NodeValues don't look in the context.
// /**
@@ -172,19 +183,19 @@ public class ARQ
/**
* Context key for StageBuilder used in BGP compilation
*/
- public static final Symbol stageGenerator = ARQConstants.allocSymbol("stageGenerator") ;
+ public static final Symbol stageGenerator = SystemARQ.allocSymbol("stageGenerator") ;
/**
* Context key to control hiding non-distinuished variables
*/
- public static final Symbol hideNonDistiguishedVariables = ARQConstants.allocSymbol("hideNonDistiguishedVariables") ;
+ public static final Symbol hideNonDistiguishedVariables = SystemARQ.allocSymbol("hideNonDistiguishedVariables") ;
/**
* Use the SAX parser for XML result sets. The default is to use StAX for
* full streaming of XML results. The SAX parser takes a copy of the result set
* before giving the ResultSet to the calling application.
*/
- public static final Symbol useSAX = ARQConstants.allocSymbol("useSAX") ;
+ public static final Symbol useSAX = SystemARQ.allocSymbol("useSAX") ;
/**
* Indicate whether duplicate select and groupby variables are allowed.
@@ -200,13 +211,13 @@ public class ARQ
* xercesRegex : use the internal XPath regex engine (more compliant)
*/
- public static final Symbol regexImpl = ARQConstants.allocSymbol("regexImpl") ;
+ public static final Symbol regexImpl = SystemARQ.allocSymbol("regexImpl") ;
/** Symbol to name java.util.regex regular expression engine */
- public static final Symbol javaRegex = ARQConstants.allocSymbol("javaRegex") ;
+ public static final Symbol javaRegex = SystemARQ.allocSymbol("javaRegex") ;
/** Symbol to name the Xerces-J regular expression engine */
- public static final Symbol xercesRegex = ARQConstants.allocSymbol("xercesRegex") ;
+ public static final Symbol xercesRegex = SystemARQ.allocSymbol("xercesRegex") ;
/**
* Use this Symbol to allow passing additional query parameters to a
@@ -218,7 +229,7 @@ public class ARQ
*
* @see org.apache.jena.sparql.engine.http.Service
*/
- public static final Symbol serviceParams = ARQConstants.allocSymbol("serviceParams") ;
+ public static final Symbol serviceParams = SystemARQ.allocSymbol("serviceParams") ;
/**
* Control whether SERVICE processing is allowed.
@@ -250,7 +261,7 @@ public class ARQ
// Some possible additions to the list:
// Sort: DISTINCT, merge joins<br>
// Hash table: GROUP BY, MINUS, SERVICE, VALUES, and hash joins <br>
- public static final Symbol spillToDiskThreshold = ARQConstants.allocSymbol("spillToDiskThreshold") ;
+ public static final Symbol spillToDiskThreshold = SystemARQ.allocSymbol("spillToDiskThreshold") ;
// Optimizer controls.
@@ -279,27 +290,27 @@ public class ARQ
* Context key controlling whether the main query engine applies the
* default optimization transformations.
*/
- public static final Symbol optimization = ARQConstants.allocSymbol("optimization") ;
+ public static final Symbol optimization = SystemARQ.allocSymbol("optimization") ;
/**
* Context key controlling whether the main query engine flattens simple paths
* (e.g. <tt>?x :p/:q ?z => ?x :p ?.0 . ?.0 ?q ?z</tt>)
* <p>Default is "true"
*/
- public static final Symbol optPathFlatten = ARQConstants.allocSymbol("optPathFlatten") ;
+ public static final Symbol optPathFlatten = SystemARQ.allocSymbol("optPathFlatten") ;
/**
* Context key controlling whether the main query engine moves filters to the "best" place.
* Default is "true" - filter placement is done.
*/
- public static final Symbol optFilterPlacement = ARQConstants.allocSymbol("optFilterPlacement") ;
+ public static final Symbol optFilterPlacement = SystemARQ.allocSymbol("optFilterPlacement") ;
/**
* Context key controlling whether to do filter placement within BGP and quad blocks.
* Modies the effect of optFilterPlacement.
* Default is "true" - filter placement is pushed into BGPs.
*/
- public static final Symbol optFilterPlacementBGP = ARQConstants.allocSymbol("optFilterPlacementBGP") ;
+ public static final Symbol optFilterPlacementBGP = SystemARQ.allocSymbol("optFilterPlacementBGP") ;
/**
* Context key controlling whether the main query engine moves filters to the "best" place using
@@ -308,19 +319,19 @@ public class ARQ
* Filter placement, via {@link #optFilterPlacement} must also be active (which it is by default).
* @see #optFilterPlacement
*/
- public static final Symbol optFilterPlacementConservative = ARQConstants.allocSymbol("optFilterPlacementConservative") ;
+ public static final Symbol optFilterPlacementConservative = SystemARQ.allocSymbol("optFilterPlacementConservative") ;
/**
* Context key controlling whether an ORDER BY-LIMIT query is done avoiding total sort using an heap.
* Default is "true" - total sort if avoided by default when ORDER BY is used with LIMIT.
*/
- public static final Symbol optTopNSorting = ARQConstants.allocSymbol("optTopNSorting") ;
+ public static final Symbol optTopNSorting = SystemARQ.allocSymbol("optTopNSorting") ;
/**
* Context key controlling whether a DISTINCT-ORDER BY query is done by replacing the distinct with a reduced.
* Default is "true" - the reduced operator does not need to keep a data structure with all previously seen bindings.
*/
- public static final Symbol optDistinctToReduced = ARQConstants.allocSymbol("optDistinctToReduced") ;
+ public static final Symbol optDistinctToReduced = SystemARQ.allocSymbol("optDistinctToReduced") ;
/**
* Context key controlling whether a DISTINCT-ORDER BY query is done by applying the ORDER BY after the DISTINCT
@@ -330,7 +341,7 @@ public class ARQ
* See {@link TransformOrderByDistinctApplication} for more discussion on exactly when this may apply
* </p>
*/
- public static final Symbol optOrderByDistinctApplication = ARQConstants.allocSymbol("optOrderByDistinctApplication");
+ public static final Symbol optOrderByDistinctApplication = SystemARQ.allocSymbol("optOrderByDistinctApplication");
/**
* Context key controlling whether the standard optimizer applies
@@ -338,7 +349,7 @@ public class ARQ
* This optimization is conservative - it does not take place if
* there is a potential risk of changing query semantics.
*/
- public static final Symbol optFilterEquality = ARQConstants.allocSymbol("optFilterEquality") ;
+ public static final Symbol optFilterEquality = SystemARQ.allocSymbol("optFilterEquality") ;
/**
* Context key controlling whether the standard optimizer applies
@@ -346,103 +357,102 @@ public class ARQ
* This optimization is conservative - it does not take place if
* there is a potential risk of changing query semantics
*/
- public static final Symbol optFilterInequality = ARQConstants.allocSymbol("optFilterInequality") ;
+ public static final Symbol optFilterInequality = SystemARQ.allocSymbol("optFilterInequality") ;
/**
* Context key controlling whether the standard optimizer applies optimizations to implicit joins in FILTERs.
* This optimization is conservative - it does not take place if there is a potential risk of changing query semantics.
*/
- public static final Symbol optFilterImplicitJoin = ARQConstants.allocSymbol("optFilterImplicitJoin");
+ public static final Symbol optFilterImplicitJoin = SystemARQ.allocSymbol("optFilterImplicitJoin");
/**
* Context key controlling whether the standard optimizer applies optimizations to implicit left joins.
* This optimization is conservative - it does not take place if there is a potential risk of changing query semantics.
*/
- public static final Symbol optImplicitLeftJoin = ARQConstants.allocSymbol("optImplicitLeftJoin");
+ public static final Symbol optImplicitLeftJoin = SystemARQ.allocSymbol("optImplicitLeftJoin");
/**
* Context key for a declaration that xsd:strings and simple literals are
* different in the storage. They are the same value in a memory store.
* When in doubt, xsd:strings are assumed to be the same value as simple literals
*/
- public static final Symbol optTermStrings = ARQConstants.allocSymbol("optTermStrings") ;
+ public static final Symbol optTermStrings = SystemARQ.allocSymbol("optTermStrings") ;
/**
* Context key controlling whether the standard optimizer applies constant folding to expressions
*/
- public static final Symbol optExprConstantFolding = ARQConstants.allocSymbol("optExprConstantFolding");
+ public static final Symbol optExprConstantFolding = SystemARQ.allocSymbol("optExprConstantFolding");
/**
* Context key controlling whether the standard optimizer applies
* optimizations to conjunctions (&&) in filters.
*/
- public static final Symbol optFilterConjunction = ARQConstants.allocSymbol("optFilterConjunction") ;
+ public static final Symbol optFilterConjunction = SystemARQ.allocSymbol("optFilterConjunction") ;
/**
* Context key controlling whether the standard optimizer applies
* optimizations to IN and NOT IN.
*/
- public static final Symbol optFilterExpandOneOf = ARQConstants.allocSymbol("optFilterExpandOneOf") ;
+ public static final Symbol optFilterExpandOneOf = SystemARQ.allocSymbol("optFilterExpandOneOf") ;
/**
* Context key controlling whether the standard optimizer applies
* optimizations to disjunctions (||) in filters.
*/
- public static final Symbol optFilterDisjunction = ARQConstants.allocSymbol("optFilterDisjunction") ;
+ public static final Symbol optFilterDisjunction = SystemARQ.allocSymbol("optFilterDisjunction") ;
/**
* Context key controlling whether the standard optimizer applies table empty promotion
*/
- public static final Symbol optPromoteTableEmpty = ARQConstants.allocSymbol("optPromoteTableEmpty") ;
+ public static final Symbol optPromoteTableEmpty = SystemARQ.allocSymbol("optPromoteTableEmpty") ;
/**
* Context key controlling whether the standard optimizer applies optimizations to the evaluation
* of joins to favour index joins wherever possible
*/
- public static final Symbol optIndexJoinStrategy = ARQConstants.allocSymbol("optIndexJoinStrategy");
+ public static final Symbol optIndexJoinStrategy = SystemARQ.allocSymbol("optIndexJoinStrategy");
/**
* Context key controlling whether the standard optimizer applies optimizations where by some
* assignments may be eliminated/inlined into the operators where their values are used only once
*/
- public static final Symbol optInlineAssignments = ARQConstants.allocSymbol("optInlineAssignments");
+ public static final Symbol optInlineAssignments = SystemARQ.allocSymbol("optInlineAssignments");
/**
* Context key controlling whether the standard optimizer aggressively inlines assignments whose
* values are used only once into operators where those expressions may be evaluated multiple times e.g. order
*/
- public static final Symbol optInlineAssignmentsAggressive = ARQConstants.allocSymbol("optInlineAssignmentsAggressive");
+ public static final Symbol optInlineAssignmentsAggressive = SystemARQ.allocSymbol("optInlineAssignmentsAggressive");
/**
* Context key controlling whether the standard optimizater applies optimizations to joined BGPs to
* merge them into single BGPs.
* By default, this transformation is applied.
*/
- public static final Symbol optMergeBGPs = ARQConstants.allocSymbol("optMergeBGPs");
+ public static final Symbol optMergeBGPs = SystemARQ.allocSymbol("optMergeBGPs");
/**
* Context key controlling whether the standard optimizater applies the optimization
* to combine stacks of (extend) into one compound operation. Ditto (assign).
* By default, this transformation is applied.
*/
- public static final Symbol optMergeExtends = ARQConstants.allocSymbol("optMergeExtends");
+ public static final Symbol optMergeExtends = SystemARQ.allocSymbol("optMergeExtends");
/**
* Context key controlling whether the main query engine processes property functions.
- *
*/
- public static final Symbol propertyFunctions = ARQConstants.allocSymbol("propertyFunctions") ;
+ public static final Symbol propertyFunctions = SystemARQ.allocSymbol("propertyFunctions") ;
/**
* Expression evaluation without extension types (e.g. xsd:date, language tags)
*/
- public static final Symbol extensionValueTypes = ARQConstants.allocSymbol("extensionValueTypesExpr") ;
+ public static final Symbol extensionValueTypes = SystemARQ.allocSymbol("extensionValueTypesExpr") ;
/**
* Generate the ToList operation in the algebra (as ARQ is stream based, ToList is a non-op).
* Default is not to do so. Strict mode will also enable this.
*/
- public static final Symbol generateToList = ARQConstants.allocSymbol("generateToList") ;
+ public static final Symbol generateToList = SystemARQ.allocSymbol("generateToList") ;
/** Set strict mode, including expression evaluation */
public static void setStrictMode() { setStrictMode(ARQ.getContext()) ; }
@@ -514,13 +524,8 @@ public class ARQ
/** The date and time at which this release was built */
public static final String BUILD_DATE = metadata.get(PATH+".build.datetime", "unset") ;
-
- // 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 final Object initLock = new Object() ;
+ // Initialize now in case other initialization uses getContext().
private static Context globalContext = null ;
/** Ensure things have started - applications do not need call this.
@@ -528,19 +533,24 @@ public class ARQ
* Note the final static initializer call
*/
- public static void init()
- {
- if ( initialized )
+ static { JenaSystem.init(); }
+
+ public static void init() {
+ if ( initialized ) {
return ;
+ }
synchronized(initLock)
{
- if ( initialized )
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("ARQ.init - skip") ;
return ;
+ }
+
initialized = true ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("ARQ.init - start") ;
globalContext = defaultSettings() ;
-
- RIOT.init() ;
- StageBuilder.init() ;
ARQMgt.init() ; // After context and after PATH/NAME/VERSION/BUILD_DATE are set
MappingRegistry.addPrefixMapping(ARQ.arqSymbolPrefix, ARQ.arqParamNS) ;
@@ -551,15 +561,15 @@ public class ARQ
// Register RIOT details here, not earlier, to avoid
// initialization loops with RIOT.init() called directly.
RIOT.register() ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("ARQ.init - finish") ;
}
}
- // Force a call
- static { init() ; }
-
/* Side effects */
private static Context defaultSettings()
{
+ // This must be exeutable before initialization
SystemARQ.StrictDateTimeFO = false ;
SystemARQ.ValueExtensions = true ;
SystemARQ.EnableRomanNumerals = false ;
@@ -577,7 +587,6 @@ public class ARQ
public static Context getContext()
{
- //ARQ.init() ;
return globalContext ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 6d6289a..3ff5b3f 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,6 +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 ;
/** The data structure for a query as presented externally.
* There are two ways of creating a query - use the parser to turn
@@ -54,7 +55,7 @@ import org.apache.jena.sparql.util.FmtUtils ;
public class Query extends Prologue implements Cloneable, Printable
{
- static { ARQ.init() ; /* Ensure everything has started properly */ }
+ static { JenaSystem.init() ; /* Ensure everything has started properly */ }
public static final int QueryTypeUnknown = -123 ;
public static final int QueryTypeSelect = 111 ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 b5cf428..d48fb0c 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
@@ -49,6 +49,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.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -78,10 +79,7 @@ import org.slf4j.LoggerFactory ;
public class RDFDataMgr
{
- static { RIOT.init() ; }
- /* Maybe:
- * static for global (singleton) and locally tailored.
- */
+ static { JenaSystem.init() ; }
static Logger log = LoggerFactory.getLogger(RDFDataMgr.class) ;
private static String riotBase = "http://jena.apache.org/riot/" ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 9f766d6..8c45c68 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
@@ -21,6 +21,7 @@ package org.apache.jena.riot ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.mgt.SystemInfo ;
+import org.apache.jena.system.JenaSystem ;
public class RIOT {
/** IRI for RIOT */
@@ -52,10 +53,15 @@ public class RIOT {
if ( initialized )
return ;
synchronized (initLock) {
- if ( initialized )
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("RIOT.init - skip") ;
return ;
+ }
initialized = true ;
- // Becareful with what this touches - don't touch ARQ.*
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("RIOT.init - start") ;
+ // Be careful with what this touches - don't touch ARQ.*
// because that depends on Jena core and we may be
// initializing because IO_Ctl (ie. Jena core)
// called RIOT.init.
@@ -68,6 +74,8 @@ public class RIOT {
// Don't register JMX info with ARQ as it may not be initialized
// itself and we can get into a circularity.
// This is done in ARQ.init at the proper moment.
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("RIOT.init - finish") ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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
new file mode 100644
index 0000000..18b514b
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/InitRIOT.java
@@ -0,0 +1,39 @@
+/**
+ * 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.riot.system;
+
+import org.apache.jena.riot.RIOT ;
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+/** RIOT initialization. Used by {@code JenaSystem} */
+public class InitRIOT implements JenaSubsystemLifecycle {
+
+ @Override
+ public void start() {
+ RIOT.init();
+ }
+
+ @Override
+ public void stop() {}
+
+ @Override
+ public int level() {
+ return 20 ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
index cf66c4d..ffa319e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/ARQConstants.java
@@ -19,7 +19,6 @@
package org.apache.jena.sparql;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
-import org.apache.jena.query.ARQ ;
import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
import org.apache.jena.sparql.util.Symbol ;
@@ -28,7 +27,8 @@ import org.apache.jena.vocabulary.RDF ;
import org.apache.jena.vocabulary.RDFS ;
/**
- * Internal constants - configuration is in class ARQ */
+ * Internal constants - configuration is in class ARQ
+ */
public class ARQConstants
{
/** The prefix of XQuery/Xpath functions and operator */
@@ -104,20 +104,6 @@ public class ARQConstants
}
public static PrefixMapping getGlobalPrefixMap() { return globalPrefixMap ; }
- public static Symbol allocSymbol(String shortName)
- {
- if ( shortName.startsWith(ARQ.arqSymbolPrefix))
- throw new ARQInternalErrorException("Symbol short name begins with the ARQ namespace prefix: "+shortName) ;
- if ( shortName.startsWith("http:"))
- throw new ARQInternalErrorException("Symbol short name begins with http: "+shortName) ;
- return allocSymbol(ARQ.arqParamNS, shortName) ;
- }
-
- public static Symbol allocSymbol(String base, String shortName)
- {
- return Symbol.create(base+shortName) ;
- }
-
/* Variable names and allocated variables.
* NB Must agree with the variable parsing rules in SSE
* Allocated variables use names that are not legal in SPARQL.
@@ -247,33 +233,33 @@ public class ARQConstants
public static final Symbol sysVarAllocAnon = Symbol.create(systemVarNS+"namedVarAnon") ;
/** Graphs forming the default graph (List<String>) (Dynamic dataset) */
- public static final Symbol symDatasetDefaultGraphs = allocSymbol("datasetDefaultGraphs") ;
+ public static final Symbol symDatasetDefaultGraphs = SystemARQ.allocSymbol("datasetDefaultGraphs") ;
/** Graphs forming the named graphs (List<String>) (Dynamic dataset) */
- public static final Symbol symDatasetNamedGraphs = allocSymbol("datasetNamedGraphs") ;
+ public static final Symbol symDatasetNamedGraphs = SystemARQ.allocSymbol("datasetNamedGraphs") ;
/** Context key for making all SELECT queries have DISTINCT applied, whether stated ot not */
- public static final Symbol autoDistinct = ARQConstants.allocSymbol("autoDistinct") ;
+ public static final Symbol autoDistinct = SystemARQ.allocSymbol("autoDistinct") ;
// Context keys : some here, some in ARQ - sort out
/** The property function registry key */
public static final Symbol registryPropertyFunctions =
- ARQConstants.allocSymbol("registryPropertyFunctions") ;
+ SystemARQ.allocSymbol("registryPropertyFunctions") ;
/** The describe handler registry key */
public static final Symbol registryDescribeHandlers =
- ARQConstants.allocSymbol("registryDescribeHandlers") ;
+ SystemARQ.allocSymbol("registryDescribeHandlers") ;
/** The function library registry key */
public static final Symbol registryFunctions =
- ARQConstants.allocSymbol("registryFunctions") ;
+ SystemARQ.allocSymbol("registryFunctions") ;
/** The function library registry key */
public static final Symbol registryProcedures =
- ARQConstants.allocSymbol("registryProcedures") ;
+ SystemARQ.allocSymbol("registryProcedures") ;
/** The extension library registry key */
public static final Symbol registryExtensions =
- ARQConstants.allocSymbol("registryExtensions") ;
+ SystemARQ.allocSymbol("registryExtensions") ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
index 2cdbeb4..41a2f95 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/SystemARQ.java
@@ -27,6 +27,7 @@ import org.apache.jena.atlas.lib.Sync ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.compose.Polyadic ;
+import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.reasoner.InfGraph ;
@@ -34,10 +35,12 @@ import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.graph.GraphWrapper ;
import org.apache.jena.sparql.mgt.ARQMgt ;
import org.apache.jena.sparql.mgt.SystemInfo ;
+import org.apache.jena.sparql.util.Symbol ;
public class SystemARQ
{
// Various system wide settings, "constants" that might change e.g. test setups
+ // ** This can be loaded before the rest of ARQ is initialized **
// NodeValues work without the context so somethings only have global settings.
@@ -156,4 +159,18 @@ public class SystemARQ
return versions.iterator() ;
}
+ public static Symbol allocSymbol(String shortName)
+ {
+ if ( shortName.startsWith(ARQ.arqSymbolPrefix))
+ throw new ARQInternalErrorException("Symbol short name begins with the ARQ namespace prefix: "+shortName) ;
+ if ( shortName.startsWith("http:"))
+ throw new ARQInternalErrorException("Symbol short name begins with http: "+shortName) ;
+ return SystemARQ.allocSymbol(ARQ.arqParamNS, shortName) ;
+ }
+
+ public static Symbol allocSymbol(String base, String shortName)
+ {
+ return Symbol.create(base+shortName) ;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
index 8c2347a..75e9d14 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/Optimize.java
@@ -20,6 +20,7 @@ package org.apache.jena.sparql.algebra.optimize;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sparql.ARQConstants ;
+import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.algebra.* ;
import org.apache.jena.sparql.algebra.op.OpLabel ;
import org.apache.jena.sparql.engine.ExecutionContext ;
@@ -116,7 +117,7 @@ public class Optimize implements Rewrite
}
/** Alternative name for compatibility only */
- public static final Symbol filterPlacementOldName = ARQConstants.allocSymbol("filterPlacement") ;
+ public static final Symbol filterPlacementOldName = SystemARQ.allocSymbol("filterPlacement") ;
@Override
public Op rewrite(Op op)
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformTopN.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformTopN.java b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformTopN.java
index 2c49133..26bef8e 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformTopN.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/optimize/TransformTopN.java
@@ -24,7 +24,7 @@ import java.util.Set ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Query ;
import org.apache.jena.query.SortCondition ;
-import org.apache.jena.sparql.ARQConstants ;
+import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.algebra.TransformCopy ;
import org.apache.jena.sparql.algebra.op.* ;
@@ -43,7 +43,7 @@ public class TransformTopN extends TransformCopy {
// This must be less than ARQ.spillToDiskThreshold.
// Otherwise DISTINCT ends up reordering.
private static final int defaultTopNSortingThreshold = 1000;
- public static final Symbol externalSortBufferSize = ARQConstants.allocSymbol("topNSortingThreshold") ;
+ public static final Symbol externalSortBufferSize = SystemARQ.allocSymbol("topNSortingThreshold") ;
/* For reference: from the algebra generation of a query, the order of operations is:
* Limit/Offset
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 eb4fde5..c2e6295 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
@@ -33,6 +33,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 ;
public class AssemblerUtils
{
@@ -45,7 +46,7 @@ public class AssemblerUtils
private static boolean initialized = false ;
- static { ARQ.init(); init() ; }
+ static { JenaSystem.init() ; init() ; }
static public void init()
{
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/Service.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/Service.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/Service.java
index 730f272..162aa0d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/Service.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/http/Service.java
@@ -28,7 +28,7 @@ import org.apache.jena.query.Query ;
import org.apache.jena.query.QueryExecException ;
import org.apache.jena.query.ResultSet ;
import org.apache.jena.query.ResultSetFactory ;
-import org.apache.jena.sparql.ARQConstants ;
+import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.algebra.Op ;
import org.apache.jena.sparql.algebra.OpAsQuery ;
import org.apache.jena.sparql.algebra.OpVars ;
@@ -51,22 +51,22 @@ public class Service {
/**
* Use to set the HttpQuery.allowDeflate flag.
*/
- public static final Symbol queryDeflate = ARQConstants.allocSymbol(base, "queryDeflate");
+ public static final Symbol queryDeflate = SystemARQ.allocSymbol(base, "queryDeflate");
/**
* Use to set the HttpQuery.allowGZip flag.
*/
- public static final Symbol queryGzip = ARQConstants.allocSymbol(base, "queryGzip");
+ public static final Symbol queryGzip = SystemARQ.allocSymbol(base, "queryGzip");
/**
* Use to set the user id for basic auth.
*/
- public static final Symbol queryAuthUser = ARQConstants.allocSymbol(base, "queryAuthUser");
+ public static final Symbol queryAuthUser = SystemARQ.allocSymbol(base, "queryAuthUser");
/**
* Use to set the user password for basic auth.
*/
- public static final Symbol queryAuthPwd = ARQConstants.allocSymbol(base, "queryAuthPwd");
+ public static final Symbol queryAuthPwd = SystemARQ.allocSymbol(base, "queryAuthPwd");
/**
* Use this Symbol to allow passing additional service context variables
@@ -77,7 +77,7 @@ public class Service {
*
* @see org.apache.jena.sparql.engine.http.Service
*/
- public static final Symbol serviceContext = ARQConstants.allocSymbol(base, "serviceContext");
+ public static final Symbol serviceContext = SystemARQ.allocSymbol(base, "serviceContext");
/**
* Control whether SERVICE processing is allowed.
@@ -85,7 +85,7 @@ public class Service {
* then SERVICE is not allowed.
*/
- public static final Symbol serviceAllowed = ARQConstants.allocSymbol(base, "serviceAllowed");
+ public static final Symbol serviceAllowed = SystemARQ.allocSymbol(base, "serviceAllowed");
/**
* Set timeout. The value of this symbol gives the value of the timeout in
@@ -99,7 +99,7 @@ public class Service {
* The first value is passed to HttpQuery.setConnectTimeout() the second, if
* it exists, is passed to HttpQuery.setReadTimeout()
*/
- public static final Symbol queryTimeout = ARQConstants.allocSymbol(base, "queryTimeout");
+ public static final Symbol queryTimeout = SystemARQ.allocSymbol(base, "queryTimeout");
/**
* Executes a service operator
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/engine/join/AbstractIterHashJoin.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/join/AbstractIterHashJoin.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/join/AbstractIterHashJoin.java
index 7d31354..11701e1 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/join/AbstractIterHashJoin.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/join/AbstractIterHashJoin.java
@@ -47,7 +47,7 @@ public abstract class AbstractIterHashJoin extends QueryIter2 {
protected final JoinKey joinKey ;
protected final HashProbeTable hashTable ;
- private Iterator<Binding> iterStream ;
+ private QueryIterator iterStream ;
private Binding rowStream = null ;
private Iterator<Binding> iterCurrent ;
private boolean yielded ; // Flag to note when current probe causes a result.
@@ -227,11 +227,14 @@ public abstract class AbstractIterHashJoin extends QueryIter2 {
hashTable.s_countScanMiss, hashTable.s_maxBucketSize, hashTable.s_noKeyBucketSize) ;
System.out.println(x) ;
}
+ // In case it's a peek iterator.
+ iterStream.close() ;
hashTable.clear();
}
@Override
protected void requestSubCancel() {
+ iterStream.close() ;
hashTable.clear();
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageBuilder.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageBuilder.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageBuilder.java
index f4ce821..1a1ec45 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageBuilder.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/StageBuilder.java
@@ -18,6 +18,7 @@
package org.apache.jena.sparql.engine.main;
+import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sparql.core.BasicPattern ;
import org.apache.jena.sparql.engine.ExecutionContext ;
@@ -66,28 +67,23 @@ public class StageBuilder
// -------- Initialize
- public static void init()
- {
- StageGenerator gen = getGenerator(ARQ.getContext()) ;
- if ( gen == null )
- {
- gen = standardGenerator() ;
- setGenerator(ARQ.getContext(), gen) ;
- }
- }
+ private static StageGenerator defaultStageGenerator = new StageGeneratorGeneric() ;
/** The plain StageGenerator, no reordering */
public static StageGenerator executeInline = new StageGenerator() {
@Override
public QueryIterator execute(BasicPattern pattern, QueryIterator input, ExecutionContext execCxt)
{
- return QueryIterBlockTriples.create(input, pattern, execCxt) ;
+ return QueryIterBlockTriples.create(input, pattern, execCxt) ;
}} ;
// -------- Manage StageGenerator registration
public static void setGenerator(Context context, StageGenerator builder)
{
+ if ( ARQ.stageGenerator == null )
+ // Indicator of initialization problems
+ Log.warn(StageBuilder.class, "ARQ.stageGenerator = null") ;
context.set(ARQ.stageGenerator, builder) ;
}
@@ -105,7 +101,7 @@ public class StageBuilder
public static StageGenerator standardGenerator()
{
- return new StageGeneratorGeneric() ;
+ return defaultStageGenerator ;
}
public static StageGenerator chooseStageGenerator(Context context)
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderFixed.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderFixed.java b/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderFixed.java
index 4afbd43..4fddc7d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderFixed.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/engine/optimizer/reorder/ReorderFixed.java
@@ -69,6 +69,7 @@ public class ReorderFixed extends ReorderTransformationSubstitution {
static { init() ; }
private static void init() {
+ //ype = Item.createNode(NodeConst.nodeRDFType) ;
// rdf:type can be a bad choice e.g rdf:type rdf:Resource
// with inference enabled.
// Weight use of rdf:type worse then the general pattern
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java
index a459d32..6c13d62 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/lang/ParserSPARQL11.java
@@ -113,6 +113,7 @@ public class ParserSPARQL11 extends SPARQLParser
catch (JenaException ex) { throw new QueryException(ex.getMessage(), ex) ; }
catch (Error err)
{
+ System.err.println(err.getMessage()) ;
// The token stream can throw errors.
throw new QueryParseException(err.getMessage(), err, -1, -1) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 a9d67b4..f50425c 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
@@ -53,10 +53,13 @@ import org.apache.jena.sparql.sse.writers.WriterGraph ;
import org.apache.jena.sparql.sse.writers.WriterNode ;
import org.apache.jena.sparql.sse.writers.WriterOp ;
import org.apache.jena.sparql.util.FmtUtils ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.util.FileUtils ;
public class SSE
{
+ static { JenaSystem.init(); }
+
private SSE() {}
// Short prefix map for convenience (used in parsing, not in writing).
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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
new file mode 100644
index 0000000..d88d989
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/system/InitARQ.java
@@ -0,0 +1,39 @@
+/**
+ * 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.sparql.system;
+
+import org.apache.jena.query.ARQ ;
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+/** ARQ initialization. Used by {@code JenaSystem} */
+public class InitARQ implements JenaSubsystemLifecycle {
+
+ @Override
+ public void start() {
+ ARQ.init();
+ }
+
+ @Override
+ public void stop() {}
+
+ @Override
+ public int level() {
+ return 30 ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-arq/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..62d3fcd
--- /dev/null
+++ b/jena-arq/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1,2 @@
+org.apache.jena.riot.system.InitRIOT
+org.apache.jena.sparql.system.InitARQ
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-arq/src/test/java/arq/qtest.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/arq/qtest.java b/jena-arq/src/test/java/arq/qtest.java
index e26487f..87a9d32 100644
--- a/jena-arq/src/test/java/arq/qtest.java
+++ b/jena-arq/src/test/java/arq/qtest.java
@@ -20,11 +20,12 @@ package arq;
import java.io.File ;
+import arq.cmdline.CmdARQ ;
+import arq.cmdline.ModEngine ;
import jena.cmd.ArgDecl;
import jena.cmd.CmdException;
import jena.cmd.TerminationException;
import junit.framework.TestSuite ;
-
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.graph.Node ;
import org.apache.jena.query.ARQ ;
@@ -46,9 +47,6 @@ import org.apache.jena.vocabulary.DCTerms ;
import org.apache.jena.vocabulary.RDF ;
import org.apache.jena.vocabulary.XSD ;
-import arq.cmdline.CmdARQ ;
-import arq.cmdline.ModEngine ;
-
/** A program to execute query test suites
*
@@ -80,7 +78,6 @@ public class qtest extends CmdARQ
public static void main (String... argv)
{
- ARQ.init();
try {
new qtest(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 5807000..c3c2639 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
@@ -18,19 +18,19 @@
package org.apache.jena.sparql;
+import arq.TS_Cmd ;
import junit.framework.JUnit4TestAdapter ;
import junit.framework.TestSuite ;
import org.apache.jena.atlas.legacy.BaseTest2 ;
import org.apache.jena.atlas.legacy.TC_Atlas_ARQ ;
import org.apache.jena.common.TC_Common ;
-import org.apache.jena.query.ARQ ;
import org.apache.jena.riot.TC_Riot ;
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.web.TS_Web ;
-import arq.TS_Cmd ;
/**
* All the ARQ tests
@@ -82,7 +82,7 @@ public class ARQTestSuite extends TestSuite
private ARQTestSuite()
{
super("All ARQ tests");
- ARQ.init() ;
+ JenaSystem.init();
// Tests should be silent.
NodeValue.VerboseWarnings = false ;
E_Function.WarnOnUnknownFunction = false ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/java/jena/rdfcat.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/jena/rdfcat.java b/jena-core/src/main/java/jena/rdfcat.java
index f05517a..c292d45 100644
--- a/jena-core/src/main/java/jena/rdfcat.java
+++ b/jena-core/src/main/java/jena/rdfcat.java
@@ -31,9 +31,9 @@ import java.util.* ;
import java.util.function.BiConsumer;
import org.apache.jena.rdf.model.* ;
-import org.apache.jena.rdf.model.impl.IO_Ctl ;
import org.apache.jena.rdf.model.impl.RDFWriterFImpl ;
import org.apache.jena.shared.NoWriterForLangException ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.util.FileManager ;
import org.apache.jena.util.FileUtils ;
import org.apache.jena.vocabulary.OWL ;
@@ -211,7 +211,7 @@ public class rdfcat
/* main loop */
protected void go( String[] args ) {
-
+ JenaSystem.init();
if ( ! suppressDeprecationBanner ) {
System.err.println("------------------------------------------------------------------");
System.err.println(" DEPRECATED: Please use 'riot' instead.");
@@ -220,9 +220,6 @@ public class rdfcat
System.err.println() ;
}
- // ensure we use the new RIOT parser subsystem
- enableRIOTParser();
-
m_cmdLine.process( args );
// process any stored items
@@ -399,13 +396,6 @@ public class rdfcat
return n.isLiteral() ? ((Literal) n).getLexicalForm() : ((Resource) n).getURI();
}
- /**
- * Enable the new RIOT parser subsystem if it is available
- */
- private void enableRIOTParser() {
- IO_Ctl.init();
- }
-
//==============================================================================
// Inner class definitions
//==============================================================================
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
index 78e4810..33d1d33 100644
--- a/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
+++ b/jena-core/src/main/java/org/apache/jena/assembler/Assembler.java
@@ -28,6 +28,7 @@ import org.apache.jena.rdf.model.* ;
*/
public interface Assembler
{
+
/**
The core operation: answer a new object constructed according to the
object description hanging from <code>root</code>, using the assembler
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 560eada..e1f9bc7 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,10 +23,12 @@ 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.vocabulary.RDF ;
public abstract class AssemblerBase implements Assembler
- {
+{
+ static { JenaSystem.init(); }
@Override
public final Object open( Resource root )
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 55bbda8..b1243dc 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,6 +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 ;
/**
ModelFactory provides methods for creating standard kinds of Model.
@@ -45,6 +46,7 @@ import org.apache.jena.shared.PrefixMapping ;
public class ModelFactory extends ModelFactoryBase
{
+ static { JenaSystem.init(); }
/**
No-one can make instances of this.
*/
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/java/org/apache/jena/rdf/model/impl/IO_Ctl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/IO_Ctl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/IO_Ctl.java
deleted file mode 100644
index cc73734..0000000
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/IO_Ctl.java
+++ /dev/null
@@ -1,71 +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.rdf.model.impl;
-
-import java.lang.reflect.Method ;
-
-
-public class IO_Ctl
-{
- private static volatile boolean initialized = false ;
- private static final Object initLock = new Object() ;
- public static void init()
- {
- if ( initialized )
- return ;
- synchronized(initLock)
- {
- try {
- initialized = true ;
- callByRefection("org.apache.jena.riot.RIOT", "init") ;
- } catch (ExceptionInInitializerError e)
- {
- e.printStackTrace(System.err) ;
- if ( e.getCause() != null )
- {
- System.err.println("****") ;
- e.getCause().printStackTrace(System.err) ;
- }
- System.exit(99) ;
- }
- }
- }
-
- // Call a static of no arguments by reflection.
- private static void callByRefection(String className, String staticMethod)
- {
- Class<? > cls = null ;
- try { cls = Class.forName(className) ; }
- catch (ClassNotFoundException ex) {
- // System.err.println(className+" not on the classpath") ;
- return ;
- }
-
- Method m = null ;
- try
- {
- m = cls.getMethod(staticMethod ) ;
- m.invoke(null, (Object[])null) ;
- } catch (Exception e)
- {
- e.printStackTrace();
- } //System.err.println("INIT 2") ;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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 96ab379..ff93f69 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
@@ -35,6 +35,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.util.CollectionFactory ;
import org.apache.jena.util.iterator.* ;
import org.apache.jena.vocabulary.RDF ;
@@ -59,7 +60,7 @@ implements Model, PrefixMapping, Lock
// This forces RIOT (in ARQ) to initialize but after Jena readers/writers
// have cleanly initialized from the calls of RDFReaderFImpl and RDFWriterFImpl
// above. RIOT initialization happens before model.read can be called.
- IO_Ctl.init();
+ JenaSystem.init() ;
}
/**
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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
new file mode 100644
index 0000000..83b9151
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
@@ -0,0 +1,67 @@
+/**
+ * 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 {
+
+ @Override
+ public void start() {
+ init() ;
+ }
+
+ @Override
+ public void stop() {}
+
+ @Override
+ public int level() {
+ return 10 ;
+ }
+
+ private static volatile boolean initialized = false ;
+ private static Object initLock = new Object() ;
+
+ public static void init() {
+ if ( initialized )
+ return ;
+ synchronized (initLock) {
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("JenaCore.init - skip") ;
+ return ;
+ }
+ initialized = true ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("JenaCore.init - start") ;
+
+ // Initialization
+ // Touch classes with constants.
+ // This isn't necessary but it makes it more deterministic.
+ // These constants are resused in various places.
+ RDF.getURI() ;
+ RDFS.getURI() ;
+ OWL.getURI() ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("JenaCore.init - finish") ;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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
new file mode 100644
index 0000000..daf6b2a
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
@@ -0,0 +1,32 @@
+/**
+ * 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 oeprate 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/55a8eab3/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
new file mode 100644
index 0000000..3e7a2cb
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
@@ -0,0 +1,56 @@
+/**
+ * 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 JenaSubsystemCollector} is a set of objects implementing {@link JenaSubsystemLifecycle}.
+ * <p>
+ * It is a set - at most one entry.
+ * <p>Discovered in some way.
+ */
+public interface JenaSubsystemRegistry {
+
+ /** Load - peform some kinds of search for {@link JenaSubsystemLifecycle} implementations.
+ * This is called once only.
+ */
+ public void load();
+
+ /** Add to the colection. */
+ public void add(JenaSubsystemLifecycle module);
+
+ /** check whether registered */
+ public boolean isRegistered(JenaSubsystemLifecycle module);
+
+ /** Remove from the colection. */
+ public void remove(JenaSubsystemLifecycle module);
+
+ public int size();
+
+ public boolean isEmpty();
+
+ /**
+ * Return the registered items a copied list.
+ * The list is detached from the
+ * registry and the caller can mutate it.
+ */
+ public List<JenaSubsystemLifecycle> snapshot();
+
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/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
new file mode 100644
index 0000000..3e12fca
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistryBasic.java
@@ -0,0 +1,89 @@
+/**
+ * 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 runing a a collection (classpath) of jars.
+ */
+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 = ServiceLoader.load(JenaSubsystemLifecycle.class) ;
+ sl.forEach(life-> {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println(" "+life.getClass().getSimpleName()) ;
+ add(life);
+ }) ;
+ }
+ }
+
+ @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() {
+ return new ArrayList<>(registry) ;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
new file mode 100644
index 0000000..48603f4
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -0,0 +1,175 @@
+/**
+ * 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.Collections ;
+import java.util.Comparator ;
+import java.util.List ;
+import java.util.function.Consumer ;
+
+import org.apache.log4j.Logger ;
+
+/** 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 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.
+ *
+ * <li>0 - here
+ * <li>10 - jena-core
+ * <li>20 - RIOT
+ * <li>30 - ARQ
+ * <li>40 - TDB
+ * <li>9999 - other
+ */
+public class JenaSystem {
+
+ public static final 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.
+ * This function is cheap to call when already initialized so can be called to be sure.
+ * By default, initialization happens by using {@code ServiceLoader.load} to find
+ * {@link JenaSubsystemLifecycle} objects.
+ */
+ public static void init() {
+ if ( initialized )
+ return ;
+ synchronized(initLock) {
+ if ( initialized ) {
+ if ( DEBUG_INIT )
+ System.err.println("JenaSystem.init - return");
+ return ;
+ }
+ // Catchs recursive calls, same thread.
+ initialized = true ;
+ if ( DEBUG_INIT )
+ System.err.println("JenaSystem.init - start");
+
+ if ( get() == null )
+ set(new JenaSubsystemRegistryBasic()) ;
+
+ get().load() ;
+
+ JenaSystem.forEach( module -> {
+ if ( DEBUG_INIT )
+ System.err.println("Init: "+module.getClass().getSimpleName());
+ module.start() ;
+ }) ;
+ if ( DEBUG_INIT )
+ System.err.println("JenaSystem.init - finish");
+ }
+ }
+
+ /** Shutdown subsystems */
+ public static void shutdown() {
+ if ( ! initialized )
+ return ;
+ synchronized(initLock) {
+ JenaSystem.forEachReverse(JenaSubsystemLifecycle::stop) ;
+ initialized = false ;
+ }
+ }
+
+ private static class JenaInitLogger implements JenaSubsystemLifecycle {
+ private static Logger log = Logger.getLogger("Jena") ;
+ @Override
+ public void start() {
+ log.info/*debug*/("Jena intialization");
+ }
+
+ @Override
+ public void stop() {
+ log.debug("Jena shutdown");
+ }
+
+ @Override
+ public int level() {
+ return 0;
+ }
+ }
+
+ private static JenaSubsystemRegistry singleton = null;
+
+ public static void set(JenaSubsystemRegistry thing) {
+ singleton = thing;
+ }
+
+ public static JenaSubsystemRegistry get() {
+ return singleton;
+ }
+
+ private static Comparator<JenaSubsystemLifecycle> comparator = (obj1, obj2) -> Integer.compare(obj1.level(), obj2.level()) ;
+ private static Comparator<JenaSubsystemLifecycle> reverseComparator = (obj1, obj2) -> -1 * Integer.compare(obj1.level(), obj2.level()) ;
+
+ public static void add(JenaSubsystemLifecycle module) {
+ get().add(module) ;
+ }
+
+ public static boolean isRegistered(JenaSubsystemLifecycle module) {
+ return get().isRegistered(module);
+ }
+
+ public static void remove(JenaSubsystemLifecycle module) {
+ get().remove(module);
+ }
+
+ public static int size() {
+ return get().size();
+ }
+
+ public static boolean isEmpty() {
+ return get().isEmpty();
+ }
+
+ /** Call an action on each item in the registry.
+ * Calls are made sequentially and in 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.
+ * The exact order is not specified but call are made sequentially.
+ * The "reverse" is opposite order to {@link #forEach}, which may not be stable.
+ * It is not related to registration order.
+ * @param action
+ */
+ public static void forEachReverse(Consumer<JenaSubsystemLifecycle> action) {
+ forEach(action, reverseComparator);
+ }
+
+ private synchronized static void forEach(Consumer<JenaSubsystemLifecycle> action, Comparator<JenaSubsystemLifecycle> ordering) {
+ List<JenaSubsystemLifecycle> x = get().snapshot() ;
+ Collections.sort(x, ordering);
+ x.forEach(action);
+ }
+
+
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/java/org/apache/jena/util/FileManager.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/util/FileManager.java b/jena-core/src/main/java/org/apache/jena/util/FileManager.java
index 6be4906..1da9d56 100644
--- a/jena-core/src/main/java/org/apache/jena/util/FileManager.java
+++ b/jena-core/src/main/java/org/apache/jena/util/FileManager.java
@@ -23,10 +23,10 @@ import java.util.* ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.ModelFactory ;
-import org.apache.jena.rdf.model.impl.IO_Ctl ;
import org.apache.jena.shared.JenaException ;
import org.apache.jena.shared.NotFoundException ;
import org.apache.jena.shared.WrappedIOException ;
+import org.apache.jena.system.JenaSystem ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -70,6 +70,8 @@ import org.slf4j.LoggerFactory ;
public class FileManager
{
+ // The case of the FileManager used first.
+ static { JenaSystem.init(); }
/** Delimiter between path entries : because URI scheme names use : we only allow ; */
public static final String PATH_DELIMITER = ";";
public static final String filePathSeparator = java.io.File.separator ;
@@ -81,10 +83,6 @@ public class FileManager
protected List<Locator> fmHandlers = new ArrayList<>() ;
protected LocationMapper fmMapper = null ;
- // This forces Jena to initialize and wire in RIOT if available.
- // The global FileManager is reset.
- static { IO_Ctl.init() ; }
-
/** Get the global file manager.
* @return the global file manager
*/
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-core/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-core/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-core/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..2755f65
--- /dev/null
+++ b/jena-core/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1,2 @@
+org.apache.jena.system.InitJenaCore
+
[18/25] jena git commit: Stray blank line
Posted by an...@apache.org.
Stray blank line
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/740e1b46
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/740e1b46
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/740e1b46
Branch: refs/heads/master
Commit: 740e1b46b01c5c61dad78d19d2a853a176965625
Parents: 04b665a
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Sep 19 15:05:25 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Sep 19 15:05:25 2015 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/740e1b46/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
index 214d55a..3131434 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
@@ -50,5 +50,4 @@ public interface JenaSubsystemRegistry {
* There is no specific ordering requirement.
*/
public List<JenaSubsystemLifecycle> snapshot();
-
}
[23/25] jena git commit: Add development build information to HTTP
response if SNAPSHOT.
Posted by an...@apache.org.
Add development build information to HTTP response if SNAPSHOT.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e3e68552
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e3e68552
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e3e68552
Branch: refs/heads/master
Commit: e3e68552b8876206240febea2f453829ea03578d
Parents: e214ba2
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Sep 21 17:15:29 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Sep 21 17:15:29 2015 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/fuseki/Fuseki.java | 18 ++++++++++++++----
.../apache/jena/fuseki/servlets/ServletBase.java | 3 +++
2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e3e68552/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
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 8472422..47d656a 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
@@ -24,8 +24,6 @@ import java.util.concurrent.TimeUnit ;
import org.apache.jena.atlas.lib.DateTimeUtils ;
import org.apache.jena.query.ARQ ;
-import org.apache.jena.query.spatial.SpatialQuery ;
-import org.apache.jena.query.text.TextQuery ;
import org.apache.jena.riot.system.stream.LocatorFTP ;
import org.apache.jena.riot.system.stream.LocatorHTTP ;
import org.apache.jena.riot.system.stream.StreamManager ;
@@ -113,8 +111,20 @@ public class Fuseki {
/** An identifier for the HTTP Fuseki server instance */
static public final String serverHttpName = NAME + " (" + VERSION + ")" ;
-
- /** Loger name for operations */
+ /** An additional identifier for the HTTP Fuseki server instance in a develoment build
+ */
+ static public final String serverHttpNameDev ;
+ static {
+ // (See ServletBase.setCommonheaders
+ // If it look like a SNAPSHOT, print build date. Not perfect, but better.
+ System.err.println(">>"+BUILD_DATE);
+ System.err.println(">>"+VERSION);
+ if ( VERSION.contains("SNAPSHOT") && ! BUILD_DATE.startsWith("\\${") )
+ serverHttpNameDev = NAME + " (" + VERSION + " / " + BUILD_DATE +")" ;
+ else
+ serverHttpNameDev = null ;
+ }
+ /** Logger name for operations */
public static final String actionLogName = PATH + ".Fuseki" ;
/** Instance of log for operations */
http://git-wip-us.apache.org/repos/asf/jena/blob/e3e68552/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
index a39cdd1..4b8c361 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/servlets/ServletBase.java
@@ -82,6 +82,7 @@ public abstract class ServletBase extends HttpServlet {
httpResponse.setHeader(HttpNames.hVary, varyHeaderSetting) ;
}
+ /** Done via web.xml */
public static boolean CORS_ENABLED = false ;
public static void setCommonHeadersForOptions(HttpServletResponse httpResponse) {
@@ -94,5 +95,7 @@ public abstract class ServletBase extends HttpServlet {
if ( CORS_ENABLED )
httpResponse.setHeader(HttpNames.hAccessControlAllowOrigin, "*") ;
httpResponse.setHeader(HttpNames.hServer, Fuseki.serverHttpName) ;
+ if ( Fuseki.serverHttpNameDev != null )
+ httpResponse.setHeader("X-"+HttpNames.hServer, Fuseki.serverHttpNameDev) ;
}
}
[03/25] jena git commit: Fix repeated typo.
Posted by an...@apache.org.
Fix repeated typo.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/0da50bfa
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/0da50bfa
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/0da50bfa
Branch: refs/heads/master
Commit: 0da50bfa6d08df240c7ed2f6ee11f931b8ba008a
Parents: df1f1f4
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 00:18:47 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 00:18:47 2015 +0100
----------------------------------------------------------------------
.../model/impl/SecuredResourceImpl.java | 22 ++++++++++----------
1 file changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/0da50bfa/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
index e28815b..79f38c6 100644
--- a/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
+++ b/jena-permissions/src/main/java/org/apache/jena/permissions/model/impl/SecuredResourceImpl.java
@@ -129,7 +129,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -147,7 +147,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -165,7 +165,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -183,7 +183,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -201,7 +201,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* from the other addLiteral methods in that the Literal is not turned into
* a Literal.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -219,7 +219,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -237,7 +237,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* one constructed by using
* <code>this.getModel().createTypedLiteral(o)</code>.
*
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -261,7 +261,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* @param o
* The value of the property to be added.
* @return This resource to allow cascading calls.
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -289,7 +289,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* @param o
* The value of the property to be added.
* @return This resource to allow cascading calls.
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -315,7 +315,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* @param datatype
* The datatype
* @return This resource to allow cascading calls.
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
@@ -348,7 +348,7 @@ public class SecuredResourceImpl extends SecuredRDFNodeImpl implements
* @param l
* the language of the property
* @return This resource to allow cascading calls.
- * @throws UpdadeDeniedException
+ * @throws UpdateDeniedException
* @throws AddDeniedException
* @throws AuthenticationRequiredException
*/
[10/25] jena git commit: JENA-1029: RIOT.init() becomes
JenaSystem.init() where needed.
Posted by an...@apache.org.
JENA-1029: RIOT.init() becomes JenaSystem.init() where needed.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8d0c2dbb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8d0c2dbb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8d0c2dbb
Branch: refs/heads/master
Commit: 8d0c2dbb75869a63f195d74d3acae30d42c1acfa
Parents: d5a021a
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 18:26:29 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 18:26:29 2015 +0100
----------------------------------------------------------------------
.../src-examples/arq/examples/riot/ExRIOT_out3.java | 2 --
.../src/main/java/arq/cmdline/ModLangOutput.java | 2 +-
.../java/org/apache/jena/riot/RDFWriterRegistry.java | 3 ++-
jena-arq/src/main/java/riotcmd/CmdLangParse.java | 3 ++-
jena-arq/src/main/java/riotcmd/dumpthrift.java | 6 +++---
.../src/test/java/org/apache/jena/riot/TC_Riot.java | 3 ++-
.../test/java/org/apache/jena/riot/TS_LangSuite.java | 3 ++-
.../java/org/apache/jena/riot/TS_ReaderRIOT.java | 3 ++-
.../org/apache/jena/riot/TestJenaReaderRIOT.java | 12 ------------
.../test/java/org/apache/jena/riot/TestReadData.java | 12 ------------
.../org/apache/jena/riot/lang/TestLangRdfJson.java | 15 +++------------
.../apache/jena/riot/thrift/TestStreamRDFThrift.java | 5 +----
.../org/apache/jena/riot/thrift/TestThriftSetup.java | 4 +---
.../org/apache/jena/riot/writer/TS_RiotWriter.java | 4 ++--
.../org/apache/jena/riot/writer/TestJenaWriters.java | 2 --
jena-arq/src/test/java/riotcmd/rdflangtest.java | 3 ++-
16 files changed, 23 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
index 2e1e12e..7c74cb9 100644
--- a/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
+++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
@@ -38,8 +38,6 @@ public class ExRIOT_out3
// See also ExRIOT_5
public static void main(String[] args)
{
- RIOT.init() ;
-
System.out.println("## Example of a registering a new language with RIOT") ;
System.out.println() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/main/java/arq/cmdline/ModLangOutput.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/arq/cmdline/ModLangOutput.java b/jena-arq/src/main/java/arq/cmdline/ModLangOutput.java
index a4ed89d..ecc82ca 100644
--- a/jena-arq/src/main/java/arq/cmdline/ModLangOutput.java
+++ b/jena-arq/src/main/java/arq/cmdline/ModLangOutput.java
@@ -50,7 +50,7 @@ public class ModLangOutput extends ModBase
cmdLine.add(argOutput, "--output=FMT", "Output in the given format, streaming if possible.") ;
cmdLine.add(argPretty, "--formatted=FMT", "Output, using pretty printing (consumes memory)") ;
cmdLine.add(argStream, "--stream=FMT", "Output, using a streaming format") ;
- cmdLine.add(argCompress, "--compress=FMT", "Compress the output with gzip") ;
+ cmdLine.add(argCompress, "--compress", "Compress the output with gzip") ;
}
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/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 aeb37fc..139c3fe 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
@@ -26,6 +26,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 ;
public class RDFWriterRegistry
{
@@ -34,7 +35,7 @@ public class RDFWriterRegistry
// Let the serializer deal with the character issues.
// UTF-8 is universal - but UTF-8 is not the default in Java ("platform encoding" is).
- static { RIOT.init() ; }
+ static { JenaSystem.init() ; }
private static Map<RDFFormat, WriterGraphRIOTFactory> registryGraph = new HashMap<>() ;
private static Map<RDFFormat, WriterDatasetRIOTFactory> registryDataset = new HashMap<>() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/main/java/riotcmd/CmdLangParse.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/riotcmd/CmdLangParse.java b/jena-arq/src/main/java/riotcmd/CmdLangParse.java
index d961f15..cb83416 100644
--- a/jena-arq/src/main/java/riotcmd/CmdLangParse.java
+++ b/jena-arq/src/main/java/riotcmd/CmdLangParse.java
@@ -48,11 +48,12 @@ 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 ;
/** Common framework for running RIOT parsers */
public abstract class CmdLangParse extends CmdGeneral
{
- static { RIOT.init(); }
+ static { JenaSystem.init(); }
protected ModTime modTime = new ModTime() ;
protected ModLangParse modLangParse = new ModLangParse() ;
protected ModLangOutput modLangOutput = new ModLangOutput() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/main/java/riotcmd/dumpthrift.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/riotcmd/dumpthrift.java b/jena-arq/src/main/java/riotcmd/dumpthrift.java
index 2e827bb..cfadd38 100644
--- a/jena-arq/src/main/java/riotcmd/dumpthrift.java
+++ b/jena-arq/src/main/java/riotcmd/dumpthrift.java
@@ -23,15 +23,15 @@ import java.io.InputStream ;
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.RIOT ;
import org.apache.jena.riot.thrift.BinRDF ;
+import org.apache.jena.system.JenaSystem ;
/** Dump an rdf-thrift file to show structure */
public class dumpthrift {
static { LogCtl.setCmdLogging(); }
-
+ static { JenaSystem.init() ; }
+
public static void main(String[] args) {
- RIOT.init() ;
if ( args.length == 0 ) {
args = new String[] {"-"} ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java b/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
index b43cc2f..cecad13 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TC_Riot.java
@@ -29,6 +29,7 @@ import org.apache.jena.riot.thrift.TS_RDFThrift ;
import org.apache.jena.riot.tokens.TS_Tokens ;
import org.apache.jena.riot.web.TS_RiotWeb ;
import org.apache.jena.riot.writer.TS_RiotWriter ;
+import org.apache.jena.system.JenaSystem ;
import org.junit.BeforeClass ;
import org.junit.runner.RunWith ;
import org.junit.runners.Suite ;
@@ -55,6 +56,6 @@ public class TC_Riot
{
@BeforeClass public static void beforeClass()
{
- RIOT.init() ;
+ JenaSystem.init() ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/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 a84fe47..bba194a 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,6 +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.junit.runner.RunWith ;
import org.junit.runners.AllTests ;
@@ -32,7 +33,7 @@ public class TS_LangSuite
static public TestSuite suite()
{
- RIOT.init() ;
+ JenaSystem.init() ;
TestSuite ts = new TestSuite("RIOT Lang") ;
ts.addTest(FactoryTestRiot.make(manifest1, null, null)) ;
return ts ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/TS_ReaderRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TS_ReaderRIOT.java b/jena-arq/src/test/java/org/apache/jena/riot/TS_ReaderRIOT.java
index 86cfd02..5cc8098 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TS_ReaderRIOT.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TS_ReaderRIOT.java
@@ -19,6 +19,7 @@
package org.apache.jena.riot;
import org.apache.jena.riot.stream.TestStreamManager ;
+import org.apache.jena.system.JenaSystem ;
import org.junit.BeforeClass ;
import org.junit.runner.RunWith ;
import org.junit.runners.Suite ;
@@ -40,7 +41,7 @@ public class TS_ReaderRIOT
{
@BeforeClass public static void beforeClass()
{
- RIOT.init() ;
+ JenaSystem.init() ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java b/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
index 43de994..5e90bd9 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TestJenaReaderRIOT.java
@@ -31,8 +31,6 @@ import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.riot.adapters.RDFReaderFactoryRIOT ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.util.FileUtils ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
/* Test of integration with Jena via model.read.
@@ -43,16 +41,6 @@ public class TestJenaReaderRIOT extends BaseTest
private static Context context = new Context() ;
- @BeforeClass static public void beforeClass()
- {
- RIOT.init() ;
- }
-
- @AfterClass static public void afterClass()
- {
- // Unwire?
- }
-
@Test public void read_01() { jenaread("D.nt") ; }
@Test public void read_02() { jenaread("D.ttl") ; }
@Test public void read_03() { jenaread("D.rdf") ; }
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java b/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java
index e503f64..4b7a8fe 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/TestReadData.java
@@ -31,8 +31,6 @@ import org.apache.jena.riot.system.ErrorHandler ;
import org.apache.jena.riot.system.ErrorHandlerFactory ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.util.Context ;
-import org.junit.AfterClass ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
/* Tests of RDFDataMgr.
@@ -44,16 +42,6 @@ public class TestReadData extends BaseTest
private static Context context = new Context() ;
- @BeforeClass static public void beforeClass()
- {
- RIOT.init() ;
- }
-
- @AfterClass static public void afterClass()
- {
- // Unwire?
- }
-
// Model, graph
@Test public void read_01() { read("D.nq") ; }
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java
index d0a47b6..950d6c3 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/lang/TestLangRdfJson.java
@@ -26,26 +26,17 @@ import org.apache.jena.atlas.lib.StrUtils ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.rdf.model.ModelFactory ;
-import org.apache.jena.riot.* ;
import org.apache.jena.riot.ErrorHandlerTestLib.ExFatal ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RDFLanguages ;
import org.apache.jena.riot.system.StreamRDFLib ;
import org.apache.jena.riot.tokens.Tokenizer ;
import org.apache.jena.riot.tokens.TokenizerFactory ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
public class TestLangRdfJson extends BaseTest
{
- @BeforeClass
- public static void setup()
- {
- RIOT.init();
- }
-
-// @AfterClass
-// public static void teardown()
-// { }
-
@Test
public void rdfjson_get_jena_reader()
{
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
index 192953f..2fbc3fe 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestStreamRDFThrift.java
@@ -21,6 +21,7 @@ package org.apache.jena.riot.thrift;
import java.io.ByteArrayInputStream ;
import java.io.ByteArrayOutputStream ;
import java.util.Iterator ;
+
import org.apache.jena.atlas.iterator.Iter ;
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.atlas.lib.StrUtils ;
@@ -29,7 +30,6 @@ import org.apache.jena.graph.Node ;
import org.apache.jena.graph.Triple ;
import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.system.StreamOps ;
import org.apache.jena.riot.system.StreamRDF ;
import org.apache.jena.riot.system.StreamRDFLib ;
@@ -40,15 +40,12 @@ import org.apache.jena.sparql.core.Quad ;
import org.apache.jena.sparql.graph.GraphFactory ;
import org.apache.jena.sparql.sse.SSE ;
import org.apache.jena.sparql.util.IsoMatcher ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
public class TestStreamRDFThrift extends BaseTest {
private static final String DIR = TS_RDFThrift.TestingDir ;
- @BeforeClass public static void beforeClassInit() { RIOT.init(); }
-
static String gs = StrUtils.strjoinNL(
"(graph",
" (_:a :p 123) ",
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
index 27f8339..4f6d5c1 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftSetup.java
@@ -19,15 +19,13 @@
package org.apache.jena.riot.thrift;
import static org.apache.jena.riot.RDFLanguages.THRIFT ;
+
import org.apache.jena.atlas.junit.BaseTest ;
import org.apache.jena.riot.* ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
public class TestThriftSetup extends BaseTest {
- @BeforeClass public static void beforeClass() { RIOT.init() ; }
-
@Test public void setup_01() {
assertTrue(RDFLanguages.isRegistered(THRIFT)) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/writer/TS_RiotWriter.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/writer/TS_RiotWriter.java b/jena-arq/src/test/java/org/apache/jena/riot/writer/TS_RiotWriter.java
index 8bbc242..bb45ac4 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/writer/TS_RiotWriter.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/writer/TS_RiotWriter.java
@@ -18,7 +18,7 @@
package org.apache.jena.riot.writer;
-import org.apache.jena.riot.RIOT ;
+import org.apache.jena.system.JenaSystem ;
import org.junit.BeforeClass ;
import org.junit.runner.RunWith ;
import org.junit.runners.Suite ;
@@ -40,6 +40,6 @@ public class TS_RiotWriter
{
@BeforeClass public static void beforeClass()
{
- RIOT.init() ;
+ JenaSystem.init() ;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java b/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
index 285574f..3f0d5f0 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
@@ -25,7 +25,6 @@ import java.util.List ;
import org.apache.jena.atlas.lib.Bytes ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.system.IO_JenaWriters ;
import org.junit.Test ;
import org.junit.runner.RunWith ;
@@ -37,7 +36,6 @@ public class TestJenaWriters extends AbstractWriterTest
{
@Parameters(name = "{index}: {0}")
public static Iterable<Object[]> data() {
- RIOT.init();
List<Object[]> x = new ArrayList<>() ;
for ( String wname : IO_JenaWriters.getJenaWriterNames() )
x.add(new Object[]{wname}) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/8d0c2dbb/jena-arq/src/test/java/riotcmd/rdflangtest.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/riotcmd/rdflangtest.java b/jena-arq/src/test/java/riotcmd/rdflangtest.java
index 4d89c64..2db4df7 100644
--- a/jena-arq/src/test/java/riotcmd/rdflangtest.java
+++ b/jena-arq/src/test/java/riotcmd/rdflangtest.java
@@ -42,6 +42,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.vocabulary.DC ;
import org.apache.jena.vocabulary.DCTerms ;
import org.apache.jena.vocabulary.RDF ;
@@ -60,6 +61,7 @@ import arq.cmdline.ModSymbol ;
public class rdflangtest extends CmdGeneral
{
+ static { JenaSystem.init() ; }
protected ModSymbol modSymbol = new ModSymbol() ;
protected ArgDecl strictDecl = new ArgDecl(ArgDecl.NoValue, "strict") ;
protected boolean cmdStrictMode = false ;
@@ -71,7 +73,6 @@ public class rdflangtest extends CmdGeneral
public static void main (String... argv)
{
- RIOT.init() ;
try { new rdflangtest(argv).mainRun() ; }
catch (TerminationException ex) { System.exit(ex.getCode()) ; }
}
[14/25] jena git commit: JENA_1029: Comment about threading and about
recursive initialization.
Posted by an...@apache.org.
JENA_1029: Comment about threading and about recursive initialization.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/a0a2d0d0
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/a0a2d0d0
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/a0a2d0d0
Branch: refs/heads/master
Commit: a0a2d0d009e2740f042599bc5f228717bd0d62d4
Parents: d60933e
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 22:21:22 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 22:21:22 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/system/JenaSystem.java | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/a0a2d0d0/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 899a344..953e63b 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -64,6 +64,22 @@ public class JenaSystem {
* 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 returnn on the first test.
+
+ // Net effect:
+ // After a top level call of JenaSystem.init() returns, tjena has
+ // finishes initialization.
+ // Rececursive calls do not have this property.
+
if ( initialized )
return ;
synchronized(initLock) {
@@ -72,7 +88,7 @@ public class JenaSystem {
System.err.println("JenaSystem.init - return");
return ;
}
- // Catchs recursive calls, same thread.
+ // Catches recursive calls, same thread.
initialized = true ;
if ( DEBUG_INIT )
System.err.println("JenaSystem.init - start");
[22/25] jena git commit: JENA-1033 : Rework
RDFReaderFImpl/RDFWriterFImpl and RIOT integration.
Posted by an...@apache.org.
JENA-1033 : Rework RDFReaderFImpl/RDFWriterFImpl and RIOT integration.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e214ba27
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e214ba27
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e214ba27
Branch: refs/heads/master
Commit: e214ba27f149ae49f0a0e767bda6be4945681a73
Parents: 852569a
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Sep 21 17:12:40 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Sep 21 17:12:40 2015 +0100
----------------------------------------------------------------------
.../arq/examples/riot/ExRIOT_5.java | 22 +-
.../arq/examples/riot/ExRIOT_out3.java | 12 +-
.../main/java/org/apache/jena/riot/IO_Jena.java | 31 +--
.../org/apache/jena/riot/RDFWriterRegistry.java | 39 +++-
.../jena/riot/adapters/JenaReadersWriters.java | 50 -----
.../riot/adapters/RDFReaderFactoryRIOT.java | 53 ++---
.../jena/riot/adapters/RDFReaderRIOT.java | 2 +-
.../jena/riot/adapters/RDFReaderRIOT_ARP.java | 94 --------
.../jena/riot/adapters/RDFReaderRIOT_CSV.java | 62 ------
.../jena/riot/adapters/RDFReaderRIOT_Web.java | 99 ---------
.../riot/adapters/RDFWriterFactoryRIOT.java | 53 +++++
.../jena/riot/adapters/RDFWriterRIOT.java | 92 ++++----
.../apache/jena/riot/system/IO_JenaReaders.java | 76 +++----
.../apache/jena/riot/system/IO_JenaWriters.java | 122 ++--------
.../jena/riot/system/TestIO_JenaReaders.java | 97 ++++----
.../jena/riot/system/TestIO_JenaWriters.java | 111 ++++------
.../jena/riot/writer/TestJenaWriters.java | 6 +-
.../apache/jena/rdf/model/impl/ModelCom.java | 7 +-
.../jena/rdf/model/impl/RDFReaderFImpl.java | 218 +++++++++---------
.../jena/rdf/model/impl/RDFWriterFImpl.java | 222 ++++++++++---------
20 files changed, 548 insertions(+), 920 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src-examples/arq/examples/riot/ExRIOT_5.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_5.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_5.java
index cdad38e..ed8095c 100644
--- a/jena-arq/src-examples/arq/examples/riot/ExRIOT_5.java
+++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_5.java
@@ -22,6 +22,7 @@ import java.io.InputStream ;
import java.io.Reader ;
import java.util.Iterator ;
+import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.atlas.web.ContentType ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Triple ;
@@ -38,9 +39,11 @@ import org.apache.jena.sparql.sse.SSE ;
import org.apache.jena.sparql.sse.builders.BuilderGraph ;
import org.apache.jena.sparql.util.Context ;
-/** Example of using RIOT : register a new language */
+/** Example of using RIOT : register a new input language */
public class ExRIOT_5
{
+ static { LogCtl.setCmdLogging(); }
+
public static void main(String... argv) {
Lang lang = LangBuilder.create("SSE", "text/x-sse").addFileExtensions("rsse").build() ;
// This just registers the name, not the parser.
@@ -51,21 +54,18 @@ public class ExRIOT_5
RDFParserRegistry.registerLangTriples(lang, factory) ;
// use it ...
- String filename = "data.rsse" ;
+ String filename = "/home/afs/tmp/data.rsse" ;
// model.read(filename)
+ System.out.println("## -- RDFDataMgr.loadModel") ;
Model model = RDFDataMgr.loadModel(filename) ;
// print results.
- model.write(System.out, "TTL") ;
-
- // Optional extra:
- // If needed to set or override the syntax, register the name explicitly
- // ...
- System.out.println("## --") ;
- IO_Jena.registerForModelRead("SSE", RDFReaderSSE.class) ;
- // and use read( , "SSE")
+ RDFDataMgr.write(System.out, model, Lang.TTL) ;
+
+ System.out.println("## -- Model.read") ;
+ // Model.read( , "SSE")
Model model2 = ModelFactory.createDefaultModel().read(filename, "SSE") ;
- model2.write(System.out, "TTL") ;
+ RDFDataMgr.write(System.out, model2, Lang.TTL) ;
}
static class SSEReaderFactory implements ReaderRIOTFactory
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
----------------------------------------------------------------------
diff --git a/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java b/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
index 7c74cb9..ac7c26e 100644
--- a/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
+++ b/jena-arq/src-examples/arq/examples/riot/ExRIOT_out3.java
@@ -22,6 +22,7 @@ import java.io.OutputStream ;
import java.io.Writer ;
import org.apache.jena.atlas.io.IndentedWriter ;
+import org.apache.jena.atlas.logging.LogCtl ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.riot.* ;
@@ -35,6 +36,8 @@ import org.apache.jena.sparql.util.Context ;
/** Example of registering a new writer with RIOT */
public class ExRIOT_out3
{
+ static { LogCtl.setCmdLogging(); }
+
// See also ExRIOT_5
public static void main(String[] args)
{
@@ -55,7 +58,7 @@ public class ExRIOT_out3
RDFWriterRegistry.register(format, new SSEWriterFactory()) ;
// ---- Use the register writer
- Model model = RDFDataMgr.loadModel("D.ttl") ;
+ Model model = RDFDataMgr.loadModel("/home/afs/tmp/D.ttl") ;
// Write
System.out.println("## Write by format") ;
RDFDataMgr.write(System.out, model, format) ;
@@ -63,11 +66,8 @@ public class ExRIOT_out3
System.out.println("## Write by language") ;
RDFDataMgr.write(System.out, model, lang) ;
- // ---- Register for use with Model.read
- // because naming is explicit, need to register an adapter.
- IO_Jena.registerForModelWrite("SSE", RDFWriterSSE.class) ;
-
- // and use it
+ // ---- Or use Model.write
+ System.out.println("## Write by Model.write") ;
model.write(System.out, "SSE") ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/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 4709b0c..e04e7e8 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
@@ -18,40 +18,25 @@
package org.apache.jena.riot ;
-import org.apache.jena.riot.adapters.AdapterFileManager ;
import org.apache.jena.riot.system.IO_JenaReaders ;
import org.apache.jena.riot.system.IO_JenaWriters ;
-import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.util.FileManager ;
+import org.apache.jena.system.JenaSystem ;
public class IO_Jena
{
- private static String riotBase = "http://jena.apache.org/riot/" ;
- private static String streamManagerSymbolStr = riotBase + "streammanager" ;
- public static Symbol streamManagerSymbol = Symbol.create(streamManagerSymbolStr) ;
- private static FileManager coreFileManager = null ;
+ static { JenaSystem.init(); }
+
+// private static String riotBase = "http://jena.apache.org/riot/" ;
+// private static String streamManagerSymbolStr = riotBase + "streammanager" ;
+// public static Symbol streamManagerSymbol = Symbol.create(streamManagerSymbolStr) ;
public static void wireIntoJena() {
- FileManager.setGlobalFileManager(AdapterFileManager.get()) ;
- IO_JenaReaders.wireIntoJena() ;
- IO_JenaWriters.wireIntoJena() ;
+ IO_JenaReaders.wireIntoJena() ;
+ IO_JenaWriters.wireIntoJena() ;
}
public static void resetJena() {
- // This forces reinitialization if ever used.
- FileManager.setGlobalFileManager(null) ;
IO_JenaReaders.resetJena() ;
IO_JenaWriters.resetJena() ;
}
-
- /** Register for use with Model.read (old style compatibility) */
- public static void registerForModelRead(String name, Class<? > cls) {
- IO_JenaReaders.registerForModelRead(name, cls) ;
- }
-
- /** Register for use with Model.write (old style compatibility) */
- public static void registerForModelWrite(String name, Class<? > cls) {
- IO_JenaWriters.registerForModelWrite(name, cls) ;
- }
-
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/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 139c3fe..101b459 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
@@ -20,6 +20,7 @@ package org.apache.jena.riot;
import java.util.* ;
+import org.apache.jena.n3.N3JenaWriter ;
import org.apache.jena.riot.out.CharSpace ;
import org.apache.jena.riot.out.JsonLDWriter ;
import org.apache.jena.riot.system.RiotLib ;
@@ -36,10 +37,11 @@ public class RDFWriterRegistry
// UTF-8 is universal - but UTF-8 is not the default in Java ("platform encoding" is).
static { JenaSystem.init() ; }
-
+
private static Map<RDFFormat, WriterGraphRIOTFactory> registryGraph = new HashMap<>() ;
private static Map<RDFFormat, WriterDatasetRIOTFactory> registryDataset = new HashMap<>() ;
private static Map<Lang, RDFFormat> langToFormat = new HashMap<>() ;
+ private static Map<String, RDFFormat> mapJenaNameToFormat = new HashMap<>() ;
// Writing a graph
static WriterGraphRIOTFactory wgfactory = new WriterGraphRIOTFactory() {
@@ -208,6 +210,41 @@ public class RDFWriterRegistry
register(RDFFormat.TRIX, wdsTriXFactory) ;
}
+ // ---- Compatibility
+
+ /** return the RDFFormat for the existing Jena writer name, or null */
+ public static RDFFormat getFormatForJenaWriter(String jenaName) {
+ return mapJenaNameToFormat.get(jenaName);
+ }
+
+ /** Register an RDFFormat for a Jena writer name */
+ private /*public*/ static void setFormatForJenaWriter(String jenaName, RDFFormat format) {
+ mapJenaNameToFormat.put(jenaName, format);
+ }
+
+ /** Return a collection of Jena writer names */
+ public static Collection<String> getJenaWriterNames() {
+ return mapJenaNameToFormat.keySet();
+ }
+
+ private static void setup() {
+ setFormatForJenaWriter("RDF/XML", RDFFormat.RDFXML_PLAIN) ;
+ setFormatForJenaWriter("RDF/XML-ABBREV", RDFFormat.RDFXML_ABBREV) ;
+ setFormatForJenaWriter("N-TRIPLE", RDFFormat.NTRIPLES) ;
+ setFormatForJenaWriter("NT", RDFFormat.NTRIPLES) ;
+ setFormatForJenaWriter("N-TRIPLES", RDFFormat.NTRIPLES) ;
+ setFormatForJenaWriter("N-Triples", RDFFormat.NTRIPLES) ;
+ setFormatForJenaWriter("N3", RDFFormat.TURTLE) ;
+ setFormatForJenaWriter(N3JenaWriter.n3WriterPrettyPrinter, RDFFormat.TURTLE_PRETTY) ;
+ setFormatForJenaWriter(N3JenaWriter.n3WriterPlain, RDFFormat.TURTLE_BLOCKS) ;
+ setFormatForJenaWriter(N3JenaWriter.n3WriterTriples, RDFFormat.TURTLE_FLAT) ;
+ setFormatForJenaWriter(N3JenaWriter.n3WriterTriplesAlt, RDFFormat.TURTLE_FLAT) ;
+ setFormatForJenaWriter(N3JenaWriter.turtleWriter, RDFFormat.TURTLE) ;
+ setFormatForJenaWriter(N3JenaWriter.turtleWriterAlt1, RDFFormat.TURTLE) ;
+ setFormatForJenaWriter(N3JenaWriter.turtleWriterAlt2, RDFFormat.TURTLE) ;
+ }
+
+
/** Register the serialization for graphs and it's associated factory
* @param serialization RDFFormat for the output format.
* @param graphWriterFactory Source of writer engines
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java
deleted file mode 100644
index c92b05a..0000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/JenaReadersWriters.java
+++ /dev/null
@@ -1,50 +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.riot.adapters;
-
-import static org.apache.jena.riot.RDFLanguages.JSONLD ;
-import org.apache.jena.n3.N3JenaWriter ;
-
-public class JenaReadersWriters
-{
- public static class RDFReaderRIOT_RDFXML extends RDFReaderRIOT { public RDFReaderRIOT_RDFXML() { super("RDF/XML") ; } }
- public static class RDFReaderRIOT_TTL extends RDFReaderRIOT { public RDFReaderRIOT_TTL() { super("TTL") ; } }
- public static class RDFReaderRIOT_NT extends RDFReaderRIOT { public RDFReaderRIOT_NT() { super("N-TRIPLE") ; } }
- public static class RDFReaderRIOT_JSONLD extends RDFReaderRIOT { public RDFReaderRIOT_JSONLD() { super(JSONLD.getName()) ; } }
- public static class RDFReaderRIOT_RDFJSON extends RDFReaderRIOT { public RDFReaderRIOT_RDFJSON() { super("RDF/JSON") ; } }
-
- // Unused - we use the original RDF/XML writers directly to preserve property setting.
-// public static class RDFWriterRIOT_RDFXML extends RDFWriterRIOT { public RDFWriterRIOT_RDFXML() { super("RDF/XML") ; } }
-// public static class RDFWriterRIOT_RDFXMLAbbrev extends RDFWriterRIOT { public RDFWriterRIOT_RDFXMLAbbrev() { super("RDF/XML-ABBREV") ; } }
- public static class RDFWriterRIOT_NTriples extends RDFWriterRIOT { public RDFWriterRIOT_NTriples() { super("N-TRIPLES") ; } }
- public static class RDFWriterRIOT_N3 extends RDFWriterRIOT { public RDFWriterRIOT_N3() { super("N3") ; } }
- public static class RDFWriterRIOT_N3_PP extends RDFWriterRIOT { public RDFWriterRIOT_N3_PP() { super(N3JenaWriter.n3WriterPrettyPrinter) ; } }
- public static class RDFWriterRIOT_N3Plain extends RDFWriterRIOT { public RDFWriterRIOT_N3Plain() { super(N3JenaWriter.n3WriterPlain) ; } }
- public static class RDFWriterRIOT_N3Triples extends RDFWriterRIOT { public RDFWriterRIOT_N3Triples() { super(N3JenaWriter.n3WriterTriples) ; } }
- public static class RDFWriterRIOT_N3TriplesAlt extends RDFWriterRIOT { public RDFWriterRIOT_N3TriplesAlt() { super(N3JenaWriter.n3WriterTriplesAlt) ; } }
- public static class RDFWriterRIOT_Turtle extends RDFWriterRIOT { public RDFWriterRIOT_Turtle() { super(N3JenaWriter.turtleWriter) ; } }
- public static class RDFWriterRIOT_Turtle1 extends RDFWriterRIOT { public RDFWriterRIOT_Turtle1() { super(N3JenaWriter.turtleWriterAlt1) ; } }
- public static class RDFWriterRIOT_Turtle2 extends RDFWriterRIOT { public RDFWriterRIOT_Turtle2() { super(N3JenaWriter.turtleWriterAlt2) ; } }
-
- public static class RDFWriterRIOT_JSONLD extends RDFWriterRIOT { public RDFWriterRIOT_JSONLD() { super("JSON-LD") ; } }
- public static class RDFWriterRIOT_JSONLDAlt extends RDFWriterRIOT { public RDFWriterRIOT_JSONLDAlt() { super("JSONLD") ; } }
-
- public static class RDFWriterRIOT_RDFJSON extends RDFWriterRIOT { public RDFWriterRIOT_RDFJSON() { super("RDF/JSON") ; } }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
index da73306..b49ee9c 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderFactoryRIOT.java
@@ -18,48 +18,37 @@
package org.apache.jena.riot.adapters;
-import org.apache.jena.rdf.model.RDFReader ;
-import org.apache.jena.rdf.model.RDFReaderF ;
-import org.apache.jena.riot.Lang ;
-import org.apache.jena.riot.RDFLanguages ;
+import org.apache.jena.rdf.model.RDFReader;
+import org.apache.jena.rdf.model.RDFReaderF;
+import org.apache.jena.rdf.model.impl.RDFReaderFImpl;
-/** Adapter to old style Jena reader factory */
-public class RDFReaderFactoryRIOT implements RDFReaderF
-{
+/** Adapter to old style Jena reader factory */
+public class RDFReaderFactoryRIOT implements RDFReaderF {
public RDFReaderFactoryRIOT() {}
-
+
@Override
- public RDFReader getReader()
- {
- return new RDFReaderRIOT() ;
+ public RDFReader getReader() {
+ return getReader(RDFReaderFImpl.DEFAULTLANG);
}
@Override
- public RDFReader getReader(String langname)
- {
- // If RDF/XML, then return an ARP
-
- Lang lang = RDFLanguages.nameToLang(langname) ;
- if ( RDFLanguages.RDFXML.equals(lang) )
- return new RDFReaderRIOT_ARP() ;
- return new RDFReaderRIOT(langname) ;
+ public RDFReader getReader(String langname) {
+ // For RIOT, the language name is a hint.
+ return new RDFReaderRIOT(langname);
}
@Override
- public String setReaderClassName(String lang, String className)
- {
- return null ;
+ public String setReaderClassName(String lang, String className) {
+ return null;
}
- @Override
- public void resetRDFReaderF() {
- // does nothing as the reader can not be modified.
-
- }
+ @Override
+ public void resetRDFReaderF() {
+ // does nothing as the reader can not be modified.
+ }
- @Override
- public String removeReader(String lang) throws IllegalArgumentException {
- return null;
- }
+ @Override
+ public String removeReader(String lang) throws IllegalArgumentException {
+ return null;
+ }
}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
index 9d34f0c..bf576da 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT.java
@@ -45,7 +45,7 @@ public class RDFReaderRIOT implements RDFReader {
}
public RDFReaderRIOT(String lang) {
- this(RDFLanguages.nameToLang(lang)) ;
+ this(lang != null ? RDFLanguages.nameToLang(lang) : null) ;
}
public RDFReaderRIOT(Lang hintlang) {
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_ARP.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_ARP.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_ARP.java
deleted file mode 100644
index 4cc726f..0000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_ARP.java
+++ /dev/null
@@ -1,94 +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.riot.adapters;
-
-import java.io.InputStream ;
-import java.io.Reader ;
-
-import org.apache.jena.atlas.lib.IRILib ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFErrorHandler ;
-import org.apache.jena.rdf.model.RDFReader ;
-import org.apache.jena.rdfxml.xmlinput.JenaReader ;
-import org.apache.jena.riot.SysRIOT ;
-import org.apache.jena.util.FileManager ;
-import org.apache.jena.util.FileUtils ;
-
-/** Adapter from Jena2 original style adapter for ARP - adds the file: */
-
-public class RDFReaderRIOT_ARP implements RDFReader
-{
- // A FileManager sort out baseURIs for files.
- static FileManager fileMgr = new FileManager() ;
- static {
- fileMgr.addLocatorFile() ;
- fileMgr.addLocatorURL() ;
- }
-
- JenaReader reader = new JenaReader() ;
-
- public RDFReaderRIOT_ARP() {}
-
- @Override
- public void read(Model model, Reader r, String base)
- { reader.read(model, r, base) ; }
-
- @Override
- public void read(Model model, InputStream r, String base)
- { reader.read(model, r, base) ; }
-
- @Override
- public void read(Model model, String url)
- {
- url = fixupURL(url) ;
- reader.read(model, url) ;
- }
-
- /** Sort out filename-like URLs: file:, X: and plain filename */
- private static String fixupURL(String url)
- {
- String scheme = FileUtils.getScheme(url) ;
-
- if ( scheme != null )
- {
- // Skip any scheme that is not file: and not a windows drive letter.
- if ( ! scheme.equals("file") && ! isWindowsDrive(scheme) )
- return url ;
- }
- return IRILib.filenameToIRI(url) ;
- }
-
- private static boolean isWindowsDrive(String scheme)
- {
- return (SysRIOT.isWindows && scheme.length() == 1) ;
- }
-
- @Override
- public Object setProperty(String propName, Object propValue)
- {
- return reader.setProperty(propName, propValue) ;
- }
-
- @Override
- public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
- {
- return reader.setErrorHandler(errHandler) ;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_CSV.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_CSV.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_CSV.java
deleted file mode 100644
index 07fffde..0000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_CSV.java
+++ /dev/null
@@ -1,62 +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.riot.adapters;
-
-import java.io.InputStream;
-import java.io.Reader;
-
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.rdf.model.RDFErrorHandler ;
-import org.apache.jena.rdf.model.RDFReader ;
-
-public class RDFReaderRIOT_CSV implements RDFReader{
-
- private RDFReader reader ;
- public RDFReaderRIOT_CSV(){
- reader = new RDFReaderRIOT("CSV");
- }
-
- @Override
- public void read(Model model, Reader r, String base) {
- reader.read(model, r, base);
-
- }
-
- @Override
- public void read(Model model, InputStream r, String base) {
- reader.read(model, r, base);
-
- }
-
- @Override
- public void read(Model model, String url) {
- reader.read(model, url);
-
- }
-
- @Override
- public Object setProperty(String propName, Object propValue) {
- return reader.setProperty(propName, propValue);
- }
-
- @Override
- public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler) {
- return reader.setErrorHandler(errHandler);
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
deleted file mode 100644
index 6d58bf7..0000000
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFReaderRIOT_Web.java
+++ /dev/null
@@ -1,99 +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.riot.adapters;
-
-import java.io.InputStream ;
-import java.io.Reader ;
-import java.util.Objects;
-
-import org.apache.jena.atlas.web.TypedInputStream ;
-import org.apache.jena.rdf.model.Model ;
-import org.apache.jena.riot.Lang ;
-import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.RDFLanguages ;
-import org.apache.jena.riot.WebContent ;
-import org.apache.jena.riot.system.stream.StreamManager ;
-import org.apache.jena.shared.NotFoundException ;
-
-/** This is a reader primarily for model.read(url)
- */
-public class RDFReaderRIOT_Web extends RDFReaderRIOT
-{
- private static final String defaultSyntax = "RDF/XML" ;
-
- public RDFReaderRIOT_Web()
- {
- super(defaultSyntax) ;
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public void read(Model model, Reader r, String base)
- {
- // model.read(Reader, baseURI)
- startRead(model) ;
- RDFDataMgr.read(model, r, base, hintlang) ;
- finishRead(model) ;
- }
-
-
- @Override
- public void read(Model model, InputStream r, String base)
- {
- // model.read(InputStream, baseURI)
- startRead(model) ;
- RDFDataMgr.read(model, r, base, hintlang) ;
- finishRead(model) ;
- }
-
- @Override
- public void read(Model model, String url)
- {
- // model.read(url)
- TypedInputStream in = StreamManager.get().open(url) ;
- if ( in == null )
- throw new NotFoundException(url) ;
- String contentType = in.getContentType() ;
-
- // Reading a URL, no hint language provided.
- // Use the URL structure as the hint.
- Lang lang = null ;
- if ( ! Objects.equals(contentType, WebContent.contentTypeTextPlain) )
- lang = RDFLanguages.contentTypeToLang(contentType) ;
-
- if ( lang == null )
- lang = RDFLanguages.filenameToLang(url) ;
-
- if ( lang == null )
- lang = super.hintlang ;
-
- // Here, we want syntax determination to be:
- // ctLang > fileExtLang > RDF/XML
- //
- // whereas RDFDataMgr.read(.. , lang) ;
- // treats lang to override.
-
- // **
-
- startRead(model) ;
- RDFDataMgr.read(model, in, url, lang) ;
- finishRead(model) ;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.java
new file mode 100644
index 0000000..7d6a730
--- /dev/null
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterFactoryRIOT.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.riot.adapters;
+
+import org.apache.jena.rdf.model.RDFWriter;
+import org.apache.jena.rdf.model.RDFWriterF;
+
+/** Adapter to old style Jena writer factory */
+public class RDFWriterFactoryRIOT implements RDFWriterF {
+ public RDFWriterFactoryRIOT() {}
+
+ @Override
+ public RDFWriter getWriter() {
+ return getWriter(null);
+ }
+
+ @Override
+ public RDFWriter getWriter(String langname) {
+ return new RDFWriterRIOT(langname);
+ }
+
+ @Override
+ public String setWriterClassName(String lang, String className) {
+ return null;
+ }
+
+ @Override
+ public void resetRDFWriterF() {
+ // does nothing as the reader can not be modified.
+
+ }
+
+ @Override
+ public String removeWriter(String lang) {
+ return null;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
index f2b2340..3c9d53d 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/adapters/RDFWriterRIOT.java
@@ -28,7 +28,6 @@ import org.apache.jena.rdf.model.RDFErrorHandler ;
import org.apache.jena.rdf.model.RDFWriter ;
import org.apache.jena.rdf.model.impl.RDFDefaultErrorHandler ;
import org.apache.jena.riot.* ;
-import org.apache.jena.riot.system.IO_JenaWriters ;
import org.apache.jena.riot.system.RiotLib ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.Symbol ;
@@ -36,6 +35,7 @@ import org.apache.jena.sparql.util.Symbol ;
/** Adapter from RIOT to old style Jena RDFWriter. */
public class RDFWriterRIOT implements RDFWriter
{
+ // ---- Compatibility
private final String basename ;
private final String jenaName ;
private Context context = new Context() ;
@@ -48,71 +48,63 @@ public class RDFWriterRIOT implements RDFWriter
// writer = writer() ;
// }
- public RDFWriterRIOT(String jenaName)
- {
- this.basename = "org.apache.jena.riot.writer."+jenaName.toLowerCase(Locale.ROOT) ;
- this.jenaName = jenaName ;
+ public RDFWriterRIOT(String jenaName) {
+ this.basename = "org.apache.jena.riot.writer." + jenaName.toLowerCase(Locale.ROOT);
+ this.jenaName = jenaName;
}
-
- //Initialize late to avoid confusing exceptions during newInstance.
- private WriterGraphRIOT writer()
- {
- if ( writer != null )
- return writer ;
+
+ // Initialize late to avoid confusing exceptions during newInstance.
+ private WriterGraphRIOT writer() {
+ if ( writer != null )
+ return writer;
if ( jenaName == null )
- throw new IllegalArgumentException("Jena writer name is null") ;
- writer = setWriter() ;
- return writer ;
+ throw new IllegalArgumentException("Jena writer name is null");
+ writer = setWriter();
+ return writer;
}
-
- // Delayed lookup (avoid problems in newInstance).
- private WriterGraphRIOT setWriter()
- {
- if ( writer != null )
- return writer ;
+
+ private WriterGraphRIOT setWriter() {
+ if ( writer != null )
+ return writer;
if ( jenaName == null )
- throw new IllegalArgumentException("Jena writer name is null") ;
- RDFFormat format = IO_JenaWriters.getFormatForJenaWriter(jenaName) ;
+ throw new IllegalArgumentException("Jena writer name is null");
+ // For writing via model.write(), use the old names for jena writers.
+ RDFFormat format = RDFWriterRegistry.getFormatForJenaWriter(jenaName) ;
if ( format != null )
return RDFDataMgr.createGraphWriter(format) ;
- // Try lang instead.
- Lang lang = RDFLanguages.nameToLang(jenaName) ;
+ Lang lang = RDFLanguages.nameToLang(jenaName);
if ( lang != null )
- return RDFDataMgr.createGraphWriter(lang) ;
- throw new RiotException("No graph writer for '"+jenaName+"'") ;
+ return RDFDataMgr.createGraphWriter(lang);
+ throw new RiotException("No graph writer for '" + jenaName + "'");
}
-
+
@Override
- public void write(Model model, Writer out, String base)
- {
- if ( base != null && base.equals("") )
- base = null ;
- Graph graph = model.getGraph() ;
- writer().write(out, graph, RiotLib.prefixMap(graph), base, context) ;
+ public void write(Model model, Writer out, String base) {
+ if ( base != null && base.equals("") )
+ base = null;
+ Graph graph = model.getGraph();
+ writer().write(out, graph, RiotLib.prefixMap(graph), base, context);
}
-
+
@Override
- public void write(Model model, OutputStream out, String base)
- {
+ public void write(Model model, OutputStream out, String base) {
if ( base != null && base.equals("") )
- base = null ;
- Graph graph = model.getGraph() ;
- writer().write(out, graph, RiotLib.prefixMap(graph), base, context) ;
+ base = null;
+ Graph graph = model.getGraph();
+ writer().write(out, graph, RiotLib.prefixMap(graph), base, context);
}
@Override
- public Object setProperty(String propName, Object propValue)
- {
- Symbol sym = Symbol.create(basename+propName) ;
- Object oldObj = context.get(sym) ;
- return oldObj ;
+ public Object setProperty(String propName, Object propValue) {
+ Symbol sym = Symbol.create(basename + propName);
+ Object oldObj = context.get(sym);
+ return oldObj;
}
-
+
@Override
- public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
- {
- RDFErrorHandler old = errorHandler ;
- errorHandler = errHandler ;
- return old ;
+ public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler) {
+ RDFErrorHandler old = errorHandler;
+ errorHandler = errHandler;
+ return old;
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
index 0b5c3a0..5372539 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
@@ -19,63 +19,41 @@
package org.apache.jena.riot.system;
import org.apache.jena.rdf.model.impl.RDFReaderFImpl ;
-import org.apache.jena.riot.adapters.JenaReadersWriters ;
-import org.apache.jena.riot.adapters.RDFReaderRIOT_Web ;
-import org.apache.jena.sparql.util.Symbol ;
+import org.apache.jena.riot.adapters.AdapterFileManager ;
+import org.apache.jena.riot.adapters.RDFReaderFactoryRIOT ;
+import org.apache.jena.util.FileManager ;
public class IO_JenaReaders
{
- private static String riotBase = "http://jena.apache.org/riot/" ;
- private static String streamManagerSymbolStr = riotBase+"streammanager" ;
- public static Symbol streamManagerSymbol = Symbol.create(streamManagerSymbolStr) ;
+// private static String riotBase = "http://jena.apache.org/riot/" ;
+// private static String streamManagerSymbolStr = riotBase+"streammanager" ;
+// public static Symbol streamManagerSymbol = Symbol.create(streamManagerSymbolStr) ;
+ private static FileManager coreFileManager = null;
+ private static boolean isWiredIn = false;
+
public static void wireIntoJena() {
- registerForModelRead("RDF", RDFReaderRIOT_Web.class) ; // Default
- registerForModelRead("RDF/XML", JenaReadersWriters.RDFReaderRIOT_RDFXML.class) ;
- registerForModelRead("RDF/XML-ABBREV", JenaReadersWriters.RDFReaderRIOT_RDFXML.class) ;
-
- registerForModelRead("N-TRIPLES", JenaReadersWriters.RDFReaderRIOT_NT.class) ;
- registerForModelRead("N-Triples", JenaReadersWriters.RDFReaderRIOT_NT.class) ;
- registerForModelRead("N-TRIPLE", JenaReadersWriters.RDFReaderRIOT_NT.class) ;
- registerForModelRead("N3", JenaReadersWriters.RDFReaderRIOT_TTL.class) ;
- registerForModelRead("TURTLE", JenaReadersWriters.RDFReaderRIOT_TTL.class) ;
- registerForModelRead("Turtle", JenaReadersWriters.RDFReaderRIOT_TTL.class) ;
- registerForModelRead("TTL", JenaReadersWriters.RDFReaderRIOT_TTL.class) ;
- registerForModelRead("JSON-LD", JenaReadersWriters.RDFReaderRIOT_JSONLD.class) ;
- registerForModelRead("JSONLD", JenaReadersWriters.RDFReaderRIOT_JSONLD.class) ;
- registerForModelRead("RDF/JSON", JenaReadersWriters.RDFReaderRIOT_RDFJSON.class) ;
+ if ( isWiredIn )
+ return ;
+ isWiredIn = true ;
+ if ( coreFileManager == null )
+ coreFileManager = FileManager.get();
+ FileManager.setGlobalFileManager(AdapterFileManager.get());
+ RDFReaderFImpl.alternative(new RDFReaderFactoryRIOT());
}
-
- static String jenaNTriplesReader = org.apache.jena.rdf.model.impl.NTripleReader.class.getName();
- static String jenaTurtleReader = org.apache.jena.n3.turtle.TurtleReader.class.getName();
- static String jenaN3Reader = jenaTurtleReader ;
- static String jenaRDFReader = org.apache.jena.rdfxml.xmlinput.JenaReader.class.getName();
-
- public static void resetJena() {
- RDFReaderFImpl.setBaseReaderClassName("RDF", jenaRDFReader) ;
- RDFReaderFImpl.setBaseReaderClassName("RDF/XML", jenaRDFReader) ;
- RDFReaderFImpl.setBaseReaderClassName("RDF/XML-ABBREV", jenaRDFReader) ;
-
- RDFReaderFImpl.setBaseReaderClassName("N-TRIPLES", jenaNTriplesReader) ;
- RDFReaderFImpl.setBaseReaderClassName("N-Triples", jenaNTriplesReader) ;
- RDFReaderFImpl.setBaseReaderClassName("N-TRIPLE", jenaNTriplesReader) ;
- RDFReaderFImpl.setBaseReaderClassName("N3", jenaTurtleReader) ;
- RDFReaderFImpl.setBaseReaderClassName("TURTLE", jenaTurtleReader) ;
- RDFReaderFImpl.setBaseReaderClassName("Turtle", jenaTurtleReader) ;
- RDFReaderFImpl.setBaseReaderClassName("TTL", jenaTurtleReader) ;
-
- RDFReaderFImpl.setBaseReaderClassName("JSON-LD", "") ;
- RDFReaderFImpl.setBaseReaderClassName("JSONLD", "") ;
-
- RDFReaderFImpl.setBaseReaderClassName("RDF/JSON", "") ;
- RDFReaderFImpl.setBaseReaderClassName("RDFJSON", "") ;
+ public static void resetJena() {
+ if ( ! isWiredIn )
+ return ;
+ isWiredIn = false ;
+ RDFReaderFImpl.alternative(null);
+ // Or set to null - this forces reinitialization if ever used.
+ FileManager.setGlobalFileManager(coreFileManager) ;
}
-
+
/** Register for use with Model.read (old style compatibility) */
- public static void registerForModelRead(String name, Class<?> cls)
- {
- RDFReaderFImpl.setBaseReaderClassName(name, cls.getName()) ;
+ @Deprecated
+ public static void registerForModelRead(String name, Class<? > cls) {
+ RDFReaderFImpl.setBaseReaderClassName(name, cls.getName());
}
}
-
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
index e369abb..e8e287f 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
@@ -18,118 +18,30 @@
package org.apache.jena.riot.system;
-import java.util.Collection ;
-import java.util.HashMap ;
-import java.util.Map ;
-
-import org.apache.jena.n3.N3JenaWriter ;
import org.apache.jena.rdf.model.impl.RDFWriterFImpl ;
-import org.apache.jena.riot.RDFFormat ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_JSONLD ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3 ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Plain ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Triples ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3TriplesAlt ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3_PP ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_NTriples ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_RDFJSON ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle1 ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle2 ;
+import org.apache.jena.riot.adapters.RDFWriterFactoryRIOT ;
public class IO_JenaWriters
-{
- private static Map<String, RDFFormat> mapJenaNameToFormat = new HashMap<>() ;
-
- /** return the RDFFormat for the existing Jena writer name, or null */
- public static RDFFormat getFormatForJenaWriter(String jenaName) { return mapJenaNameToFormat.get(jenaName) ; }
-
- /** Register an RDFFormat for a Jena writer name */
- public static void setFormatForJenaWriter(String jenaName, RDFFormat format) { mapJenaNameToFormat.put(jenaName, format) ; }
-
- /** Return a collection of jena writer names */
- public static Collection<String> getJenaWriterNames() { return mapJenaNameToFormat.keySet() ; }
+{
+ // Do once.
+ private static boolean isWiredIn = false ;
- public static void wireIntoJena()
- {
- setFormatForJenaWriter("RDF/XML", RDFFormat.RDFXML_PLAIN) ;
- setFormatForJenaWriter("RDF/XML-ABBREV", RDFFormat.RDFXML_ABBREV) ;
- setFormatForJenaWriter("N-TRIPLE", RDFFormat.NTRIPLES) ;
- setFormatForJenaWriter("NT", RDFFormat.NTRIPLES) ;
- setFormatForJenaWriter("N-TRIPLES", RDFFormat.NTRIPLES) ;
- setFormatForJenaWriter("N-Triples", RDFFormat.NTRIPLES) ;
- setFormatForJenaWriter("N3", RDFFormat.TURTLE) ;
- setFormatForJenaWriter(N3JenaWriter.n3WriterPrettyPrinter, RDFFormat.TURTLE_PRETTY) ;
- setFormatForJenaWriter(N3JenaWriter.n3WriterPlain, RDFFormat.TURTLE_BLOCKS) ;
- setFormatForJenaWriter(N3JenaWriter.n3WriterTriples, RDFFormat.TURTLE_FLAT) ;
- setFormatForJenaWriter(N3JenaWriter.n3WriterTriplesAlt, RDFFormat.TURTLE_FLAT) ;
- setFormatForJenaWriter(N3JenaWriter.turtleWriter, RDFFormat.TURTLE) ;
- setFormatForJenaWriter(N3JenaWriter.turtleWriterAlt1, RDFFormat.TURTLE) ;
- setFormatForJenaWriter(N3JenaWriter.turtleWriterAlt2, RDFFormat.TURTLE) ;
-
- setFormatForJenaWriter("JSON-LD", RDFFormat.JSONLD) ;
- setFormatForJenaWriter("JSONLD", RDFFormat.JSONLD) ;
-
- setFormatForJenaWriter("RDF/JSON", RDFFormat.RDFJSON) ;
- setFormatForJenaWriter("RDFJSON", RDFFormat.RDFJSON) ;
-
- //registerForModelWrite("RDF/XML", RDFWriterRIOT_RDFXML.class) ;
- //registerForModelWrite("RDF/XML-ABBREV", RDFWriterRIOT_RDFXMLAbbrev.class) ;
-
- // Use the original classes so that setting properties works transparently.
- registerForModelWrite("RDF/XML", org.apache.jena.rdfxml.xmloutput.impl.Basic.class) ;
- registerForModelWrite("RDF/XML-ABBREV", org.apache.jena.rdfxml.xmloutput.impl.Abbreviated.class) ;
-
- registerForModelWrite("N-TRIPLE", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N-TRIPLES", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N-Triples", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("NT", RDFWriterRIOT_NTriples.class) ;
- registerForModelWrite("N3", RDFWriterRIOT_N3.class) ;
-
- registerForModelWrite(N3JenaWriter.n3WriterPrettyPrinter, RDFWriterRIOT_N3_PP.class) ;
- registerForModelWrite(N3JenaWriter.n3WriterPlain, RDFWriterRIOT_N3Plain.class) ;
- registerForModelWrite(N3JenaWriter.n3WriterTriples, RDFWriterRIOT_N3Triples.class) ;
- registerForModelWrite(N3JenaWriter.n3WriterTriplesAlt, RDFWriterRIOT_N3TriplesAlt.class) ;
-
- registerForModelWrite(N3JenaWriter.turtleWriter, RDFWriterRIOT_Turtle.class) ;
- registerForModelWrite(N3JenaWriter.turtleWriterAlt1, RDFWriterRIOT_Turtle1.class) ;
- registerForModelWrite(N3JenaWriter.turtleWriterAlt2, RDFWriterRIOT_Turtle2.class) ;
-
- registerForModelWrite("JSON-LD", RDFWriterRIOT_JSONLD.class) ;
- registerForModelWrite("JSONLD", RDFWriterRIOT_JSONLD.class) ;
-
- registerForModelWrite("RDF/JSON", RDFWriterRIOT_RDFJSON.class) ;
- registerForModelWrite("RDFJSON", RDFWriterRIOT_RDFJSON.class) ;
+ public static void wireIntoJena() {
+ if ( isWiredIn )
+ return ;
+ isWiredIn = true ;
+ RDFWriterFImpl.alternative(new RDFWriterFactoryRIOT());
}
- public static void resetJena()
- {
- // This is the old Jena configuration (bugs and all)
- RDFWriterFImpl.setBaseWriterClassName("RDF/XML", org.apache.jena.rdfxml.xmloutput.impl.Basic.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName("RDF/XML-ABBREV", org.apache.jena.rdfxml.xmloutput.impl.Abbreviated.class.getName()) ;
-
- RDFWriterFImpl.setBaseWriterClassName("N-TRIPLE", org.apache.jena.rdf.model.impl.NTripleWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName("NT", "") ;
- RDFWriterFImpl.setBaseWriterClassName("N-TRIPLES", org.apache.jena.rdf.model.impl.NTripleWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName("N-Triples", org.apache.jena.rdf.model.impl.NTripleWriter.class.getName()) ;
-
- RDFWriterFImpl.setBaseWriterClassName("N3", org.apache.jena.n3.N3JenaWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPrettyPrinter, org.apache.jena.n3.N3JenaWriterPP.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPlain, org.apache.jena.n3.N3TurtleJenaWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriples, org.apache.jena.n3.N3TurtleJenaWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterTriplesAlt, org.apache.jena.n3.N3JenaWriterTriples.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriter, org.apache.jena.n3.N3TurtleJenaWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt1, org.apache.jena.n3.N3TurtleJenaWriter.class.getName()) ;
- RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt2, org.apache.jena.n3.N3TurtleJenaWriter.class.getName()) ;
-
- RDFWriterFImpl.setBaseWriterClassName("JSON-LD", "");
- RDFWriterFImpl.setBaseWriterClassName("JSON", "");
-
- RDFWriterFImpl.setBaseWriterClassName("RDF/JSON", "");
- RDFWriterFImpl.setBaseWriterClassName("RDFJSON", "");
+ public static void resetJena() {
+ if ( ! isWiredIn )
+ return ;
+ isWiredIn = false ;
+ RDFWriterFImpl.alternative(null);
}
-
- /** Register for use with Model.write (old style compatibility) */
+
+ /** Register for use with Model.write (old style compatibility) */
+ @Deprecated
public static void registerForModelWrite(String name, Class<?> cls)
{
RDFWriterFImpl.setBaseWriterClassName(name, cls.getName()) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
index d3424b9..a3b5d19 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
@@ -18,20 +18,14 @@
package org.apache.jena.riot.system;
import static org.junit.Assert.assertEquals ;
-import static org.junit.Assert.assertFalse ;
-
-import java.util.LinkedHashMap ;
-import java.util.Map ;
-import java.util.Properties ;
+import static org.junit.Assert.assertNotEquals ;
+import static org.junit.Assert.fail ;
+import org.apache.jena.rdf.model.RDFReaderF ;
import org.apache.jena.rdf.model.impl.RDFReaderFImpl ;
import org.apache.jena.riot.IO_Jena ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_NT ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_RDFJSON ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_JSONLD ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_RDFXML ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_TTL ;
-import org.apache.jena.riot.adapters.* ;
+import org.apache.jena.riot.adapters.RDFReaderRIOT ;
+import org.apache.jena.shared.NoReaderForLangException ;
import org.junit.AfterClass ;
import org.junit.BeforeClass ;
import org.junit.Test ;
@@ -40,59 +34,48 @@ public class TestIO_JenaReaders {
@BeforeClass public static void beforeClass() { }
@AfterClass public static void afterClass() { IO_Jena.wireIntoJena(); }
- private final class RDFReaderFImplExposingProtected extends RDFReaderFImpl {
- public Map<String, String> defaultReaders() {
- Map<String,String> defaults = new LinkedHashMap<>();
- for (int i=0; i<LANGS.length; i++) {
- defaults.put(LANGS[i], DEFAULTREADERS[i]);
- }
- return defaults;
- }
- public Properties getLangToClassName() {
- return langToClassName;
- }
- }
-
@Test
public void wireIntoJena() {
- IO_JenaReaders.wireIntoJena();
- RDFReaderFImpl readerF = new RDFReaderFImpl();
- assertEquals(RDFReaderRIOT_Web.class, readerF.getReader().getClass());
- assertEquals(RDFReaderRIOT_RDFXML.class, readerF.getReader("RDF/XML").getClass());
- assertEquals(RDFReaderRIOT_RDFXML.class, readerF.getReader("RDF/XML-ABBREV").getClass());
- assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-TRIPLES").getClass());
- assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-Triples").getClass());
- assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-TRIPLE").getClass());
- assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("N3").getClass());
- assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("TURTLE").getClass());
- assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("Turtle").getClass());
- assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("TTL").getClass());
- assertEquals(RDFReaderRIOT_JSONLD.class, readerF.getReader("JSON-LD").getClass());
- assertEquals(RDFReaderRIOT_JSONLD.class, readerF.getReader("JSONLD").getClass());
- assertEquals(RDFReaderRIOT_RDFJSON.class, readerF.getReader("RDF/JSON").getClass());
-
+ IO_Jena.wireIntoJena();
+ RDFReaderF readerF = new RDFReaderFImpl();
+
+ assertEquals(RDFReaderRIOT.class, readerF.getReader().getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("RDF/XML").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("RDF/XML-ABBREV").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("N-TRIPLES").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("N-Triples").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("N-TRIPLE").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("N3").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("TURTLE").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("Turtle").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("TTL").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("JSON-LD").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("JSONLD").getClass());
+ assertEquals(RDFReaderRIOT.class, readerF.getReader("RDF/JSON").getClass());
}
@Test
public void resetJena() {
- IO_JenaReaders.wireIntoJena();
- IO_JenaReaders.resetJena();
- RDFReaderFImplExposingProtected readerF = new RDFReaderFImplExposingProtected();
- Map<String, String> defaults = readerF.defaultReaders();
- assertFalse(defaults.isEmpty());
- for (String lang : defaults.keySet()) {
- assertEquals(defaults.get(lang), readerF.getLangToClassName().get(lang));
- if (lang.equals("GRDDL")) {
- // Can't load
- continue;
- }
- assertEquals(defaults.get(lang), readerF.getReader(lang).getClass().getName());
- }
+ IO_Jena.wireIntoJena();
+ IO_Jena.resetJena();
+ RDFReaderF readerF = new RDFReaderFImpl();
+
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader().getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("RDF/XML").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("RDF/XML-ABBREV").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("N-TRIPLES").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("N-Triples").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("N-TRIPLE").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("N3").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("TURTLE").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("Turtle").getClass());
+ assertNotEquals(RDFReaderRIOT.class, readerF.getReader("TTL").getClass());
+
+ try { readerF.getReader("NT") ; fail("Exception expected") ; } catch (NoReaderForLangException e) {}
+ try { readerF.getReader("JSON_LD") ; fail("Exception expected") ; } catch (NoReaderForLangException e) {}
+ try { readerF.getReader("RDF/JSON"); fail("Exception expected") ; } catch (NoReaderForLangException e) {}
- // And unregistered our additional langs
- assertEquals("", readerF.getLangToClassName().get("JSON-LD"));
- assertEquals("", readerF.getLangToClassName().get("RDF/JSON"));
- IO_JenaReaders.wireIntoJena();
+ IO_Jena.wireIntoJena();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
index b7c71a3..f835b3b 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
@@ -18,27 +18,15 @@
package org.apache.jena.riot.system;
import static org.junit.Assert.assertEquals ;
-import static org.junit.Assert.assertFalse ;
-
-import java.util.LinkedHashMap ;
-import java.util.Map ;
-import java.util.Properties ;
+import static org.junit.Assert.assertNotEquals ;
+import static org.junit.Assert.fail ;
import org.apache.jena.n3.N3JenaWriter ;
+import org.apache.jena.rdf.model.RDFWriterF ;
import org.apache.jena.rdf.model.impl.RDFWriterFImpl ;
-import org.apache.jena.rdfxml.xmloutput.impl.Abbreviated ;
-import org.apache.jena.rdfxml.xmloutput.impl.Basic ;
import org.apache.jena.riot.IO_Jena ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3 ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Plain ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Triples ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3TriplesAlt ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3_PP ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_NTriples ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_RDFJSON ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle1 ;
-import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle2 ;
+import org.apache.jena.riot.adapters.RDFWriterRIOT ;
+import org.apache.jena.shared.NoWriterForLangException ;
import org.junit.AfterClass ;
import org.junit.BeforeClass ;
import org.junit.Test ;
@@ -48,62 +36,59 @@ public class TestIO_JenaWriters {
@BeforeClass public static void beforeClass() { }
@AfterClass public static void afterClass() { IO_Jena.wireIntoJena(); }
- private final class RDFWriterFImplExposingProtected extends RDFWriterFImpl {
- public Map<String, String> defaultWriters() {
- Map<String,String> defaults = new LinkedHashMap<>();
- for (int i=0; i<LANGS.length; i++) {
- defaults.put(LANGS[i], DEFAULTWRITERS[i]);
- }
- return defaults;
- }
- public Properties getLangToClassName() {
- return langToClassName;
- }
- }
-
@Test
public void testWireIntoJena() {
- IO_JenaWriters.wireIntoJena();
- RDFWriterFImpl writerF = new RDFWriterFImpl();
- assertEquals(Basic.class, writerF.getWriter().getClass());
- assertEquals(Basic.class, writerF.getWriter("RDF/XML").getClass());
- assertEquals(Abbreviated.class, writerF.getWriter("RDF/XML-ABBREV").getClass());
- assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-TRIPLE").getClass());
- assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-Triples").getClass());
- assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-TRIPLE").getClass());
- assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("NT").getClass());
+ IO_Jena.wireIntoJena();
+ RDFWriterF writerF = new RDFWriterFImpl();
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter().getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("RDF/XML").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("RDF/XML-ABBREV").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("N-TRIPLE").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("N-Triples").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("N-TRIPLE").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("NT").getClass());
- assertEquals(RDFWriterRIOT_N3.class, writerF.getWriter("N3").getClass());
- assertEquals(RDFWriterRIOT_N3_PP.class, writerF.getWriter(N3JenaWriter.n3WriterPrettyPrinter).getClass());
- assertEquals(RDFWriterRIOT_N3Plain.class, writerF.getWriter(N3JenaWriter.n3WriterPlain).getClass());
- assertEquals(RDFWriterRIOT_N3Triples.class, writerF.getWriter(N3JenaWriter.n3WriterTriples).getClass());
- assertEquals(RDFWriterRIOT_N3TriplesAlt.class, writerF.getWriter(N3JenaWriter.n3WriterTriplesAlt).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("N3").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterPrettyPrinter).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterPlain).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterTriples).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterTriplesAlt).getClass());
- assertEquals(RDFWriterRIOT_Turtle.class, writerF.getWriter(N3JenaWriter.turtleWriter).getClass());
- assertEquals(RDFWriterRIOT_Turtle1.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt1).getClass());
- assertEquals(RDFWriterRIOT_Turtle2.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt2).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriter).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt1).getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt2).getClass());
- assertEquals(RDFWriterRIOT_RDFJSON.class, writerF.getWriter("RDF/JSON").getClass());
- assertEquals(RDFWriterRIOT_RDFJSON.class, writerF.getWriter("RDFJSON").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("RDF/JSON").getClass());
+ assertEquals(RDFWriterRIOT.class, writerF.getWriter("RDFJSON").getClass());
}
@Test
public void testResetJena() {
- IO_JenaWriters.wireIntoJena();
- IO_JenaWriters.resetJena();
- RDFWriterFImplExposingProtected writerF = new RDFWriterFImplExposingProtected();
- Map<String, String> defaults = writerF.defaultWriters();
- assertFalse(defaults.isEmpty());
- for (String lang : defaults.keySet()) {
- assertEquals(defaults.get(lang), writerF.getLangToClassName().get(lang));
- assertEquals(defaults.get(lang), writerF.getWriter(lang).getClass().getName());
- }
+ IO_Jena.wireIntoJena();
+ IO_Jena.resetJena();
+ RDFWriterF writerF = new RDFWriterFImpl();
- // And unregistered our additional langs
- assertEquals("", writerF.getLangToClassName().get("NT"));
- assertEquals("", writerF.getLangToClassName().get("RDF/JSON"));
- assertEquals("", writerF.getLangToClassName().get("RDFJSON"));
- IO_JenaWriters.wireIntoJena();
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter().getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("RDF/XML").getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("RDF/XML-ABBREV").getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N-TRIPLE").getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N-Triples").getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N-TRIPLE").getClass());
+
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter("N3").getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterPrettyPrinter).getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterPlain).getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterTriples).getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.n3WriterTriplesAlt).getClass());
+
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriter).getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt1).getClass());
+ assertNotEquals(RDFWriterRIOT.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt2).getClass());
+
+ try { writerF.getWriter("NT"); fail("Exception expected") ; } catch (NoWriterForLangException ex) {}
+ try { writerF.getWriter("RDF/JSON") ; fail("Exception expected") ; } catch (NoWriterForLangException ex) {}
+ try { writerF.getWriter("RDFJSON"); fail("Exception expected") ; } catch (NoWriterForLangException ex) {}
+ IO_Jena.wireIntoJena();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java b/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
index 3f0d5f0..5bfcca2 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/writer/TestJenaWriters.java
@@ -25,7 +25,7 @@ import java.util.List ;
import org.apache.jena.atlas.lib.Bytes ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.riot.RDFDataMgr ;
-import org.apache.jena.riot.system.IO_JenaWriters ;
+import org.apache.jena.riot.RDFWriterRegistry ;
import org.junit.Test ;
import org.junit.runner.RunWith ;
import org.junit.runners.Parameterized ;
@@ -37,7 +37,7 @@ public class TestJenaWriters extends AbstractWriterTest
@Parameters(name = "{index}: {0}")
public static Iterable<Object[]> data() {
List<Object[]> x = new ArrayList<>() ;
- for ( String wname : IO_JenaWriters.getJenaWriterNames() )
+ for ( String wname : RDFWriterRegistry.getJenaWriterNames())
x.add(new Object[]{wname}) ;
return x ;
}
@@ -58,7 +58,7 @@ public class TestJenaWriters extends AbstractWriterTest
private void test(String filename) {
Model m = readModel(filename) ;
ByteArrayOutputStream out2 = new ByteArrayOutputStream() ;
- RDFDataMgr.write(out2, m, IO_JenaWriters.getFormatForJenaWriter(jenaFormatName)) ;
+ RDFDataMgr.write(out2, m, RDFWriterRegistry.getFormatForJenaWriter(jenaFormatName)) ;
ByteArrayOutputStream out1 = new ByteArrayOutputStream() ;
m.write(out1, jenaFormatName) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/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 ff93f69..8e48855 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
@@ -50,7 +50,6 @@ import org.apache.jena.vocabulary.RDF ;
public class ModelCom extends EnhGraph
implements Model, PrefixMapping, Lock
{
-
private static final RDFReaderF readerFactory = new RDFReaderFImpl();
private static final RDFWriterF writerFactory = new RDFWriterFImpl();
private Lock modelLock = null ;
@@ -58,7 +57,7 @@ implements Model, PrefixMapping, Lock
static {
// This forces RIOT (in ARQ) to initialize but after Jena readers/writers
- // have cleanly initialized from the calls of RDFReaderFImpl and RDFWriterFImpl
+ // have cleanly initialized from the calls of RDFReaderFImpl and RDFWriterFImpl
// above. RIOT initialization happens before model.read can be called.
JenaSystem.init() ;
}
@@ -213,6 +212,8 @@ implements Model, PrefixMapping, Lock
return readerFactory.getReader(lang);
}
+ /** @deprecated Use {@code org.apache.jena.riot.RDFParserRegistry.register}
+ */
@Override
@Deprecated
public String setReaderClassName(String lang, String className) {
@@ -300,6 +301,8 @@ implements Model, PrefixMapping, Lock
}
+ /** @deprecated Use {@code org.apache.jena.riot.RDFWriterRegistry.register}
+ */
@Override
@Deprecated
public String setWriterClassName(String lang, String className) {
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
index 7dd1aa2..4c3eaff 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFReaderFImpl.java
@@ -18,134 +18,144 @@
package org.apache.jena.rdf.model.impl;
-import java.util.Arrays;
-import java.util.Properties;
+import java.util.LinkedHashMap;
+import java.util.Map;
-import org.apache.jena.* ;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.shared.* ;
+import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.rdf.model.RDFReader;
+import org.apache.jena.rdf.model.RDFReaderF;
+import org.apache.jena.shared.ConfigException;
+import org.apache.jena.shared.JenaException;
+import org.apache.jena.shared.NoReaderForLangException;
-/**
- */
public class RDFReaderFImpl extends Object implements RDFReaderF {
- // ** The setting in this class are overrided by RIOT **
- private static final String TURTLEREADER = org.apache.jena.n3.turtle.TurtleReader.class.getName() ;
-
- protected static Properties langToClassName = null;
-
- // predefined languages - these should probably go in a properties file
-
- protected static final String LANGS[] = { "RDF" ,
- "RDF/XML",
- "RDF/XML-ABBREV",
- "N-TRIPLE",
- "N-TRIPLES",
- "N-Triples",
- "N3",
- "TURTLE",
- "Turtle",
- "TTL",
- "CSV"};
- // default readers for each language
-
- protected static final String DEFAULTREADERS[] = {
- org.apache.jena.rdfxml.xmlinput.JenaReader.class.getName(),
- org.apache.jena.rdfxml.xmlinput.JenaReader.class.getName(),
- org.apache.jena.rdfxml.xmlinput.JenaReader.class.getName(),
- org.apache.jena.rdf.model.impl.NTripleReader.class.getName(),
- org.apache.jena.rdf.model.impl.NTripleReader.class.getName(),
- org.apache.jena.rdf.model.impl.NTripleReader.class.getName(),
- TURTLEREADER, // N3 replaced by a Turtle-based parser
- TURTLEREADER,
- TURTLEREADER,
- TURTLEREADER,
- "org.apache.jena.riot.adapters.RDFReaderRIOT_CSV",
-
- };
-
- protected static final String DEFAULTLANG = LANGS[0];
-
- protected static final String PROPNAMEBASE = Jena.PATH + ".reader.";
-
- static { // static initializer - set default readers
- reset();
+ public static final String DEFAULTLANG = "RDF/XML" ;
+ private static Map<String, Class<? extends RDFReader>> custom = new LinkedHashMap<>();
+ private static RDFReaderF rewiredAlternative = null ;
+ /** Rewire to use an external RDFReaderF (typically, RIOT).
+ * Set to null to use old jena-core setup.
+ * @param other
+ */
+ public static void alternative(RDFReaderF other) {
+ rewiredAlternative = other ;
}
- private static void reset()
- {
- Properties newLangToClassName = new Properties();
- for (int i = 0; i<LANGS.length; i++) {
- newLangToClassName.setProperty(
- LANGS[i],
- JenaRuntime.getSystemProperty(PROPNAMEBASE + LANGS[i],
- DEFAULTREADERS[i]));
- }
- // reset all at once
- langToClassName = newLangToClassName;
- }
-
- private static String remove(String lang )
- {
- if (Arrays.asList( LANGS ).contains(lang))
- {
- throw new IllegalArgumentException( lang+" is an initial language and may not be removed");
- }
- Object prev = langToClassName.remove(lang);
- return prev==null?null:prev.toString();
- }
-
/** Creates new RDFReaderFImpl */
- public RDFReaderFImpl() {
- }
-
+ public RDFReaderFImpl() {}
+
@Override
public RDFReader getReader() {
- return getReader(DEFAULTLANG);
+ return getReader(null);
}
-
+
@Override
- public RDFReader getReader(String lang) {
+ public RDFReader getReader(String lang) {
+ // Jena model.read rule for defaulting.
+ if (lang==null || lang.equals(""))
+ lang = DEFAULTLANG ;
+ // if RIOT ->
+ if ( rewiredAlternative != null )
+ return rewiredAlternative.getReader(lang) ;
+ Class<? extends RDFReader> c = custom.get(lang);
+ if ( c == null )
+ throw new NoReaderForLangException("Reader not found: " + lang);
- // setup default language
- if (lang==null || lang.equals("")) {
- lang = LANGS[0];
+ try {
+ return c.newInstance();
}
-
- String className = langToClassName.getProperty(lang);
- if (className == null || className.equals("")) {
- throw new NoReaderForLangException( lang );
+ catch (InstantiationException | IllegalAccessException e) {
+ throw new JenaException(e);
}
+ }
+
+ /**
+ * Use RIOT to add custom RDF parsers. See
+ * {@code RDFParserRegistry.registerLangTriples} and
+ * {@code RDFParserRegistry.registerLangQuads}
+ *
+ * @deprecated Register with RIOT.
+ */
+ @Override
+ @Deprecated
+ public String setReaderClassName(String lang, String className) {
+ return setBaseReaderClassName(lang, className);
+ }
+
+ /**
+ * Use RIOT to add custom RDF parsers. See
+ * {@code RDFParserRegistry.registerLang}
+ *
+ * @deprecated Register with RIOT.
+ */
+ @Deprecated
+ public static String setBaseReaderClassName(String lang, String className) {
+ if ( rewiredAlternative != null )
+ Log.fatal(RDFReaderFImpl.class, "Rewired RDFReaderFImpl - configuration changes have no effect on reading");
+
+ String oldClassName = currentEntry(lang);
try {
- return (RDFReader) Class.forName(className)
- .newInstance();
- } catch (ClassNotFoundException e) {
- throw new ConfigException("Reader not found on classpath",e);
- } catch (Exception e) {
+ @SuppressWarnings("unchecked")
+ Class<? extends RDFReader> newClass = (Class<? extends RDFReader>)Class.forName(className, false,
+ Thread.currentThread().getContextClassLoader());
+ custom.put(lang, newClass);
+ return oldClassName;
+ }
+ catch (ClassNotFoundException e) {
+ throw new ConfigException("Reader not found on classpath", e);
+ }
+ catch (Exception e) {
throw new JenaException(e);
}
}
+ @Override
+ public void resetRDFReaderF() {
+ reset();
+ }
@Override
- public String setReaderClassName( String lang,String className ) {
- return setBaseReaderClassName( lang, className );
+ public String removeReader(String lang) throws IllegalArgumentException {
+ return remove(lang);
}
-
- public static String setBaseReaderClassName( String lang, String className ) {
- String oldClassName = langToClassName.getProperty(lang);
- langToClassName.setProperty(lang, className);
- return oldClassName;
+
+ static {
+ // static initializer - set default readers
+ reset();
}
+ private static void reset() {
+ Class<? extends RDFReader> rdfxmlReader = org.apache.jena.rdfxml.xmlinput.JenaReader.class;
+ Class<? extends RDFReader> ntReader = org.apache.jena.rdf.model.impl.NTripleReader.class;
+ Class<? extends RDFReader> turtleReader = org.apache.jena.n3.turtle.TurtleReader.class;
- @Override
- public void resetRDFReaderF() {
- reset();
- }
+ custom.put("RDF", rdfxmlReader);
+ custom.put("RDF/XML", rdfxmlReader);
+ custom.put("RDF/XML-ABBREV", rdfxmlReader);
+ custom.put("N-TRIPLE", ntReader);
+ custom.put("N-TRIPLES", ntReader);
+ custom.put("N-Triples", ntReader);
- @Override
- public String removeReader(String lang) throws IllegalArgumentException {
- return remove( lang );
- }
+ custom.put("N3", turtleReader);
+ custom.put("TURTLE", turtleReader);
+ custom.put("Turtle", turtleReader);
+ custom.put("TTL", turtleReader);
+ }
+
+ private static String currentEntry(String lang) {
+ Class<? extends RDFReader> oldClass = custom.get(lang);
+ if ( oldClass != null )
+ return oldClass.getName();
+ else
+ return null;
+ }
+
+ private static String remove(String lang) {
+ if ( rewiredAlternative != null )
+ Log.fatal(RDFReaderFImpl.class, "Rewired RDFReaderFImpl - configuration changes have no effect on reading");
+
+ String oldClassName = currentEntry(lang);
+ custom.remove(lang);
+ return oldClassName;
+ }
}
[20/25] jena git commit: Update to Jena 3.0.1 development
Posted by an...@apache.org.
Update to Jena 3.0.1 development
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/852569a2
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/852569a2
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/852569a2
Branch: refs/heads/master
Commit: 852569a2a80814da99d364f003a635ed594183d2
Parents: 536cc83
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Sep 20 14:58:32 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Sep 20 14:58:32 2015 +0100
----------------------------------------------------------------------
apache-jena-osgi/jena-osgi-test/pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/852569a2/apache-jena-osgi/jena-osgi-test/pom.xml
----------------------------------------------------------------------
diff --git a/apache-jena-osgi/jena-osgi-test/pom.xml b/apache-jena-osgi/jena-osgi-test/pom.xml
index d22e728..2e63b54 100644
--- a/apache-jena-osgi/jena-osgi-test/pom.xml
+++ b/apache-jena-osgi/jena-osgi-test/pom.xml
@@ -21,12 +21,12 @@ limitations under the License.
<parent>
<groupId>org.apache.jena</groupId>
<artifactId>jena-parent</artifactId>
- <version>13-SNAPSHOT</version>
+ <version>15-SNAPSHOT</version>
<relativePath>../../jena-parent</relativePath>
</parent>
<artifactId>jena-osgi-test</artifactId>
- <version>3.0.0-SNAPSHOT</version>
+ <version>3.0.1-SNAPSHOT</version>
<name>Apache Jena - OSGi integration tests</name>
<description>Tests for jena-osgi as a bundle</description>
<packaging>bundle</packaging>
[19/25] jena git commit: Typo
Posted by an...@apache.org.
Typo
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/536cc831
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/536cc831
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/536cc831
Branch: refs/heads/master
Commit: 536cc83114c2ff1d9cd1921a903a15353fb70150
Parents: 740e1b4
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Sep 20 14:58:03 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Sep 20 14:58:03 2015 +0100
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/system/JenaSystem.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/536cc831/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index f29fa65..fae4c0b 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -80,7 +80,7 @@ public class JenaSystem {
// Net effect:
// After a top level call of JenaSystem.init() returns, tjena has
// finishes initialization.
- // Rececursive calls do not have this property.
+ // Recursive calls do not have this property.
if ( initialized )
return ;
[11/25] jena git commit: JENA-1029: TDB.init or RIOT.init becomes
JenaSystem.init where needed.
Posted by an...@apache.org.
JENA-1029: TDB.init or RIOT.init becomes JenaSystem.init where needed.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8cbde67e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8cbde67e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8cbde67e
Branch: refs/heads/master
Commit: 8cbde67e6b58e75ddb528c432f3876ec8aabd85a
Parents: 8d0c2db
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 18:27:26 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 18:27:26 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java | 4 ++--
jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8cbde67e/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
index 12f0858..c302c32 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/DatasetAssemblerTDB.java
@@ -34,17 +34,17 @@ import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.jena.sparql.core.assembler.DatasetAssembler ;
import org.apache.jena.sparql.expr.NodeValue ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.TDBFactory ;
import org.apache.jena.tdb.base.file.Location ;
public class DatasetAssemblerTDB extends DatasetAssembler
{
- static { TDB.init(); }
+ static { JenaSystem.init(); }
@Override
public Dataset createDataset(Assembler a, Resource root, Mode mode) {
- TDB.init() ;
return make(root) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8cbde67e/jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java b/jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java
index db98678..86feed6 100644
--- a/jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java
+++ b/jena-tdb/src/main/java/tdb/cmdline/CmdTDB.java
@@ -52,7 +52,6 @@ public abstract class CmdTDB extends CmdARQ
// attempt once.
initialized = true ;
LogCtl.setCmdLogging() ;
- TDB.init() ;
DatasetBuilderStd.setOptimizerWarningFlag(false) ;
}
[13/25] jena git commit: Minor tidying.
Posted by an...@apache.org.
Minor tidying.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d60933e9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d60933e9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d60933e9
Branch: refs/heads/master
Commit: d60933e90c8f10dc3bfe80555c47db7e98532ee3
Parents: 23a01e9
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 22:11:41 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 22:11:41 2015 +0100
----------------------------------------------------------------------
jena-arq/src/main/java/org/apache/jena/query/ARQ.java | 1 -
jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java | 3 ---
.../src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java | 1 -
jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java | 1 -
4 files changed, 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d60933e9/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 adbf742..c9d2f84 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
@@ -545,7 +545,6 @@ public class ARQ
System.err.println("ARQ.init - skip") ;
return ;
}
-
initialized = true ;
if ( JenaSystem.DEBUG_INIT )
System.err.println("ARQ.init - start") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d60933e9/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java b/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
index 544bbe6..39e7634 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
@@ -95,9 +95,6 @@ public class SDB
initialized = true ;
if ( JenaSystem.DEBUG_INIT )
System.err.println("SDB.init - start") ;
- // Set this immediately in case code below causes init() to be called.
- // (It's better if there are no dependences but ...)
- initialized = true ;
// Better not to break up BGPs too much.
ARQ.getContext().set(ARQ.optFilterPlacement, false) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/d60933e9/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
index f451a07..71dd11b 100644
--- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
+++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
@@ -22,7 +22,6 @@ import junit.framework.TestSuite;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sdb.SDB ;
import org.apache.jena.sdb.test.junit.QueryTestSDBFactory ;
-import org.apache.jena.system.JenaSystem ;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;
http://git-wip-us.apache.org/repos/asf/jena/blob/d60933e9/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java b/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
index 5e57341..f78fea9 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
@@ -59,7 +59,6 @@ public class TextQuery
initialized = true ;
if ( JenaSystem.DEBUG_INIT )
System.err.println("TextQuery.init - start") ;
- initialized = true ;
TextAssembler.init() ;
SystemInfo sysInfo = new SystemInfo(IRI, PATH, VERSION, BUILD_DATE) ;
[17/25] jena git commit: javadoc
Posted by an...@apache.org.
javadoc
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/04b665ab
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/04b665ab
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/04b665ab
Branch: refs/heads/master
Commit: 04b665aba0beb117ff46abb4e0cbb59cb68266b5
Parents: f30b75c
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Sep 19 15:05:07 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Sep 19 15:05:07 2015 +0100
----------------------------------------------------------------------
.../org/apache/jena/system/JenaSubsystemLifecycle.java | 2 +-
.../org/apache/jena/system/JenaSubsystemRegistry.java | 12 +++++-------
2 files changed, 6 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/04b665ab/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
index a3cd771..3587d79 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
@@ -21,7 +21,7 @@ package org.apache.jena.system;
/** Lifecycle interface for jena modules and subsystems. */
public interface JenaSubsystemLifecycle {
- /** start - a module should be ready to oeprate when this returns */
+ /** 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 */
http://git-wip-us.apache.org/repos/asf/jena/blob/04b665ab/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
index f052ee3..214d55a 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
@@ -22,24 +22,21 @@ import java.util.List ;
/**
* A {@code JenaSubsystemRegistry} is a set of objects implementing {@link JenaSubsystemLifecycle}.
- * <p>
- * It is a set - at most one entry.
- * <p>Discovered in some way.
*/
public interface JenaSubsystemRegistry {
/** Load - peform some kinds of search for {@link JenaSubsystemLifecycle} implementations.
- * This is called once only.
+ * This is called once in the initialization process.
*/
public void load();
- /** Add to the colection. */
+ /** Add to the collection. */
public void add(JenaSubsystemLifecycle module);
/** check whether registered */
public boolean isRegistered(JenaSubsystemLifecycle module);
- /** Remove from the colection. */
+ /** Remove from the collection. */
public void remove(JenaSubsystemLifecycle module);
public int size();
@@ -47,9 +44,10 @@ public interface JenaSubsystemRegistry {
public boolean isEmpty();
/**
- * Return the registered items a copied list.
+ * 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();
[04/25] jena git commit: JENA-1029: Subsystem initialization (default,
ServiceLoader)
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-csv/src/main/java/org/apache/jena/propertytable/impl/InitJenaCSV.java
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/java/org/apache/jena/propertytable/impl/InitJenaCSV.java b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/InitJenaCSV.java
new file mode 100644
index 0000000..14111f5
--- /dev/null
+++ b/jena-csv/src/main/java/org/apache/jena/propertytable/impl/InitJenaCSV.java
@@ -0,0 +1,34 @@
+/**
+ * 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.propertytable.impl;
+
+import org.apache.jena.propertytable.lang.CSV2RDF ;
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+public class InitJenaCSV implements JenaSubsystemLifecycle {
+
+ @Override
+ public void start() {
+ CSV2RDF.init() ;
+ }
+
+ @Override
+ public void stop() {
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-csv/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-csv/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-csv/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..0399e1f
--- /dev/null
+++ b/jena-csv/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1 @@
+org.apache.jena.propertytable.impl.InitJenaCSV
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki1/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/Fuseki.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/Fuseki.java
index 45e6415..b015f83 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/Fuseki.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/Fuseki.java
@@ -20,7 +20,6 @@ package org.apache.jena.fuseki;
import org.apache.jena.fuseki.server.SPARQLServer ;
import org.apache.jena.query.ARQ ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.system.stream.LocatorFTP ;
import org.apache.jena.riot.system.stream.LocatorHTTP ;
import org.apache.jena.riot.system.stream.StreamManager ;
@@ -29,6 +28,7 @@ import org.apache.jena.sparql.lib.Metadata ;
import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.transaction.TransactionManager ;
import org.slf4j.Logger ;
@@ -137,11 +137,9 @@ public class Fuseki
if ( initialized )
return ;
initialized = true ;
- ARQ.init() ;
+ JenaSystem.init();
SystemInfo sysInfo = new SystemInfo(FusekiIRI, PATH, VERSION, BUILD_DATE) ;
SystemARQ.registerSubSystem(sysInfo) ;
- RIOT.init() ;
- TDB.init() ;
MappingRegistry.addPrefixMapping("fuseki", FusekiSymbolIRI) ;
TDB.setOptimizerWarningFlag(false) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki1/src/main/java/org/apache/jena/fuseki/migrate/Registry.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/migrate/Registry.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/migrate/Registry.java
deleted file mode 100644
index ca30be1..0000000
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/migrate/Registry.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.fuseki.migrate;
-
-import java.util.Collection ;
-import java.util.HashMap ;
-import java.util.Map ;
-
-public class Registry<T>
-{
- protected Map<String, T> registry = new HashMap<String, T>() ;
-
- public Registry() {}
-
- public void put(String key, T value) { registry.put(key, value) ; }
-
- public T get(String key) { return registry.get(key) ; }
-
- public boolean isRegistered(String key) { return registry.containsKey(key) ; }
- public void remove(String key) { registry.remove(key) ; }
- public Collection<String> keys() { return registry.keySet() ; }
- //public Iterator<String> keys() { return registry.keySet().iterator() ; }
-
- public int size() { return registry.size() ; }
- public boolean isEmpty() { return registry.isEmpty() ; }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/DatasetRegistry.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/DatasetRegistry.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/DatasetRegistry.java
index 152e8cd..60d15a8 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/DatasetRegistry.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/DatasetRegistry.java
@@ -18,9 +18,9 @@
package org.apache.jena.fuseki.server;
-import org.apache.jena.fuseki.migrate.Registry ;
+import org.apache.jena.atlas.lib.Registry ;
-public class DatasetRegistry extends Registry<DatasetRef>
+public class DatasetRegistry extends Registry<String, DatasetRef>
{
private static DatasetRegistry singleton = new DatasetRegistry() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki1/src/test/java/org/apache/jena/fuseki/ServerTest.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/test/java/org/apache/jena/fuseki/ServerTest.java b/jena-fuseki1/src/test/java/org/apache/jena/fuseki/ServerTest.java
index 9659da0..37b803e 100644
--- a/jena-fuseki1/src/test/java/org/apache/jena/fuseki/ServerTest.java
+++ b/jena-fuseki1/src/test/java/org/apache/jena/fuseki/ServerTest.java
@@ -18,6 +18,7 @@
package org.apache.jena.fuseki;
+import org.apache.jena.fuseki.server.DatasetRegistry ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
@@ -98,6 +99,7 @@ public class ServerTest
}
protected static void teardownServer() {
+ DatasetRegistry.get().clear() ;
if ( server != null )
server.stop() ;
server = null ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
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 a6cfbdc..991c673 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,7 +26,6 @@ import org.apache.jena.atlas.lib.DateTimeUtils ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.query.spatial.SpatialQuery ;
import org.apache.jena.query.text.TextQuery ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.system.stream.LocatorFTP ;
import org.apache.jena.riot.system.stream.LocatorHTTP ;
import org.apache.jena.riot.system.stream.StreamManager ;
@@ -35,6 +34,7 @@ import org.apache.jena.sparql.lib.Metadata ;
import org.apache.jena.sparql.mgt.SystemInfo ;
import org.apache.jena.sparql.util.Context ;
import org.apache.jena.sparql.util.MappingRegistry ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.transaction.TransactionManager ;
import org.slf4j.Logger ;
@@ -215,13 +215,11 @@ public class Fuseki {
if ( initialized )
return ;
initialized = true ;
- // FusekiEnv.setEnvironment() ;
+ JenaSystem.init() ;
+ // Do explicitly so it happens after subsystem initialization.
FusekiLogging.setLogging() ;
- ARQ.init() ;
SystemInfo sysInfo = new SystemInfo(FusekiIRI, PATH, VERSION, BUILD_DATE) ;
SystemARQ.registerSubSystem(sysInfo) ;
- RIOT.init() ;
-
TDB.init() ;
// Initialize anyway (e.g. not to rely on assembler magic).
try {
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
index 9970af7..931c6e0 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/cmd/FusekiCmd.java
@@ -35,6 +35,7 @@ import org.apache.jena.riot.Lang ;
import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.riot.RDFLanguages ;
import org.apache.jena.sparql.core.DatasetGraphFactory ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.sys.Names ;
import org.apache.jena.tdb.transaction.TransactionManager ;
@@ -89,9 +90,8 @@ public class FusekiCmd {
// fuseki [--mem|--desc assembler.ttl] [--port PORT] **** /datasetURI
static public void innerMain(String... argv) {
- // Just to make sure ...
- ARQ.init() ;
- TDB.init() ;
+ JenaSystem.init() ;
+ // Do explicitly so it happens after subsystem initialization.
Fuseki.init() ;
new FusekiCmdInner(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerEnvironmentInit.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerEnvironmentInit.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerEnvironmentInit.java
index 356dc82..3142238 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerEnvironmentInit.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/server/FusekiServerEnvironmentInit.java
@@ -22,6 +22,7 @@ import javax.servlet.ServletContextEvent ;
import javax.servlet.ServletContextListener ;
import org.apache.jena.fuseki.FusekiLogging ;
+import org.apache.jena.system.JenaSystem ;
/** Setup the enviroment and logging.
* Runs before the ShiroEnvironmentLoader.
@@ -32,8 +33,9 @@ public class FusekiServerEnvironmentInit implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
- FusekiEnv.setEnvironment();
- FusekiLogging.setLogging();
+ JenaSystem.init() ;
+ FusekiEnv.setEnvironment() ;
+ FusekiLogging.setLogging() ;
}
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-parent/pom.xml
----------------------------------------------------------------------
diff --git a/jena-parent/pom.xml b/jena-parent/pom.xml
index dcbd614..240eee4 100644
--- a/jena-parent/pom.xml
+++ b/jena-parent/pom.xml
@@ -425,7 +425,8 @@
</executions>
<configuration>
<excludeSubProjects>true</excludeSubProjects>
- <excludes>
+ <excludes>
+ <exclude>**/META-INF/services/*</exclude>
<!--
jena-core exclusions
-->
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java b/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
index 0fb5204..544bbe6 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/SDB.java
@@ -18,7 +18,6 @@
package org.apache.jena.sdb;
-import org.apache.jena.assembler.assemblers.AssemblerGroup ;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sdb.assembler.AssemblerVocab ;
@@ -30,17 +29,16 @@ import org.apache.jena.shared.PrefixMapping ;
import org.apache.jena.shared.impl.PrefixMappingImpl ;
import org.apache.jena.sparql.ARQInternalErrorException ;
import org.apache.jena.sparql.SystemARQ ;
-import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.jena.sparql.lib.Metadata ;
import org.apache.jena.sparql.mgt.SystemInfo ;
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.vocabulary.OWL ;
import org.apache.jena.vocabulary.RDF ;
import org.apache.jena.vocabulary.RDFS ;
-
public class SDB
{
/** IRI for SDB */
@@ -71,49 +69,58 @@ public class SDB
// Global context is the ARQ context.
public static Context getContext() { return ARQ.getContext() ; }
- static { initWorker() ; }
- public static void init() { }
-
- /** Used by Jena assemblers for registration */
- public static void whenRequiredByAssembler( AssemblerGroup g )
- {
- AssemblerUtils.init() ; // ARQ
- AssemblerVocab.register(g) ; // SDB
+ static {
+ JenaSystem.init();
}
- private static boolean initialized = false ;
- private static synchronized void initWorker()
- {
- // Called from
- // + StoreFactory
- // + DatasetStore
- // Commands call AssemblerVocab.init() ;
-
- if ( initialized )
+// /** Used by Jena assemblers for registration */
+// public static void whenRequiredByAssembler( AssemblerGroup g )
+// {
+// AssemblerUtils.init() ; // ARQ
+// AssemblerVocab.register(g) ; // SDB
+// }
+
+ private static volatile boolean initialized = false ;
+ private static Object initLock = new Object() ;
+
+ public static void init() {
+ if ( initialized )
return ;
-
- // Set this immediately in case code below causes init() to be called.
- // (It's better if there are no dependences but ...)
- initialized = true ;
-
- // Better not to break up BGPs too much.
- ARQ.getContext().set(ARQ.optFilterPlacement, false) ;
- MappingRegistry.addPrefixMapping(SDB.symbolPrefix, SDB.symbolSpace) ;
+ synchronized(initLock) {
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SDB.init - skip") ;
+ return ;
+ }
+ initialized = true ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SDB.init - start") ;
+ // Set this immediately in case code below causes init() to be called.
+ // (It's better if there are no dependences but ...)
+ initialized = true ;
+
+ // Better not to break up BGPs too much.
+ ARQ.getContext().set(ARQ.optFilterPlacement, false) ;
+ MappingRegistry.addPrefixMapping(SDB.symbolPrefix, SDB.symbolSpace) ;
+
+ // Default is 1000 4Kpages.
+ DerbyUtils.setDerbyPageCacheSize(10000) ;
- // Default is 1000 4Kpages.
- DerbyUtils.setDerbyPageCacheSize(10000) ;
+ // Wire in the SDB query engine
+ QueryEngineSDB.register() ;
+ // Wire in the SDB update engine
+ UpdateEngineSDB.register() ;
- // Wire in the SDB query engine
- QueryEngineSDB.register() ;
- // Wire in the SDB update engine
- UpdateEngineSDB.register() ;
-
- SDB.getContext().setIfUndef(useQuadRewrite, false) ;
- SDB.getContext().setIfUndef(streamGraphAPI, false) ;
- SDB.getContext().setIfUndef(jdbcStream, true) ;
- //SDB.getContext().setIfUndef(jdbcFetchSize, ???) ;
- SDB.getContext().setIfUndef(annotateGeneratedSQL, true) ;
- //SDB.getContext().setIfUndef(unionDefaultGraph, false) ;
+ SDB.getContext().setIfUndef(useQuadRewrite, false) ;
+ SDB.getContext().setIfUndef(streamGraphAPI, false) ;
+ SDB.getContext().setIfUndef(jdbcStream, true) ;
+ //SDB.getContext().setIfUndef(jdbcFetchSize, ???) ;
+ SDB.getContext().setIfUndef(annotateGeneratedSQL, true) ;
+ //SDB.getContext().setIfUndef(unionDefaultGraph, false) ;
+ AssemblerVocab.init();
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SDB.init - finish") ;
+ }
}
/** RDF namespace prefix */
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/java/org/apache/jena/sdb/SDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/SDBFactory.java b/jena-sdb/src/main/java/org/apache/jena/sdb/SDBFactory.java
index ce61c90..62b7288 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/SDBFactory.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/SDBFactory.java
@@ -35,6 +35,7 @@ import org.apache.jena.sdb.store.DatasetStore ;
import org.apache.jena.sdb.store.StoreFactory ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.modify.GraphStoreBasic ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.update.GraphStore ;
/** Various operations to create or connect objects to do with SDB:
@@ -45,6 +46,7 @@ import org.apache.jena.update.GraphStore ;
@SuppressWarnings("deprecation")
public class SDBFactory
{
+ static { JenaSystem.init() ; }
// ---- Connections
/**
* Create a connection to a database.
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/java/org/apache/jena/sdb/assembler/StoreDescAssembler.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/assembler/StoreDescAssembler.java b/jena-sdb/src/main/java/org/apache/jena/sdb/assembler/StoreDescAssembler.java
index de8d9f5..6e5c140 100644
--- a/jena-sdb/src/main/java/org/apache/jena/sdb/assembler/StoreDescAssembler.java
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/assembler/StoreDescAssembler.java
@@ -24,7 +24,6 @@ import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
import org.apache.jena.rdf.model.Resource ;
-import org.apache.jena.sdb.SDB ;
import org.apache.jena.sdb.SDBException ;
import org.apache.jena.sdb.StoreDesc ;
import org.apache.jena.sdb.sql.MySQLEngineType ;
@@ -38,8 +37,6 @@ import org.slf4j.LoggerFactory;
public class StoreDescAssembler extends AssemblerBase implements Assembler
{
- static { SDB.init() ; }
-
private static Logger log = LoggerFactory.getLogger(StoreDescAssembler.class) ;
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/java/org/apache/jena/sdb/core/InitSDB.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/org/apache/jena/sdb/core/InitSDB.java b/jena-sdb/src/main/java/org/apache/jena/sdb/core/InitSDB.java
new file mode 100644
index 0000000..3461f15
--- /dev/null
+++ b/jena-sdb/src/main/java/org/apache/jena/sdb/core/InitSDB.java
@@ -0,0 +1,39 @@
+/**
+ * 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.sdb.core;
+
+import org.apache.jena.sdb.SDB ;
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+/** Jena subsystem initialization */
+public class InitSDB implements JenaSubsystemLifecycle {
+ @Override
+ public void start() {
+ SDB.init() ;
+ }
+
+ @Override
+ public void stop() {
+ }
+
+ @Override
+ public int level() {
+ return 9 ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java b/jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java
index 5431ac5..0b039aa 100644
--- a/jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java
+++ b/jena-sdb/src/main/java/sdb/cmd/CmdArgsDB.java
@@ -49,7 +49,6 @@ public abstract class CmdArgsDB extends CmdARQ
addModule(modStore) ;
addModule(modLogSQL) ;
addModule(modTime) ;
- ARQ.init() ;
modVersion.addClass(Jena.class) ;
modVersion.addClass(ARQ.class) ;
modVersion.addClass(SDB.class) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-sdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..6c8c9b0
--- /dev/null
+++ b/jena-sdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1 @@
+org.apache.jena.sdb.core.InitSDB
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java b/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
index c2f6d7d..f451a07 100644
--- a/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
+++ b/jena-sdb/src/test/java/org/apache/jena/sdb/test/SDBQueryTestSuite.java
@@ -22,6 +22,7 @@ import junit.framework.TestSuite;
import org.apache.jena.query.ARQ ;
import org.apache.jena.sdb.SDB ;
import org.apache.jena.sdb.test.junit.QueryTestSDBFactory ;
+import org.apache.jena.system.JenaSystem ;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;
@@ -40,14 +41,14 @@ public class SDBQueryTestSuite extends TestSuite
private SDBQueryTestSuite()
{
- super("SDB") ;
-
+ super("SDB Query") ;
+ SDB.init();
if ( true )
// PostgreSQL gets upset with comments in comments??
ARQ.getContext().setFalse(SDB.annotateGeneratedSQL) ;
QueryTestSDBFactory.make(this, SDBTestSetup.storeList, SDBTestSetup.manifestMain) ;
- QueryTestSDBFactory.make(this, SDBTestSetup.storeListSimple, SDBTestSetup.manifestSimple) ;
+ //QueryTestSDBFactory.make(this, SDBTestSetup.storeListSimple, SDBTestSetup.manifestSimple) ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-spatial/src/main/java/org/apache/jena/query/spatial/InitJenaSpatial.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/InitJenaSpatial.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/InitJenaSpatial.java
new file mode 100644
index 0000000..f6f5d33
--- /dev/null
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/InitJenaSpatial.java
@@ -0,0 +1,32 @@
+/**
+ * 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.query.spatial;
+
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+public class InitJenaSpatial implements JenaSubsystemLifecycle {
+ @Override
+ public void start() {
+ SpatialQuery.init() ;
+ }
+
+ @Override
+ public void stop() {
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
index 630ec69..6788033 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
@@ -18,6 +18,8 @@
package org.apache.jena.query.spatial;
+import com.spatial4j.core.context.SpatialContext ;
+
import org.apache.jena.query.spatial.assembler.SpatialAssembler ;
import org.apache.jena.query.spatial.pfunction.library.* ;
import org.apache.jena.sparql.SystemARQ ;
@@ -27,14 +29,13 @@ import org.apache.jena.sparql.pfunction.PropertyFunction ;
import org.apache.jena.sparql.pfunction.PropertyFunctionFactory ;
import org.apache.jena.sparql.pfunction.PropertyFunctionRegistry ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.tdb.TDB ;
-
-import com.spatial4j.core.context.SpatialContext ;
+import org.apache.jena.system.JenaSystem ;
public class SpatialQuery
{
- private static boolean initialized = false ;
+ private static volatile boolean initialized = false ;
private static Object lock = new Object() ;
+
public static String NS = "http://jena.apache.org/spatial#" ;
public static String IRI = "http://jena.apache.org/#spatial" ;
public static final Symbol spatialIndex = Symbol.create(NS+"index") ;
@@ -52,16 +53,23 @@ public class SpatialQuery
// an optional feature for WKT literals, loaded when necessary, but not required
public static final String JTS_SPATIAL_CONTEXT_FACTORY_CLASS = "com.spatial4j.core.context.jts.JtsSpatialContextFactory";
- static { init() ; }
+ static { JenaSystem.init(); }
public static void init()
{
- if ( initialized ) return ;
+ if ( initialized )
+ return ;
synchronized(lock)
{
- if ( initialized ) return ;
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SpatialQuery.init - skip") ;
+ return ;
+ }
initialized = true ;
- TDB.init() ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SpatialQuery.init - start") ;
+
SpatialAssembler.init() ;
SystemInfo sysInfo = new SystemInfo(IRI, PATH, VERSION, BUILD_DATE) ;
@@ -122,6 +130,10 @@ public class SpatialQuery
return new WestPF() ;
}
});
+
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("SpatialQuery.init - finish") ;
+
}
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-spatial/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-spatial/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..c04f1fc
--- /dev/null
+++ b/jena-spatial/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1 @@
+org.apache.jena.query.spatial.InitJenaSpatial
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
index 786ded9..1c08724 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
@@ -30,7 +30,6 @@ import org.apache.jena.query.ARQ ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.reasoner.InfGraph ;
-import org.apache.jena.riot.RIOT ;
import org.apache.jena.riot.lang.LangRDFXML ;
import org.apache.jena.sparql.SystemARQ ;
import org.apache.jena.sparql.core.DatasetGraph ;
@@ -42,6 +41,7 @@ import org.apache.jena.sparql.mgt.SystemInfo ;
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.tdb.assembler.AssemblerTDB ;
import org.apache.jena.tdb.modify.UpdateEngineTDB ;
import org.apache.jena.tdb.setup.DatasetBuilderStd ;
@@ -102,15 +102,6 @@ public class TDB {
return ARQ.getContext() ;
}
- // Called on assembler loading.
- // Real initializtion happnes due to class static blocks.
- /**
- * TDB System initialization - normally, this is not explicitly called
- * because all routes to use TDB will cause initialization to occur.
- * However, calling it repeatedly is safe and low cost.
- */
- public static void init() {}
-
/**
* Release any and all system resources held by TDB. This does NOT close or
* release datasets or graphs held by client code.
@@ -208,39 +199,52 @@ public class TDB {
((Sync)object).sync() ;
}
- private static boolean initialized = false ;
- static {
- initialization1() ;
- }
+ private static final Object initLock = new Object() ;
+ private static volatile boolean initialized = false ;
+ static { JenaSystem.init(); }
- private static synchronized void initialization1() {
+ /**
+ * TDB System initialization - normally, this is not explicitly called
+ * because all routes to use TDB will cause initialization to occur.
+ * However, calling it repeatedly is safe and low cost.
+ */
+ public static void init() {
// Called at start.
- if ( initialized )
+ if ( initialized ) {
return ;
- initialized = true ;
-
- RIOT.init() ;
- SystemTDB.init() ;
- ARQ.init() ;
- LangRDFXML.RiotUniformCompatibility = true ;
- EnvTDB.processGlobalSystemProperties() ;
-
- MappingRegistry.addPrefixMapping(SystemTDB.tdbSymbolPrefix, SystemTDB.symbolNamespace) ;
- AssemblerUtils.init() ;
- AssemblerTDB.init() ;
- QueryEngineTDB.register() ;
- UpdateEngineTDB.register() ;
- MappingRegistry.addPrefixMapping(TDB.tdbSymbolPrefix, TDB.tdbParamNS) ;
-
- wireIntoExecution() ;
-
- if ( log.isDebugEnabled() )
- log.debug("\n" + ARQ.getContext()) ;
+ }
+
+ synchronized(initLock) {
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TDB.init - return") ;
+ return ;
+ }
+ initialized = true ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TDB.init - start") ;
+ ARQ.init() ;
+ SystemTDB.init() ;
+ LangRDFXML.RiotUniformCompatibility = true ;
+ EnvTDB.processGlobalSystemProperties() ;
+
+ MappingRegistry.addPrefixMapping(SystemTDB.tdbSymbolPrefix, SystemTDB.symbolNamespace) ;
+ AssemblerUtils.init() ;
+ AssemblerTDB.init() ;
+ QueryEngineTDB.register() ;
+ UpdateEngineTDB.register() ;
+ MappingRegistry.addPrefixMapping(TDB.tdbSymbolPrefix, TDB.tdbParamNS) ;
+
+ wireIntoExecution() ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TDB.init - finish") ;
+ }
}
private static void wireIntoExecution() {
// Globally change the stage generator to intercept BGP on TDB
- StageGenerator orig = (StageGenerator)ARQ.getContext().get(ARQ.stageGenerator) ;
+ Context cxt = ARQ.getContext() ;
+ StageGenerator orig = StageBuilder.chooseStageGenerator(cxt) ;
// Wire in the TDB stage generator which will make TDB work whether
// or not the TDB executor is used. This means that datasets of mixed
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
index 26ea8c1..8b5021b 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/TDBFactory.java
@@ -25,6 +25,7 @@ import org.apache.jena.query.Dataset ;
import org.apache.jena.query.DatasetFactory ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.assembler.VocabTDB ;
import org.apache.jena.tdb.base.file.Location ;
import org.apache.jena.tdb.setup.StoreParams ;
@@ -36,6 +37,8 @@ import org.apache.jena.tdb.transaction.DatasetGraphTransaction ;
/** Public factory for creating objects datasets backed by TDB storage */
public class TDBFactory
{
+ static { JenaSystem.init(); }
+
private TDBFactory() {}
/** Read the file and assembler a dataset */
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
index be2d8b8..012b206 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/store/GraphTDB.java
@@ -92,9 +92,9 @@ public class GraphTDB extends GraphView implements Closeable, Sync {
@Override
final public void close() {
sync() ;
- // Ignore - graphs are projectsion of the overlying database.
+ // Ignore - graphs are projections of the overlying database.
// "Close graph" is messy in this projection world.
- //super.close() ;
+ super.close() ;
}
protected static ExtendedIterator<Triple> graphBaseFindDft(DatasetGraphTDB dataset, Triple triple) {
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/java/org/apache/jena/tdb/sys/InitTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/InitTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/InitTDB.java
new file mode 100644
index 0000000..4b3f50d
--- /dev/null
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/InitTDB.java
@@ -0,0 +1,42 @@
+/**
+ * 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.tdb.sys;
+
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+import org.apache.jena.tdb.TDB ;
+
+/** Jena subsystem initialization */
+public class InitTDB implements JenaSubsystemLifecycle {
+
+ @Override
+ public void start() {
+ TDB.init() ;
+ }
+
+ @Override
+ public void stop() {
+ // This is savage and does not take account of in-flight transactions.
+ TDB.closedown() ;
+ }
+
+ @Override
+ public int level() {
+ return 40 ;
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/java/org/apache/jena/tdb/sys/SystemTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/SystemTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/SystemTDB.java
index fc278fa..d7c0e84 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/sys/SystemTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/sys/SystemTDB.java
@@ -30,6 +30,7 @@ import org.apache.jena.query.ARQ ;
import org.apache.jena.sparql.engine.optimizer.reorder.ReorderLib ;
import org.apache.jena.sparql.engine.optimizer.reorder.ReorderTransformation ;
import org.apache.jena.sparql.util.Symbol ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.TDBException ;
import org.apache.jena.tdb.base.block.FileMode ;
@@ -40,6 +41,8 @@ import org.slf4j.LoggerFactory ;
public class SystemTDB
{
+ static { JenaSystem.init(); }
+
// NB Same logger as the TDB class because this class is the system info but kept out of TDB javadoc.
// It's visibility is TDB, not really public.
private static final Logger log = LoggerFactory.getLogger(TDB.class) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-tdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-tdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..a31e570
--- /dev/null
+++ b/jena-tdb/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1 @@
+org.apache.jena.tdb.sys.InitTDB
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-text/src/main/java/org/apache/jena/query/text/InitJenaText.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/InitJenaText.java b/jena-text/src/main/java/org/apache/jena/query/text/InitJenaText.java
new file mode 100644
index 0000000..2aae38e
--- /dev/null
+++ b/jena-text/src/main/java/org/apache/jena/query/text/InitJenaText.java
@@ -0,0 +1,33 @@
+/**
+ * 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.query.text;
+
+import org.apache.jena.system.JenaSubsystemLifecycle ;
+
+public class InitJenaText implements JenaSubsystemLifecycle {
+ @Override
+ public void start() {
+ TextQuery.init() ;
+ }
+
+ @Override
+ public void stop() {
+ }
+}
+
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java b/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
index 7fc01e9..5e57341 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQuery.java
@@ -26,11 +26,11 @@ import org.apache.jena.sparql.pfunction.PropertyFunction ;
import org.apache.jena.sparql.pfunction.PropertyFunctionFactory ;
import org.apache.jena.sparql.pfunction.PropertyFunctionRegistry ;
import org.apache.jena.sparql.util.Symbol ;
-import org.apache.jena.tdb.TDB ;
+import org.apache.jena.system.JenaSystem ;
public class TextQuery
{
- private static boolean initialized = false ;
+ private static volatile boolean initialized = false ;
private static Object lock = new Object() ;
public static String NS = "http://jena.apache.org/text#" ;
public static String IRI = "http://jena.apache.org/#text" ;
@@ -44,16 +44,22 @@ public class TextQuery
public static final String VERSION = metadata.get(PATH+".version", "unknown") ;
public static final String BUILD_DATE = metadata.get(PATH+".build.datetime", "unset") ;
- static { init() ; }
+ static { JenaSystem.init(); }
public static void init()
{
- if ( initialized ) return ;
- synchronized(lock)
- {
- if ( initialized ) return ;
+ if ( initialized )
+ return ;
+ synchronized(lock) {
+ if ( initialized ) {
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TextQuery.init - skip") ;
+ return ;
+ }
+ initialized = true ;
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TextQuery.init - start") ;
initialized = true ;
- TDB.init() ;
TextAssembler.init() ;
SystemInfo sysInfo = new SystemInfo(IRI, PATH, VERSION, BUILD_DATE) ;
@@ -65,6 +71,8 @@ public class TextQuery
return new TextQueryPF() ;
}
});
+ if ( JenaSystem.DEBUG_INIT )
+ System.err.println("TextQuery.init - finish") ;
}
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/55a8eab3/jena-text/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
----------------------------------------------------------------------
diff --git a/jena-text/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle b/jena-text/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
new file mode 100644
index 0000000..bef1d0b
--- /dev/null
+++ b/jena-text/src/main/resources/META-INF/services/org.apache.jena.system.JenaSubsystemLifecycle
@@ -0,0 +1 @@
+org.apache.jena.query.text.InitJenaText
[15/25] jena git commit: Tidy comments.
Posted by an...@apache.org.
Tidy comments.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/59d50702
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/59d50702
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/59d50702
Branch: refs/heads/master
Commit: 59d5070255e45d488cacf49eec0923b199cbd141
Parents: a0a2d0d
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 23:26:24 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 23:26:24 2015 +0100
----------------------------------------------------------------------
.../main/java/org/apache/jena/system/JenaSubsystemRegistry.java | 2 +-
jena-core/src/main/java/org/apache/jena/system/JenaSystem.java | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/59d50702/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
index 3e7a2cb..f052ee3 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemRegistry.java
@@ -21,7 +21,7 @@ package org.apache.jena.system;
import java.util.List ;
/**
- * A {@code JenaSubsystemCollector} is a set of objects implementing {@link JenaSubsystemLifecycle}.
+ * A {@code JenaSubsystemRegistry} is a set of objects implementing {@link JenaSubsystemLifecycle}.
* <p>
* It is a set - at most one entry.
* <p>Discovered in some way.
http://git-wip-us.apache.org/repos/asf/jena/blob/59d50702/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 953e63b..a3917c3 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -176,8 +176,9 @@ public class JenaSystem {
x.forEach(action);
}
- /** The level 0 subsystem - inserted without using
- * should be only one such level 0 handler. */
+ /** 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 = Logger.getLogger("Jena") ;
@Override
[12/25] jena git commit: rename set/1 as setSubsystemRegistry/1
Posted by an...@apache.org.
rename set/1 as setSubsystemRegistry/1
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/23a01e90
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/23a01e90
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/23a01e90
Branch: refs/heads/master
Commit: 23a01e90deead368ed90335f76a056e5eaae1989
Parents: 8cbde67
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 21:47:10 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 21:47:10 2015 +0100
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/system/JenaSystem.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/23a01e90/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index f8dd17b..899a344 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -61,7 +61,7 @@ public class JenaSystem {
* <p>
* By default, initialization happens by using {@code ServiceLoader.load} to find
* {@link JenaSubsystemLifecycle} objects.
- * See {@link #set} to intercept that choice.
+ * See {@link #setSubsystemRegistry} to intercept that choice.
*/
public static void init() {
if ( initialized )
@@ -78,7 +78,7 @@ public class JenaSystem {
System.err.println("JenaSystem.init - start");
if ( get() == null )
- set(new JenaSubsystemRegistryBasic()) ;
+ setSubsystemRegistry(new JenaSubsystemRegistryBasic()) ;
get().load() ;
@@ -117,7 +117,7 @@ public class JenaSystem {
* must be called before any other Jena code,
* and especially before calling {@code JenaSystem.init()}.
*/
- public static void set(JenaSubsystemRegistry thing) {
+ public static void setSubsystemRegistry(JenaSubsystemRegistry thing) {
singleton = thing;
}
[21/25] jena git commit: JENA-1033 : Rework
RDFReaderFImpl/RDFWriterFImpl and RIOT integration.
Posted by an...@apache.org.
http://git-wip-us.apache.org/repos/asf/jena/blob/e214ba27/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
index 7e0552b..7f52dc9 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/impl/RDFWriterFImpl.java
@@ -18,140 +18,146 @@
package org.apache.jena.rdf.model.impl;
-import java.util.Arrays;
-import java.util.Properties;
-
-import org.apache.jena.* ;
-import org.apache.jena.n3.N3JenaWriter ;
-import org.apache.jena.rdf.model.* ;
-import org.apache.jena.shared.* ;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import org.apache.jena.atlas.logging.Log ;
+import org.apache.jena.n3.N3JenaWriter;
+import org.apache.jena.rdf.model.RDFWriter;
+import org.apache.jena.rdf.model.RDFWriterF;
+import org.apache.jena.shared.ConfigException;
+import org.apache.jena.shared.JenaException;
+import org.apache.jena.shared.NoWriterForLangException ;
/**
*/
public class RDFWriterFImpl extends Object implements RDFWriterF {
-
- protected static Properties langToClassName = null;
-
- // predefined languages - these should probably go in a properties file
-
- protected static final String LANGS[] =
- { "RDF/XML",
- "RDF/XML-ABBREV",
-
- "N-TRIPLE",
- "N-TRIPLES",
- "N-Triples",
-
- "N3",
- N3JenaWriter.n3WriterPrettyPrinter,
- N3JenaWriter.n3WriterPlain,
- N3JenaWriter.n3WriterTriples,
- N3JenaWriter.n3WriterTriplesAlt,
-
- N3JenaWriter.turtleWriter,
- N3JenaWriter.turtleWriterAlt1,
- N3JenaWriter.turtleWriterAlt2
- };
- // default readers for each language
-
- protected static final String DEFAULTWRITERS[] =
- {
- org.apache.jena.rdfxml.xmloutput.impl.Basic.class.getName(),
- org.apache.jena.rdfxml.xmloutput.impl.Abbreviated.class.getName(),
-
- org.apache.jena.rdf.model.impl.NTripleWriter.class.getName(),
- org.apache.jena.rdf.model.impl.NTripleWriter.class.getName(),
- org.apache.jena.rdf.model.impl.NTripleWriter.class.getName(),
-
- org.apache.jena.n3.N3JenaWriter.class.getName(),
- org.apache.jena.n3.N3JenaWriterPP.class.getName(),
- org.apache.jena.n3.N3TurtleJenaWriter.class.getName(), // Write Turtle to ensure safe round tripping.
- org.apache.jena.n3.N3TurtleJenaWriter.class.getName(), // Ditto.
- org.apache.jena.n3.N3JenaWriterTriples.class.getName(),
-
- org.apache.jena.n3.N3TurtleJenaWriter.class.getName(), // Alternative names for Turtle
- org.apache.jena.n3.N3TurtleJenaWriter.class.getName(),
- org.apache.jena.n3.N3TurtleJenaWriter.class.getName()
- };
-
- protected static final String DEFAULTLANG = LANGS[0];
-
- protected static final String PROPNAMEBASE = Jena.PATH + ".writer.";
-
- static { // static initializer - set default readers
- reset();
+ public static final String DEFAULTLANG = "RDF/XML";
+ private static Map<String, Class<? extends RDFWriter>> custom = new LinkedHashMap<>();
+ private static RDFWriterF rewiredAlternative = null ;
+ /** Rewire to use an external RDFWriterF (typically, RIOT).
+ * Set to null to use old jena-core setup.
+ * @param other
+ */
+ public static void alternative(RDFWriterF other) {
+ rewiredAlternative = other ;
}
- private static void reset() {
- Properties newLangToClassName = new Properties();
- for (int i = 0; i < LANGS.length; i++) {
- newLangToClassName.setProperty(
- LANGS[i],
- JenaRuntime.getSystemProperty(PROPNAMEBASE + LANGS[i], DEFAULTWRITERS[i]));
- }
- // do the setup all at once.
- langToClassName = newLangToClassName;
- }
-
- private static String remove( String lang) throws IllegalArgumentException {
- if (Arrays.asList( LANGS ).contains( lang ))
- {
- throw new IllegalArgumentException( lang+" is a required language set in initialization");
- }
- Object prev = langToClassName.remove(lang);
- return prev==null?null:prev.toString();
- }
-
/** Creates new RDFReaderFImpl */
- public RDFWriterFImpl() {
- }
+ public RDFWriterFImpl() {}
@Override
- public RDFWriter getWriter() {
+ public RDFWriter getWriter() {
return getWriter(DEFAULTLANG);
}
@Override
- public RDFWriter getWriter(String lang) {
-
- // setup default language
- if (lang == null || lang.equals("")) {
- lang = LANGS[0];
- }
-
- String className = langToClassName.getProperty(lang);
- if (className == null || className.equals("")) {
- throw new NoWriterForLangException( lang );
- }
+ public RDFWriter getWriter(String lang) {
+ // If RIOT ->
+ if ( rewiredAlternative != null )
+ return rewiredAlternative.getWriter(lang) ;
+ if (lang==null || lang.equals(""))
+ lang = DEFAULTLANG ;
+ Class<? extends RDFWriter> c = custom.get(lang);
+ if ( c == null )
+ throw new NoWriterForLangException("Writer not found: " + lang);
try {
- return (RDFWriter) Class.forName(className).newInstance();
- } catch (Exception e) {
- if ( e instanceof JenaException )
- throw (JenaException)e ;
+ return c.newInstance();
+ }
+ catch (InstantiationException | IllegalAccessException e) {
throw new JenaException(e);
}
}
+ /**
+ * Use RIOT to add custom RDF parsers. See
+ * {@code RDFWriterRegistry.registerLang}
+ *
+ * @deprecated Register with RIOT.
+ */
@Override
+ @Deprecated
public String setWriterClassName(String lang, String className) {
- return setBaseWriterClassName(lang, className);
+ return setBaseWriterClassName(lang, className);
}
+ /**
+ * Use RIOT to add custom RDF parsers. See
+ * {@code RDFWriterRegistry.registerLang}
+ *
+ * @deprecated Register with RIOT.
+ */
+ @Deprecated
public static String setBaseWriterClassName(String lang, String className) {
- String oldClassName = langToClassName.getProperty(lang);
- langToClassName.setProperty(lang, className);
- return oldClassName;
+ if ( rewiredAlternative != null )
+ Log.fatal(RDFWriterFImpl.class, "Rewired RDFWriterFImpl2 - configuration changes have no effect on writing");
+ String oldClassName = currentEntry(lang);
+ try {
+ @SuppressWarnings("unchecked")
+ Class<? extends RDFWriter> newClass = (Class<? extends RDFWriter>)Class.forName(className, false,
+ Thread.currentThread().getContextClassLoader());
+ custom.put(lang, newClass);
+ return oldClassName;
+ }
+ catch (ClassNotFoundException e) {
+ throw new ConfigException("Reader not found on classpath", e);
+ }
+ catch (Exception e) {
+ throw new JenaException(e);
+ }
+ }
+
+ @Override
+ public void resetRDFWriterF() {
+ reset();
+ }
+
+ @Override
+ public String removeWriter(String lang) throws IllegalArgumentException {
+ return remove(lang);
}
- @Override
- public void resetRDFWriterF() {
- reset();
- }
+ static { // static initializer - set default readers
+ reset();
+ }
- @Override
- public String removeWriter(String lang) throws IllegalArgumentException {
- return remove(lang);
- }
+ private static void reset() {
+ Class<? extends RDFWriter> rdfxmlWriter = org.apache.jena.rdfxml.xmloutput.impl.Basic.class;
+ Class<? extends RDFWriter> rdfxmlAbbrevWriter = org.apache.jena.rdfxml.xmloutput.impl.Abbreviated.class;
+ Class<? extends RDFWriter> ntWriter = org.apache.jena.rdf.model.impl.NTripleWriter.class;
+ Class<? extends RDFWriter> ttlWriter = org.apache.jena.n3.N3TurtleJenaWriter.class;
+
+ custom.put("RDF/XML", rdfxmlWriter);
+ custom.put("RDF/XML-ABBREV", rdfxmlAbbrevWriter);
+
+ custom.put("N-TRIPLE", ntWriter);
+ custom.put("N-TRIPLES", ntWriter);
+ custom.put("N-Triples", ntWriter);
+
+ custom.put("N3", org.apache.jena.n3.N3JenaWriter.class);
+ custom.put(N3JenaWriter.n3WriterPrettyPrinter, org.apache.jena.n3.N3JenaWriterPP.class);
+ custom.put(N3JenaWriter.n3WriterPlain, org.apache.jena.n3.N3JenaWriterPP.class);
+ custom.put(N3JenaWriter.n3WriterTriples, ttlWriter);
+ custom.put(N3JenaWriter.n3WriterTriplesAlt, org.apache.jena.n3.N3JenaWriterTriples.class);
+
+ custom.put(N3JenaWriter.turtleWriter, ttlWriter);
+ custom.put(N3JenaWriter.turtleWriterAlt1, ttlWriter);
+ custom.put(N3JenaWriter.turtleWriterAlt2, ttlWriter);
+ }
+ private static String currentEntry(String lang) {
+ Class<? extends RDFWriter> oldClass = custom.get(lang);
+ if ( oldClass != null )
+ return oldClass.getName();
+ else
+ return null;
+ }
+
+ private static String remove(String lang) {
+ if ( rewiredAlternative != null )
+ Log.fatal(RDFWriterFImpl.class, "Rewired RDFWriterFImpl2 - configuration changes have no effect on writing");
+ String oldClassName = currentEntry(lang);
+ custom.remove(lang);
+ return oldClassName;
+ }
}
[07/25] jena git commit: JENA-1029: Comment JenaSystem.
Posted by an...@apache.org.
JENA-1029: Comment JenaSystem.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3e96caec
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3e96caec
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3e96caec
Branch: refs/heads/master
Commit: 3e96caec0f2264bcce09a2cadd9d2629a289aa0a
Parents: 15ced7e
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 08:47:46 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 08:47:46 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/system/JenaSystem.java | 68 ++++++++++----------
1 file changed, 35 insertions(+), 33 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/3e96caec/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 48603f4..8360f3b 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -33,7 +33,7 @@ import org.apache.log4j.Logger ;
* This is achieved by "levels": levels less than 100 are considered "jena system levels"
* and are reserved.
*
- * <li>0 - here
+ * <li>0 - reserved
* <li>10 - jena-core
* <li>20 - RIOT
* <li>30 - ARQ
@@ -41,7 +41,11 @@ import org.apache.log4j.Logger ;
* <li>9999 - other
*/
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 final boolean DEBUG_INIT = false ;
// A correct way to manage without synchonized using the double checked locking pattern.
@@ -50,10 +54,12 @@ public class JenaSystem {
private static volatile boolean initialized = false ;
private static Object initLock = new Object() ;
- /** Initialize.
+ /** Initialize Jena.
+ * <p>
* This function is cheap to call when already initialized so can be called to be sure.
* By default, initialization happens by using {@code ServiceLoader.load} to find
* {@link JenaSubsystemLifecycle} objects.
+ * See {@link #set} to intercept that choice.
*/
public static void init() {
if ( initialized )
@@ -73,6 +79,7 @@ public class JenaSystem {
set(new JenaSubsystemRegistryBasic()) ;
get().load() ;
+ get().add(new JenaInitLevel0());
JenaSystem.forEach( module -> {
if ( DEBUG_INIT )
@@ -94,11 +101,13 @@ public class JenaSystem {
}
}
- private static class JenaInitLogger implements JenaSubsystemLifecycle {
+ /** The level 0 subsystem - inserted without using
+ * should be only one such level 0 handler. */
+ private static class JenaInitLevel0 implements JenaSubsystemLifecycle {
private static Logger log = Logger.getLogger("Jena") ;
@Override
public void start() {
- log.info/*debug*/("Jena intialization");
+ log.debug("Jena initialization");
}
@Override
@@ -114,50 +123,43 @@ public class JenaSystem {
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 set(JenaSubsystemRegistry thing) {
singleton = thing;
}
+ /** The current JenaSubsystemRegistry */
public static JenaSubsystemRegistry get() {
return singleton;
}
-
+
+ // 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 = (obj1, obj2) -> -1 * Integer.compare(obj1.level(), obj2.level()) ;
- public static void add(JenaSubsystemLifecycle module) {
- get().add(module) ;
- }
-
- public static boolean isRegistered(JenaSubsystemLifecycle module) {
- return get().isRegistered(module);
- }
-
- public static void remove(JenaSubsystemLifecycle module) {
- get().remove(module);
- }
-
- public static int size() {
- return get().size();
- }
-
- public static boolean isEmpty() {
- return get().isEmpty();
- }
-
- /** Call an action on each item in the registry.
- * Calls are made sequentially and in level order.
- * The exact order within a level is not specified; it is not registration order.
+ /**
+ * 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.
- * The exact order is not specified but call are made sequentially.
- * The "reverse" is opposite order to {@link #forEach}, which may not be stable.
- * It is not related to registration order.
+ /**
+ * 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) {
[06/25] jena git commit: JENA-1029: Remove unnecessary .init() calls
Posted by an...@apache.org.
JENA-1029: Remove unnecessary .init() calls
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/15ced7e8
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/15ced7e8
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/15ced7e8
Branch: refs/heads/master
Commit: 15ced7e893926d5d71481e27701c37fb2f1c5870
Parents: 55a8eab
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 08:35:15 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 08:35:15 2015 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/query/ARQ.java | 1 -
.../jena/system/JenaSubsystemLifecycle.java | 3 +++
.../java/org/apache/jena/fuseki/FusekiCmd.java | 13 +++++--------
.../apache/jena/fuseki/server/FusekiConfig.java | 5 +----
.../main/java/org/apache/jena/fuseki/Fuseki.java | 9 ---------
.../jena/permissions/graph/TDBGraphTest.java | 1 -
.../main/java/examples/JenaSpatialExample1.java | 2 --
.../src/main/java/jena/spatialindexdump.java | 8 +++-----
.../src/main/java/jena/spatialindexer.java | 8 +++-----
.../jena/query/spatial/SpatialDatasetFactory.java | 3 ++-
.../jena/query/spatial/SpatialSearchUtil.java | 3 ---
.../src/main/java/org/apache/jena/tdb/TDB.java | 4 ++--
.../jena/tdb/assembler/TDBGraphAssembler.java | 18 +++++++++---------
.../src/main/java/examples/JenaTextExample1.java | 2 --
jena-text/src/main/java/jena/textindexdump.java | 1 -
jena-text/src/main/java/jena/textindexer.java | 1 -
.../jena/query/text/TextDatasetFactory.java | 3 ++-
.../jena/query/text/TestBuildTextDataset.java | 7 -------
.../TestDatasetWithEmbeddedSolrTextIndex.java | 1 -
19 files changed, 30 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/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 dfef428..adbf742 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
@@ -530,7 +530,6 @@ public class ARQ
/** Ensure things have started - applications do not need call this.
* The method is public so any part of ARQ can call it.
- * Note the final static initializer call
*/
static { JenaSystem.init(); }
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/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
index daf6b2a..a3cd771 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSubsystemLifecycle.java
@@ -20,10 +20,13 @@ package org.apache.jena.system;
/** Lifecycle interface for jena modules and subsystems. */
public interface JenaSubsystemLifecycle {
+
/** start - a module should be ready to oeprate 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.
*/
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
index 6baf5d9..5598073 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
@@ -25,6 +25,10 @@ import java.io.InputStream ;
import java.util.List ;
import java.util.Objects;
+import arq.cmdline.CmdARQ ;
+import arq.cmdline.ModDatasetAssembler ;
+import jena.cmd.ArgDecl ;
+import jena.cmd.CmdException ;
import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.lib.FileOps ;
import org.apache.jena.atlas.lib.StrUtils ;
@@ -48,11 +52,6 @@ import org.apache.jena.tdb.transaction.TransactionManager ;
import org.eclipse.jetty.server.Server ;
import org.slf4j.Logger ;
-import jena.cmd.ArgDecl ;
-import jena.cmd.CmdException ;
-import arq.cmdline.CmdARQ ;
-import arq.cmdline.ModDatasetAssembler ;
-
public class FusekiCmd extends CmdARQ
{
private static String log4Jsetup = StrUtils.strjoinNL(
@@ -157,9 +156,7 @@ public class FusekiCmd extends CmdARQ
static public void main(String...argv)
{
- // Just to make sure ...
- ARQ.init() ;
- TDB.init() ;
+ // Just to make sure ...s
Fuseki.init() ;
new FusekiCmd(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
----------------------------------------------------------------------
diff --git a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
index 18efa5d..0eb7b5d 100644
--- a/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
+++ b/jena-fuseki1/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
@@ -37,7 +37,6 @@ import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.DatasetGraphFactory ;
import org.apache.jena.sparql.core.DatasetGraphReadOnly ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
-import org.apache.jena.tdb.TDB ;
import org.apache.jena.util.FileManager ;
import org.apache.jena.vocabulary.RDF ;
import org.apache.jena.vocabulary.RDFS ;
@@ -103,9 +102,7 @@ public class FusekiConfig
public static ServerConfig configure(String filename)
{
// Be absolutely sure everything has initialized.
- // Some initialization registers assemblers and sets abbreviation vocabulary.
- ARQ.init();
- TDB.init() ;
+ // Some initialization registers assemblers and sets abbreviation vocabulary.
Fuseki.init() ;
Model m = FileManager.get().loadModel(filename) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
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 991c673..8472422 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
@@ -220,15 +220,6 @@ public class Fuseki {
FusekiLogging.setLogging() ;
SystemInfo sysInfo = new SystemInfo(FusekiIRI, PATH, VERSION, BUILD_DATE) ;
SystemARQ.registerSubSystem(sysInfo) ;
- TDB.init() ;
- // Initialize anyway (e.g. not to rely on assembler magic).
- try {
- TextQuery.init() ;
- SpatialQuery.init() ;
- } catch ( Exception ex ) {
- // In case jars are missing.
- }
-
MappingRegistry.addPrefixMapping("fuseki", FusekiSymbolIRI) ;
TDB.setOptimizerWarningFlag(false) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-permissions/src/test/java/org/apache/jena/permissions/graph/TDBGraphTest.java
----------------------------------------------------------------------
diff --git a/jena-permissions/src/test/java/org/apache/jena/permissions/graph/TDBGraphTest.java b/jena-permissions/src/test/java/org/apache/jena/permissions/graph/TDBGraphTest.java
index 09488b9..49326a3 100644
--- a/jena-permissions/src/test/java/org/apache/jena/permissions/graph/TDBGraphTest.java
+++ b/jena-permissions/src/test/java/org/apache/jena/permissions/graph/TDBGraphTest.java
@@ -36,7 +36,6 @@ public class TDBGraphTest extends MemGraphTest {
@Override
protected Graph createGraph() throws IOException {
- TDB.init();
dsGraph = TDBFactory.createDataset().asDatasetGraph();
return dsGraph.getDefaultGraph();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/examples/JenaSpatialExample1.java b/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
index 1bdabee..5adc33d 100644
--- a/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
+++ b/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
@@ -95,14 +95,12 @@ public class JenaSpatialExample1 {
}
private static Dataset initInMemoryDatasetWithLuceneSpatitalIndex(File indexDir) throws IOException{
- SpatialQuery.init();
deleteOldFiles(indexDir);
indexDir.mkdirs();
return createDatasetByCode(indexDir);
}
private static Dataset initTDBDatasetWithLuceneSpatitalIndex(File indexDir, File TDBDir) throws IOException{
- SpatialQuery.init();
deleteOldFiles(indexDir);
deleteOldFiles(TDBDir);
indexDir.mkdirs();
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-spatial/src/main/java/jena/spatialindexdump.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/jena/spatialindexdump.java b/jena-spatial/src/main/java/jena/spatialindexdump.java
index 65b51bc..904637c 100644
--- a/jena-spatial/src/main/java/jena/spatialindexdump.java
+++ b/jena-spatial/src/main/java/jena/spatialindexdump.java
@@ -18,11 +18,13 @@
package jena ;
+import arq.cmdline.CmdARQ ;
+import jena.cmd.ArgDecl ;
+import jena.cmd.CmdException ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.query.spatial.SpatialIndex ;
import org.apache.jena.query.spatial.SpatialIndexException ;
import org.apache.jena.query.spatial.SpatialIndexLucene ;
-import org.apache.jena.query.spatial.SpatialQuery ;
import org.apache.jena.query.spatial.assembler.SpatialVocab ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.lucene.analysis.Analyzer ;
@@ -37,9 +39,6 @@ import org.apache.lucene.search.ScoreDoc ;
import org.apache.lucene.store.Directory ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
-import jena.cmd.ArgDecl ;
-import jena.cmd.CmdException ;
-import arq.cmdline.CmdARQ ;
/**
* Text index development tool - dump the index.
@@ -52,7 +51,6 @@ public class spatialindexdump extends CmdARQ {
protected SpatialIndex spatialIndex = null ;
static public void main(String... argv) {
- SpatialQuery.init() ;
new spatialindexdump(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-spatial/src/main/java/jena/spatialindexer.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/jena/spatialindexer.java b/jena-spatial/src/main/java/jena/spatialindexer.java
index d9a55bd..af8ed56 100644
--- a/jena-spatial/src/main/java/jena/spatialindexer.java
+++ b/jena-spatial/src/main/java/jena/spatialindexer.java
@@ -20,19 +20,18 @@ package jena;
import java.util.Iterator;
+import arq.cmdline.CmdARQ;
+import jena.cmd.ArgDecl ;
+import jena.cmd.CmdException ;
import org.apache.jena.graph.Node ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.query.spatial.DatasetGraphSpatial;
import org.apache.jena.query.spatial.SpatialDatasetFactory;
import org.apache.jena.query.spatial.SpatialIndex;
import org.apache.jena.query.spatial.SpatialIndexContext;
-import org.apache.jena.query.spatial.SpatialQuery;
import org.apache.jena.sparql.core.Quad ;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import jena.cmd.ArgDecl ;
-import jena.cmd.CmdException ;
-import arq.cmdline.CmdARQ;
/**
* Spatial indexer application that will read a dataset and index its triples in
@@ -51,7 +50,6 @@ public class spatialindexer extends CmdARQ {
protected ProgressMonitor progressMonitor;
static public void main(String... argv) {
- SpatialQuery.init();
new spatialindexer(argv).mainRun();
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
index beb0cf9..890a4f4 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialDatasetFactory.java
@@ -24,12 +24,13 @@ import org.apache.jena.query.spatial.assembler.SpatialVocab;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.jena.sparql.util.Context ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.lucene.store.Directory;
import org.apache.solr.client.solrj.SolrServer;
public class SpatialDatasetFactory
{
- static { SpatialQuery.init(); }
+ static { JenaSystem.init(); }
/** Use an assembler file to build a dataset with spatial search capabilities */
public static Dataset create(String assemblerFile)
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
index 6c4fba7..493ad11 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
@@ -76,7 +76,6 @@ public class SpatialSearchUtil {
public static Dataset initInMemoryDatasetWithSolrSpatitalIndex() {
SpatialSearchUtil.deleteOldFiles(SOLR_DATA_DIR );
SOLR_INDEX_DIR.mkdirs();
- SpatialQuery.init() ;
SpatialSearchUtil.createEmptyIndex(SOLR_INDEX_DIR);
return SpatialDatasetFactory.create(SOLR_TEST_ASSEM) ;
}
@@ -86,14 +85,12 @@ public class SpatialSearchUtil {
}
public static Dataset initInMemoryDatasetWithLuceneSpatitalIndex(File indexDir) throws IOException{
- SpatialQuery.init();
deleteOldFiles(indexDir);
indexDir.mkdirs();
return createDatasetByCode(indexDir);
}
public static Dataset initTDBDatasetWithLuceneSpatitalIndex(File indexDir, File TDBDir) throws IOException{
- SpatialQuery.init();
deleteOldFiles(indexDir);
deleteOldFiles(TDBDir);
indexDir.mkdirs();
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
index 1c08724..cbb497f 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java
@@ -205,7 +205,7 @@ public class TDB {
/**
* TDB System initialization - normally, this is not explicitly called
- * because all routes to use TDB will cause initialization to occur.
+ * because Jena system wide initialization occurs automatically.
* However, calling it repeatedly is safe and low cost.
*/
public static void init() {
@@ -223,7 +223,7 @@ public class TDB {
initialized = true ;
if ( JenaSystem.DEBUG_INIT )
System.err.println("TDB.init - start") ;
- ARQ.init() ;
+ // ARQ.init() ; // Init level settings mean this is already done.
SystemTDB.init() ;
LangRDFXML.RiotUniformCompatibility = true ;
EnvTDB.processGlobalSystemProperties() ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
index ad3dc53..9dffe04 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/TDBGraphAssembler.java
@@ -18,8 +18,15 @@
package org.apache.jena.tdb.assembler;
-import static org.apache.jena.sparql.util.graph.GraphUtils.* ;
-import static org.apache.jena.tdb.assembler.VocabTDB.* ;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getAsStringValue ;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getResourceValue ;
+import static org.apache.jena.sparql.util.graph.GraphUtils.getStringValue ;
+import static org.apache.jena.tdb.assembler.VocabTDB.pDataset ;
+import static org.apache.jena.tdb.assembler.VocabTDB.pGraphName1 ;
+import static org.apache.jena.tdb.assembler.VocabTDB.pGraphName2 ;
+import static org.apache.jena.tdb.assembler.VocabTDB.pIndex ;
+import static org.apache.jena.tdb.assembler.VocabTDB.pLocation ;
+
import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
@@ -28,10 +35,8 @@ import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.query.Dataset ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.riot.out.NodeFmtLib ;
-import org.apache.jena.tdb.TDB ;
import org.apache.jena.tdb.TDBException ;
import org.apache.jena.tdb.TDBFactory ;
-import org.apache.jena.tdb.assembler.IndexAssembler ;
import org.apache.jena.tdb.base.file.Location ;
public class TDBGraphAssembler extends AssemblerBase implements Assembler
@@ -41,11 +46,6 @@ public class TDBGraphAssembler extends AssemblerBase implements Assembler
@Override
public Model open(Assembler a, Resource root, Mode mode)
{
- // In case we go via explicit index construction,
- // although given we got here, the assembler is wired in
- // and that probably means TDB.init
- TDB.init() ;
-
// Make a model - the default model of the TDB dataset
// [] rdf:type tdb:GraphTDB ;
// tdb:location "dir" ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/main/java/examples/JenaTextExample1.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/examples/JenaTextExample1.java b/jena-text/src/main/java/examples/JenaTextExample1.java
index c273540..a4a75f5 100644
--- a/jena-text/src/main/java/examples/JenaTextExample1.java
+++ b/jena-text/src/main/java/examples/JenaTextExample1.java
@@ -24,7 +24,6 @@ import org.apache.jena.query.* ;
import org.apache.jena.query.text.EntityDefinition ;
import org.apache.jena.query.text.TextDatasetFactory ;
import org.apache.jena.query.text.TextIndexConfig;
-import org.apache.jena.query.text.TextQuery ;
import org.apache.jena.rdf.model.Model ;
import org.apache.jena.riot.RDFDataMgr ;
import org.apache.jena.sparql.util.QueryExecUtils ;
@@ -42,7 +41,6 @@ public class JenaTextExample1
public static void main(String ... argv)
{
- TextQuery.init();
Dataset ds = createCode() ;
//Dataset ds = createAssembler() ;
loadData(ds , "data.ttl") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/main/java/jena/textindexdump.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/jena/textindexdump.java b/jena-text/src/main/java/jena/textindexdump.java
index 930a0fc..0226094 100644
--- a/jena-text/src/main/java/jena/textindexdump.java
+++ b/jena-text/src/main/java/jena/textindexdump.java
@@ -49,7 +49,6 @@ public class textindexdump extends CmdARQ {
protected TextIndex textIndex = null ;
static public void main(String... argv) {
- TextQuery.init() ;
new textindexdump(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/main/java/jena/textindexer.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/jena/textindexer.java b/jena-text/src/main/java/jena/textindexer.java
index c4111e4..6d2edb6 100644
--- a/jena-text/src/main/java/jena/textindexer.java
+++ b/jena-text/src/main/java/jena/textindexer.java
@@ -48,7 +48,6 @@ public class textindexer extends CmdARQ {
protected ProgressMonitor progressMonitor ;
static public void main(String... argv) {
- TextQuery.init() ;
new textindexer(argv).mainRun() ;
}
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java b/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
index 7b7b0d1..71bc1fa 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
@@ -24,13 +24,14 @@ import org.apache.jena.query.text.assembler.TextVocab ;
import org.apache.jena.sparql.core.DatasetGraph ;
import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
import org.apache.jena.sparql.util.Context ;
+import org.apache.jena.system.JenaSystem ;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.store.Directory ;
import org.apache.solr.client.solrj.SolrServer ;
public class TextDatasetFactory
{
- static { TextQuery.init(); }
+ static { JenaSystem.init(); }
/** Use an assembler file to build a dataset with text search capabilities */
public static Dataset create(String assemblerFile)
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/test/java/org/apache/jena/query/text/TestBuildTextDataset.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TestBuildTextDataset.java b/jena-text/src/test/java/org/apache/jena/query/text/TestBuildTextDataset.java
index 2335e40..ce50907 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestBuildTextDataset.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestBuildTextDataset.java
@@ -27,7 +27,6 @@ import org.apache.jena.tdb.TDB ;
import org.apache.jena.vocabulary.RDFS ;
import org.apache.lucene.store.Directory ;
import org.apache.lucene.store.RAMDirectory ;
-import org.junit.BeforeClass ;
import org.junit.Test ;
/** Test the examples of building a test dataset */
@@ -35,12 +34,6 @@ public class TestBuildTextDataset extends BaseTest
{
static final String DIR = "testing/TextQuery" ;
- // Ensure assembler initialized.
- @BeforeClass
- public static void setupClass() {
- TextQuery.init() ;
- }
-
@Test
public void buildText_01() {
createAssembler("text-config.ttl") ;
http://git-wip-us.apache.org/repos/asf/jena/blob/15ced7e8/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithEmbeddedSolrTextIndex.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithEmbeddedSolrTextIndex.java b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithEmbeddedSolrTextIndex.java
index a462e0a..b33b200 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithEmbeddedSolrTextIndex.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestDatasetWithEmbeddedSolrTextIndex.java
@@ -35,7 +35,6 @@ public class TestDatasetWithEmbeddedSolrTextIndex extends AbstractTestDatasetWit
public void before() {
//deleteOldFiles();
INDEX_DIR.mkdirs();
- TextQuery.init() ;
TextSearchUtil.createEmptyIndex(INDEX_DIR);
dataset = TextDatasetFactory.create(TEST_ASSEM) ;
}
[16/25] jena git commit: Refer to the Jena web site notes.
Posted by an...@apache.org.
Refer to the Jena web site notes.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f30b75c4
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f30b75c4
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f30b75c4
Branch: refs/heads/master
Commit: f30b75c45ce2827b2a3a0bfe35b9c642c73c07d9
Parents: 59d5070
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Sep 19 13:13:01 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Sep 19 13:13:01 2015 +0100
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/system/JenaSystem.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/f30b75c4/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index a3917c3..f29fa65 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -32,13 +32,15 @@ import org.apache.log4j.Logger ;
* <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 {
[25/25] jena git commit: Remove debug code.
Posted by an...@apache.org.
Remove debug code.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/31a2534c
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/31a2534c
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/31a2534c
Branch: refs/heads/master
Commit: 31a2534c5ff1139f618d7245a79f66f53e999c6e
Parents: b0e8625
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Sep 21 19:06:49 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Sep 21 19:06:49 2015 +0100
----------------------------------------------------------------------
.../src/main/java/org/apache/jena/fuseki/Fuseki.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/31a2534c/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/Fuseki.java
----------------------------------------------------------------------
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 47d656a..5cb9584 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
@@ -111,14 +111,12 @@ public class Fuseki {
/** An identifier for the HTTP Fuseki server instance */
static public final String serverHttpName = NAME + " (" + VERSION + ")" ;
- /** An additional identifier for the HTTP Fuseki server instance in a develoment build
- */
+
+ /** An additional identifier for the HTTP Fuseki server instance in a development build */
static public final String serverHttpNameDev ;
static {
- // (See ServletBase.setCommonheaders
+ // See ServletBase.setCommonheaders
// If it look like a SNAPSHOT, print build date. Not perfect, but better.
- System.err.println(">>"+BUILD_DATE);
- System.err.println(">>"+VERSION);
if ( VERSION.contains("SNAPSHOT") && ! BUILD_DATE.startsWith("\\${") )
serverHttpNameDev = NAME + " (" + VERSION + " / " + BUILD_DATE +")" ;
else
[09/25] jena git commit: Tidy JenaSystem
Posted by an...@apache.org.
Tidy JenaSystem
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/d5a021a0
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/d5a021a0
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/d5a021a0
Branch: refs/heads/master
Commit: d5a021a0fdf8b280d803fc823dc39118edd16fe9
Parents: 68a7690
Author: Andy Seaborne <an...@apache.org>
Authored: Fri Sep 18 10:21:59 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Fri Sep 18 10:21:59 2015 +0100
----------------------------------------------------------------------
.../java/org/apache/jena/system/JenaSystem.java | 53 +++++++++-----------
1 file changed, 25 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/d5a021a0/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
index 5e8e9a8..f8dd17b 100644
--- a/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
+++ b/jena-core/src/main/java/org/apache/jena/system/JenaSystem.java
@@ -46,7 +46,7 @@ public class JenaSystem {
* initialization. Output to {@code System.err}, not a logger
* to avoid the risk of recursive initialization.
*/
- public static final boolean DEBUG_INIT = false ;
+ 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
@@ -109,26 +109,6 @@ public class JenaSystem {
}
}
- /** The level 0 subsystem - inserted without using
- * should be only one such level 0 handler. */
- private static class JenaInitLevel0 implements JenaSubsystemLifecycle {
- private static Logger log = Logger.getLogger("Jena") ;
- @Override
- public void start() {
- log.debug("Jena initialization");
- }
-
- @Override
- public void stop() {
- log.debug("Jena shutdown");
- }
-
- @Override
- public int level() {
- return 0;
- }
- }
-
private static JenaSubsystemRegistry singleton = null;
/**
@@ -146,11 +126,6 @@ public class JenaSystem {
return singleton;
}
- // 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 = (obj1, obj2) -> -1 * Integer.compare(obj1.level(), obj2.level()) ;
-
/**
* 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
@@ -174,12 +149,34 @@ public class JenaSystem {
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 = (obj1, obj2) -> -1 * Integer.compare(obj1.level(), obj2.level()) ;
+
private synchronized static void forEach(Consumer<JenaSubsystemLifecycle> action, Comparator<JenaSubsystemLifecycle> ordering) {
List<JenaSubsystemLifecycle> x = get().snapshot() ;
Collections.sort(x, ordering);
x.forEach(action);
}
-
+ /** The level 0 subsystem - inserted without using
+ * should be only one such level 0 handler. */
+ private static class JenaInitLevel0 implements JenaSubsystemLifecycle {
+ private static Logger log = Logger.getLogger("Jena") ;
+ @Override
+ public void start() {
+ log.debug("Jena initialization");
+ }
+
+ @Override
+ public void stop() {
+ log.debug("Jena shutdown");
+ }
+
+ @Override
+ public int level() {
+ return 0;
+ }
+ }
}
-
[02/25] jena git commit: Add clear()
Posted by an...@apache.org.
Add clear()
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/df1f1f4d
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/df1f1f4d
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/df1f1f4d
Branch: refs/heads/master
Commit: df1f1f4dc69c89006247a313838b77ad2129d3e3
Parents: 8389829
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 17 16:56:17 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 17 16:56:17 2015 +0100
----------------------------------------------------------------------
jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/df1f1f4d/jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java
index b04d9d9..5288844 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/Registry.java
@@ -37,6 +37,7 @@ public class Registry<K,T>
//public Iterator<String> keys() { return registry.keySet().iterator() ; }
public int size() { return registry.size() ; }
public boolean isEmpty() { return registry.isEmpty() ; }
+ public void clear() { registry.clear() ; }
public void forEach(BiConsumer<K, T> action) {
registry.forEach(action);
}
[24/25] jena git commit: Initialise system after constants set.
Posted by an...@apache.org.
Initialise system after constants set.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/b0e86257
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/b0e86257
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/b0e86257
Branch: refs/heads/master
Commit: b0e86257fb2a80f7c391566f42a3384b8f1703f2
Parents: e3e6855
Author: Andy Seaborne <an...@apache.org>
Authored: Mon Sep 21 17:26:57 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon Sep 21 17:26:57 2015 +0100
----------------------------------------------------------------------
jena-core/src/main/java/org/apache/jena/util/FileManager.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/b0e86257/jena-core/src/main/java/org/apache/jena/util/FileManager.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/util/FileManager.java b/jena-core/src/main/java/org/apache/jena/util/FileManager.java
index 1da9d56..c7ce21f 100644
--- a/jena-core/src/main/java/org/apache/jena/util/FileManager.java
+++ b/jena-core/src/main/java/org/apache/jena/util/FileManager.java
@@ -71,11 +71,11 @@ import org.slf4j.LoggerFactory ;
public class FileManager
{
// The case of the FileManager used first.
- static { JenaSystem.init(); }
+ private static Logger log = LoggerFactory.getLogger(FileManager.class) ;
+
/** Delimiter between path entries : because URI scheme names use : we only allow ; */
public static final String PATH_DELIMITER = ";";
public static final String filePathSeparator = java.io.File.separator ;
- private static Logger log = LoggerFactory.getLogger(FileManager.class) ;
static FileManager fmInstance = null ;
@@ -83,6 +83,8 @@ public class FileManager
protected List<Locator> fmHandlers = new ArrayList<>() ;
protected LocationMapper fmMapper = null ;
+ static { JenaSystem.init(); }
+
/** Get the global file manager.
* @return the global file manager
*/