[exo-jcr-commits] exo-jcr SVN: r186 - jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Sep 25 06:57:40 EDT 2009


Author: gavrikvetal
Date: 2009-09-25 06:57:40 -0400 (Fri, 25 Sep 2009)
New Revision: 186

Modified:
   jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
Log:
EXOJCR-160 HttpBackupAgent should return "Restore Info" bean after new restore job is started


Modified: jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java
===================================================================
--- jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java	2009-09-25 09:03:45 UTC (rev 185)
+++ jcr/trunk/component/ext/src/main/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgent.java	2009-09-25 10:57:40 UTC (rev 186)
@@ -437,9 +437,36 @@
          BackupChainLog backupChainLog = new BackupChainLog(backupLog);
 
          backupManager.restore(backupChainLog, repository, wEntry, true);
+
+         /*
+          * Sleeping
+          * Restore must be initialized by job thread
+          */
          
-         ShortInfo shortInfo = new ShortInfo(ShortInfo.CURRENT, backupChainLog);
-         return Response.ok(shortInfo).cacheControl(noCache).build();
+         Thread.sleep(100);
+         
+         /*
+          * search necessary restore
+          */
+
+         List<JobWorkspaceRestore> restoreJobs = backupManager.getRestores();
+         JobWorkspaceRestore restore = null;
+         for (JobWorkspaceRestore curRestore : restoreJobs) {
+            if (curRestore.getRepositoryName().equals(repository) &&
+                     curRestore.getWorkspaceName().equals(wEntry.getName())) {
+               restore = curRestore;
+               break;
+            }
+         }
+         
+         if (restore != null) {
+            ShortInfo info =
+               new ShortInfo(ShortInfo.RESTORE, restore.getBackupChainLog(), restore.getStartTime(), restore.getEndTime(),
+                  restore.getStateRestore(), restore.getRepositoryName(), restore.getWorkspaceName());         
+            return Response.ok(info).cacheControl(noCache).build();
+         }
+         
+         return Response.ok().cacheControl(noCache).build();         
       }
       catch (WorkspaceRestoreExeption e)
       {



More information about the exo-jcr-commits mailing list