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 2011/11/19 18:34:20 UTC

svn commit: r1204026 - in /incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena: query/Dataset.java sparql/core/DatasetGraphCaching.java sparql/core/DatasetImpl.java sparql/core/Transactional.java

Author: andy
Date: Sat Nov 19 17:34:19 2011
New Revision: 1204026

URL: http://svn.apache.org/viewvc?rev=1204026&view=rev
Log:
Use .end() for the end of a transaction, not .close().

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/Dataset.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetGraphCaching.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetImpl.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/Transactional.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/Dataset.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/Dataset.java?rev=1204026&r1=1204025&r2=1204026&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/Dataset.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/Dataset.java Sat Nov 19 17:34:19 2011
@@ -28,8 +28,9 @@ import com.hp.hpl.jena.sparql.core.Datas
  *  and a background graph (also called the default
  *  graph or unnamed graph). */
 
-public interface Dataset
+public interface Dataset // extends Transactional
 {
+    // Rather than pull in the internal "Tranactional" interface, we duplicate it here. 
     /** Get the default graph as a Jena Model */
     public Model getDefaultModel() ;
 
@@ -59,19 +60,26 @@ public interface Dataset
     
     /** Does this dataset support transactions?
      *  Supporting transactions mean that the dataset implementation
-     *  provides {@link #begin}, {@link #commit}, {@link #abort},
+     *  provides {@link #begin}, {@link #commit}, {@link #abort}, {@link #end}
      *  which otherwise may throw {@link UnsupportedOperationException}
      */
     public boolean supportsTransactions() ;
-
     
-    /** Start a transaction */
-    public void begin(ReadWrite mode) ;
-    public void commit() ;
-    public void abort() ;
+    /** Start either a READ or WRITE transaction */ 
+    public void begin(ReadWrite readWrite) ;
     
+    /** Commit a transaction - finish the transaction and make any changes permanent (if a "write" transaction) */  
+    public void commit() ;
     
+    /** Abort a transaction - finish the transaction and undo any changes (if a "write" transaction) */  
+    public void abort() ;
+
+    /** Say whether a transaction is active */ 
+    public boolean isInTransaction() ;
     
+    /** Finish the transaction - if a write transaction and commit() has not been called, then abort */  
+    public void end() ;
+
     
     /** Get the dataset in graph form */
     public DatasetGraph asDatasetGraph() ; 

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetGraphCaching.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetGraphCaching.java?rev=1204026&r1=1204025&r2=1204026&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetGraphCaching.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetGraphCaching.java Sat Nov 19 17:34:19 2011
@@ -121,16 +121,19 @@ abstract public class DatasetGraphCachin
     }
 
     @Override
-    public synchronized void close()
+    public void close()
     {
-        if ( closed )
-            return ;
-        closed = true ;
-        
-        defaultGraph = null ;
-        namedGraphs.clear() ;
-        _close() ;
-        super.close() ;
+        synchronized(this)
+        {
+            if ( closed )
+                return ;
+            closed = true ;
+
+            defaultGraph = null ;
+            namedGraphs.clear() ;
+            _close() ;
+            super.close() ;
+        }
     }
     
     // Helper implementations of operations.

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetImpl.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetImpl.java?rev=1204026&r1=1204025&r2=1204026&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetImpl.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/DatasetImpl.java Sat Nov 19 17:34:19 2011
@@ -119,6 +119,15 @@ public class DatasetImpl implements Data
             throw new UnsupportedOperationException("Transactions not supported") ;
         transactional.begin(mode) ;
     }
+    
+    /** Say whether a transaction is active */ 
+    @Override
+    public boolean isInTransaction()
+    {
+        if ( transactional == null )
+            throw new UnsupportedOperationException("Transactions not supported") ;
+        return transactional.isInTransaction() ;
+    }
 
     @Override
     public void commit()
@@ -137,6 +146,14 @@ public class DatasetImpl implements Data
     }
 
     @Override
+    public void end()
+    {
+        if ( transactional == null )
+            throw new UnsupportedOperationException("Transactions not supported") ;
+        transactional.end() ;
+    }
+
+    @Override
     public DatasetGraph asDatasetGraph() { return dsg ; }
 
     @Override

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/Transactional.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/Transactional.java?rev=1204026&r1=1204025&r2=1204026&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/Transactional.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/core/Transactional.java Sat Nov 19 17:34:19 2011
@@ -18,23 +18,29 @@
 
 package com.hp.hpl.jena.sparql.core;
 
-import org.openjena.atlas.lib.Closeable ;
-
 import com.hp.hpl.jena.query.ReadWrite ;
 
 /** Interface that encapulsated begin/abort|commit/close.
  * <p>The read lifcycle is:
- * <pre>  begin(READ) ... close()</pre>
+ * <pre>  begin(READ) ... end()</pre>
  * <p>The write lifcycle is:
- * <pre>  begin(WRITE) ... abort() or commit() ... close</pre>
+ * <pre>  begin(WRITE) ... abort() or commit() [end()is optional]</pre>
  * 
  */
-public interface Transactional extends Closeable 
+public interface Transactional 
 {
+    /** Start either a READ or WRITE transaction */ 
     public void begin(ReadWrite readWrite) ;
+    
+    /** Commit a transaction - finish the transaction and make any changes permanent (if a "write" transaction) */  
     public void commit() ;
+    
+    /** Abort a transaction - finish the transaction and undo any changes (if a "write" transaction) */  
     public void abort() ;
+
+    /** Say whether a transaction is active */ 
     public boolean isInTransaction() ;
-    @Override
-    public void close() ;
+    
+    /** Finish the transaction - if a write transaction and commit() has not been called, then abort */  
+    public void end() ;
 }