diff --git a/config/alfresco/action-services-context.xml b/config/alfresco/action-services-context.xml
index fdc46bdd75..d7a8fe6f13 100644
--- a/config/alfresco/action-services-context.xml
+++ b/config/alfresco/action-services-context.xml
@@ -394,4 +394,16 @@
+
+
+
+
+
+
+
+
+ false
+
+
+
diff --git a/config/alfresco/messages/action-config.properties b/config/alfresco/messages/action-config.properties
index 5e796af107..84c4e57c15 100644
--- a/config/alfresco/messages/action-config.properties
+++ b/config/alfresco/messages/action-config.properties
@@ -84,3 +84,9 @@ execute-all-rules.description=Execute all rules on the child items.
start-workflow.title=Start Workflow
start-workflow.description=This will start a workflow for the matched items.
+
+# WCM Actions
+
+simple-avm-submit.title=Simple Direct Submit
+simple-avm-submit.description=This will submit any newer nodes in the matched item to the corresponding staging.
+
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
index 1134ca73d5..ed7edf801b 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
@@ -31,6 +31,8 @@ import java.util.Set;
import java.util.TreeMap;
import org.alfresco.model.ContentModel;
+import org.alfresco.repo.action.ActionImpl;
+import org.alfresco.repo.avm.actions.SimpleAVMSubmitAction;
import org.alfresco.repo.avm.util.BulkLoader;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
@@ -59,6 +61,53 @@ import org.alfresco.service.transaction.TransactionService;
*/
public class AVMServiceTest extends AVMServiceTestBase
{
+ /**
+ * Test the SimpleAVMSubmitAction.
+ */
+ public void testSubmitAction()
+ {
+ try
+ {
+ fService.createAVMStore("foo-staging");
+ fService.createDirectory("foo-staging:/", "layer");
+ fService.createDirectory("foo-staging:/layer", "a");
+ fService.createDirectory("foo-staging:/layer/a","b");
+ fService.createDirectory("foo-staging:/layer/a/b", "c");
+ fService.createFile("foo-staging:/layer/a/b/c", "foo").close();
+ fService.createFile("foo-staging:/layer/a/b/c", "bar").close();
+ fService.createAVMStore("area");
+ fService.setStoreProperty("area", QName.createQName(null, ".website.name"),
+ new PropertyValue(null, "foo"));
+ fService.createLayeredDirectory("foo-staging:/layer", "area:/", "layer");
+ fService.createFile("area:/layer", "figs").close();
+ fService.getFileOutputStream("area:/layer/a/b/c/foo").close();
+ fService.removeNode("area:/layer/a/b/c/bar");
+ List diffs =
+ fSyncService.compare(-1, "area:/layer", -1, "foo-staging:/layer");
+ assertEquals(3, diffs.size());
+ final SimpleAVMSubmitAction action = (SimpleAVMSubmitAction)fContext.getBean("simple-avm-submit");
+ class TxnWork implements TransactionUtil.TransactionWork