RepositoryBackupConfig config = new RepositoryBackupConfig();
config.setRepository(repository.getConfiguration().getName());
config.setBackupType(BackupManager.FULL_BACKUP_ONLY);
config.setBackupDir(backDir);
RepositoryBackupChain bch = backup.startBackup(config);
waitEndOfBackup(bch);
backup.stopBackup(bch);
// restore with RepositoryCreatorService
RepositoryCreationService creatorService =
(RepositoryCreationService)container.getComponentInstanceOfType(RepositoryCreationService.class);
assertNotNull(creatorService);
String tenantName = "new_repository_mutli-db_existing_ds";
String repoToken = creatorService.reserveRepositoryName(tenantName);
// restore
RepositoryEntry newRE =
helper.createRepositoryEntry(DatabaseStructureType.MULTI, repository.getConfiguration().getSystemWorkspaceName(), null);
newRE.setName(tenantName);
WorkspaceEntry newWSEntry = helper.createWorkspaceEntry(DatabaseStructureType.MULTI, null);
newWSEntry.setName(wsEntry.getName());
newRE.addWorkspace(newWSEntry);
try
{
creatorService.createRepository(bch.getBackupId(), newRE, repoToken);
fail("Exception should be thrown");
}
catch (RepositoryConfigurationException e)
{
// ok