[exo-jcr-commits] exo-jcr SVN: r5113 - in jcr/trunk/exo.jcr.component.ext: src/test/java/org/exoplatform/services/jcr/ext/backup/usecase and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Oct 27 11:03:27 EDT 2011
Author: tolusha
Date: 2011-10-27 11:03:27 -0400 (Thu, 27 Oct 2011)
New Revision: 5113
Modified:
jcr/trunk/exo.jcr.component.ext/pom.xml
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/usecase/TestBackupRestore.java
Log:
EXOJCR-1585: add tests for restoring workspace only
Modified: jcr/trunk/exo.jcr.component.ext/pom.xml
===================================================================
--- jcr/trunk/exo.jcr.component.ext/pom.xml 2011-10-27 15:03:02 UTC (rev 5112)
+++ jcr/trunk/exo.jcr.component.ext/pom.xml 2011-10-27 15:03:27 UTC (rev 5113)
@@ -196,7 +196,6 @@
<exclude>**/backup/BaseRDBMSBackupTest.java</exclude>
<exclude>**/backup/TestBackupScheduler.java</exclude>
<exclude>**/backup/TestBackupRestart.java</exclude>
- <exclude>**/backup/usecase/TestLoadBackup.java*</exclude>
<exclude>**/replication/**</exclude>
<exclude>**/repository/creation/cluster/**</exclude>
</excludes>
Modified: jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/usecase/TestBackupRestore.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/usecase/TestBackupRestore.java 2011-10-27 15:03:02 UTC (rev 5112)
+++ jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/usecase/TestBackupRestore.java 2011-10-27 15:03:27 UTC (rev 5113)
@@ -18,7 +18,11 @@
import org.exoplatform.container.xml.InitParams;
import org.exoplatform.container.xml.PropertiesParam;
+import org.exoplatform.services.jcr.config.WorkspaceEntry;
import org.exoplatform.services.jcr.core.ManageableRepository;
+import org.exoplatform.services.jcr.ext.backup.BackupChain;
+import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.BackupConfig;
import org.exoplatform.services.jcr.ext.backup.BackupJob;
import org.exoplatform.services.jcr.ext.backup.BackupManager;
import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
@@ -27,6 +31,7 @@
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupConfig;
import org.exoplatform.services.jcr.ext.backup.impl.BackupManagerImpl;
import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
+import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
import org.exoplatform.services.jcr.impl.core.SessionImpl;
import java.io.File;
@@ -45,26 +50,110 @@
{
public void testBackupRestoreExistingRepositorySingleDB() throws Exception
{
- repositoryBackupRestore("db1");
- repositoryBackupRestore("db1");
+ repositoryBackupRestore("db1", 1);
+ repositoryBackupRestore("db1", 2);
}
public void testBackupRestoreExistingRepositoryMultiDB() throws Exception
{
- repositoryBackupRestore("db2");
- repositoryBackupRestore("db2");
+ repositoryBackupRestore("db2", 3);
+ repositoryBackupRestore("db2", 4);
}
- protected void repositoryBackupRestore(String repositoryName) throws Exception
+ public void testBackupRestoreExistingWorkspaceSingleDB() throws Exception
{
- addConent(repositoryName);
+ workspaceBackupRestore("db1", 5);
+ workspaceBackupRestore("db1", 6);
+ }
+ public void testBackupRestoreExistingWorkspaceMultiDB() throws Exception
+ {
+ workspaceBackupRestore("db2", 7);
+ workspaceBackupRestore("db2", 8);
+ }
+
+ protected void workspaceBackupRestore(String repositoryName, int number) throws Exception
+ {
+ addConent(repositoryName, number);
+ String workspaceName =
+ repositoryService.getRepository(repositoryName).getConfiguration().getSystemWorkspaceName();
+
+ WorkspaceEntry wsEntry = null;
+ for (WorkspaceEntry entry : repositoryService.getRepository(repositoryName).getConfiguration()
+ .getWorkspaceEntries())
+ {
+ if (entry.getName().equals(workspaceName))
+ {
+ wsEntry = entry;
+ break;
+ }
+ }
+
BackupManagerImpl backupManagerImpl = (BackupManagerImpl)getBackupManager();
backupManagerImpl.start();
File backDir = new File("target/backup/" + repositoryName);
backDir.mkdirs();
+ BackupConfig config = new BackupConfig();
+ config.setRepository(repositoryName);
+ config.setWorkspace(workspaceName);
+ config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+ config.setBackupDir(backDir);
+
+ BackupChain bch = backupManagerImpl.startBackup(config);
+
+ // wait till full backup will stop
+ while (bch.getFullBackupState() != BackupChain.FINISHED)
+ {
+ Thread.yield();
+ Thread.sleep(30);
+ }
+
+ if (bch != null)
+ {
+ backupManagerImpl.stopBackup(bch);
+ }
+
+ // restore
+ File backLog = new File(bch.getLogFilePath());
+ if (backLog.exists())
+ {
+ BackupChainLog bchLog = new BackupChainLog(backLog);
+
+ assertNotNull(bchLog.getStartedTime());
+ assertNotNull(bchLog.getFinishedTime());
+
+ backupManagerImpl.restoreExistingWorkspace(bchLog, repositoryName, wsEntry, false);
+
+ JobWorkspaceRestore restore = backupManagerImpl.getLastRestore(repositoryName, workspaceName);
+ assertNotNull(restore);
+ // if (restore != null)
+ // {
+ // if (restore.getStateRestore() != JobWorkspaceRestore.RESTORE_SUCCESSFUL)
+ // {
+ // fail(restore.getRestoreException().getMessage());
+ // }
+ // }
+ }
+ else
+ {
+ fail("There are no backup files in " + backDir.getAbsolutePath());
+ }
+
+ checkConent(repositoryName, number);
+ }
+
+ protected void repositoryBackupRestore(String repositoryName, int number) throws Exception
+ {
+ addConent(repositoryName, number);
+
+ BackupManagerImpl backupManagerImpl = (BackupManagerImpl)getBackupManager();
+ backupManagerImpl.start();
+
+ File backDir = new File("target/backup/" + repositoryName);
+ backDir.mkdirs();
+
RepositoryBackupConfig config = new RepositoryBackupConfig();
config.setRepository(repositoryName);
config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
@@ -110,7 +199,7 @@
fail("There are no backup files in " + backDir.getAbsolutePath());
}
- checkConent(repositoryName);
+ checkConent(repositoryName, number);
}
protected ExtendedBackupManager getBackupManager()
@@ -126,39 +215,41 @@
return new BackupManagerImpl(initParams, repositoryService);
}
- protected void addConent(String repositoryName) throws Exception
+ protected void addConent(String repositoryName, int number) throws Exception
{
ManageableRepository repository = repositoryService.getRepository(repositoryName);
- String wsName = repository.getConfiguration().getSystemWorkspaceName();
-
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
- try
+ for (String wsName : repository.getWorkspaceNames())
{
- Node rootNode = session.getRootNode().addNode("test");
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+ try
+ {
+ Node rootNode = session.getRootNode().addNode("test" + number);
- rootNode.addNode("node1").setProperty("prop1", "value1");
- session.save();
+ rootNode.addNode("node1").setProperty("prop1", "value1");
+ session.save();
+ }
+ finally
+ {
+ session.logout();
+ }
}
- finally
- {
- session.logout();
- }
}
- protected void checkConent(String repositoryName) throws Exception
+ protected void checkConent(String repositoryName, int number) throws Exception
{
ManageableRepository repository = repositoryService.getRepository(repositoryName);
- String wsName = repository.getConfiguration().getSystemWorkspaceName();
-
- SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
- try
+ for (String wsName : repository.getWorkspaceNames())
{
- Node rootNode = session.getRootNode().getNode("test");
- assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+ SessionImpl session = (SessionImpl)repository.login(credentials, wsName);
+ try
+ {
+ Node rootNode = session.getRootNode().getNode("test" + number);
+ assertEquals(rootNode.getNode("node1").getProperty("prop1").getString(), "value1");
+ }
+ finally
+ {
+ session.logout();
+ }
}
- finally
- {
- session.logout();
- }
}
}
More information about the exo-jcr-commits
mailing list