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/26 19:33:39 UTC
svn commit: r1450343 - in /jena/trunk/jena-fuseki: ./ src-dev/dev/
src/main/java/org/apache/jena/fuseki/
src/main/java/org/apache/jena/fuseki/servlets/
Author: andy
Date: Tue Feb 26 18:33:39 2013
New Revision: 1450343
URL: http://svn.apache.org/r1450343
Log:
Centralize adding data into a graph from a dataset.
Make the implementation of that act on the dataset directly.
Modified:
jena/trunk/jena-fuseki/config-tdb.ttl
jena/trunk/jena-fuseki/config.ttl
jena/trunk/jena-fuseki/src-dev/dev/RunFuseki.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiLib.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
Modified: jena/trunk/jena-fuseki/config-tdb.ttl
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/config-tdb.ttl?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/config-tdb.ttl (original)
+++ jena/trunk/jena-fuseki/config-tdb.ttl Tue Feb 26 18:33:39 2013
@@ -5,7 +5,7 @@
@prefix : <#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
-@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
Modified: jena/trunk/jena-fuseki/config.ttl
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/config.ttl?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
Binary files - no diff available.
Modified: jena/trunk/jena-fuseki/src-dev/dev/RunFuseki.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src-dev/dev/RunFuseki.java?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src-dev/dev/RunFuseki.java (original)
+++ jena/trunk/jena-fuseki/src-dev/dev/RunFuseki.java Tue Feb 26 18:33:39 2013
@@ -49,7 +49,6 @@ public class RunFuseki
return sb.toString() ;
}
-
private static void main1()
{
FusekiCmd.main(
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiLib.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiLib.java?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiLib.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/FusekiLib.java Tue Feb 26 18:33:39 2013
@@ -19,6 +19,7 @@
package org.apache.jena.fuseki;
import java.util.HashMap ;
+import java.util.Iterator ;
import java.util.Map ;
import javax.servlet.http.HttpServletRequest ;
@@ -31,9 +32,14 @@ import org.apache.jena.riot.RDFLanguages
import org.apache.jena.riot.RiotException ;
import org.apache.jena.riot.WebContent ;
+import com.hp.hpl.jena.graph.Graph ;
+import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.graph.Triple ;
import com.hp.hpl.jena.rdf.model.Model ;
import com.hp.hpl.jena.rdf.model.ModelFactory ;
import com.hp.hpl.jena.rdf.model.RDFWriter ;
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.sparql.util.Convert ;
public class FusekiLib
@@ -130,5 +136,21 @@ public class FusekiLib
value = StringUtils.replaceChars(value, "\n", "") ;
return value ;
}
+
+ // Do the addition directly on the dataset
+ public static void addDataInto(Graph data, DatasetGraph dsg, Node graphName)
+ {
+ if ( graphName == null )
+ graphName = Quad.defaultGraphNodeGenerated ;
+
+ Iterator<Triple> iter = data.find(Node.ANY, Node.ANY, Node.ANY) ;
+ for ( ; iter.hasNext() ; )
+ {
+ Triple t = iter.next();
+ dsg.add(graphName, t.getSubject(), t.getPredicate(), t.getObject()) ;
+ }
+ }
+
+
}
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_REST.java Tue Feb 26 18:33:39 2013
@@ -19,15 +19,7 @@
package org.apache.jena.fuseki.servlets;
import static java.lang.String.format ;
-import static org.apache.jena.fuseki.HttpNames.HEADER_LASTMOD ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_DELETE ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_GET ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_HEAD ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_OPTIONS ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_PATCH ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_POST ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_PUT ;
-import static org.apache.jena.fuseki.HttpNames.METHOD_TRACE ;
+import static org.apache.jena.fuseki.HttpNames.* ;
import java.io.ByteArrayInputStream ;
import java.io.IOException ;
@@ -39,6 +31,7 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse ;
import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.fuseki.FusekiLib ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.fuseki.server.DatasetRef ;
import org.apache.jena.riot.Lang ;
@@ -52,7 +45,6 @@ import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.graph.GraphUtil ;
import com.hp.hpl.jena.graph.Node ;
import com.hp.hpl.jena.sparql.core.DatasetGraph ;
import com.hp.hpl.jena.sparql.core.DatasetGraphFactory ;
@@ -105,7 +97,6 @@ public abstract class SPARQL_REST extend
{
final boolean isDefault ;
final DatasetGraph dsg ;
- // May be null, then
private Graph _graph ;
final String name ;
final Node graphName ;
@@ -128,9 +119,6 @@ public abstract class SPARQL_REST extend
this.name = name ;
this.graphName = graphName ;
- // if ( graph == null )
- // throw new IllegalArgumentException("Inconsistent: no graph") ;
-
if ( isDefault )
{
if ( name != null || graphName != null )
@@ -262,17 +250,20 @@ public abstract class SPARQL_REST extend
try
{
Target dest = action.getTarget() ;
- Graph g = dest.graph() ;
- if (g == null)
- {
- if (dest.isDefault) errorOccurred("Dataset does not have a default graph") ;
- log.info(format("[%d] Creating in-memory graph for <%s>", action.id, dest.graphName)) ;
- // Not default graph.
- // Not an autocreate dataset - create something.
- g = GraphFactory.createDefaultGraph() ;
- dest.dsg.addGraph(dest.graphName, g) ;
- }
- GraphUtil.addInto(g, data) ;
+ FusekiLib.addDataInto(data, dest.dsg, dest.graphName) ;
+
+// Graph g = dest.graph() ;
+//
+// if (g == null)
+// {
+// if (dest.isDefault) errorOccurred("Dataset does not have a default graph") ;
+// log.info(format("[%d] Creating in-memory graph for <%s>", action.id, dest.graphName)) ;
+// // Not default graph.
+// // Not an autocreate dataset - create something.
+// g = GraphFactory.createDefaultGraph() ;
+// dest.dsg.addGraph(dest.graphName, g) ;
+// }
+// GraphUtil.addInto(g, data) ;
} catch (RuntimeException ex)
{
// If anything went wrong, try to backout.
@@ -281,7 +272,7 @@ public abstract class SPARQL_REST extend
return ;
}
}
-
+
protected static DatasetGraph parseBody(HttpActionREST action)
{
String contentTypeHeader = action.request.getContentType() ;
Modified: jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java?rev=1450343&r1=1450342&r2=1450343&view=diff
==============================================================================
--- jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java (original)
+++ jena/trunk/jena-fuseki/src/main/java/org/apache/jena/fuseki/servlets/SPARQL_Upload.java Tue Feb 26 18:33:39 2013
@@ -32,6 +32,7 @@ import org.apache.commons.fileupload.Fil
import org.apache.commons.fileupload.servlet.ServletFileUpload ;
import org.apache.commons.fileupload.util.Streams ;
import org.apache.jena.atlas.web.ContentType ;
+import org.apache.jena.fuseki.FusekiLib ;
import org.apache.jena.fuseki.HttpNames ;
import org.apache.jena.fuseki.server.DatasetRef ;
import org.apache.jena.iri.IRI ;
@@ -41,8 +42,8 @@ import org.apache.jena.riot.system.* ;
import org.apache.jena.web.HttpSC ;
import com.hp.hpl.jena.graph.Graph ;
-import com.hp.hpl.jena.graph.GraphUtil ;
import com.hp.hpl.jena.graph.Node ;
+import com.hp.hpl.jena.sparql.core.Quad ;
import com.hp.hpl.jena.sparql.graph.GraphFactory ;
public class SPARQL_Upload extends SPARQL_ServletBase
@@ -97,16 +98,12 @@ public class SPARQL_Upload extends SPARQ
log.info(format("[%d] Upload: Graph: %s (%d triple(s))",
action.id, graphName, tripleCount)) ;
-
- Graph target ;
- if ( graphName.equals(HttpNames.valueDefault) )
- target = action.getActiveDSG().getDefaultGraph() ;
- else
- {
- Node gn = Node.createURI(graphName) ;
- target = action.getActiveDSG().getGraph(gn) ;
- }
- GraphUtil.addInto(target, graphTmp) ;
+
+ Node gn = graphName.equals(HttpNames.valueDefault)
+ ? Quad.defaultGraphNodeGenerated
+ : Node.createURI(graphName) ;
+
+ FusekiLib.addDataInto(graphTmp, action.getActiveDSG(), gn) ;
tripleCount = graphTmp.size();
action.commit() ;
} catch (RuntimeException ex)
@@ -127,6 +124,8 @@ public class SPARQL_Upload extends SPARQ
static public Graph upload(long id, DatasetRef desc, HttpServletRequest request, HttpServletResponse response, String destination)
{
HttpActionUpload action = new HttpActionUpload(id, desc, request, response, false) ;
+ // We read into a in-memory graph, then (if successful) update the dataset.
+ // This isolates errors.
Graph graphTmp = GraphFactory.createDefaultGraph() ;
String graphName = upload(action, graphTmp, destination) ;
return graphTmp ;
@@ -198,8 +197,6 @@ public class SPARQL_Upload extends SPARQ
// Desperate.
lang = RDFLanguages.RDFXML ;
- // We read into a in-memory graph, then (if successful) update the dataset.
- // This isolates errors.
StreamRDF dest = StreamRDFLib.graph(graphDst) ;
LangRIOT parser = RiotReader.createParser(stream, lang, base, dest) ;
parser.getProfile().setHandler(errorHandler) ;