mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V3.1 to HEAD
12982: Merged V3.0 to V3.1 12921: Merged V2.2 to V3.0 12524: Fix ETWOTWO-974: Submit Action Queue (...) 12687: Add missing workflow to bootstrap (follow on from 12524) ___________________________________________________________________ Modified: svn:mergeinfo Merged /alfresco/BRANCHES/V3.0:r12921 Merged /alfresco/BRANCHES/V2.2:r12524,12687 Merged /alfresco/BRANCHES/V3.1:r12982 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13545 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -364,20 +364,27 @@
|
|||||||
<prop key="mimetype">text/xml</prop>
|
<prop key="mimetype">text/xml</prop>
|
||||||
<prop key="redeploy">false</prop>
|
<prop key="redeploy">false</prop>
|
||||||
</props>
|
</props>
|
||||||
<props>
|
<props>
|
||||||
<!-- WCM workflow definition -->
|
<!-- WCM workflow definition -->
|
||||||
<prop key="engineId">jbpm</prop>
|
<prop key="engineId">jbpm</prop>
|
||||||
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
|
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
|
||||||
<prop key="mimetype">text/xml</prop>
|
<prop key="mimetype">text/xml</prop>
|
||||||
<prop key="redeploy">false</prop>
|
<prop key="redeploy">false</prop>
|
||||||
</props>
|
</props>
|
||||||
<props>
|
<props>
|
||||||
<!-- WCM workflow definition -->
|
<!-- WCM workflow definition -->
|
||||||
<prop key="engineId">jbpm</prop>
|
<prop key="engineId">jbpm</prop>
|
||||||
<prop key="location">alfresco/workflow/changerequest_processdefinition.xml</prop>
|
<prop key="location">alfresco/workflow/changerequest_processdefinition.xml</prop>
|
||||||
<prop key="mimetype">text/xml</prop>
|
<prop key="mimetype">text/xml</prop>
|
||||||
<prop key="redeploy">false</prop>
|
<prop key="redeploy">false</prop>
|
||||||
</props>
|
</props>
|
||||||
|
<props>
|
||||||
|
<!-- WCM workflow definition -->
|
||||||
|
<prop key="engineId">jbpm</prop>
|
||||||
|
<prop key="location">alfresco/workflow/submitdirect_processdefinition.xml</prop>
|
||||||
|
<prop key="mimetype">text/xml</prop>
|
||||||
|
<prop key="redeploy">false</prop>
|
||||||
|
</props>
|
||||||
|
|
||||||
<!-- Invitation service workflow definition -->
|
<!-- Invitation service workflow definition -->
|
||||||
<props>
|
<props>
|
||||||
|
@@ -166,6 +166,7 @@ patch.groupMembersAsIdentifiers.description=Reindex usr:authorityContainer membe
|
|||||||
patch.genericWorkflow.result.deployed=Re-deployed {0} workflows.
|
patch.genericWorkflow.result.deployed=Re-deployed {0} workflows.
|
||||||
|
|
||||||
patch.redeploySubmitProcess.description=Re-deploy WCM Submit Process Definition.
|
patch.redeploySubmitProcess.description=Re-deploy WCM Submit Process Definition.
|
||||||
|
patch.deploySubmitDirectProcess.description=Deploy WCM Direct Submit Process Definition.
|
||||||
|
|
||||||
patch.AVMLocking.description=Adds existing web projects to locking service.
|
patch.AVMLocking.description=Adds existing web projects to locking service.
|
||||||
patch.AVMLocking.result=Necessary web projects added.
|
patch.AVMLocking.result=Necessary web projects added.
|
||||||
|
@@ -1559,5 +1559,43 @@
|
|||||||
</props>
|
</props>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
|
<!-- For support of asynchronous wcm submit -->
|
||||||
|
<bean id="patch.redeploySubmitProcess5" class="org.alfresco.repo.admin.patch.impl.GenericWorkflowPatch" parent="basePatch" >
|
||||||
|
<property name="id"><value>patch.redeploySubmitProcess5</value></property>
|
||||||
|
<property name="description"><value>patch.redeploySubmitProcess.description</value></property>
|
||||||
|
<property name="fixesFromSchema"><value>0</value></property>
|
||||||
|
<property name="fixesToSchema"><value>2000</value></property>
|
||||||
|
<property name="targetSchema"><value>2001</value></property>
|
||||||
|
<property name="workflowDefinitions">
|
||||||
|
<list>
|
||||||
|
<props>
|
||||||
|
<!-- WCM workflow definition -->
|
||||||
|
<prop key="engineId">jbpm</prop>
|
||||||
|
<prop key="location">alfresco/workflow/submit_processdefinition.xml</prop>
|
||||||
|
<prop key="mimetype">text/xml</prop>
|
||||||
|
</props>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
|
<!-- For support of direct wcm submit -->
|
||||||
|
<bean id="patch.deploySubmitDirectProcess" class="org.alfresco.repo.admin.patch.impl.GenericWorkflowPatch" parent="basePatch" >
|
||||||
|
<property name="id"><value>patch.deploySubmitDirectProcess</value></property>
|
||||||
|
<property name="description"><value>patch.deploySubmitDirectProcess.description</value></property>
|
||||||
|
<property name="fixesFromSchema"><value>0</value></property>
|
||||||
|
<property name="fixesToSchema"><value>2000</value></property>
|
||||||
|
<property name="targetSchema"><value>2001</value></property>
|
||||||
|
<property name="workflowDefinitions">
|
||||||
|
<list>
|
||||||
|
<props>
|
||||||
|
<!-- WCM workflow definition -->
|
||||||
|
<prop key="engineId">jbpm</prop>
|
||||||
|
<prop key="location">alfresco/workflow/submitdirect_processdefinition.xml</prop>
|
||||||
|
<prop key="mimetype">text/xml</prop>
|
||||||
|
</props>
|
||||||
|
</list>
|
||||||
|
</property>
|
||||||
|
</bean>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@@ -19,4 +19,4 @@ version.build=@build-number@
|
|||||||
|
|
||||||
# Schema number
|
# Schema number
|
||||||
|
|
||||||
version.schema=2000
|
version.schema=2001
|
||||||
|
@@ -214,15 +214,38 @@
|
|||||||
<transition name="" to="end" />
|
<transition name="" to="end" />
|
||||||
</task-node>
|
</task-node>
|
||||||
|
|
||||||
<task-node name="submitted">
|
<task-node name="submitted" end-tasks="true">
|
||||||
<event type="node-enter">
|
<task name="wcmwf:submittedTask" swimlane="initiator">
|
||||||
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
|
<timer duedate="5 seconds" transition="">
|
||||||
<action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/>
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
</event>
|
<script>
|
||||||
<task name="wcmwf:submittedTask" swimlane="initiator" />
|
logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription);
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
</timer>
|
||||||
|
|
||||||
|
<event type="task-end">
|
||||||
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
|
<script>
|
||||||
|
logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")");
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/>
|
||||||
|
|
||||||
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
|
<script>
|
||||||
|
logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")");
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
</task>
|
||||||
<transition name="" to="end" />
|
<transition name="" to="end" />
|
||||||
</task-node>
|
</task-node>
|
||||||
|
|
||||||
|
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- End the Process -->
|
<!-- End the Process -->
|
||||||
<!-- -->
|
<!-- -->
|
||||||
|
61
config/alfresco/workflow/submitdirect_processdefinition.xml
Normal file
61
config/alfresco/workflow/submitdirect_processdefinition.xml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!-- Workflow to support direct submit to staging sandbox -->
|
||||||
|
|
||||||
|
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wcmwf:submitdirect">
|
||||||
|
|
||||||
|
<swimlane name="initiator"/>
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- Start Review -->
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<start-state name="start">
|
||||||
|
<task name="wcmwf:submitDirectTask" swimlane="initiator"/>
|
||||||
|
<transition name="" to="submitted"/>
|
||||||
|
</start-state>
|
||||||
|
|
||||||
|
<task-node name="submitted" end-tasks="true">
|
||||||
|
<task name="wcmwf:submittedDirectTask" swimlane="initiator">
|
||||||
|
<timer duedate="5 seconds" transition="">
|
||||||
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
|
<script>
|
||||||
|
logger.log("WCM Submit Process: Triggering submit for " + bpm_workflowDescription);
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
</timer>
|
||||||
|
|
||||||
|
<event type="task-end">
|
||||||
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
|
<script>
|
||||||
|
logger.log("WCM Submit Process: Start submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")");
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMSubmitPackageHandler"/>
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMDeployHandler"/>
|
||||||
|
|
||||||
|
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
|
||||||
|
<script>
|
||||||
|
logger.log("WCM Submit Process: End submit for " + bpm_workflowDescription + " (by " + person.properties.userName + ")");
|
||||||
|
</script>
|
||||||
|
</action>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
</task>
|
||||||
|
<transition name="" to="end" />
|
||||||
|
</task-node>
|
||||||
|
|
||||||
|
<!-- -->
|
||||||
|
<!-- End the Process -->
|
||||||
|
<!-- -->
|
||||||
|
|
||||||
|
<end-state name="end"/>
|
||||||
|
|
||||||
|
<event type="process-end">
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMRemoveAllSrcWebappsHandler"/>
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMReleaseTestServerHandler"/>
|
||||||
|
<action class="org.alfresco.repo.avm.wf.AVMRemoveWFStoreHandler"/>
|
||||||
|
</event>
|
||||||
|
|
||||||
|
</process-definition>
|
@@ -27,11 +27,16 @@ wcmwf_submit.node.submitpending.transition.cancel.description=Abort Submission
|
|||||||
wcmwf_submit.node.submitpending.transition.launch.title=Submit Now
|
wcmwf_submit.node.submitpending.transition.launch.title=Submit Now
|
||||||
wcmwf_submit.node.submitpending.transition.launch.description=Submit Now
|
wcmwf_submit.node.submitpending.transition.launch.description=Submit Now
|
||||||
|
|
||||||
|
wcmwf_submitdirect.workflow.title=Web Site Submission (Direct)
|
||||||
|
wcmwf_submitdirect.workflow.description=Submit changes direct to staging sandbox
|
||||||
|
|
||||||
|
|
||||||
# Submit Task Definitions
|
# Submit Task Definitions
|
||||||
|
|
||||||
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.title=Web Site Submission
|
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.title=Web Site Submission
|
||||||
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.description=Submit changes for approval
|
wcmwf_workflowmodel.type.wcmwf_submitReviewTask.description=Submit changes for approval
|
||||||
|
wcmwf_workflowmodel.type.wcmwf_submitDirectTask.title=Web Site Submission (Direct)
|
||||||
|
wcmwf_workflowmodel.type.wcmwf_submitDirectTask.description=Submit changes direct to staging sandbox
|
||||||
wcmwf_workflowmodel.type.wcmwf_verifyBrokenLinksTask.title=Verify Broken Links
|
wcmwf_workflowmodel.type.wcmwf_verifyBrokenLinksTask.title=Verify Broken Links
|
||||||
wcmwf_workflowmodel.type.wcmwf_verifyBrokenLinksTask.description=Verify links that do not point to a live resource
|
wcmwf_workflowmodel.type.wcmwf_verifyBrokenLinksTask.description=Verify links that do not point to a live resource
|
||||||
wcmwf_workflowmodel.type.wcmwf_reviewTask.title=Review
|
wcmwf_workflowmodel.type.wcmwf_reviewTask.title=Review
|
||||||
@@ -44,6 +49,8 @@ wcmwf_workflowmodel.type.wcmwf_approvedTask.title=Approved
|
|||||||
wcmwf_workflowmodel.type.wcmwf_approvedTask.description=Approved
|
wcmwf_workflowmodel.type.wcmwf_approvedTask.description=Approved
|
||||||
wcmwf_workflowmodel.type.wcmwf_submittedTask.title=Submitted
|
wcmwf_workflowmodel.type.wcmwf_submittedTask.title=Submitted
|
||||||
wcmwf_workflowmodel.type.wcmwf_submittedTask.description=Submitted
|
wcmwf_workflowmodel.type.wcmwf_submittedTask.description=Submitted
|
||||||
|
wcmwf_workflowmodel.type.wcmwf_submittedDirectTask.title=Submitted
|
||||||
|
wcmwf_workflowmodel.type.wcmwf_submittedDirectTask.description=Submitted
|
||||||
wcmwf_workflowmodel.type.wcmwf_submitpendingTask.title=Submission Pending
|
wcmwf_workflowmodel.type.wcmwf_submitpendingTask.title=Submission Pending
|
||||||
wcmwf_workflowmodel.type.wcmwf_submitpendingTask.description=Submission Pending
|
wcmwf_workflowmodel.type.wcmwf_submitpendingTask.description=Submission Pending
|
||||||
wcmwf_workflowmodel.type.wcmwf_submitcancelledTask.title=Submission Aborted
|
wcmwf_workflowmodel.type.wcmwf_submitcancelledTask.title=Submission Aborted
|
||||||
|
@@ -66,21 +66,17 @@
|
|||||||
</constraints>
|
</constraints>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
<associations>
|
|
||||||
<association name="wcmwf:webproject">
|
|
||||||
<source>
|
|
||||||
<mandatory>false</mandatory>
|
|
||||||
<many>false</many>
|
|
||||||
</source>
|
|
||||||
<target>
|
|
||||||
<class>wca:webfolder</class>
|
|
||||||
<mandatory>true</mandatory>
|
|
||||||
<many>false</many>
|
|
||||||
</target>
|
|
||||||
</association>
|
|
||||||
</associations>
|
|
||||||
<mandatory-aspects>
|
<mandatory-aspects>
|
||||||
<aspect>bpm:assignees</aspect>
|
<aspect>bpm:assignees</aspect>
|
||||||
|
<aspect>wcmwf:webproject</aspect>
|
||||||
|
<aspect>wcmwf:submission</aspect>
|
||||||
|
</mandatory-aspects>
|
||||||
|
</type>
|
||||||
|
|
||||||
|
<type name="wcmwf:submitDirectTask">
|
||||||
|
<parent>wcmwf:startTask</parent>
|
||||||
|
<mandatory-aspects>
|
||||||
|
<aspect>wcmwf:webproject</aspect>
|
||||||
<aspect>wcmwf:submission</aspect>
|
<aspect>wcmwf:submission</aspect>
|
||||||
</mandatory-aspects>
|
</mandatory-aspects>
|
||||||
</type>
|
</type>
|
||||||
@@ -169,8 +165,15 @@
|
|||||||
</mandatory-aspects>
|
</mandatory-aspects>
|
||||||
</type>
|
</type>
|
||||||
|
|
||||||
<!-- NOTE: kept for backwards compatibility only - for v2.0 wcm submit process definition -->
|
<type name="wcmwf:submittedDirectTask">
|
||||||
<type name="wcmwf:approvedTask">
|
<parent>wcmwf:workflowTask</parent>
|
||||||
|
<mandatory-aspects>
|
||||||
|
<aspect>wcmwf:submission</aspect>
|
||||||
|
</mandatory-aspects>
|
||||||
|
</type>
|
||||||
|
|
||||||
|
<!-- NOTE: kept for backwards compatibility only - for v2.0 wcm submit process definition -->
|
||||||
|
<type name="wcmwf:approvedTask">
|
||||||
<parent>wcmwf:workflowTask</parent>
|
<parent>wcmwf:workflowTask</parent>
|
||||||
<mandatory-aspects>
|
<mandatory-aspects>
|
||||||
<aspect>bpm:assignees</aspect>
|
<aspect>bpm:assignees</aspect>
|
||||||
@@ -221,6 +224,22 @@
|
|||||||
|
|
||||||
<aspects>
|
<aspects>
|
||||||
|
|
||||||
|
<aspect name="wcmwf:webproject">
|
||||||
|
<associations>
|
||||||
|
<association name="wcmwf:webproject">
|
||||||
|
<source>
|
||||||
|
<mandatory>false</mandatory>
|
||||||
|
<many>false</many>
|
||||||
|
</source>
|
||||||
|
<target>
|
||||||
|
<class>wca:webfolder</class>
|
||||||
|
<mandatory>true</mandatory>
|
||||||
|
<many>false</many>
|
||||||
|
</target>
|
||||||
|
</association>
|
||||||
|
</associations>
|
||||||
|
</aspect>
|
||||||
|
|
||||||
<aspect name="wcmwf:submission">
|
<aspect name="wcmwf:submission">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="wcmwf:fromPath">
|
<property name="wcmwf:fromPath">
|
||||||
|
@@ -228,6 +228,11 @@ public final class SandboxFactory extends WCMUtil
|
|||||||
* @return SandboxInfo returns sandbox info or null if sandbox does not exist or is not visible
|
* @return SandboxInfo returns sandbox info or null if sandbox does not exist or is not visible
|
||||||
*/
|
*/
|
||||||
/* package */ SandboxInfo getSandbox(String sandboxId)
|
/* package */ SandboxInfo getSandbox(String sandboxId)
|
||||||
|
{
|
||||||
|
return getSandbox(sandboxId, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* package */ SandboxInfo getSandbox(final String sandboxId, boolean withPreview)
|
||||||
{
|
{
|
||||||
AVMStoreDescriptor storeDesc = avmService.getStore(sandboxId);
|
AVMStoreDescriptor storeDesc = avmService.getStore(sandboxId);
|
||||||
if (storeDesc == null)
|
if (storeDesc == null)
|
||||||
@@ -246,11 +251,17 @@ public final class SandboxFactory extends WCMUtil
|
|||||||
// derive name for now
|
// derive name for now
|
||||||
String name = null;
|
String name = null;
|
||||||
|
|
||||||
|
String previewSandboxId = null;
|
||||||
|
if (withPreview && (! WCMUtil.isPreviewStore(sandboxId)))
|
||||||
|
{
|
||||||
|
previewSandboxId = WCMUtil.getCorrespondingPreviewStoreName(sandboxId);
|
||||||
|
}
|
||||||
|
|
||||||
if (props.containsKey(SandboxConstants.PROP_SANDBOX_STAGING_MAIN))
|
if (props.containsKey(SandboxConstants.PROP_SANDBOX_STAGING_MAIN))
|
||||||
{
|
{
|
||||||
sandboxType = SandboxConstants.PROP_SANDBOX_STAGING_MAIN;
|
sandboxType = SandboxConstants.PROP_SANDBOX_STAGING_MAIN;
|
||||||
name = sandboxId;
|
name = sandboxId;
|
||||||
storeNames = new String[] {sandboxId, WCMUtil.getCorrespondingPreviewStoreName(sandboxId)};
|
storeNames = new String[] {sandboxId, previewSandboxId};
|
||||||
}
|
}
|
||||||
else if ( props.containsKey( SandboxConstants.PROP_SANDBOX_STAGING_PREVIEW))
|
else if ( props.containsKey( SandboxConstants.PROP_SANDBOX_STAGING_PREVIEW))
|
||||||
{
|
{
|
||||||
@@ -261,7 +272,7 @@ public final class SandboxFactory extends WCMUtil
|
|||||||
{
|
{
|
||||||
sandboxType = SandboxConstants.PROP_SANDBOX_AUTHOR_MAIN;
|
sandboxType = SandboxConstants.PROP_SANDBOX_AUTHOR_MAIN;
|
||||||
name = WCMUtil.getUserName(sandboxId);
|
name = WCMUtil.getUserName(sandboxId);
|
||||||
storeNames = new String[] {sandboxId, WCMUtil.getCorrespondingPreviewStoreName(sandboxId)};
|
storeNames = new String[] {sandboxId, previewSandboxId};
|
||||||
}
|
}
|
||||||
else if (props.containsKey(SandboxConstants.PROP_SANDBOX_AUTHOR_PREVIEW))
|
else if (props.containsKey(SandboxConstants.PROP_SANDBOX_AUTHOR_PREVIEW))
|
||||||
{
|
{
|
||||||
@@ -273,7 +284,7 @@ public final class SandboxFactory extends WCMUtil
|
|||||||
{
|
{
|
||||||
sandboxType = SandboxConstants.PROP_SANDBOX_WORKFLOW_MAIN;
|
sandboxType = SandboxConstants.PROP_SANDBOX_WORKFLOW_MAIN;
|
||||||
name = WCMUtil.getWorkflowId(sandboxId);
|
name = WCMUtil.getWorkflowId(sandboxId);
|
||||||
storeNames = new String[] {sandboxId, WCMUtil.getCorrespondingPreviewStoreName(sandboxId)};
|
storeNames = new String[] {sandboxId, previewSandboxId};
|
||||||
}
|
}
|
||||||
else if (props.containsKey(SandboxConstants.PROP_SANDBOX_WORKFLOW_PREVIEW))
|
else if (props.containsKey(SandboxConstants.PROP_SANDBOX_WORKFLOW_PREVIEW))
|
||||||
{
|
{
|
||||||
@@ -632,6 +643,81 @@ public final class SandboxFactory extends WCMUtil
|
|||||||
return getSandbox(mainStoreName);
|
return getSandbox(mainStoreName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a read-only workflow sandbox for the named store.
|
||||||
|
*
|
||||||
|
* Note: read-only means it's only safe to use in a workflow where the sandbox
|
||||||
|
* is not expected to be updated. The sandbox does not protected itself
|
||||||
|
* from writes.
|
||||||
|
*
|
||||||
|
* Note: this sandbox does not support the preview layer
|
||||||
|
* Note: a snapshot within this sandbox is NOT taken
|
||||||
|
*
|
||||||
|
* Various store meta-data properties are set including:
|
||||||
|
* Identifier for store-types: .sandbox.workflow.main and .sandbox.workflow.preview
|
||||||
|
* Store-id: .sandbox-id.<guid> (unique across all stores in the sandbox)
|
||||||
|
* DNS: .dns.<store> = <path-to-webapps-root>
|
||||||
|
* Website Name: .website.name = website name
|
||||||
|
*
|
||||||
|
* @param storeId The id of the store to create a sandbox for
|
||||||
|
* @return Information about the sandbox
|
||||||
|
*/
|
||||||
|
public SandboxInfo createReadOnlyWorkflowSandbox(final String storeId)
|
||||||
|
{
|
||||||
|
final String stagingStoreName = WCMUtil.buildStagingStoreName(storeId);
|
||||||
|
|
||||||
|
// create the workflow 'main' store
|
||||||
|
final String packageName = WCMUtil.STORE_WORKFLOW + "-" + GUID.generate();
|
||||||
|
final String mainStoreName =
|
||||||
|
WCMUtil.buildWorkflowMainStoreName(storeId, packageName);
|
||||||
|
|
||||||
|
avmService.createStore(mainStoreName);
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
logger.debug("Created read-only workflow sandbox store: " + mainStoreName);
|
||||||
|
|
||||||
|
// create a layered directory pointing to 'www' in the staging area
|
||||||
|
avmService.createLayeredDirectory(WCMUtil.buildStoreRootPath(stagingStoreName),
|
||||||
|
mainStoreName + ":/",
|
||||||
|
JNDIConstants.DIR_DEFAULT_WWW);
|
||||||
|
|
||||||
|
// tag the store with the store type
|
||||||
|
avmService.setStoreProperty(mainStoreName,
|
||||||
|
SandboxConstants.PROP_SANDBOX_WORKFLOW_MAIN,
|
||||||
|
new PropertyValue(DataTypeDefinition.TEXT, null));
|
||||||
|
|
||||||
|
// tag the store with the base name of the website so that corresponding
|
||||||
|
// staging areas can be found.
|
||||||
|
avmService.setStoreProperty(mainStoreName,
|
||||||
|
SandboxConstants.PROP_WEBSITE_NAME,
|
||||||
|
new PropertyValue(DataTypeDefinition.TEXT, storeId));
|
||||||
|
|
||||||
|
// tag the store, oddly enough, with its own store name for querying.
|
||||||
|
avmService.setStoreProperty(mainStoreName,
|
||||||
|
QName.createQName(null, SandboxConstants.PROP_SANDBOX_STORE_PREFIX + mainStoreName),
|
||||||
|
new PropertyValue(DataTypeDefinition.TEXT, null));
|
||||||
|
|
||||||
|
// tag the store with the DNS name property
|
||||||
|
tagStoreDNSPath(avmService, mainStoreName, storeId, packageName);
|
||||||
|
|
||||||
|
|
||||||
|
// The main workflow store depends on the main staging store (dist=1)
|
||||||
|
tagStoreBackgroundLayer(avmService,mainStoreName, stagingStoreName ,1);
|
||||||
|
|
||||||
|
// tag all related stores to indicate that they are part of a single sandbox
|
||||||
|
final QName sandboxIdProp = QName.createQName(SandboxConstants.PROP_SANDBOXID + GUID.generate());
|
||||||
|
avmService.setStoreProperty(mainStoreName,
|
||||||
|
sandboxIdProp,
|
||||||
|
new PropertyValue(DataTypeDefinition.TEXT, null));
|
||||||
|
|
||||||
|
if (logger.isDebugEnabled())
|
||||||
|
{
|
||||||
|
dumpStoreProperties(avmService, mainStoreName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return getSandbox(mainStoreName, false); // no preview store
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a workflow sandbox for the given user store. This will create a
|
* Creates a workflow sandbox for the given user store. This will create a
|
||||||
* workflow sandbox layered over the user's main store.
|
* workflow sandbox layered over the user's main store.
|
||||||
|
Reference in New Issue
Block a user