From 0e2e131279d718d6e73187c63e62dec32434cb89 Mon Sep 17 00:00:00 2001 From: Mark Rogers Date: Tue, 16 Jun 2009 13:20:40 +0000 Subject: [PATCH] ALFCOM-2974 Corrected AVM version for reading properties from AVM Node Service. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@14737 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/deploy/DeploymentServiceImpl.java | 41 +++++++++++-------- .../alfresco/repo/deploy/DeploymentWork.java | 12 ++++-- 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java index e4d0bf81e0..1763132906 100644 --- a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java +++ b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java @@ -940,18 +940,26 @@ public class DeploymentServiceImpl implements DeploymentService return stringAspects; } - private Map getProperties(AVMNodeDescriptor src) + private Map getProperties(AVMNodeDescriptor src, int version) { + /** + * Get the AVM properties - which do not have any of the "syntetic" Node Service Values. + */ Map properties = fAVMService.getNodeProperties(src); + NodeRef nodeRef = AVMNodeConverter.ToNodeRef(version, src.getPath()); - NodeRef nodeRef = AVMNodeConverter.ToNodeRef(src.getVersionID(), src.getPath()); - - Map stringProperties = new HashMap(); - for(QName key : properties.keySet()) - { - stringProperties.put(key.toString(), fAVMNodeService.getProperty(nodeRef, key)); - } - return stringProperties; + /** + * Get the properties in Node Service format + */ + Map nodeProps = fAVMNodeService.getProperties(nodeRef); + + Map retVal = new HashMap(); + for(QName key : properties.keySet()) + { + Serializable value = nodeProps.get(key); + retVal.put(key.toString(), value); + } + return retVal; } /** @@ -1320,7 +1328,7 @@ public class DeploymentServiceImpl implements DeploymentService sendQueue.add(new DeploymentWork( new DeploymentEvent(DeploymentEvent.Type.UPDATED, new Pair(version, src.getPath()), - extendedPath), ticket, src)); + extendedPath), ticket, src, version)); } src = null; dst = null; @@ -1332,7 +1340,7 @@ public class DeploymentServiceImpl implements DeploymentService String extendedPath = extendPath(dstPath, dst.getName()); SetstringAspects = getAspects(fAVMService, src); - Map stringProperties = getProperties(src); + Map stringProperties = getProperties(src, version); /** * Update the directory before any children @@ -1401,7 +1409,7 @@ public class DeploymentServiceImpl implements DeploymentService sendQueue.add(new DeploymentWork( new DeploymentEvent(DeploymentEvent.Type.CREATED, new Pair(version, src.getPath()), - dstPath), ticket, src)); + dstPath), ticket, src, version)); if (src.isFile()) { @@ -1413,7 +1421,7 @@ public class DeploymentServiceImpl implements DeploymentService // Need to create directories in controlling thread since it needs to be created // BEFORE any children are written SetstringAspects = getAspects(fAVMService, src); - Map stringProperties = getProperties(src); + Map stringProperties = getProperties(src, version); service.createDirectory(ticket, dstPath, src.getGuid(), stringAspects, stringProperties); @@ -1738,7 +1746,7 @@ public class DeploymentServiceImpl implements DeploymentService AVMNodeDescriptor src = work.getSrc(); if(src.isFile()) { - copyFileToFSR(src, event.getDestination(), ticket); + copyFileToFSR(src, work.getVersion(), event.getDestination(), ticket); } else { @@ -1748,7 +1756,7 @@ public class DeploymentServiceImpl implements DeploymentService } else if (event.getType().equals(DeploymentEvent.Type.UPDATED)) { - copyFileToFSR(work.getSrc(), event.getDestination(), ticket); + copyFileToFSR(work.getSrc(), work.getVersion(), event.getDestination(), ticket); } // success, now put the event onto the event queue eventQueue.add(event); @@ -1776,6 +1784,7 @@ public class DeploymentServiceImpl implements DeploymentService */ private void copyFileToFSR( final AVMNodeDescriptor src, + final int version, final String dstPath, final String ticket) { @@ -1794,7 +1803,7 @@ public class DeploymentServiceImpl implements DeploymentService String mimeType = data.getMimetype(); SetstringAspects = getAspects(avmService, src); - Map stringProperties = getProperties(src); + Map stringProperties = getProperties(src, version); OutputStream out = service.send(ticket, dstPath, src.getGuid(), encoding, mimeType, stringAspects, stringProperties); try diff --git a/source/java/org/alfresco/repo/deploy/DeploymentWork.java b/source/java/org/alfresco/repo/deploy/DeploymentWork.java index a33f8c517e..633fa6573a 100644 --- a/source/java/org/alfresco/repo/deploy/DeploymentWork.java +++ b/source/java/org/alfresco/repo/deploy/DeploymentWork.java @@ -32,6 +32,7 @@ class DeploymentWork private DeploymentEvent event; private AVMNodeDescriptor src; private String ticket; + private int version; public DeploymentWork(DeploymentEvent event, String ticket) { @@ -39,12 +40,12 @@ class DeploymentWork this.ticket = ticket; } - public DeploymentWork(DeploymentEvent event, String ticket, AVMNodeDescriptor src) + public DeploymentWork(DeploymentEvent event, String ticket, AVMNodeDescriptor src, int version) { this.event = event; this.ticket = ticket; this.setSrc(src); - + this.version = version; } public DeploymentEvent getEvent() @@ -63,6 +64,11 @@ class DeploymentWork public AVMNodeDescriptor getSrc() { return src; - } + } + + public int getVersion() + { + return version; + } }