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) ;
}