You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2014/07/08 09:35:05 UTC

svn commit: r1608683 - in /jackrabbit/oak/branches/1.0: ./ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java

Author: alexparvulescu
Date: Tue Jul  8 07:35:05 2014
New Revision: 1608683

URL: http://svn.apache.org/r1608683
Log:
OAK-1921 Merged revision 1607737


Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
    jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1607737

Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java?rev=1608683&r1=1608682&r2=1608683&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackup.java Tue Jul  8 07:35:05 2014
@@ -18,14 +18,16 @@
  */
 package org.apache.jackrabbit.oak.plugins.backup;
 
+import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE;
+
 import java.io.File;
 import java.io.IOException;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.jackrabbit.oak.plugins.segment.Compactor;
 import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder;
 import org.apache.jackrabbit.oak.plugins.segment.SegmentNodeState;
 import org.apache.jackrabbit.oak.plugins.segment.file.FileStore;
-import org.apache.jackrabbit.oak.spi.state.ApplyDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
 import org.apache.jackrabbit.oak.spi.state.NodeStore;
 import org.slf4j.Logger;
@@ -56,27 +58,29 @@ public class FileStoreBackup {
         FileStore backup = new FileStore(destination, MAX_FILE_SIZE, false);
         try {
             SegmentNodeState state = backup.getHead();
-            SegmentNodeBuilder builder = state.builder();
-
+            NodeState before = null;
             String beforeCheckpoint = state.getString("checkpoint");
             if (beforeCheckpoint == null) {
                 // 3.1 no stored checkpoint, so do the initial full backup
-                builder.setChildNode("root", current);
+                before = EMPTY_NODE;
             } else {
                 // 3.2 try to retrieve the previously backed up checkpoint
-                NodeState before = store.retrieve(beforeCheckpoint);
+                before = store.retrieve(beforeCheckpoint);
                 if (before == null) {
                     // the previous checkpoint is no longer available,
                     // so use the backed up state as the basis of the
                     // incremental backup diff
                     before = state.getChildNode("root");
                 }
-                current.compareAgainstBaseState(
-                        before, new ApplyDiff(builder.child("root")));
             }
-            builder.setProperty("checkpoint", checkpoint);
+
+            Compactor compactor = new Compactor(backup.getTracker().getWriter());
+            SegmentNodeState after = compactor.compact(before, current);
 
             // 4. commit the backup
+            SegmentNodeBuilder builder = state.builder();
+            builder.setProperty("checkpoint", checkpoint);
+            builder.setChildNode("root", after);
             backup.setHead(state, builder.getNodeState());
         } finally {
             backup.close();

Modified: jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java?rev=1608683&r1=1608682&r2=1608683&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/backup/FileStoreBackupTest.java Tue Jul  8 07:35:05 2014
@@ -64,7 +64,7 @@ public class FileStoreBackupTest {
 
     @Test
     public void testBackup() throws Exception {
-        FileStore source = new FileStore(src, 256, false);
+        FileStore source = new FileStore(src, 8, false);
 
         NodeStore store = new SegmentNodeStore(source);
         init(store);
@@ -83,7 +83,7 @@ public class FileStoreBackupTest {
 
     @Test
     public void testRestore() throws Exception {
-        FileStore source = new FileStore(src, 256, false);
+        FileStore source = new FileStore(src, 8, false);
 
         NodeStore store = new SegmentNodeStore(source);
         init(store);
@@ -110,7 +110,7 @@ public class FileStoreBackupTest {
 
     private static void compare(NodeStore store, File destination)
             throws IOException {
-        FileStore backup = new FileStore(destination, 256, false);
+        FileStore backup = new FileStore(destination, 8, false);
         assertEquals(store.getRoot(), new SegmentNodeStore(backup).getRoot());
         backup.close();
     }
@@ -147,7 +147,7 @@ public class FileStoreBackupTest {
         }
 
         for (File f : destination.listFiles()) {
-            if(!f.getName().endsWith(".tar")){
+            if (!f.getName().endsWith(".tar")) {
                 continue;
             }
             assertTrue(f.getName() + " is missing from the backup",