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/24 21:40:12 UTC

[1/4] jena git commit: Fix comment

Repository: jena
Updated Branches:
  refs/heads/master c766bf92d -> 68e5b9b7f


Fix comment

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/abeb0ce4
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/abeb0ce4
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/abeb0ce4

Branch: refs/heads/master
Commit: abeb0ce4a270c5a1f5be62872a8a29ed23031318
Parents: c766bf9
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 24 19:24:53 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 24 19:24:53 2015 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/arq/cmdline/ModAssembler.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/abeb0ce4/jena-arq/src/main/java/arq/cmdline/ModAssembler.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/arq/cmdline/ModAssembler.java b/jena-arq/src/main/java/arq/cmdline/ModAssembler.java
index c0c87bd..30e4573 100644
--- a/jena-arq/src/main/java/arq/cmdline/ModAssembler.java
+++ b/jena-arq/src/main/java/arq/cmdline/ModAssembler.java
@@ -39,7 +39,7 @@ public class ModAssembler extends ModBase
     
     public ModAssembler()
     { 
-        // Wire in assmebler implementations
+        // Wire in assembler implementations
         AssemblerUtils.init() ;
     }
     


[2/4] jena git commit: Explicitly call AssemblerUtils.init

Posted by an...@apache.org.
Explicitly call AssemblerUtils.init

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e4e8f144
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e4e8f144
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e4e8f144

Branch: refs/heads/master
Commit: e4e8f144e076791e183e8fb4bfb7dc8904f2784a
Parents: abeb0ce
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 24 19:26:50 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 24 19:26:50 2015 +0100

----------------------------------------------------------------------
 jena-arq/src/main/java/org/apache/jena/query/ARQ.java             | 3 ++-
 .../org/apache/jena/sparql/core/assembler/AssemblerUtils.java     | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/e4e8f144/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 8053d57..646e824 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
@@ -21,6 +21,7 @@ package org.apache.jena.query;
 import org.apache.jena.riot.RIOT ;
 import org.apache.jena.sparql.SystemARQ ;
 import org.apache.jena.sparql.algebra.optimize.TransformOrderByDistinctApplication ;
+import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
 import org.apache.jena.sparql.engine.http.Service ;
 import org.apache.jena.sparql.lib.Metadata ;
 import org.apache.jena.sparql.mgt.ARQMgt ;
@@ -563,7 +564,7 @@ public class ARQ
             // This is the pattern for any subsystem to register. 
             SystemInfo sysInfo = new SystemInfo(ARQ.arqIRI, ARQ.PATH, ARQ.VERSION, ARQ.BUILD_DATE) ;
             SystemARQ.registerSubSystem(sysInfo) ;
-
+            AssemblerUtils.init() ;
             // Register RIOT details here, not earlier, to avoid
             // initialization loops with RIOT.init() called directly.
             RIOT.register() ;

http://git-wip-us.apache.org/repos/asf/jena/blob/e4e8f144/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 c2e6295..792b1d8 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
@@ -46,7 +46,7 @@ public class AssemblerUtils
     
     private static boolean initialized = false ; 
     
-    static { JenaSystem.init() ; init() ; } 
+    static { JenaSystem.init() ; } 
     
     static public void init()
     {


[4/4] jena git commit: Assembler constants initialization.

Posted by an...@apache.org.
Assembler constants initialization.

Treat specially to retain an interface for Assembler.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/68e5b9b7
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/68e5b9b7
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/68e5b9b7

Branch: refs/heads/master
Commit: 68e5b9b7f3d04d1a86f722559fe692c929e185d2
Parents: f2b79a1
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 24 20:39:36 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 24 20:39:36 2015 +0100

----------------------------------------------------------------------
 .../sparql/core/assembler/AssemblerUtils.java   |   4 +-
 .../org/apache/jena/assembler/Assembler.java    |  54 +++----
 .../apache/jena/assembler/ConstAssembler.java   | 157 +++++++++++++++++++
 .../org/apache/jena/system/InitJenaCore.java    |   5 -
 .../org/apache/jena/tdb/assembler/VocabTDB.java |   6 +-
 5 files changed, 186 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/68e5b9b7/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 792b1d8..5d47217 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
@@ -19,6 +19,7 @@
 package org.apache.jena.sparql.core.assembler;
 
 import org.apache.jena.assembler.Assembler ;
+import org.apache.jena.assembler.ConstAssembler ;
 import org.apache.jena.assembler.JA ;
 import org.apache.jena.assembler.assemblers.AssemblerGroup ;
 import org.apache.jena.query.* ;
@@ -54,7 +55,8 @@ public class AssemblerUtils
             return ;
         initialized = true ;
         // Wire in the extension assemblers (extensions relative to the Jena assembler framework)
-        registerWith(Assembler.general) ;
+        // Do NOT use Assembler.gemneral here (may not be initialized).  
+        registerWith(ConstAssembler.general()) ;
     }
     
     static public void registerWith(AssemblerGroup g)

http://git-wip-us.apache.org/repos/asf/jena/blob/68e5b9b7/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 33d1d33..0e6aee4 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
@@ -60,50 +60,40 @@ public interface Assembler
     */
     public Model openModel( Resource root, Mode mode );
     
-    public static final Assembler defaultModel = new DefaultModelAssembler();
+    // This slightly bizarre way to initial "constants" is because Assembler is
+    // an interface. Interfaces inside class intialization processes do not have
+    // their computer static fields initialized yet. To keep that, for
+    // compatibility, initialization code must use the ConstAssembler functions
+    // and not use constants here.  Assembler.general is the key field used
+    // in ARQ.init (AssemblerUtils) and TDB.init (VocabTDB).
     
-    public static final Assembler memoryModel = new MemoryModelAssembler();
+    public static final Assembler defaultModel = ConstAssembler.defaultModel() ;
+    
+    public static final Assembler memoryModel = ConstAssembler.memoryModel() ;
 
-    public static final Assembler infModel = new InfModelAssembler();
+    public static final Assembler infModel = ConstAssembler.infModel();
 
-    public static final Assembler ontModel = new OntModelAssembler();
+    public static final Assembler ontModel = ConstAssembler.ontModel();
 
-    public static final Assembler reasonerFactory = new ReasonerFactoryAssembler();
+    public static final Assembler reasonerFactory = ConstAssembler.reasonerFactory();
 
-    public static final Assembler content = new ContentAssembler();
+    public static final Assembler content = ConstAssembler.content();
     
-    public static final Assembler prefixMapping = new PrefixMappingAssembler();
+    public static final Assembler prefixMapping = ConstAssembler.prefixMapping();
 
-    public static final Assembler unionModel = new UnionModelAssembler();
+    public static final Assembler unionModel = ConstAssembler.unionModel();
 
-    public static final Assembler ontModelSpec = new OntModelSpecAssembler();
+    public static final Assembler ontModelSpec = ConstAssembler.ontModelSpec();
     
-    public static final Assembler ruleSet = new RuleSetAssembler();
+    public static final Assembler ruleSet = ConstAssembler.ruleSet();
     
-    public static final Assembler modelSource = new ModelSourceAssembler();
+    public static final Assembler modelSource = ConstAssembler.modelSource();
     
-    public static final Assembler locationMapper = new LocationMapperAssembler();
+    public static final Assembler locationMapper = ConstAssembler.locationMapper();
 
-    public static final Assembler fileManager = new FileManagerAssembler();
+    public static final Assembler fileManager = ConstAssembler.fileManager();
 
-    public static final Assembler documentManager = new DocumentManagerAssembler();
+    public static final Assembler documentManager = ConstAssembler.documentManager();
     
-    public static final AssemblerGroup general = AssemblerGroup.create()
-        .implementWith( JA.DefaultModel, defaultModel )
-        .implementWith( JA.MemoryModel, memoryModel )
-        .implementWith( JA.InfModel, infModel )
-        .implementWith( JA.ReasonerFactory, reasonerFactory )
-        .implementWith( JA.ModelSource, modelSource )
-        .implementWith( JA.Content, content )
-        .implementWith( JA.ContentItem, content )
-        .implementWith( JA.UnionModel, unionModel )
-        .implementWith( JA.PrefixMapping, prefixMapping )
-        .implementWith( JA.SinglePrefixMapping, prefixMapping )
-        .implementWith( JA.OntModel, ontModel )
-        .implementWith( JA.OntModelSpec, ontModelSpec )
-        .implementWith( JA.RuleSet, ruleSet )
-        .implementWith( JA.LocationMapper, locationMapper )
-        .implementWith( JA.FileManager, fileManager )
-        .implementWith( JA.DocumentManager, documentManager )
-        ;
+    public static final AssemblerGroup general = ConstAssembler.general() ;
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/68e5b9b7/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
----------------------------------------------------------------------
diff --git a/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
new file mode 100644
index 0000000..d5afe1b
--- /dev/null
+++ b/jena-core/src/main/java/org/apache/jena/assembler/ConstAssembler.java
@@ -0,0 +1,157 @@
+/*
+ * 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.assembler;
+
+import org.apache.jena.assembler.assemblers.* ;
+
+/*
+   Assembler initialization - so it works when inside class initialization processes.
+   Assembler is an interface and constants are statics (implicitly or explicitly final)
+   which makes controlling order tricky.
+  
+   Solution: initialization code (ie. inside jenaSystem.init) must use teh methods here, 
+   and not Assembler.constant.
+   
+   Use ConstAssembler.general(), not Assembler.general.
+*/
+public class ConstAssembler
+{
+    private static Assembler defaultModel = null ;
+	public static Assembler defaultModel() {
+		if ( defaultModel == null )
+			defaultModel = new DefaultModelAssembler();
+		return defaultModel ;
+	}
+    
+    private static Assembler memoryModel = null ;
+	public static Assembler memoryModel() {
+		if ( memoryModel == null )
+			memoryModel = new MemoryModelAssembler();
+		return memoryModel ;
+	}
+
+    private static Assembler infModel = null ;
+	public static Assembler infModel() {
+		if ( infModel == null )
+			infModel = new InfModelAssembler();
+		return infModel ;
+	}
+
+    private static Assembler ontModel = null ;
+	public static Assembler ontModel() {
+		if ( ontModel == null )
+			ontModel = new OntModelAssembler();
+		return ontModel ;
+	}
+
+    private static Assembler reasonerFactory = null ;
+	public static Assembler reasonerFactory() {
+		if ( reasonerFactory == null )
+			reasonerFactory = new ReasonerFactoryAssembler();
+		return reasonerFactory ;
+	}
+
+    private static Assembler content = null ;
+	public static Assembler content() {
+		if ( content == null )
+			content = new ContentAssembler();
+		return content ;
+	}
+    
+    private static Assembler prefixMapping = null ;
+	public static Assembler prefixMapping() {
+		if ( prefixMapping == null )
+			prefixMapping = new PrefixMappingAssembler();
+		return prefixMapping ;
+	}
+
+    private static Assembler unionModel = null ;
+	public static Assembler unionModel() {
+		if ( unionModel == null )
+			unionModel = new UnionModelAssembler();
+		return unionModel ;
+	}
+
+    private static Assembler ontModelSpec = null ;
+	public static Assembler ontModelSpec() {
+		if ( ontModelSpec == null )
+			ontModelSpec = new OntModelSpecAssembler();
+		return ontModelSpec ;
+	}
+    
+    private static Assembler ruleSet = null ;
+	public static Assembler ruleSet() {
+		if ( ruleSet == null )
+			ruleSet = new RuleSetAssembler();
+		return ruleSet ;
+	}
+    
+    private static Assembler modelSource = null ;
+	public static Assembler modelSource() {
+		if ( modelSource == null )
+			modelSource = new ModelSourceAssembler();
+		return modelSource ;
+	}
+    
+    private static Assembler locationMapper = null ;
+	public static Assembler locationMapper() {
+		if ( locationMapper == null )
+			locationMapper = new LocationMapperAssembler();
+		return locationMapper ;
+	}
+
+    private static Assembler fileManager = null ;
+	public static Assembler fileManager() {
+		if ( fileManager == null )
+			fileManager = new FileManagerAssembler();
+		return fileManager ;
+	}
+
+    private static Assembler documentManager = null ;
+	public static Assembler documentManager() {
+		if ( documentManager == null )
+			documentManager = new DocumentManagerAssembler();
+		return documentManager ;
+	}
+    
+    private static AssemblerGroup general = null ;
+    public  static AssemblerGroup general() {
+        if ( general == null ) {
+            general =  AssemblerGroup.create()
+                .implementWith( JA.DefaultModel, defaultModel() )
+                .implementWith( JA.MemoryModel, memoryModel() )
+                .implementWith( JA.InfModel, infModel() )
+                .implementWith( JA.ReasonerFactory, reasonerFactory() )
+                .implementWith( JA.ModelSource, modelSource() )
+                .implementWith( JA.Content, content() )
+                .implementWith( JA.ContentItem, content() )
+                .implementWith( JA.UnionModel, unionModel() )
+                .implementWith( JA.PrefixMapping, prefixMapping() )
+                .implementWith( JA.SinglePrefixMapping, prefixMapping() )
+                .implementWith( JA.OntModel, ontModel() )
+                .implementWith( JA.OntModelSpec, ontModelSpec() )
+                .implementWith( JA.RuleSet, ruleSet() )
+                .implementWith( JA.LocationMapper, locationMapper() )
+                .implementWith( JA.FileManager, fileManager() )
+                .implementWith( JA.DocumentManager, documentManager() )
+                ;
+        }
+        return general ;  
+    }
+}

http://git-wip-us.apache.org/repos/asf/jena/blob/68e5b9b7/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
index aed4eed..f5acbd6 100644
--- a/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
+++ b/jena-core/src/main/java/org/apache/jena/system/InitJenaCore.java
@@ -18,7 +18,6 @@
 
 package org.apache.jena.system;
 
-import org.apache.jena.assembler.Assembler ;
 import org.apache.jena.vocabulary.OWL ;
 import org.apache.jena.vocabulary.RDF ;
 import org.apache.jena.vocabulary.RDFS ;
@@ -60,10 +59,6 @@ public class InitJenaCore  implements JenaSubsystemLifecycle {
             RDF.getURI() ;
             RDFS.getURI() ;
             OWL.getURI() ;
-            // Necessary. for the case of Jena first used via Assemblers
-            // Can't delay because ARQ, TDB touch Assembler for initialization.
-            // Assembler is an interface with statics final constants.
-            Assembler.general.hashCode() ;
             if ( JenaSystem.DEBUG_INIT )
                 System.err.println("JenaCore.init - finish") ;
         }

http://git-wip-us.apache.org/repos/asf/jena/blob/68e5b9b7/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
----------------------------------------------------------------------
diff --git a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
index 708fab4..52444f2 100644
--- a/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
+++ b/jena-tdb/src/main/java/org/apache/jena/tdb/assembler/VocabTDB.java
@@ -20,6 +20,7 @@ package org.apache.jena.tdb.assembler;
 
 
 import org.apache.jena.assembler.Assembler ;
+import org.apache.jena.assembler.ConstAssembler ;
 import org.apache.jena.assembler.assemblers.AssemblerGroup ;
 import org.apache.jena.rdf.model.Property ;
 import org.apache.jena.rdf.model.Resource ;
@@ -69,8 +70,9 @@ public class VocabTDB
     {
         if ( initialized )
             return ;
-        registerWith(Assembler.general) ;
         initialized = true ;
+        // Do NOT use Assembler.gemneral here (may not be initialized).  
+        registerWith(ConstAssembler.general()) ;
     }
     
     static void registerWith(AssemblerGroup g)
@@ -88,7 +90,7 @@ public class VocabTDB
     public static void assemblerClass(AssemblerGroup group, Resource r, Assembler a)
     {
         if ( group == null )
-            group = Assembler.general ;
+            group = ConstAssembler.general() ;
         group.implementWith(r, a) ;
         //assemblerAssertions.add(r, RDFS.subClassOf, JA.Object) ;
     }


[3/4] jena git commit: Don't need to initialization done by ARQ.

Posted by an...@apache.org.
Don't need to initialization done by ARQ.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/f2b79a17
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/f2b79a17
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/f2b79a17

Branch: refs/heads/master
Commit: f2b79a17624b028d220a1b12c4d90f48faf3c1cd
Parents: e4e8f14
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Sep 24 19:28:20 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Sep 24 19:28:20 2015 +0100

----------------------------------------------------------------------
 jena-tdb/src/main/java/org/apache/jena/tdb/TDB.java | 2 --
 1 file changed, 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/f2b79a17/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 6ad461f..aa62e79 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
@@ -33,7 +33,6 @@ import org.apache.jena.reasoner.InfGraph ;
 import org.apache.jena.riot.lang.LangRDFXML ;
 import org.apache.jena.sparql.SystemARQ ;
 import org.apache.jena.sparql.core.DatasetGraph ;
-import org.apache.jena.sparql.core.assembler.AssemblerUtils ;
 import org.apache.jena.sparql.engine.main.StageBuilder ;
 import org.apache.jena.sparql.engine.main.StageGenerator ;
 import org.apache.jena.sparql.lib.Metadata ;
@@ -251,7 +250,6 @@ public class TDB {
             EnvTDB.processGlobalSystemProperties() ;
 
             MappingRegistry.addPrefixMapping(SystemTDB.tdbSymbolPrefix, SystemTDB.symbolNamespace) ;
-            AssemblerUtils.init() ;
             AssemblerTDB.init() ;
             QueryEngineTDB.register() ;
             UpdateEngineTDB.register() ;