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