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/09/14 19:05:20 UTC

svn commit: r1523278 - in /jena/trunk: jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/ jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/ jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/

Author: andy
Date: Sat Sep 14 17:05:19 2013
New Revision: 1523278

URL: http://svn.apache.org/r1523278
Log:
Ensure all assemblers for datasets to add dataset-specific context parameters.

Modified:
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java
    jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssembler.java
    jena/trunk/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/DatasetStoreAssembler.java
    jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java?rev=1523278&r1=1523277&r2=1523278&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/AssemblerUtils.java Sat Sep 14 17:05:19 2013
@@ -101,6 +101,16 @@ public class AssemblerUtils
         return Assembler.general.open(root) ;
     }
     
+    /** Look for and set context declarations. 
+     * e.g.
+     * <pre>
+     * root ... ;
+     *   ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;
+     *   ...
+     * </pre>
+     * Short name forms of context parameters can be used.  
+     * Setting as string "undef" will remove the context setting.
+     */
     public static void setContext(Resource r, Context context)
     {
         String qs = "PREFIX ja: <"+JA.getURI()+">\nSELECT * { ?x ja:context [ ja:cxtName ?name ; ja:cxtValue ?value ] }" ;

Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssembler.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssembler.java?rev=1523278&r1=1523277&r2=1523278&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssembler.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/assembler/DatasetAssembler.java Sat Sep 14 17:05:19 2013
@@ -16,49 +16,43 @@
  * limitations under the License.
  */
 
-package com.hp.hpl.jena.sparql.core.assembler;
+package com.hp.hpl.jena.sparql.core.assembler ;
 
-import java.lang.reflect.Method;
 import java.util.Iterator ;
 import java.util.List ;
 
+import org.apache.jena.atlas.logging.Log ;
+
 import com.hp.hpl.jena.assembler.Assembler ;
 import com.hp.hpl.jena.assembler.Mode ;
 import com.hp.hpl.jena.assembler.assemblers.AssemblerBase ;
-import com.hp.hpl.jena.query.Dataset;
+import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.query.DatasetFactory ;
 import com.hp.hpl.jena.rdf.model.Model ;
 import com.hp.hpl.jena.rdf.model.RDFNode ;
 import com.hp.hpl.jena.rdf.model.Resource ;
-
-import org.apache.jena.atlas.logging.Log ;
-import org.slf4j.LoggerFactory ;
-
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
 import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
 import com.hp.hpl.jena.sparql.graph.GraphFactory ;
 import com.hp.hpl.jena.sparql.util.FmtUtils ;
 import com.hp.hpl.jena.sparql.util.graph.GraphUtils ;
 
-public class DatasetAssembler extends AssemblerBase implements Assembler
-{
-    public static Resource getType() { return DatasetAssemblerVocab.tDataset ; }
-    
+public class DatasetAssembler extends AssemblerBase implements Assembler {
+    public static Resource getType() {
+        return DatasetAssemblerVocab.tDataset ;
+    }
+
     @Override
-    public Object open(Assembler a, Resource root, Mode mode)
-    {
+    public Object open(Assembler a, Resource root, Mode mode) {
         Dataset ds = createDataset(a, root, mode) ;
-        createTextIndex(ds, root) ;
-
         return ds ;
     }
-    
-    public Dataset createDataset(Assembler a, Resource root, Mode mode) 
-    {
+
+    public Dataset createDataset(Assembler a, Resource root, Mode mode) {
         // Expanding version.
         DatasetGraph dsg = DatasetGraphFactory.createMem() ;
         AssemblerUtils.setContext(root, dsg.getContext()) ;
-        
+
         Dataset ds = DatasetFactory.create(dsg) ;
 
         // -------- Default graph
@@ -66,7 +60,7 @@ public class DatasetAssembler extends As
         Resource dftGraph = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pDefaultGraph) ;
         if ( dftGraph == null )
             dftGraph = GraphUtils.getResourceValue(root, DatasetAssemblerVocab.pGraph) ;
-        
+
         Model dftModel = null ;
         if ( dftGraph != null )
             dftModel = a.openModel(dftGraph) ;
@@ -77,69 +71,29 @@ public class DatasetAssembler extends As
         ds.setDefaultModel(dftModel) ;
 
         // -------- Named graphs
-        List<RDFNode> nodes = GraphUtils.multiValue(root, DatasetAssemblerVocab.pNamedGraph) ; 
-        
-        for ( Iterator<RDFNode> iter= nodes.iterator() ; iter.hasNext() ; )
-        {
-            RDFNode n = iter.next();
-            if ( ! ( n instanceof Resource ) )
-                throw new DatasetAssemblerException(root, "Not a resource: "+FmtUtils.stringForRDFNode(n)) ;
+        List<RDFNode> nodes = GraphUtils.multiValue(root, DatasetAssemblerVocab.pNamedGraph) ;
+
+        for (Iterator<RDFNode> iter = nodes.iterator(); iter.hasNext();) {
+            RDFNode n = iter.next() ;
+            if ( !(n instanceof Resource) )
+                throw new DatasetAssemblerException(root, "Not a resource: " + FmtUtils.stringForRDFNode(n)) ;
             Resource r = (Resource)n ;
 
             String gName = GraphUtils.getAsStringValue(r, DatasetAssemblerVocab.pGraphName) ;
             Resource g = GraphUtils.getResourceValue(r, DatasetAssemblerVocab.pGraph) ;
-            if ( g == null )
-            {
+            if ( g == null ) {
                 g = GraphUtils.getResourceValue(r, DatasetAssemblerVocab.pGraphAlt) ;
                 if ( g != null )
                     Log.warn(this, "Use of old vocabulary: use :graph not :graphData") ;
                 else
-                    throw new DatasetAssemblerException(root, "no graph for: "+gName) ;
+                    throw new DatasetAssemblerException(root, "no graph for: " + gName) ;
             }
-            
+
             Model m = a.openModel(g) ;
             ds.addNamedModel(gName, m) ;
         }
-        
-        return ds ;
-    }
 
-    public Object createTextIndex (Dataset ds, Resource root) 
-    {
-    	Object result = createTextIndex (ds, root, "org.apache.jena.larq.assembler.AssemblerLARQ") ;
-    	if ( result == null ) result = createTextIndex (ds, root, "com.hp.hpl.jena.query.larq.AssemblerLARQ") ;
-    	return result ;
-    }
-    
-    protected Object createTextIndex (Dataset ds, Resource root, String className) 
-    {
-        try 
-        {
-            Class<?> clazz = Class.forName(className) ;
-            if ( root.hasProperty(DatasetAssemblerVocab.pIndex) ) 
-            {
-                try {
-                    Log.info(DatasetAssembler.class, "Initializing LARQ") ;
-                    String index = GraphUtils.getAsStringValue(root, DatasetAssemblerVocab.pIndex) ;
-                    Class<?> paramTypes[] = new Class[] { Dataset.class, String.class } ;
-                    Method method = clazz.getDeclaredMethod("make", paramTypes) ;
-                    Object args[] = new Object[] { ds, index } ;
-                    return method.invoke(clazz, args) ;
-                } catch (Exception e) {
-                	String msg;
-                	if ( e.getMessage() != null ) {
-                		msg = e.getMessage();
-                	} else {
-                		msg = e.getCause().getMessage();
-                	}
-                    Log.warn(DatasetAssembler.class, String.format("Unable to initialize LARQ using %s: %s", className, msg)) ;
-                }                
-            }
-        } catch(ClassNotFoundException e) {
-            LoggerFactory.getLogger(DatasetAssembler.class).debug("LARQ initialization: class " + className + " not in the classpath.") ;
-        }
-        
-        return null ;
+        AssemblerUtils.setContext(dftGraph, ds.getContext()) ;
+        return ds ;
     }
-    
 }

Modified: jena/trunk/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/DatasetStoreAssembler.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/DatasetStoreAssembler.java?rev=1523278&r1=1523277&r2=1523278&view=diff
==============================================================================
--- jena/trunk/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/DatasetStoreAssembler.java (original)
+++ jena/trunk/jena-sdb/src/main/java/com/hp/hpl/jena/sdb/assembler/DatasetStoreAssembler.java Sat Sep 14 17:05:19 2013
@@ -22,11 +22,9 @@ import com.hp.hpl.jena.assembler.Assembl
 import com.hp.hpl.jena.assembler.Mode;
 import com.hp.hpl.jena.assembler.assemblers.AssemblerBase;
 import com.hp.hpl.jena.rdf.model.Resource;
-
+import com.hp.hpl.jena.sparql.core.assembler.AssemblerUtils ;
 import com.hp.hpl.jena.sparql.util.graph.GraphUtils;
-
 import com.hp.hpl.jena.query.Dataset;
-
 import com.hp.hpl.jena.sdb.SDBFactory;
 import com.hp.hpl.jena.sdb.StoreDesc;
 
@@ -39,6 +37,7 @@ public class DatasetStoreAssembler exten
     {
         StoreDesc desc = openStore(a, root, mode) ;
         Dataset ds = SDBFactory.connectDataset(desc) ;
+        AssemblerUtils.setContext(root, ds.getContext());
         return ds ;
     }
     

Modified: jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java?rev=1523278&r1=1523277&r2=1523278&view=diff
==============================================================================
--- jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java (original)
+++ jena/trunk/jena-tdb/src/main/java/com/hp/hpl/jena/tdb/assembler/DatasetAssemblerTDB.java Sat Sep 14 17:05:19 2013
@@ -32,6 +32,7 @@ import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.query.DatasetFactory ;
 import com.hp.hpl.jena.rdf.model.Resource ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.assembler.AssemblerUtils ;
 import com.hp.hpl.jena.sparql.core.assembler.DatasetAssembler ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.tdb.TDB ;
@@ -43,40 +44,35 @@ public class DatasetAssemblerTDB extends
     static { TDB.init(); }
     
     @Override
-    public Dataset createDataset(Assembler a, Resource root, Mode mode)
-    {
+    public Dataset createDataset(Assembler a, Resource root, Mode mode) {
         TDB.init() ;
         return make(root) ;
     }
 
-    static Dataset make(Resource root)
-    {
-        if ( ! exactlyOneProperty(root, pLocation) )
+    static Dataset make(Resource root) {
+        if ( !exactlyOneProperty(root, pLocation) )
             throw new AssemblerException(root, "No location given") ;
 
         String dir = getStringValue(root, pLocation) ;
         Location loc = new Location(dir) ;
         DatasetGraph dsg = TDBFactory.createDatasetGraph(loc) ;
-        
-        if ( root.hasProperty(pUnionDefaultGraph) )
-        {
+
+        if ( root.hasProperty(pUnionDefaultGraph) ) {
             Node b = root.getProperty(pUnionDefaultGraph).getObject().asNode() ;
             NodeValue nv = NodeValue.makeNode(b) ;
             if ( nv.isBoolean() )
                 dsg.getContext().set(TDB.symUnionDefaultGraph, nv.getBoolean()) ;
             else
-                Log.warn(DatasetAssemblerTDB.class,
-                         "Failed to recognize value for union graph setting (ignored): "+b) ;
+                Log.warn(DatasetAssemblerTDB.class, "Failed to recognize value for union graph setting (ignored): " + b) ;
         }
-        
+
         /*
         <r> rdf:type tdb:DatasetTDB ;
             tdb:location "dir" ;
-            //arq:set [ arq:contextSymbol "xyz" ; arq:contextValue 123 ] ;  <-- in ARQ dataset assembler stuff.
-            //arq:set ( <uri> 123 ) ;
+            //ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "10000" ] ;
             tdb:unionGraph true ; # or "true"
         */
-        
+        AssemblerUtils.setContext(root, dsg.getContext());
         return DatasetFactory.create(dsg) ; 
     }