diff --git a/config/alfresco/core-services-context.xml b/config/alfresco/core-services-context.xml
index fd2cb481b5..d5b1696a80 100644
--- a/config/alfresco/core-services-context.xml
+++ b/config/alfresco/core-services-context.xml
@@ -422,6 +422,7 @@
alfresco/model/recordsModel.xml
alfresco/model/bpmModel.xml
alfresco/model/workflowModel.xml
+ alfresco/model/wcmModel.xml
org/alfresco/repo/security/authentication/userModel.xml
diff --git a/config/alfresco/model/wcmModel.xml b/config/alfresco/model/wcmModel.xml
new file mode 100644
index 0000000000..cd3c4e1842
--- /dev/null
+++ b/config/alfresco/model/wcmModel.xml
@@ -0,0 +1,70 @@
+
+
+ WCM Specific Types
+ Alfresco
+ 2006-10-06
+ 1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XForms Template
+
+
+ Root Tag Name
+ d:text
+ true
+
+
+
+
+ Template Output Methods
+
+ wcm:capture
+ false
+ false
+
+
+ wcm:templateoutputmethod
+ wcm:presentation
+ false
+ true
+
+
+
+
+
+
+
+
+ XML Transformer
+
+
+ Type
+ d:text
+ true
+
+
+ Template Source
+ d:noderef
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/source/java/org/alfresco/model/WCMModel.java b/source/java/org/alfresco/model/WCMModel.java
new file mode 100644
index 0000000000..133b3a01d0
--- /dev/null
+++ b/source/java/org/alfresco/model/WCMModel.java
@@ -0,0 +1,26 @@
+/**
+ *
+ */
+package org.alfresco.model;
+
+import org.alfresco.service.namespace.QName;
+
+/**
+ * QName definitions for WCM.
+ * @author britt
+ */
+public interface WCMModel
+{
+ public static final String WCM_MODEL_URI = "http://www.alfresco.org/model/wcmmodel/1.0";
+ public static final String WCM_MODEL_PREFIX = "wcm";
+
+ // The XForms data capture template aspect.
+ public static final QName ASPECT_TEMPLATE = QName.createQName(WCM_MODEL_URI, "template");
+ public static final QName PROP_ROOT_TAG_NAME = QName.createQName(WCM_MODEL_URI, "roottagname");
+ public static final QName ASSOC_TEMPLATE_OUTPUT_METHODS = QName.createQName(WCM_MODEL_URI, "templateoutputmethods");
+
+ // An XML to something else tranformer aspect.
+ public static final QName ASPECT_TEMPLATE_OUTPUT_METHOD = QName.createQName(WCM_MODEL_URI, "templateoutputmethod");
+ public static final QName PROP_OUTPUT_TYPE = QName.createQName(WCM_MODEL_URI, "outputtype");
+ public static final QName PROP_TEMPLATE_SOURCE = QName.createQName(WCM_MODEL_URI, "templatesource");
+}
diff --git a/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java b/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java
new file mode 100644
index 0000000000..f7ca3383f9
--- /dev/null
+++ b/source/java/org/alfresco/repo/avm/actions/StartAVMWorkflowAction.java
@@ -0,0 +1,87 @@
+/**
+ *
+ */
+package org.alfresco.repo.avm.actions;
+
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.alfresco.repo.action.ParameterDefinitionImpl;
+import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
+import org.alfresco.repo.workflow.WorkflowModel;
+import org.alfresco.service.cmr.action.Action;
+import org.alfresco.service.cmr.action.ParameterDefinition;
+import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
+import org.alfresco.service.cmr.repository.NodeRef;
+import org.alfresco.service.cmr.workflow.WorkflowDefinition;
+import org.alfresco.service.cmr.workflow.WorkflowService;
+import org.alfresco.service.namespace.QName;
+
+/**
+ * This action knows how to start an AVM specific workflow.
+ * @author britt
+ */
+public class StartAVMWorkflowAction extends ActionExecuterAbstractBase
+{
+ public static final String NAME = "start-avm-workflow";
+ public static final String PARAM_STORE_NAME = "store-name";
+ public static final String PARAM_WORKFLOW_NAME = "workflow-name";
+
+ /**
+ * Reference to workflow service.
+ */
+ private WorkflowService fWorkflowService;
+
+ /**
+ * Set the workflow service.
+ * @param service The workflow service.
+ */
+ public void setWorkflowService(WorkflowService service)
+ {
+ fWorkflowService = service;
+ }
+
+ /**
+ * Default constructor.
+ */
+ public StartAVMWorkflowAction()
+ {
+ super();
+ }
+
+ /**
+ * Start an AVM specific workflow.
+ * @param action The action instance.
+ * @param actionedUponNodeRef This should be an AVM folder that contains
+ * the nodes to be flowed.
+ */
+ @Override
+ protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
+ {
+ String workflowName = (String)action.getParameterValue(PARAM_WORKFLOW_NAME);
+ String storeName = (String)action.getParameterValue(PARAM_STORE_NAME);
+ WorkflowDefinition def = fWorkflowService.getDefinitionByName(name);
+ NodeRef workflowPackage = fWorkflowService.createPackage(actionedUponNodeRef);
+ Map wfParams = new HashMap();
+ wfParams.put(WorkflowModel.ASSOC_PACKAGE, workflowPackage);
+ }
+
+ /**
+ * Setup any parameters for this action.
+ * @param paramList The list of parameters to add to.
+ */
+ @Override
+ protected void addParameterDefinitions(List paramList)
+ {
+ paramList.add(new ParameterDefinitionImpl(PARAM_STORE_NAME,
+ DataTypeDefinition.TEXT,
+ true,
+ getParamDisplayLabel(PARAM_STORE_NAME)));
+ paramList.add(new ParameterDefinitionImpl(PARAM_WORKFLOW_NAME,
+ DataTypeDefinition.TEXT,
+ true,
+ getParamDisplayLabel(PARAM_WORKFLOW_NAME)));
+ }
+}