Author: areshetnyak
Date: 2011-10-24 11:05:23 -0400 (Mon, 24 Oct 2011)
New Revision: 5082
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
Log:
EXOJCR-1571 : Rename approach was adopted for MySQL, PostgreSQL and Sybase DBs.
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-10-24
15:04:53 UTC (rev 5081)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobExistingRepositorySameConfigRestore.java 2011-10-24
15:05:23 UTC (rev 5082)
@@ -35,8 +35,6 @@
import org.exoplatform.services.jcr.impl.clean.rdbms.DBCleaner;
import org.exoplatform.services.jcr.impl.clean.rdbms.DummyDBCleaner;
import
org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
-import org.exoplatform.services.jcr.impl.storage.jdbc.DBConstants;
-import org.exoplatform.services.jcr.impl.storage.jdbc.DialectDetecter;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer;
import org.exoplatform.services.jcr.impl.util.io.FileCleanerHolder;
@@ -115,10 +113,7 @@
});
jdbcConn.setAutoCommit(false);
- if
(!(DialectDetecter.detect(jdbcConn.getMetaData()).equals(DBConstants.DB_DIALECT_SYBASE)))
- {
- dbCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn,
repositoryEntry);
- }
+ dbCleaner = DBCleanService.getRepositoryDBCleaner(jdbcConn,
repositoryEntry);
}
repositoryService.getRepository(this.repositoryEntry.getName()).setState(ManageableRepository.SUSPENDED);
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-10-24
15:04:53 UTC (rev 5081)
+++
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/AbstractBackupUseCasesTest.java 2011-10-24
15:05:23 UTC (rev 5082)
@@ -1308,104 +1308,154 @@
}
/**
- * Use JobExistingWorkspaceSameConfigRestore to restore.
- */
+ * Use JobExistingWorkspaceSameConfigRestore to restore.
+ */
+
+
+
+
+
public void testExistedWorkspaceRestoreSingleDBTwoWS() throws Exception
{
- // prepare
- String dsName1 = helper.createDatasource();
- String dsName2 = helper.createDatasource();
+ // prepare
+ String dsName1 = helper.createDatasource();
+ String dsName2 = helper.createDatasource();
- ManageableRepository repository = helper.createRepository(container, false,
dsName1);
- WorkspaceEntry wsEntry1 = helper.createWorkspaceEntry(false, dsName1);
- helper.addWorkspace(repository, wsEntry1);
- addConent(repository, wsEntry1.getName());
+ ManageableRepository repository = helper.createRepository(container, false, dsName1);
+ WorkspaceEntry wsEntry1 = helper.createWorkspaceEntry(false, dsName1);
+ helper.addWorkspace(repository, wsEntry1);
+ addConent(repository, wsEntry1.getName());
- WorkspaceEntry wsEntry2 = helper.createWorkspaceEntry(false, dsName2);
- helper.addWorkspace(repository, wsEntry2);
- addConent(repository, wsEntry2.getName());
+ WorkspaceEntry wsEntry2 = helper.createWorkspaceEntry(false, dsName2);
+ helper.addWorkspace(repository, wsEntry2);
+ addConent(repository, wsEntry2.getName());
- // backup
- File backDir = new File("target/backup/" + IdGenerator.generate());
- backDir.mkdirs();
+ // backup
+ File backDir = new File("target/backup/" + IdGenerator.generate());
+ backDir.mkdirs();
- BackupConfig config = new BackupConfig();
- config.setRepository(repository.getConfiguration().getName());
- config.setWorkspace(wsEntry1.getName());
- config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
- config.setBackupDir(backDir);
+ BackupConfig config = new BackupConfig();
+ config.setRepository(repository.getConfiguration().getName());
+ config.setWorkspace(wsEntry1.getName());
+ config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+ config.setBackupDir(backDir);
- BackupChain bch = backup.startBackup(config);
- waitEndOfBackup(bch);
- backup.stopBackup(bch);
+ BackupChain bch = backup.startBackup(config);
+ waitEndOfBackup(bch);
+ backup.stopBackup(bch);
- // restore
- File backLog = new File(bch.getLogFilePath());
- assertTrue(backLog.exists());
+ // restore
+ File backLog = new File(bch.getLogFilePath());
+ assertTrue(backLog.exists());
- BackupChainLog bchLog = new BackupChainLog(backLog);
+ BackupChainLog bchLog = new BackupChainLog(backLog);
- assertNotNull(bchLog.getStartedTime());
- assertNotNull(bchLog.getFinishedTime());
+ assertNotNull(bchLog.getStartedTime());
+ assertNotNull(bchLog.getFinishedTime());
- backup.restoreExistingWorkspace(bchLog, repository.getConfiguration().getName(),
repository.getConfiguration()
- .getWorkspaceEntries().get(1), false);
- checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(1).getName());
- checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(2).getName());
+ backup.restoreExistingWorkspace(bchLog, repository.getConfiguration().getName(),
repository.getConfiguration()
+ .getWorkspaceEntries().get(1), false);
+ checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(1).getName());
+ checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(2).getName());
}
/**
- * Use JobExistingWorkspaceRestore to restore.
- */
+ * Use JobExistingWorkspaceRestore to restore.
+ */
+
+
+
+
+
public void testExistedWorkspaceRestoreSingleDBTwoWSWithDiffConfig() throws Exception
{
+ // prepare
+ String dsName1 = helper.createDatasource();
+ String dsName2 = helper.createDatasource();
+
+ ManageableRepository repository = helper.createRepository(container, false, dsName1);
+ WorkspaceEntry wsEntry1 = helper.createWorkspaceEntry(false, dsName1);
+ helper.addWorkspace(repository, wsEntry1);
+ addConent(repository, wsEntry1.getName());
+
+ WorkspaceEntry wsEntry2 = helper.createWorkspaceEntry(false, dsName2);
+ helper.addWorkspace(repository, wsEntry2);
+ addConent(repository, wsEntry2.getName());
+
+ // backup
+ File backDir = new File("target/backup/" + IdGenerator.generate());
+ backDir.mkdirs();
+
+ BackupConfig config = new BackupConfig();
+ config.setRepository(repository.getConfiguration().getName());
+ config.setWorkspace(wsEntry1.getName());
+ config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
+ config.setBackupDir(backDir);
+
+ BackupChain bch = backup.startBackup(config);
+ waitEndOfBackup(bch);
+ backup.stopBackup(bch);
+
+ // restore
+ File backLog = new File(bch.getLogFilePath());
+ assertTrue(backLog.exists());
+
+ BackupChainLog bchLog = new BackupChainLog(backLog);
+
+ assertNotNull(bchLog.getStartedTime());
+ assertNotNull(bchLog.getFinishedTime());
+
+ // change cofig
+ WorkspaceEntry wsEntry =
helper.copyWorkspaceEntry(repository.getConfiguration().getWorkspaceEntries().get(1));
+
+ List<SimpleParameterEntry> params = wsEntry.getContainer().getParameters();
+ params.set(2, new SimpleParameterEntry("max-buffer-size",
"307200"));
+
+ wsEntry.getContainer().setParameters(params);
+
+ backup.restoreExistingWorkspace(bchLog, repository.getConfiguration().getName(),
wsEntry, false);
+ checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(1).getName());
+ checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(2).getName());
+ }
+
+ public void testExistedRepositoryRestoreSingelDBSameConfig() throws Exception
+ {
// prepare
- String dsName1 = helper.createDatasource();
- String dsName2 = helper.createDatasource();
+ String dsName = helper.createDatasource();
+ ManageableRepository repository = helper.createRepository(container, false,
dsName);
+ addConent(repository, repository.getConfiguration().getSystemWorkspaceName());
- ManageableRepository repository = helper.createRepository(container, false,
dsName1);
- WorkspaceEntry wsEntry1 = helper.createWorkspaceEntry(false, dsName1);
+ WorkspaceEntry wsEntry1 = helper.createWorkspaceEntry(false, dsName);
helper.addWorkspace(repository, wsEntry1);
addConent(repository, wsEntry1.getName());
- WorkspaceEntry wsEntry2 = helper.createWorkspaceEntry(false, dsName2);
- helper.addWorkspace(repository, wsEntry2);
- addConent(repository, wsEntry2.getName());
-
// backup
File backDir = new File("target/backup/" + IdGenerator.generate());
backDir.mkdirs();
- BackupConfig config = new BackupConfig();
+ RepositoryBackupConfig config = new RepositoryBackupConfig();
config.setRepository(repository.getConfiguration().getName());
- config.setWorkspace(wsEntry1.getName());
config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
config.setBackupDir(backDir);
- BackupChain bch = backup.startBackup(config);
+ RepositoryBackupChain bch = backup.startBackup(config);
waitEndOfBackup(bch);
backup.stopBackup(bch);
- // restore
File backLog = new File(bch.getLogFilePath());
assertTrue(backLog.exists());
- BackupChainLog bchLog = new BackupChainLog(backLog);
+ RepositoryBackupChainLog bchLog = new RepositoryBackupChainLog(backLog);
assertNotNull(bchLog.getStartedTime());
assertNotNull(bchLog.getFinishedTime());
-
- // change cofig
- WorkspaceEntry wsEntry =
helper.copyWorkspaceEntry(repository.getConfiguration().getWorkspaceEntries().get(1));
- List<SimpleParameterEntry> params = wsEntry.getContainer().getParameters();
- params.set(2, new SimpleParameterEntry("max-buffer-size",
"307200"));
-
- wsEntry.getContainer().setParameters(params);
-
- backup.restoreExistingWorkspace(bchLog, repository.getConfiguration().getName(),
wsEntry, false);
- checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(1).getName());
- checkConent(repository,
repository.getConfiguration().getWorkspaceEntries().get(2).getName());
+ // restore
+ long timeOfRestore = System.currentTimeMillis();
+ backup.restoreExistingRepository(bchLog,
helper.copyRepositoryEntry(repository.getConfiguration()), false);
+ log.info("Total time of restore the repository = " +
((System.currentTimeMillis() - timeOfRestore)) + "ms.");
+
checkConent(repositoryService.getRepository(repository.getConfiguration().getName()),
repository
+ .getConfiguration().getSystemWorkspaceName());
}
/**
Modified:
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-10-24
15:04:53 UTC (rev 5081)
+++
jcr/trunk/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/util/TesterConfigurationHelper.java 2011-10-24
15:05:23 UTC (rev 5082)
@@ -199,6 +199,35 @@
}
/**
+ * Create copy of repository entry.
+ */
+ public RepositoryEntry copyRepositoryEntry(RepositoryEntry baseRepositoryEntry) throws
Exception
+ {
+ ArrayList<WorkspaceEntry> wsEntries = new ArrayList<WorkspaceEntry>();
+
+ for (WorkspaceEntry wsEntry : baseRepositoryEntry.getWorkspaceEntries())
+ {
+ WorkspaceEntry newWSEntry = copyWorkspaceEntry(wsEntry);
+
+ wsEntries.add(newWSEntry);
+ }
+
+ RepositoryEntry newRepositoryEntry = new RepositoryEntry();
+
+
newRepositoryEntry.setSystemWorkspaceName(baseRepositoryEntry.getSystemWorkspaceName());
+ newRepositoryEntry.setAccessControl(baseRepositoryEntry.getAccessControl());
+
newRepositoryEntry.setAuthenticationPolicy(baseRepositoryEntry.getAuthenticationPolicy());
+
newRepositoryEntry.setDefaultWorkspaceName(baseRepositoryEntry.getDefaultWorkspaceName());
+ newRepositoryEntry.setName(baseRepositoryEntry.getName());
+ newRepositoryEntry.setSecurityDomain(baseRepositoryEntry.getSecurityDomain());
+ newRepositoryEntry.setSessionTimeOut(baseRepositoryEntry.getSessionTimeOut());
+
+ newRepositoryEntry.setWorkspaceEntries(wsEntries);
+ return newRepositoryEntry;
+
+ }
+
+ /**
* Create copy of list with SimpleParameterEntry-s
*/
private List<SimpleParameterEntry> copyList(List<SimpleParameterEntry>
baseArrayList)