diff --git a/config/alfresco/public-services-context.xml b/config/alfresco/public-services-context.xml
index 34949d10ca..7fed014300 100644
--- a/config/alfresco/public-services-context.xml
+++ b/config/alfresco/public-services-context.xml
@@ -945,6 +945,7 @@
+
+
@@ -963,6 +965,7 @@
deployDifferenceFS
+ deployDifference
@@ -979,7 +982,6 @@
deploymentServiceWriteTxnAdvisor
- deploymentServiceReadTxnAdvisor
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
index 903542c548..f1223b5a30 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
@@ -143,35 +143,36 @@ public class AVMServiceTest extends AVMServiceTestBase
{
DeploymentService depService = (DeploymentService)fContext.getBean("DeploymentService");
setupBasicTree();
- TestDeploymentCallback callback = new TestDeploymentCallback();
+ // TestDeploymentCallback callback = new TestDeploymentCallback();
fService.createStore("target");
- DeploymentReport report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, callback);
+ DeploymentReport report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, null);
System.out.println(report);
assertEquals(fService.lookup(-1, "main:/a/b/c/foo").getGuid(),
fService.lookup(-1, "target:/a/b/c/foo").getGuid());
assertEquals(fService.lookup(-1, "main:/a/b/c/bar").getGuid(),
fService.lookup(-1, "target:/a/b/c/bar").getGuid());
fService.createFile("main:/a/b", "biz").close();
- report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, true, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, true, null);
System.out.println(report);
System.out.println(recursiveList("target", -1, true));
assertNull(fService.lookup(-1, "target:/a/b/biz"));
- report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, null);
System.out.println(report);
assertEquals(fService.lookup(-1, "main:/a/b/biz").getGuid(),
fService.lookup(-1, "target:/a/b/biz").getGuid());
fService.removeNode("main:/a/b/c/foo");
- report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, true, false, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, true, false, null);
System.out.println(report);
assertNotNull(fService.lookup(-1, "target:/a/b/c/foo"));
- report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, null);
System.out.println(report);
assertNull(fService.lookup(-1, "target:/a/b/c/foo"));
fService.removeNode("main:/a/b/c/bar");
fService.createDirectory("main:/a/b/c", "bar");
- report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, null);
System.out.println(report);
- depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target2:/wiggly/diggly", true, false, false, callback);
+ report = depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target:/a", false, false, false, null);
+ depService.deployDifference(-1, "main:/a", "localhost", 50500, "admin", "admin", "target2:/wiggly/diggly", true, false, false, null);
System.out.println(report);
}
catch (Exception e)
diff --git a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
index 9fe5b4c3c6..c1b843a791 100644
--- a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
+++ b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
@@ -112,6 +112,11 @@ public class DeploymentServiceImpl implements DeploymentService
dstPath);
callback.eventOccurred(event);
}
+ if (version < 0)
+ {
+ String storeName = srcPath.substring(0, srcPath.indexOf(":"));
+ version = fAVMService.createSnapshot(storeName, null, null);
+ }
// Get the root of the deployment from this server.
AVMNodeDescriptor srcRoot = fAVMService.lookup(version, srcPath);
if (srcRoot == null)
@@ -143,6 +148,7 @@ public class DeploymentServiceImpl implements DeploymentService
}
}
snapshot = remote.createSnapshot(storePath[0], "PreDeploy", "Pre Deployment Snapshot");
+
}
// Get the root of the deployment on the destination server.
AVMNodeDescriptor dstRoot = remote.lookup(-1, dstPath);
@@ -163,6 +169,7 @@ public class DeploymentServiceImpl implements DeploymentService
return report;
}
copyDirectory(version, srcRoot, dstParent, remote);
+ remote.createSnapshot(storePath[0], "Deployment", "Post Deployment Snapshot.");
if (callback != null)
{
event = new DeploymentEvent(DeploymentEvent.Type.END,
@@ -180,6 +187,7 @@ public class DeploymentServiceImpl implements DeploymentService
try
{
deployDirectoryPush(version, srcRoot, dstRoot, remote, dontDelete, dontDo, report, callback);
+ remote.createSnapshot(storePath[0], "Deployment", "Post Deployment Snapshot.");
if (callback != null)
{
DeploymentEvent event = new DeploymentEvent(DeploymentEvent.Type.END,
@@ -197,7 +205,7 @@ public class DeploymentServiceImpl implements DeploymentService
{
AVMSyncService syncService = getSyncService(hostName, port);
List diffs = syncService.compare(snapshot, dstPath, -1, dstPath, null);
- syncService.update(diffs, null, false, false, true, true, "Abortd Deployment", "Aborted Deployment");
+ syncService.update(diffs, null, false, false, true, true, "Aborted Deployment", "Aborted Deployment");
}
}
catch (Exception ee)
@@ -227,6 +235,14 @@ public class DeploymentServiceImpl implements DeploymentService
DeploymentReport report,
DeploymentCallback callback)
{
+ if (src.getGuid().equals(dst.getGuid()))
+ {
+ return;
+ }
+ if (!dontDo && !dontDelete)
+ {
+ copyMetadata(version, src, dst, remote);
+ }
// Get the listing for the source.
SortedMap srcList = fAVMService.getDirectoryListing(src);
// Get the listing for the destination.