From e074daa0f9fb53047b833b72396fea41011d5930 Mon Sep 17 00:00:00 2001 From: rodicasutu Date: Fri, 28 Aug 2020 11:41:00 +0300 Subject: [PATCH 1/2] make recordModelURIs extendable and add the enterprise record URIs extend in enterprise RecordableVersionNodeServiceImpl to remove content model properties related to worm store --- .../rm-service-context.xml | 12 +++++++++- .../rm-version-context.xml | 1 + .../record/RecordServiceImpl.java | 24 ++++++++++++------- .../RecordableVersionNodeServiceImpl.java | 22 +++++++++++++---- 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index f0833f33ec..384494786c 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -1079,6 +1079,7 @@ + @@ -1097,7 +1098,16 @@ http://www.alfresco.org/model/rendition/1.0 - + + + http://www.alfresco.org/model/recordsmanagement/1.0 + http://www.alfresco.org/model/rmcustom/1.0 + http://www.alfresco.org/model/recordsmanagementreport/1.0 + http://www.alfresco.org/model/recordableversion/1.0 + http://www.alfresco.org/model/dod5015/1.0 + + + diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml index f2fa42e120..1b85cae998 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/rm-version-context.xml @@ -40,6 +40,7 @@ + diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index 3bba5a30b4..6b67ff2c7b 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -197,14 +197,15 @@ public class RecordServiceImpl extends BaseBehaviourBean } /** record model URI's */ - public static final List RECORD_MODEL_URIS = Collections.unmodifiableList( - Arrays.asList( - RM_URI, - RM_CUSTOM_URI, - ReportModel.RMR_URI, - RecordableVersionModel.RMV_URI, - DOD5015Model.DOD_URI - )); + private List recordModelURIs; + + /** + * @param recordModelURIs namespaces specific to records + */ + public void setRecordModelURIs(List recordModelURIs) + { + this.recordModelURIs = recordModelURIs; + } /** non-record model URI's */ private static final String[] NON_RECORD_MODEL_URIS = new String[] @@ -269,6 +270,11 @@ public class RecordServiceImpl extends BaseBehaviourBean /** records management container type */ private RecordsManagementContainerType recordsManagementContainerType; + public RecordableVersionService getRecordableVersionService() + { + return recordableVersionService; + } + /** recordable version service */ private RecordableVersionService recordableVersionService; @@ -1733,7 +1739,7 @@ public class RecordServiceImpl extends BaseBehaviourBean else { // check the URI's - result = RECORD_MODEL_URIS.contains(property.getNamespaceURI()); + result = recordModelURIs.contains(property.getNamespaceURI()); // check the custom model if (!result && !ArrayUtils.contains(NON_RECORD_MODEL_URIS, property.getNamespaceURI())) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java index c9ad59aecc..f6104d438e 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java @@ -27,13 +27,12 @@ package org.alfresco.module.org_alfresco_module_rm.version; -import static org.alfresco.module.org_alfresco_module_rm.record.RecordServiceImpl.RECORD_MODEL_URIS; - import java.io.Serializable; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import java.util.Map; import java.util.Set; @@ -45,6 +44,7 @@ import org.alfresco.repo.version.Version2Model; import org.alfresco.repo.version.common.VersionUtil; import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.NodeRef; +import org.alfresco.service.cmr.version.Version; import org.alfresco.service.namespace.QName; /** @@ -60,6 +60,17 @@ public class RecordableVersionNodeServiceImpl extends Node2ServiceImpl /** record service */ private RecordService recordService; + /** record model URI's */ + private List recordModelURIs; + + /** + * @param recordModelURIs namespaces specific to records + */ + public void setRecordModelURIs(List recordModelURIs) + { + this.recordModelURIs = recordModelURIs; + } + /** * @param recordService record service */ @@ -116,7 +127,7 @@ public class RecordableVersionNodeServiceImpl extends Node2ServiceImpl if (!PROP_RECORDABLE_VERSION_POLICY.equals(property) && !PROP_FILE_PLAN.equals(property) && (recordService.isRecordMetadataProperty(property) || - RECORD_MODEL_URIS.contains(property.getNamespaceURI()))) + recordModelURIs.contains(property.getNamespaceURI()))) { properties.remove(property); } @@ -208,9 +219,12 @@ public class RecordableVersionNodeServiceImpl extends Node2ServiceImpl NodeRef converted = VersionUtil.convertNodeRef(nodeRef); if (dbNodeService.hasAspect(converted, ASPECT_RECORDED_VERSION)) { + NodeRef record = (NodeRef)dbNodeService.getProperty(converted, PROP_RECORD_NODE_REF); if (record != null && dbNodeService.exists(record)) { +// Version versionRecored = recordableVersionService.getRecordedVersion(record); +// NodeRef node = versionRecored.getVersionedNodeRef(); Set aspects = dbNodeService.getAspects(record); return processAspects(aspects); } @@ -244,7 +258,7 @@ public class RecordableVersionNodeServiceImpl extends Node2ServiceImpl { if (!ASPECT_VERSIONABLE.equals(aspect) && (recordService.isRecordMetadataAspect(aspect) || - RECORD_MODEL_URIS.contains(aspect.getNamespaceURI()))) + recordModelURIs.contains(aspect.getNamespaceURI()))) { result.remove(aspect); } From ea4772cd92dd12460ff9dec2c8db4d807dae1a2d Mon Sep 17 00:00:00 2001 From: rodicasutu Date: Tue, 1 Sep 2020 16:42:42 +0300 Subject: [PATCH 2/2] Unit tests for EnterpriseRecordableVersionNodeServiceImplUnitTest and some minor improvements --- .../version/RecordableVersionNodeServiceImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java index f6104d438e..b14d27858b 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/version/RecordableVersionNodeServiceImpl.java @@ -223,8 +223,6 @@ public class RecordableVersionNodeServiceImpl extends Node2ServiceImpl NodeRef record = (NodeRef)dbNodeService.getProperty(converted, PROP_RECORD_NODE_REF); if (record != null && dbNodeService.exists(record)) { -// Version versionRecored = recordableVersionService.getRecordedVersion(record); -// NodeRef node = versionRecored.getVersionedNodeRef(); Set aspects = dbNodeService.getAspects(record); return processAspects(aspects); }