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 2015/11/26 17:55:06 UTC

[1/3] jena git commit: Improve comments.

Repository: jena
Updated Branches:
  refs/heads/master 989b8d428 -> 302b7fa93


Improve comments.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/08df976e
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/08df976e
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/08df976e

Branch: refs/heads/master
Commit: 08df976e5fb2c340ff85d4b0d2f33675b8037a71
Parents: 989b8d4
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Nov 26 14:46:54 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Nov 26 16:04:08 2015 +0000

----------------------------------------------------------------------
 .../main/java/org/apache/jena/sparql/core/Transactional.java    | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/08df976e/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java
index 017b013..1af3f1a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java
@@ -24,7 +24,8 @@ import org.apache.jena.query.ReadWrite ;
  * <p>The read lifcycle is:
  * <pre>  begin(READ) ... end()</pre>
  * <p>The write lifcycle is:
- * <pre>  begin(WRITE) ... abort() or commit() [end()is optional]</pre>
+ * <pre>  begin(WRITE) ... abort() or commit() [end()]</pre>
+ * <p>{@code end()} is optional, but encouraged; it performs checks and can be called multiple times.
  * 
  */
 public interface Transactional 
@@ -38,7 +39,7 @@ public interface Transactional
     /** Abort a transaction - finish the transaction and undo any changes (if a "write" transaction) */  
     public void abort() ;
 
-    /** Say whether a transaction is active */ 
+    /** Say whether inside a transaction. */ 
     public boolean isInTransaction() ;
     
     /** Finish the transaction - if a write transaction and commit() has not been called, then abort */  


[3/3] jena git commit: Tidy and reformat.

Posted by an...@apache.org.
Tidy and reformat.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/302b7fa9
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/302b7fa9
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/302b7fa9

Branch: refs/heads/master
Commit: 302b7fa93a19010213daf240369fed295e3a8183
Parents: e2751e3
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Nov 26 15:58:58 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Nov 26 16:11:47 2015 +0000

----------------------------------------------------------------------
 .../apache/jena/sparql/util/DatasetUtils.java   | 289 +++++++++++--------
 1 file changed, 174 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/302b7fa9/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
index fa9e089..20f2352 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
@@ -35,178 +35,237 @@ import org.apache.jena.shared.JenaException ;
 import org.apache.jena.sparql.core.DatasetDescription ;
 import org.apache.jena.sparql.core.DatasetGraph ;
 import org.apache.jena.sparql.core.DatasetGraphFactory ;
+import org.apache.jena.sparql.core.Transactional ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 
 /** Internal Dataset factory + graph equivalents. */
-
 public class DatasetUtils
 {
-    
-    public static Dataset createDataset(String uri, List<String> namedSourceList)
-    {
-        return createDataset(uri, namedSourceList, null) ;
+    /** Create a general purpose, in-memory dataset, and load data into the default graph and
+     * also some named graphs.
+     * @param uri               Default graph
+     * @param namedSourceList   Named graphs
+     * @return Dataset
+     */
+    public static Dataset createDataset(String uri, List<String> namedSourceList) {
+        return createDataset(uri, namedSourceList, null);
     }
-    
-    public static Dataset createDataset(String uri, List<String> namedSourceList, String baseURI)
-    {
-        List<String> uriList = Arrays.asList(uri) ;
-        return createDataset(uriList, namedSourceList, baseURI) ;
+
+    /** Create a general purpose, in-memory dataset, and load data into the default graph and
+     * also some named graphs.
+     * @param uri               Default graph
+     * @param namedSourceList   Named graphs
+     * @param baseURI
+     * @return Dataset
+     */
+    public static Dataset createDataset(String uri, List<String> namedSourceList, String baseURI) {
+        List<String> uriList = Arrays.asList(uri);
+        return createDataset(uriList, namedSourceList, baseURI);
     }
 
-    public static Dataset createDataset(List<String> uriList, List<String> namedSourceList)
-    {
-        return createDataset(uriList, namedSourceList, null) ;
+    /** Create a general purpose, in-memory dataset, and load some data
+     * 
+     * @param uriList           RDF for the default graph
+     * @param namedSourceList   Named graphs.
+     * @return Dataset
+     */
+    public static Dataset createDataset(List<String> uriList, List<String> namedSourceList) {
+        return createDataset(uriList, namedSourceList, null);
     }
 
-    public static Dataset createDataset(DatasetDescription datasetDesc)
-    {
-        return createDataset(datasetDesc, null) ;
+    /** Create a general purpose, in-memory dataset, and load data.
+     * 
+     * @param datasetDesc   
+     * @return Dataset
+     */
+    public static Dataset createDataset(DatasetDescription datasetDesc) {
+        return createDataset(datasetDesc, null);
     }
 
-    public static Dataset createDataset(DatasetDescription datasetDesc, String baseURI)
-    {
-        return createDataset(datasetDesc.getDefaultGraphURIs(), datasetDesc.getNamedGraphURIs(), baseURI) ;
+    /** Create a general purpose, in-memory dataset, and load data.
+     * 
+     * @param datasetDesc   
+     * @return Dataset
+     */
+    public static Dataset createDataset(DatasetDescription datasetDesc, String baseURI) {
+        return createDataset(datasetDesc.getDefaultGraphURIs(), datasetDesc.getNamedGraphURIs(), baseURI);
     }
-    
-    public static Dataset createDataset(List<String> uriList, List<String> namedSourceList, String baseURI)
-    {
-        Dataset ds = DatasetFactory.createMem() ;
-        return addInGraphs(ds, uriList, namedSourceList, baseURI) ;
+
+    /** Create a general purpose, in-memory dataset, and load data.
+     * @param uriList           Default graph
+     * @param namedSourceList   Named graphs
+     * @param baseURI
+     * @return Dataset
+     */
+    public static Dataset createDataset(List<String> uriList, List<String> namedSourceList, String baseURI) {
+        Dataset ds = DatasetFactory.createGeneral();
+        return addInGraphs(ds, uriList, namedSourceList, baseURI);
     }
-    
-    /** add graphs into an existing DataSource */
-    public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList)
-    {
-        return addInGraphs(ds, uriList, namedSourceList, null) ;
+
+    /** Add graphs into an existing DataSource */
+    public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList) {
+        return addInGraphs(ds, uriList, namedSourceList, null);
     }
     
-    /** add graphs into an existing DataSource */
-    public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI)
-    {
-        boolean transactionWrapper = ds.supportsTransactions() && ! ds.isInTransaction() ;
-        if ( ! transactionWrapper )
-            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
-        
+    /** Add graphs into a Dataset
+     * 
+     * @param ds
+     * @param uriList           Default graph
+     * @param namedSourceList   Named graphs
+     * @param baseURI
+     * @return Dataset, as passed in.
+     */
+    public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI) {
+        boolean transactionWrapper = ds.supportsTransactions() && !ds.isInTransaction();
+        if ( !transactionWrapper )
+            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI);
+
         // TODO Replace with Txn.executeWrite when Txn code ready.
-        ds.begin(ReadWrite.WRITE) ;
-        try {        
-            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
-        } catch ( JenaException ex) {
+        ds.begin(ReadWrite.WRITE);
+        try {
+            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI);
+        }
+        catch (JenaException ex) {
             ds.abort();
-            throw ex ;
+            throw ex;
         }
         finally {
             if ( ds.isInTransaction() )
-                ds.commit() ;
+                ds.commit();
             ds.end();
         }
     }
-    
+
     private static Dataset addInGraphsWorker(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI) {
         if ( ds.getDefaultModel() == null )
-            // Merge into background graph
-            ds.setDefaultModel(GraphFactory.makeDefaultModel()) ;
-        
-        if ( uriList != null )
-        {
-            for (Iterator<String> iter = uriList.iterator() ; iter.hasNext() ; )
-            {
-                String sourceURI = iter.next() ;
-                String absURI = null ;
+            // Not that it should be null ...
+            ds.setDefaultModel(GraphFactory.makeDefaultModel());
+
+        if ( uriList != null ) {
+            for ( Iterator<String> iter = uriList.iterator() ; iter.hasNext() ; ) {
+                String sourceURI = iter.next();
+                String absURI = null;
                 if ( baseURI != null )
-                    absURI = IRIResolver.resolveString(sourceURI, baseURI) ;
+                    absURI = IRIResolver.resolveString(sourceURI, baseURI);
                 else
-                    absURI = IRIResolver.resolveString(sourceURI) ;
-                RDFDataMgr.read(ds.getDefaultModel(), sourceURI, absURI, null) ;
+                    absURI = IRIResolver.resolveString(sourceURI);
+                RDFDataMgr.read(ds.getDefaultModel(), sourceURI, absURI, null);
             }
         }
-        
-        if ( namedSourceList != null )
-        {
-            for (Iterator<String> iter = namedSourceList.iterator() ; iter.hasNext() ; )
-            {
-                String sourceURI = iter.next() ;
-                String absURI = null ;
+
+        if ( namedSourceList != null ) {
+            for ( Iterator<String> iter = namedSourceList.iterator() ; iter.hasNext() ; ) {
+                String sourceURI = iter.next();
+                String absURI = null;
                 if ( baseURI != null )
-                    absURI = IRIResolver.resolveString(sourceURI, baseURI) ;
+                    absURI = IRIResolver.resolveString(sourceURI, baseURI);
                 else
-                    absURI = IRIResolver.resolveString(sourceURI) ;
-                Model m = GraphFactory.makeDefaultModel() ;
-                RDFDataMgr.read(m, sourceURI, absURI, null) ;
-                ds.addNamedModel(absURI, m) ;
+                    absURI = IRIResolver.resolveString(sourceURI);
+                Model m = GraphFactory.makeDefaultModel();
+                RDFDataMgr.read(m, sourceURI, absURI, null);
+                ds.addNamedModel(absURI, m);
             }
         }
-        return ds ;
+        return ds;
     }
     
     // ---- DatasetGraph level.
     
-    public static DatasetGraph createDatasetGraph(DatasetDescription datasetDesc)
-    {
+    /** Create a general purpose, in-memory dataset, and load data.
+     * 
+     * @param datasetDesc   
+     * @return Dataset
+     */
+    public static DatasetGraph createDatasetGraph(DatasetDescription datasetDesc) {
         return createDatasetGraph(datasetDesc.getDefaultGraphURIs(), datasetDesc.getNamedGraphURIs(), null) ;
     }
 
-    public static DatasetGraph createDatasetGraph(DatasetDescription datasetDesc, String baseURI)
-    {
+    /** Create a general purpose, in-memory dataset, and load data.
+     * 
+     * @param datasetDesc   
+     * @param baseURI
+     * @return Dataset
+     */
+    public static DatasetGraph createDatasetGraph(DatasetDescription datasetDesc, String baseURI) {
         return createDatasetGraph(datasetDesc.getDefaultGraphURIs(), datasetDesc.getNamedGraphURIs(), baseURI) ;
     }
         
-    public static DatasetGraph createDatasetGraph(String uri, List<String> namedSourceList, String baseURI)
-    {
-        List<String> uriList = new ArrayList<String>() ;
-        uriList.add(uri) ;
-        return createDatasetGraph(uriList, namedSourceList, baseURI) ;
+    public static DatasetGraph createDatasetGraph(String uri, List<String> namedSourceList, String baseURI) {
+        List<String> uriList = new ArrayList<String>();
+        uriList.add(uri);
+        return createDatasetGraph(uriList, namedSourceList, baseURI);
     }
 
-    public static DatasetGraph createDatasetGraph(List<String> uriList, List<String> namedSourceList, String baseURI)
-    {
-        DatasetGraph ds = DatasetGraphFactory.createMem() ;
+    public static DatasetGraph createDatasetGraph(List<String> uriList, List<String> namedSourceList, String baseURI) {
+        DatasetGraph dsg = DatasetGraphFactory.createMem();
+        return addInGraphs(dsg, uriList, namedSourceList, baseURI);
+    }
+    
+    /** Add graphs into a DatasetGraph
+     * 
+     * @param dsg
+     * @param uriList           Default graph
+     * @param namedSourceList   Named graphs
+     * @param baseURI
+     * @return Dataset, as passed in.
+     */
+    private static DatasetGraph addInGraphs(DatasetGraph dsg, List<String> uriList, List<String> namedSourceList, String baseURI) {
+        if ( ! (dsg instanceof Transactional) )
+            return addInGraphsWorker(dsg, uriList, namedSourceList, baseURI) ;
+        Transactional transactional = (Transactional)dsg ;
         
+        if ( ! transactional.isInTransaction() )
+            return addInGraphsWorker(dsg, uriList, namedSourceList, baseURI);
+
+        // TODO Replace with Txn.executeWrite when Txn code ready.
+        transactional.begin(ReadWrite.WRITE);
+        try {
+            return addInGraphsWorker(dsg, uriList, namedSourceList, baseURI);
+        }
+        catch (JenaException ex) {
+            transactional.abort();
+            throw ex;
+        }
+        finally {
+            if ( transactional.isInTransaction() )
+                transactional.commit();
+            transactional.end();
+        }
+    }
+
+    private static DatasetGraph addInGraphsWorker(DatasetGraph dsg, List<String> uriList, List<String> namedSourceList, String baseURI) {
         // Merge into background graph
-        if ( uriList != null )
-        {
-            Model m = GraphFactory.makeDefaultModel() ;
-            for (Iterator<String> iter = uriList.iterator() ; iter.hasNext() ; )
-            {
-                String sourceURI = iter.next() ;
-                String absURI = null ;
+        if ( uriList != null ) {
+            Model m = GraphFactory.makeDefaultModel();
+            for ( Iterator<String> iter = uriList.iterator() ; iter.hasNext() ; ) {
+                String sourceURI = iter.next();
+                String absURI = null;
                 if ( baseURI != null )
-                    absURI = IRIResolver.resolveString(sourceURI, baseURI) ;
+                    absURI = IRIResolver.resolveString(sourceURI, baseURI);
                 else
-                    absURI = IRIResolver.resolveString(sourceURI) ;
+                    absURI = IRIResolver.resolveString(sourceURI);
                 // FileManager.readGraph?
-                RDFDataMgr.read(m, sourceURI, absURI, null) ;
+                RDFDataMgr.read(m, sourceURI, absURI, null);
             }
-            ds.setDefaultGraph(m.getGraph()) ;
+            dsg.setDefaultGraph(m.getGraph());
+        } else {
+            dsg.setDefaultGraph(GraphFactory.createDefaultGraph());
         }
-        else
-        {
-            ds.setDefaultGraph(GraphFactory.createDefaultGraph()) ;
-        }
-        
-        if ( namedSourceList != null )
-        {
-            for (Iterator<String> iter = namedSourceList.iterator() ; iter.hasNext() ; )
-            {
+
+        if ( namedSourceList != null ) {
+            for ( Iterator<String> iter = namedSourceList.iterator() ; iter.hasNext() ; ) {
                 String sourceURI = iter.next();
-                String absURI = null ;
+                String absURI = null;
                 if ( baseURI != null )
-                    absURI = IRIResolver.resolveString(baseURI, sourceURI) ;
+                    absURI = IRIResolver.resolveString(baseURI, sourceURI);
                 else
-                    absURI = IRIResolver.resolveString(sourceURI) ;
-                Model m = GraphFactory.makeDefaultModel() ;
-                RDFDataMgr.read(m, sourceURI, absURI, null) ;
-                Node gn = NodeFactory.createURI(sourceURI) ;
-                ds.addGraph(gn, m.getGraph()) ;
+                    absURI = IRIResolver.resolveString(sourceURI);
+                Model m = GraphFactory.makeDefaultModel();
+                RDFDataMgr.read(m, sourceURI, absURI, null);
+                Node gn = NodeFactory.createURI(sourceURI);
+                dsg.addGraph(gn, m.getGraph());
             }
         }
-        return ds ;
+        return dsg;
     }
-    
-//    private static Node nodeOrStr(Object obj)
-//    {
-//        if ( obj instanceof Node) return (Node)obj ;
-//        if ( obj instanceof String) return Node.createURI((String)obj) ;
-//        throw new DataException("Not a string nor a Node: ("+Utils.className(obj)+") "+obj) ;
-//    }
 }


[2/3] jena git commit: Use transactions when loading graphs if available.

Posted by an...@apache.org.
Use transactions when loading graphs if available.


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e2751e38
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e2751e38
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e2751e38

Branch: refs/heads/master
Commit: e2751e3846c7895def5434a8e75774ba786735e3
Parents: 08df976
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Nov 26 15:34:39 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Nov 26 16:11:41 2015 +0000

----------------------------------------------------------------------
 .../apache/jena/sparql/util/DatasetUtils.java   | 24 +++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/e2751e38/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
index f25c669..fa9e089 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/DatasetUtils.java
@@ -27,15 +27,17 @@ import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.query.Dataset ;
 import org.apache.jena.query.DatasetFactory ;
+import org.apache.jena.query.ReadWrite ;
 import org.apache.jena.rdf.model.Model ;
 import org.apache.jena.riot.RDFDataMgr ;
 import org.apache.jena.riot.system.IRIResolver ;
+import org.apache.jena.shared.JenaException ;
 import org.apache.jena.sparql.core.DatasetDescription ;
 import org.apache.jena.sparql.core.DatasetGraph ;
 import org.apache.jena.sparql.core.DatasetGraphFactory ;
 import org.apache.jena.sparql.graph.GraphFactory ;
 
-/** Internal Dataset/DataSource factory + graph equivalents. */
+/** Internal Dataset factory + graph equivalents. */
 
 public class DatasetUtils
 {
@@ -81,6 +83,26 @@ public class DatasetUtils
     /** add graphs into an existing DataSource */
     public static Dataset addInGraphs(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI)
     {
+        boolean transactionWrapper = ds.supportsTransactions() && ! ds.isInTransaction() ;
+        if ( ! transactionWrapper )
+            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
+        
+        // TODO Replace with Txn.executeWrite when Txn code ready.
+        ds.begin(ReadWrite.WRITE) ;
+        try {        
+            return addInGraphsWorker(ds, uriList, namedSourceList, baseURI) ;
+        } catch ( JenaException ex) {
+            ds.abort();
+            throw ex ;
+        }
+        finally {
+            if ( ds.isInTransaction() )
+                ds.commit() ;
+            ds.end();
+        }
+    }
+    
+    private static Dataset addInGraphsWorker(Dataset ds, List<String> uriList, List<String> namedSourceList, String baseURI) {
         if ( ds.getDefaultModel() == null )
             // Merge into background graph
             ds.setDefaultModel(GraphFactory.makeDefaultModel()) ;