protected void importIntoWorkspace( String workspaceName, String resourcePath ) throws IOException, RepositoryException { Session session = null; try { session = repository().login(workspaceName); } catch (NoSuchWorkspaceException e) { // Create the workspace ... session().getWorkspace().createWorkspace(workspaceName); // Create a new session ... session = repository().login(workspaceName); } try { importContent(session.getRootNode(), resourcePath, ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW); } finally { session.logout(); } } }
private void wipeRepository() { // shutdown the repo and remove all repo data (stored on disk) repository().doShutdown(false); assertTrue(FileUtil.delete(backupRepoDir)); }
protected void addFilesToWorkspace(String workspaceName) throws Exception { Session session = null; try { session = repository().login(workspaceName); } catch (NoSuchWorkspaceException e) { // Create the workspace ... session().getWorkspace().createWorkspace(workspaceName); // Create a new session ... session = repository().login(workspaceName); } try { for (int i = 0; i < BINARY_RESOURCES.length; i++) { tools.uploadFile(session, "file_" + i, resourceStream(BINARY_RESOURCES[i])); } session.save(); } finally { session.logout(); } }
assertContentInWorkspace(repository(), "default"); assertContentInWorkspace(repository(), "ws2"); assertContentInWorkspace(repository(), "ws3"); assertContentInWorkspace(repository(), "default", "/node-not-in-backup"); assertContentInWorkspace(repository(), "ws2"); assertContentInWorkspace(repository(), "ws3"); JcrSession newSession = repository().login(); try { Problems restoreProblems = newSession.getWorkspace().getRepositoryManager().restoreRepository(backupDirectory); assertWorkspaces(repository(), "default", "ws2", "ws3"); assertContentInWorkspace(repository(), "default"); assertContentInWorkspace(repository(), "ws2"); assertContentInWorkspace(repository(), "ws3"); assertContentNotInWorkspace(repository(), "default", "/node-not-in-backup"); queryContentInWorkspace(repository(), null);
protected void assertFilesInWorkspace(String workspaceName) throws Exception { Session session = repository().login(workspaceName); try { for (int i = 0; i < BINARY_RESOURCES.length; i++) { String fileName = "/file_" + i; Node file = session.getNode(fileName).getNode("jcr:content"); Binary binary = file.getProperty("jcr:data").getBinary(); assertNotNull(binary); byte[] expectedContent = IoUtil.readBytes(resourceStream(BINARY_RESOURCES[i])); byte[] actualContent = IoUtil.readBytes(binary.getStream()); assertArrayEquals("Binary content to valid for " + fileName, expectedContent, actualContent); } } finally { session.logout(); } }
private void makeBackup(BackupOptions options) throws RepositoryException { TestingUtil.waitUntilFolderCleanedUp(backupDirectory.getPath()); JcrSession session = repository().login(); try { Problems problems = session.getWorkspace().getRepositoryManager().backupRepository(backupDirectory, options); assertNoProblems(problems); } finally { session.logout(); } }
assertWorkspaces(repository(), "default"); assertContentInWorkspace(repository(), "default"); assertContentInWorkspace(repository(), "default", "/node-not-in-backup"); JcrSession newSession = repository().login(); try { Problems restoreProblems = newSession.getWorkspace().getRepositoryManager().restoreRepository(backupDirectory); assertWorkspaces(repository(), "default"); assertContentInWorkspace(repository(), "default"); assertContentNotInWorkspace(repository(), "default", "/node-not-in-backup"); queryContentInWorkspace(repository(), null);
@Test @FixFor( "MODE-2253" ) public void shouldBackupAndRestoreWithExistingUserTransaction() throws Exception { loadContent(); startTransaction(); Problems problems = session().getWorkspace().getRepositoryManager().backupRepository(backupDirectory); assertNoProblems(problems); problems = session().getWorkspace().getRepositoryManager().restoreRepository(backupDirectory); assertNoProblems(problems); rollbackTransaction(); assertContentInWorkspace(repository(), "default"); assertContentInWorkspace(repository(), "ws2"); assertContentInWorkspace(repository(), "ws3"); }
private void restoreBackup() throws Exception { startRepositoryWithConfiguration(resourceStream("config/backup-repo-config.json")); JcrSession session = repository().login(); Problems problems = session.getWorkspace().getRepositoryManager().restoreRepository(backupDirectory); assertNoProblems(problems); session.logout(); }
@Test @FixFor( "MODE-2440" ) public void shouldRestoreBinaryReferencesWhenExcludedFromBackup() throws Exception { loadBinaryContent(); verifyBinaryContent(); // Make the backup, and check that there are no problems ... BackupOptions backupOptions = new BackupOptions() { @Override public boolean includeBinaries() { return false; } }; Problems problems = session().getWorkspace().getRepositoryManager().backupRepository(backupDirectory, backupOptions); assertNoProblems(problems); // shutdown the repo and remove just the repo main store (not the binary store) assertTrue(repository().shutdown().get()); FileUtil.delete(backupRepoDir.getPath() + "/store"); // start a fresh empty repo and then restore just the data without binaries startRepositoryWithConfigurationFrom("config/backup-repo-config.json"); RestoreOptions restoreOptions = new RestoreOptions() { @Override public boolean includeBinaries() { return false; } }; problems = session().getWorkspace().getRepositoryManager().restoreRepository(backupDirectory, restoreOptions); assertNoProblems(problems); verifyBinaryContent(); }
session().save(); assertContentInWorkspace(repository(), "default", "/node-not-in-backup"); assertContentInWorkspace(repository(), "ws2"); assertContentInWorkspace(repository(), "ws3");