Author: areshetnyak
Date: 2010-03-25 08:47:11 -0400 (Thu, 25 Mar 2010)
New Revision: 2121
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobRepositoryRestore.java
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
Log:
EXOJCR-549 : The implementation backup/restore whole repository in HTTPBackupAgent.
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java 2010-03-25
12:07:57 UTC (rev 2120)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/RepositoryBackupChainLog.java 2010-03-25
12:47:11 UTC (rev 2121)
@@ -366,11 +366,14 @@
* Finalize log.
*
*/
- public void endLog()
+ public synchronized void endLog()
{
- finishedTime = Calendar.getInstance();
- finalized = true;
- logWriter.writeEndLog();
+ if (!finalized)
+ {
+ finishedTime = Calendar.getInstance();
+ finalized = true;
+ logWriter.writeEndLog();
+ }
}
/**
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2010-03-25
12:07:57 UTC (rev 2120)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/BackupManagerImpl.java 2010-03-25
12:47:11 UTC (rev 2121)
@@ -1399,8 +1399,7 @@
}
JobRepositoryRestore jobRepositoryRestore =
- new JobRepositoryRestore(repoService, this, repositoryEntry, workspacesMapping,
new RepositoryBackupChainLog(
- new File(rblog.getLogFilePath()))); // TODO
+ new JobRepositoryRestore(repoService, this, repositoryEntry, workspacesMapping,
rblog);
if (asynchronous)
{
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobRepositoryRestore.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobRepositoryRestore.java 2010-03-25
12:07:57 UTC (rev 2120)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/impl/JobRepositoryRestore.java 2010-03-25
12:47:11 UTC (rev 2121)
@@ -36,11 +36,9 @@
import org.exoplatform.services.jcr.ext.backup.BackupChainLog;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
import org.exoplatform.services.jcr.ext.backup.RepositoryRestoreExeption;
-import org.exoplatform.services.jcr.ext.backup.server.WorkspaceRestoreExeption;
import org.exoplatform.services.jcr.impl.core.BackupWorkspaceInitializer;
import org.exoplatform.services.jcr.impl.core.RepositoryImpl;
import org.exoplatform.services.jcr.impl.core.SessionRegistry;
-import org.exoplatform.services.jcr.impl.core.SysViewWorkspaceInitializer;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
@@ -182,18 +180,16 @@
// save configuration to persistence (file or persister)
repositoryService.getConfig().retain();
- backupManager.restore(repositoryBackupChainLog, repositoryEntry, false);
- // TODO
- // for (WorkspaceEntry wsEntry : originalWorkspaceEntrys)
- // {
- // if
(!(wsEntry.getName().equals(repositoryEntry.getSystemWorkspaceName())))
- // {
- // currennWorkspaceName = wsEntry.getName();
- // backupManager.restore(workspacesMapping.get(wsEntry.getName()),
repositoryEntry.getName(), wsEntry,
- // false);
- // }
- // }
+ for (WorkspaceEntry wsEntry : originalWorkspaceEntrys)
+ {
+ if (!(wsEntry.getName().equals(repositoryEntry.getSystemWorkspaceName())))
+ {
+ currennWorkspaceName = wsEntry.getName();
+ backupManager.restore(workspacesMapping.get(wsEntry.getName()),
repositoryEntry.getName(), wsEntry,
+ false);
+ }
+ }
}
catch (InvalidItemStateException e)
{
Modified:
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
===================================================================
---
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java 2010-03-25
12:07:57 UTC (rev 2120)
+++
jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java 2010-03-25
12:47:11 UTC (rev 2121)
@@ -489,75 +489,6 @@
}
/**
- * Drops repository.
- *
- * @param repository
- * String, the repository name
- * @param forceSessionClose
- * Boolean, flag to force session close
- * @return Response return the response
- */
- @GET
- @RolesAllowed("administrators")
- @Path("/drop-repository/{repo}/{force-session-close}")
- public Response dropRepository(@PathParam("repo") String repository,
- @PathParam("force-session-close") Boolean forceSessionClose)
- {
-
- String failMessage;
- Response.Status status;
- Throwable exception;
-
- try
- {
- validateRepositoryName(repository);
-
- RepositoryImpl repositoryImpl =
(RepositoryImpl)repositoryService.getRepository(repository);
-
- if (forceSessionClose)
- {
- for (String workspace : repositoryImpl.getWorkspaceNames())
- {
- forceCloseSession(repository, workspace);
- }
- }
-
- for (String workspace : repositoryImpl.getWorkspaceNames())
- {
- repositoryImpl.removeWorkspace(workspace);
- }
- repositoryService.getConfig().retain(); // save configuration to persistence
(file or persister)
-
- return Response.ok().cacheControl(noCache).build();
-
- }
- catch (RepositoryException e)
- {
- exception = e;
- status = Response.Status.INTERNAL_SERVER_ERROR;
- failMessage = e.getMessage();
- }
- catch (RepositoryConfigurationException e)
- {
- exception = e;
- status = Response.Status.INTERNAL_SERVER_ERROR;
- failMessage = e.getMessage();
- }
- catch (Throwable e)
- {
- exception = e;
- status = Response.Status.INTERNAL_SERVER_ERROR;
- failMessage = e.getMessage();
- }
-
- log.error("Can not drop the repository '" + "/" +
repository, exception);
-
- return Response.status(status).entity("Can not drop the repository '"
+ "/" + repository + "' : " + failMessage)
- .type(MediaType.TEXT_PLAIN).cacheControl(noCache).build();
-
- }
-
- /**
* Restore the workspace.
*
* @param wEntry