From 4b46782156bddb5d2afa2b6281d4aeedcd99b116 Mon Sep 17 00:00:00 2001 From: Britt Park Date: Thu, 21 Sep 2006 02:18:00 +0000 Subject: [PATCH] Have a decrepit basic WCM submit workflow working. Fixed bug in handling requests for AVM Node properties which don't have a dictionary type definition. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3871 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../org/alfresco/repo/avm/AVMNodeService.java | 6 +++--- .../repo/avm/wf/AVMSubmitHandler.java | 21 ++++++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/repo/avm/AVMNodeService.java b/source/java/org/alfresco/repo/avm/AVMNodeService.java index dace99a2c8..a049f75a36 100644 --- a/source/java/org/alfresco/repo/avm/AVMNodeService.java +++ b/source/java/org/alfresco/repo/avm/AVMNodeService.java @@ -837,8 +837,8 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi for (QName qName : props.keySet()) { PropertyValue value = props.get(qName); - PropertyDefinition def = this.dictionaryService.getProperty(qName); - result.put(qName, value.getValue(def.getDataType().getName())); + PropertyDefinition def = dictionaryService.getProperty(qName); + result.put(qName, makeSerializableValue(def, value)); } // Now spoof properties that are built in. result.put(ContentModel.PROP_CREATED, new Date(desc.getCreateDate())); @@ -900,7 +900,7 @@ public class AVMNodeService extends AbstractNodeServiceImpl implements NodeServi return null; } PropertyDefinition def = this.dictionaryService.getProperty(qname); - return value.getValue(def.getDataType().getName()); + return makeSerializableValue(def, value); } catch (AVMNotFoundException e) { diff --git a/source/java/org/alfresco/repo/avm/wf/AVMSubmitHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMSubmitHandler.java index 9e7a5fa86e..7761b301d3 100644 --- a/source/java/org/alfresco/repo/avm/wf/AVMSubmitHandler.java +++ b/source/java/org/alfresco/repo/avm/wf/AVMSubmitHandler.java @@ -17,9 +17,13 @@ package org.alfresco.repo.avm.wf; +import java.util.List; + import org.alfresco.repo.workflow.jbpm.JBPMSpringActionHandler; import org.alfresco.service.cmr.avm.AVMService; +import org.alfresco.service.cmr.avmsync.AVMDifference; import org.alfresco.service.cmr.avmsync.AVMSyncService; +import org.alfresco.service.namespace.QName; import org.apache.log4j.Logger; import org.jbpm.graph.exe.ExecutionContext; import org.springframework.beans.factory.BeanFactory; @@ -63,6 +67,21 @@ public class AVMSubmitHandler extends JBPMSpringActionHandler public void execute(ExecutionContext executionContext) throws Exception { String avmSource = (String)executionContext.getContextInstance().getVariable("sourcePath"); - fgLogger.error("Would be submittting: " + avmSource); + String [] storePath = avmSource.split(":"); + if (storePath.length != 2) + { + fgLogger.error("Malformed path: " + avmSource); + return; + } + String webSiteName = + fAVMService.getStoreProperty(storePath[0], QName.createQName(null, ".website.name")). + getStringValue(); + String avmDest = webSiteName + "-staging:" + storePath[1]; + List diffs = + fAVMSyncService.compare(-1, avmSource, -1, avmDest); + // Ignore conflicts and older nodes for now. + fAVMSyncService.update(diffs, true, true, false, false); + // Now flatten out the source. + fAVMSyncService.flatten(avmSource, avmDest); } }