Merged V3.1 to HEAD

12943: Port of support for ADB-47 from V2.1-A to 3.1
   12948: Port of tests from CHK-2235 for ADB-20 from V2.1-A to 3.1
   12965: Activated index tracker Quartz job by default
   12974: Port for lazy creation of home folders with configuration from V2.1-A to V3.1: original CHK-2619, CHK-2716
   12976: Merged V2.1A to V3.1
      8562: (record-only) Fix to lazily create home folders - DO NOT MERGE
      8694: (record-only) Added configuration for lazy or eager creation of home folders
   12978: Merged V3.0 to V3.1
      12920: Merged V2.2 to V3.0
         12456: Wire up AVM locking service by interface to allow for potential over-ride
         12457: Make AVM ChildKey case insensitive
         12470: Merged V2.2.1-NBC-FIXES to V2.2
            12156: Optimizations to WCMWorkflowEvaluator and WCMWorkflowDeletedEvaluator    
            12605: Hide annoying "Virtualisation Server not started" warnings (by making them debug)
         12707: AVM console - "snap" also allows tag and description to be specified
   12979: Build/test fix
   ___________________________________________________________________
   Modified: svn:mergeinfo
      Merged /alfresco/BRANCHES/DEV/V2.2.1-NBC-FIXES:r12156
      Merged /alfresco/BRANCHES/V2.1-A:r8562,8694
      Merged /alfresco/BRANCHES/V3.0:r12920
      Merged /alfresco/BRANCHES/V2.2:r12456-12457,12470,12605,12707
      Merged /alfresco/BRANCHES/V3.1:r12943,12948,12965,12974,12976,12978-12979


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13544 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-03-11 01:06:49 +00:00
parent 6773e2f1ce
commit 5c7525fc4a
5 changed files with 71 additions and 47 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2005-2008 Alfresco Software Limited.
* Copyright (C) 2005-2009 Alfresco Software Limited.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -37,8 +37,8 @@ import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.LayeringDescriptor;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.Pair;
import org.alfresco.wcm.asset.AssetInfo;
import org.alfresco.wcm.asset.AssetInfoImpl;
import org.alfresco.web.bean.BrowseBean;
@@ -164,7 +164,6 @@ public class AVMNode extends Node implements Map<String, Object>
private LayeringDescriptor layeringDesc;
private final int version;
private final boolean deleted;
private WebProject webProject;
private Boolean workflowInFlight;
public AVMNode(final AssetInfo asset)
@@ -243,6 +242,11 @@ public class AVMNode extends Node implements Map<String, Object>
return this.avmRef.isFile() || this.avmRef.isDeletedFile();
}
public final boolean isDeleted()
{
return this.avmRef.isDeleted();
}
public final boolean isModified()
{
if (this.layeringDesc == null)
@@ -252,7 +256,7 @@ public class AVMNode extends Node implements Map<String, Object>
return !this.layeringDesc.isBackground();
}
public final boolean isWorkflowInFlight()
public final boolean isWorkflowInFlight(List<WorkflowTask> tasks)
{
if (this.workflowInFlight == null)
{
@@ -262,30 +266,12 @@ public class AVMNode extends Node implements Map<String, Object>
}
else
{
// optimization to avoid having to perform a workflow query and multiple lookups
// per workflow sandbox. only accurate for files, not new directories
if (!this.isDirectory())
{
this.workflowInFlight = false;
final List<Pair<Integer, String>> headPaths = this.getServiceRegistry().getAVMService().getHeadPaths(this.getDescriptor());
for (final Pair<Integer, String> headPath : headPaths)
{
if (AVMUtil.isWorkflowStore(AVMUtil.getStoreName(headPath.getSecond())))
{
this.workflowInFlight = true;
break;
}
}
}
else
{
this.workflowInFlight = AVMWorkflowUtil.getAssociatedTasksForNode(this.getDescriptor()).size() != 0;
}
this.workflowInFlight = AVMWorkflowUtil.getAssociatedTasksForNode(this.avmRef, tasks).size() != 0;
}
}
return this.workflowInFlight;
}
/**
* @return All the properties known about this node.
*/