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 2016/06/08 09:53:26 UTC
jena git commit: JENA-1188: Enable loading of the whole dataset.
Repository: jena
Updated Branches:
refs/heads/master accab21cd -> 8e02240e5
JENA-1188: Enable loading of the whole dataset.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8e02240e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8e02240e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8e02240e
Branch: refs/heads/master
Commit: 8e02240e5a5ae3792d0056c4998441944c9c7948
Parents: accab21
Author: Andy Seaborne <an...@apache.org>
Authored: Wed Jun 8 10:52:10 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Wed Jun 8 10:52:10 2016 +0100
----------------------------------------------------------------------
jena-sdb/src/main/java/sdb/sdbload.java | 53 ++++++++++++++++++++--------
1 file changed, 38 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8e02240e/jena-sdb/src/main/java/sdb/sdbload.java
----------------------------------------------------------------------
diff --git a/jena-sdb/src/main/java/sdb/sdbload.java b/jena-sdb/src/main/java/sdb/sdbload.java
index 1ad55e9..8853c7e 100644
--- a/jena-sdb/src/main/java/sdb/sdbload.java
+++ b/jena-sdb/src/main/java/sdb/sdbload.java
@@ -18,22 +18,24 @@
package sdb;
-
import java.util.Iterator ;
import java.util.List ;
import jena.cmd.ArgDecl;
-
+import jena.cmd.CmdException ;
import org.apache.jena.atlas.lib.Lib ;
import org.apache.jena.atlas.lib.Timer ;
import org.apache.jena.graph.Graph ;
import org.apache.jena.graph.GraphListener ;
import org.apache.jena.graph.Triple ;
+import org.apache.jena.query.Dataset ;
import org.apache.jena.rdf.model.Model ;
+import org.apache.jena.riot.Lang ;
+import org.apache.jena.riot.RDFDataMgr ;
+import org.apache.jena.riot.RDFLanguages ;
import org.apache.jena.sdb.SDB ;
+import org.apache.jena.sdb.SDBFactory ;
import org.apache.jena.sdb.store.StoreBaseHSQL ;
-import org.apache.jena.util.FileUtils ;
-
import sdb.cmd.CmdArgsDB ;
import sdb.cmd.ModGraph ;
@@ -98,33 +100,54 @@ public class sdbload extends CmdArgsDB
{
Monitor monitor = null ;
- Model model = modGraph.getModel(getStore()) ;
- Graph graph = model.getGraph() ;
-
+ Model model = null ;
+ Dataset dataset = null ;
+ Lang lang = RDFLanguages.filenameToLang(filename) ;
+ if ( lang == null )
+ throw new CmdException("Data syntax not recognized: "+filename) ;
+
+ if ( modGraph.getGraphName() != null )
+ model = modGraph.getModel(getStore()) ;
+ else
+ dataset = SDBFactory.connectDataset(getStore()) ;
+
+ // For monitoring only.
+ Graph monitorGraph = (model==null) ? null : model.getGraph() ;
+
if ( isVerbose() && replace )
System.out.println("Emptying: "+filename) ;
- if (replace)
- model.removeAll();
+ if (replace) {
+ if ( model != null )
+ model.removeAll();
+ else
+ dataset.asDatasetGraph().clear();
+ }
if ( isVerbose() || getModTime().timingEnabled() )
System.out.println("Start load: "+filename) ;
- if ( getModTime().timingEnabled() )
- {
+ if ( getModTime().timingEnabled() ) {
+ if ( monitorGraph == null ) {
+ // This old monitor code only works for graphs.
+ // See TDB for a better way using org.apache.jena.atlas.lib.ProgressMonitor
+ throw new CmdException("Timing only implemented for graphs, not whole datasets") ;
+ }
monitor = new Monitor(getStore().getLoader().getChunkSize(), isVerbose()) ;
- graph.getEventManager().register(monitor) ;
+ monitorGraph.getEventManager().register(monitor) ;
}
// Crude but convenient
if ( filename.indexOf(':') == -1 )
filename = "file:"+filename ;
- String lang = FileUtils.guessLang(filename) ;
// Always time, only print if enabled.
getModTime().startTimer() ;
// Load here
- model.read(filename, lang) ;
+ if ( model == null )
+ RDFDataMgr.read(dataset, filename, lang);
+ else
+ RDFDataMgr.read(model, filename, lang);
long timeMilli = getModTime().endTimer() ;
@@ -135,7 +158,7 @@ public class sdbload extends CmdArgsDB
if ( getModTime().timingEnabled() && !isQuiet() )
System.out.printf("Loaded in %.3f seconds [%d triples/s]\n",
timeMilli/1000.0, (1000*monitor.addCount/timeMilli)) ;
- graph.getEventManager().unregister(monitor) ;
+ monitorGraph.getEventManager().unregister(monitor) ;
}
}