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); } }