[exo-jcr-commits] exo-jcr SVN: r2412 - jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu May 20 09:25:50 EDT 2010
Author: areshetnyak
Date: 2010-05-20 09:25:49 -0400 (Thu, 20 May 2010)
New Revision: 2412
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
Log:
EXOJCR-737 : Use case was added to that issue.
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java 2010-05-20 09:22:35 UTC (rev 2411)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/TestBackupManager.java 2010-05-20 13:25:49 UTC (rev 2412)
@@ -1130,4 +1130,95 @@
// ok.
}
}
+
+ public void testIncrementalBackupRestoreEXOJCR_737() throws Exception
+ {
+ // full backup with BLOBs & incremental with BLOBs
+
+ // BLOBs for full
+ File tempf = createBLOBTempFile("testIncrementalBackupRestore737-", 5 * 1024); // 5M
+ tempf.deleteOnExit();
+
+ File backDir = new File("target/backup/ws1.incr737");
+ backDir.mkdirs();
+
+ BackupConfig config = new BackupConfig();
+ config.setRepository(repository.getName());
+ config.setWorkspace("ws1");
+ config.setBackupType(BackupManager.FULL_AND_INCREMENTAL);
+
+ config.setBackupDir(backDir);
+
+ backup.startBackup(config);
+
+ BackupChain bch = backup.findBackup(repository.getName(), "ws1");
+
+ // wait till full backup will be stopped
+ while (bch.getFullBackupState() != BackupJob.FINISHED)
+ {
+ Thread.yield();
+ Thread.sleep(50);
+ }
+
+ // add data
+ ws1Session.getRootNode().addNode("node_101").setProperty("exo:data", new FileInputStream(tempf));
+ ws1Session.getRootNode().addNode("node_102").setProperty("exo:extraData", new FileInputStream(tempf));
+ ws1Session.getRootNode().save(); // log here via listener
+
+ // stop backup
+ if (bch != null)
+ backup.stopBackup(bch);
+ else
+ fail("Can't get fullBackup chain");
+
+ //remove data
+ ws1Session.getRootNode().getNode("node_101").remove();
+ ws1Session.getRootNode().getNode("node_102").remove();
+ ws1Session.getRootNode().save();
+
+ // restore
+ RepositoryEntry re = (RepositoryEntry)ws1Session.getContainer().getComponentInstanceOfType(RepositoryEntry.class);
+ WorkspaceEntry ws1back = makeWorkspaceEntry("ws1back.incr737", "jdbcjcr25");
+
+ File backLog = new File(bch.getLogFilePath());
+ if (backLog.exists())
+ {
+ BackupChainLog bchLog = new BackupChainLog(backLog);
+
+ assertNotNull(bchLog.getStartedTime());
+ assertNotNull(bchLog.getFinishedTime());
+
+ backup.restore(bchLog, re.getName(), ws1back, false);
+
+ // check
+ SessionImpl back1 = null;
+ try
+ {
+ back1 = (SessionImpl)repository.login(credentials, ws1back.getName());
+
+ Node node_101 = back1.getRootNode().getNode("node_101");
+ assertNotNull(node_101);
+ assertEquals(tempf.length(), node_101.getProperty("exo:data").getStream().available());
+ compareStream(new FileInputStream(tempf), node_101.getProperty("exo:data").getStream());
+
+ Node node_102 = back1.getRootNode().getNode("node_102");
+ assertNotNull(node_102);
+ assertEquals(tempf.length(), node_102.getProperty("exo:extraData").getStream().available());
+ compareStream(new FileInputStream(tempf), node_102.getProperty("exo:extraData").getStream());
+
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+ finally
+ {
+ if (back1 != null)
+ back1.logout();
+ }
+ }
+ else
+ fail("There are no backup files in " + backDir.getAbsolutePath());
+ }
}
More information about the exo-jcr-commits
mailing list