You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2015/03/17 12:21:38 UTC

[26/52] [abbrv] jena git commit: JENA-895 : Do backup inside a read transaction.

JENA-895 : Do backup inside a read transaction.

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

Branch: refs/heads/JENA-507
Commit: 3ecbdba6c11c1ae1ce197e937a3cefcf871e3a96
Parents: 5179485
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Mar 7 16:32:28 2015 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Mar 7 16:32:28 2015 +0000

----------------------------------------------------------------------
 .../java/org/apache/jena/fuseki/mgt/Backup.java | 25 ++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3ecbdba6/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
----------------------------------------------------------------------
diff --git a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
index 66aa4c4..b0a94e1 100644
--- a/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
+++ b/jena-fuseki2/jena-fuseki-core/src/main/java/org/apache/jena/fuseki/mgt/Backup.java
@@ -31,7 +31,10 @@ import org.apache.jena.fuseki.server.FusekiServer ;
 import org.apache.jena.riot.Lang ;
 import org.apache.jena.riot.RDFDataMgr ;
 
+import com.hp.hpl.jena.query.ReadWrite ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.Transactional ;
+import com.hp.hpl.jena.sparql.core.TransactionalNull ;
 import com.hp.hpl.jena.sparql.util.Utils ;
 
 /** Perform a backup */ 
@@ -58,7 +61,26 @@ public class Backup
     // same dataset multiple times at the same time. 
     private static Set<DatasetGraph> activeBackups = new HashSet<>() ;
     
-    public static void backup(DatasetGraph dsg, String backupfile) {
+    /** Perform a backup.
+     *  A backup is a dump of the datset in comrpessed N-Quads, done inside a transaction.
+     */
+    public static void backup(Transactional transactional, DatasetGraph dsg, String backupfile) {
+        if ( transactional == null )
+            transactional = new TransactionalNull() ;
+        transactional.begin(ReadWrite.READ);
+        try {
+            Backup.backup(dsg, backupfile) ;
+        }
+        finally {
+            transactional.end() ;
+        }
+    }
+    
+    /** Perform a backup.
+     * 
+     * @see #backup(Transactional, DatasetGraph, String)
+     */
+    private static void backup(DatasetGraph dsg, String backupfile) {
         if ( !backupfile.endsWith(".nq") )
             backupfile = backupfile + ".nq" ;
 
@@ -84,7 +106,6 @@ public class Backup
                 out = new FileOutputStream(backupfile) ;
                 out = new BufferedOutputStream(out) ;
             }
-
             RDFDataMgr.write(out, dsg, Lang.NQUADS) ;
             out.close() ;
             out = null ;