Author: areshetnyak
Date: 2010-12-28 04:11:49 -0500 (Tue, 28 Dec 2010)
New Revision: 3739
Modified:
jcr/branches/1.12.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java
Log:
JCR-1502 : Fix problem with HTTPBackupAgentTest.
Modified:
jcr/branches/1.12.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java
===================================================================
---
jcr/branches/1.12.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java 2010-12-28
09:01:56 UTC (rev 3738)
+++
jcr/branches/1.12.x/exo.jcr.component.ext/src/test/java/org/exoplatform/services/jcr/ext/backup/server/HTTPBackupAgentTest.java 2010-12-28
09:11:49 UTC (rev 3739)
@@ -36,6 +36,7 @@
import org.exoplatform.services.jcr.ext.backup.ExtendedBackupManager;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChain;
import org.exoplatform.services.jcr.ext.backup.RepositoryBackupChainLog;
+import org.exoplatform.services.jcr.ext.backup.impl.JobRepositoryRestore;
import org.exoplatform.services.jcr.ext.backup.impl.JobWorkspaceRestore;
import org.exoplatform.services.jcr.ext.backup.server.bean.BackupConfigBean;
import
org.exoplatform.services.jcr.ext.backup.server.bean.response.BackupServiceInfoBean;
@@ -898,7 +899,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws3");
// Get restore info to workspace /db6/ws3
{
@@ -1049,7 +1050,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws3");
// Get restore info to workspace /db6/ws3
{
@@ -1168,7 +1169,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws3");
// Get restore info to workspace /db6/ws3
{
@@ -1260,7 +1261,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws2");
// Get restore info to workspace /db6/ws2
{
@@ -1354,7 +1355,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws2");
// Get restore info to workspace /db6/ws2
{
@@ -1481,7 +1482,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws3");
// Get restore info to workspace /db6/ws3
{
@@ -1583,7 +1584,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws2");
// Get restore info to workspace /db6/ws2
{
@@ -1686,7 +1687,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws2");
// Get restore info to workspace /db6/ws2
{
@@ -1815,7 +1816,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitWorkspaceRestore("db6", "ws3");
// Get restore info to workspace /db6/ws3
{
@@ -1950,7 +1951,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6backup");
// Get restore info
{
@@ -2120,7 +2121,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6backup");
// Get restore info
{
@@ -2257,7 +2258,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6backup");
// Get restore info
{
@@ -2349,7 +2350,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6");
// Get restore info
{
@@ -2441,7 +2442,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6");
// Get restore info
{
@@ -2589,7 +2590,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6backup");
// Get restore info
{
@@ -2736,7 +2737,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6backup");
// Get restore info
{
@@ -2837,7 +2838,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6");
// Get restore info
{
@@ -2939,7 +2940,7 @@
assertEquals(200, cres.getStatus());
}
- Thread.sleep(2000);
+ waitRepositoryRestore("db6");
// Get restore info
{
@@ -3089,4 +3090,74 @@
{
return (ExtendedBackupManager)
container.getComponentInstanceOfType(BackupManager.class);
}
+
+ protected void waitWorkspaceRestore(String repoName, String wsName) throws Exception
+ {
+ boolean wait = true;
+
+ while (wait)
+ {
+
+ // Get restore info to workspace /<repoName>/<wsName>
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ ContainerRequestUserRole creq =
+ new ContainerRequestUserRole("GET", new
URI(HTTP_BACKUP_AGENT_PATH
+ +
HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_WS + "/" +
repoName + "/"
+ + wsName), new URI(""), null, new
InputHeadersMap(headers));
+
+ ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
+ ContainerResponse cres = new ContainerResponse(responseWriter);
+ handler.handleRequest(creq, cres);
+
+ assertEquals(200, cres.getStatus());
+
+ DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class,
responseWriter.getBody());
+
+ if (info.getState().intValue() == JobWorkspaceRestore.RESTORE_SUCCESSFUL
+ || info.getState().intValue() == JobWorkspaceRestore.RESTORE_FAIL)
+ {
+ wait = false;
+ }
+ else
+ {
+ Thread.sleep(500);
+ }
+ }
+ }
+
+
+ protected void waitRepositoryRestore(String repoName) throws Exception
+ {
+ boolean wait = true;
+
+ while (wait)
+ {
+ // Get restore info
+ MultivaluedMap<String, String> headers = new MultivaluedMapImpl();
+ ContainerRequestUserRole creq =
+ new ContainerRequestUserRole("GET", new
URI(HTTP_BACKUP_AGENT_PATH
+ +
HTTPBackupAgent.Constants.OperationType.CURRENT_RESTORE_INFO_ON_REPOSITORY +
"/"
+ + repoName), new URI(""), null, new
InputHeadersMap(headers));
+
+ ByteArrayContainerResponseWriter responseWriter = new
ByteArrayContainerResponseWriter();
+ ContainerResponse cres = new ContainerResponse(responseWriter);
+ handler.handleRequest(creq, cres);
+
+ assertEquals(200, cres.getStatus());
+
+ DetailedInfo info = (DetailedInfo) getObject(DetailedInfo.class,
responseWriter.getBody());
+
+ if (info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_SUCCESSFUL
+ || info.getState().intValue() ==
JobRepositoryRestore.REPOSITORY_RESTORE_FAIL)
+ {
+ wait = false;
+ }
+ else
+ {
+ Thread.sleep(500);
+ }
+ }
+ }
+
+
}