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 2013/02/10 23:16:58 UTC

svn commit: r1444624 - in /jena/trunk: jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java jena-arq/src/main/java/org/apache/jena/riot/RIOT.java jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java

Author: andy
Date: Sun Feb 10 22:16:58 2013
New Revision: 1444624

URL: http://svn.apache.org/r1444624
Log:
Refcator to allow RIOT to initialize internal tables but not depend on ARQ JMX registration.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
    jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java?rev=1444624&r1=1444623&r2=1444624&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/query/ARQ.java Sun Feb 10 22:16:58 2013
@@ -22,7 +22,6 @@ import org.apache.jena.riot.RIOT ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 
-import com.hp.hpl.jena.Jena ;
 import com.hp.hpl.jena.sparql.ARQConstants ;
 import com.hp.hpl.jena.sparql.SystemARQ ;
 import com.hp.hpl.jena.sparql.engine.main.StageBuilder ;
@@ -437,6 +436,7 @@ public class ARQ
                 return ;
             initialized = true ;
             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) ;
@@ -448,11 +448,9 @@ public class ARQ
             ARQMgt.register(NS+".system:type=SystemInfo", sysInfo) ;
             SystemARQ.registerSubSystem(sysInfo) ;
 
-            SystemInfo sysInfo2 = new SystemInfo("http://openjena.org/#jena", Jena.VERSION, Jena.BUILD_DATE) ;
-            ARQMgt.register(NS+".system:type=SystemInfo", sysInfo2) ;
-            SystemARQ.registerSubSystem(sysInfo2) ;
-
-            RIOT.init() ;
+            // Register RIOT details here, not earlier, to avoid
+            // initialization loops with RIOT.init() called directly.
+            RIOT.register() ;
         }
     }
     

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java?rev=1444624&r1=1444623&r2=1444624&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/RIOT.java Sun Feb 10 22:16:58 2013
@@ -27,13 +27,13 @@ import com.hp.hpl.jena.sparql.mgt.System
 public class RIOT
 {
     /** IRI for ARQ */  
-    public static final String riotIRI = "http://openjena.org/#riot" ;
+    public static final String riotIRI = "http://jena.apache.org/#riot" ;
 
     /** The product name */   
     public static final String NAME = "RIOT";
     
     /** The root package name for RIOT */   
-    public static final String PATH = "org.openjena.riot";
+    public static final String PATH = "org.apache.jena.riot";
 
     public static final String VERSION = "ARQ/"+ARQ.VERSION ;
     public static final String BUILD_DATE = ARQ.BUILD_DATE ;
@@ -45,19 +45,30 @@ public class RIOT
     }
 
     private static boolean initialized = false ;
-
+    
     public static void init()
     {
         if ( initialized )
             return ;
         initialized = true ;
+        RDFLanguages.init() ;
+        RDFParserRegistry.init() ;
+        IO_Jena.wireIntoJena() ;
+        
+        // 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.
+    }
+    
+    private static boolean registered = false ;
+    public static void register()
+    {
+        if ( registered )
+            return ;
+        registered = true ;
         String NS = RIOT.PATH ;
         SystemInfo sysInfo2 = new SystemInfo(RIOT.riotIRI, RIOT.VERSION, RIOT.BUILD_DATE) ;
         ARQMgt.register(NS+".system:type=SystemInfo", sysInfo2) ;
         SystemARQ.registerSubSystem(sysInfo2) ;
-
-        RDFLanguages.init() ;
-        RDFParserRegistry.init() ;
-        IO_Jena.wireIntoJena() ;
     }
 }

Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java?rev=1444624&r1=1444623&r2=1444624&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/rdf/model/impl/ModelCom.java Sun Feb 10 22:16:58 2013
@@ -62,7 +62,7 @@ implements Model, PrefixMapping, Lock
         // above.  RIOT initialization happens before model.read can be called.
         
         // Needs further testing :-(
-        //IO_Ctl.init();
+        IO_Ctl.init();
     }
     
     /**