MOB-1073: RM Ghosted Records

- The <archive> setting on model class definitions (controlling archival on node deletion) is now paid attention to for aspects as well as types
- Archive is on by default for aspects and off by default for types
- If a node's type or any of its aspects has archiving off then it will be purged rather than archived
- Only the cm:content and cm:folder types currently have archiving switched on
- RM subtypes of cm:content and cm:folder plus rm:record aspect switch off archiving
- A module can now include global property overrides in classpath*:alfresco/module/*/alfresco-global.properties
- The RM module currently sets two global properties:
   system.content.eagerOrphanCleanup=true # Switches on synchronous content purging
   rm.ghosting.enabled=true               # Enables the new RM ghosting functionality
- When ghosting is switched on, for nodes with the rma:record aspect the DestroyAction synchronously removes all content properties and applies the rma:ghosted aspect
- TODO: Any properties required for rma:ghosted?


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@15990 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2009-08-28 15:26:15 +00:00
parent d5a1794c18
commit 7fbccecd71
5 changed files with 40 additions and 31 deletions

View File

@@ -312,7 +312,7 @@ import org.alfresco.service.namespace.QName;
if (parentClass != null && archive == null)
{
// archive not explicitly set on this class and there is a parent class
inheritedArchive = ((M2ClassDefinition)parentClass).isArchive();
inheritedArchive = ((M2ClassDefinition)parentClass).getArchive();
}
}
@@ -375,23 +375,17 @@ import org.alfresco.service.namespace.QName;
}
/**
* @return Returns the archive flag, which defaults to <tt>false</tt>
* @return Returns the archive flag, which defaults to <tt>true</tt> for aspects and <tt>false</tt> for other classes
*/
public boolean isArchive()
{
if (archive == null)
{
if (inheritedArchive != null)
{
return inheritedArchive.booleanValue();
}
else
{
// default to false
return false;
}
}
return archive;
Boolean isArchive = getArchive();
return isArchive == null ? isAspect() : isArchive.booleanValue();
}
protected Boolean getArchive()
{
return archive == null ? inheritedArchive : archive;
}
/* (non-Javadoc)