Merged V3.2 to HEAD

16030: Merged V3.1 to V3.2
        16001: Merged V2.2 to V3.1
            15999: Temp build/test (AVM permissions - testSimpleInternalLayer)
    16223: WCM UI - simple perf improvement when displaying modified list (lock icon)
    16472: Merged V3.1 to V3.2
        16180: ETHREEOH-2821 - fix deployment of WCM layered (ie. across web project) file
        16188: WCM - minor: display (localisable) "File" text (follow-on fix for r15970)
        16255: WCM - ETHREEOH-2836
        16257: AVM - minor updates to unit tests
        16275: WCM - ETHREEOH-2844
        16277: WCM - ETHREEOH-2829 - added simple unit test
        16341: AVM - minor update to reuse core (path) utils
        16344: Merged V2.2 to V3.1
            16323: Fix ETWOTWO-1266 (unexpected AVM conflict)
        16457: Fix ETHREEOH-2836 (WCM layered files) - follow-on fix, with additional unit test
    16649: Fix ETHREEOH-1878 - configure WCM locking for CIFS/FTP
    16654: Merged V3.1 to V3.2
        16507: Fix ETHREEOH-2604 - update unsecured-public-services-security-context.xml.sample (to allow server to start)
        16527: Fix ETHREEOH-2868 - can't submit removal of WCM layered file (Older version prevents update)
        16607: AVM - additional tests when deleting LD + fix to avoid cycle
        16612: AVM - console improvement (lsver, rmvers) to enable admin/support to list & purge snapshots between dates
        16638: Fix ETHREEOH-2893 - stale WCM/AVM layered dir
        16643: AVM - console improvement (setopacity) -> eg. to set stale/modifed WCM layered folder as opaque


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16895 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2009-10-14 09:20:15 +00:00
parent 51e37ecf1a
commit e096d59076
30 changed files with 2414 additions and 447 deletions

View File

@@ -38,6 +38,7 @@ import java.util.TreeMap;
import org.alfresco.model.ContentModel;
import org.alfresco.model.WCMModel;
import org.alfresco.repo.avm.util.AVMUtil;
import org.alfresco.repo.avm.util.RawServices;
import org.alfresco.repo.avm.util.SimplePath;
import org.alfresco.repo.domain.DbAccessControlList;
@@ -156,8 +157,8 @@ public class AVMStoreImpl implements AVMStore
getNextVersionID(),
time,
creator,
"Initial Empty Version.",
"Initial Empty Version.");
AVMUtil.INITIAL_SNAPSHOT,
AVMUtil.INITIAL_SNAPSHOT);
setNextVersionID(getNextVersionID()+1);
AVMDAOs.Instance().fAVMStoreDAO.update(this);
@@ -221,9 +222,8 @@ public class AVMStoreImpl implements AVMStore
// Force copies on all the layered nodes from last snapshot.
for (VersionLayeredNodeEntry entry : layeredEntries)
{
String path = entry.getPath();
path = path.substring(path.indexOf(':') + 1);
Lookup lookup = me.lookup(-1, path, false, false);
String[] pathParts = AVMUtil.splitPath(entry.getPath());
Lookup lookup = me.lookup(-1, pathParts[1], false, false);
if (lookup == null)
{
continue;
@@ -237,7 +237,33 @@ public class AVMStoreImpl implements AVMStore
{
continue;
}
fAVMRepository.forceCopy(entry.getPath());
if (lookup.getCurrentNode().getType() == AVMNodeType.LAYERED_DIRECTORY)
{
fAVMRepository.forceCopy(entry.getPath());
}
else if (lookup.getCurrentNode().getType() == AVMNodeType.LAYERED_FILE)
{
String parentName[] = AVMUtil.splitBase(entry.getPath());
parentName[0] = parentName[0].substring(parentName[0].indexOf(':') + 1);
lookup = lookupDirectory(-1, parentName[0], true);
DirectoryNode parent = (DirectoryNode)lookup.getCurrentNode();
Pair<AVMNode, Boolean> temp = parent.lookupChild(lookup, parentName[1], false);
AVMNode child = temp.getFirst();
if (child == null)
{
throw new AVMException("Unexpected: missing child: "+entry.getPath());
}
lookup.add(child, parentName[1], temp.getSecond(), false);
AVMNode newChild = ((LayeredFileNode)child).copyLiterally(lookup);
newChild.setAncestor(child);
parent.putChild(parentName[1], newChild);
}
// TODO This leaves the behavior of LayeredFiles not quite
// right.
/*
@@ -282,7 +308,7 @@ public class AVMStoreImpl implements AVMStore
continue;
}
layeredNodeIDs.add(layeredID);
String storeName = indirection.substring(0, indirection.indexOf(':'));
String storeName = AVMUtil.getStoreName(indirection);
if (!snapShotMap.containsKey(storeName))
{
AVMStore store = AVMDAOs.Instance().fAVMStoreDAO.getByName(storeName);