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
This commit is contained in:
Britt Park
2006-09-21 02:18:00 +00:00
parent adb1b17c1e
commit 4b46782156
2 changed files with 23 additions and 4 deletions

View File

@@ -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)
{

View File

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