From aef81630b64a293626e51980e52a7d57c681c9e8 Mon Sep 17 00:00:00 2001 From: Ana Bozianu Date: Fri, 28 Apr 2017 16:57:03 +0300 Subject: [PATCH] Revert "Merge branch 'feature/RM-4572_CreateRecordResponseContainsWrongName' into 'master' " This reverts commit a0710a379a58d9ef38f492bbdb2d6274059328cb, reversing changes made to 7c4ead5bdf2c6b22ecfaa3fed68ad3014518db45. --- .../model/recordsModel.xml | 7 ---- .../model/RecordsManagementModel.java | 1 - .../RecordComponentIdentifierAspect.java | 39 +------------------ .../type/RecordsManagementContainerType.java | 5 +-- .../legacy/service/ReportServiceImplTest.java | 4 ++ 5 files changed, 6 insertions(+), 50 deletions(-) diff --git a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml index 7d90248df9..3ecc585a83 100644 --- a/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml +++ b/rm-community/rm-community-repo/config/alfresco/module/org_alfresco_module_rm/model/recordsModel.xml @@ -702,13 +702,6 @@ true false - - - Record Component Identifier Temporarily Editable Indicator - d:boolean - true - false - rma:filePlanComponent diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java index 765b8767d6..93d28f621c 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/RecordsManagementModel.java @@ -127,7 +127,6 @@ public interface RecordsManagementModel extends RecordsManagementCustomModel QName ASPECT_RECORD_COMPONENT_ID = QName.createQName(RM_URI, "recordComponentIdentifier"); QName PROP_IDENTIFIER = QName.createQName(RM_URI, "identifier"); QName PROP_DB_UNIQUENESS_ID = QName.createQName(RM_URI, "dbUniquenessId"); - QName PROP_ID_IS_TEMPORARILY_EDITABLE = QName.createQName(RM_URI, "idIsTemporarilyEditable"); // Vital record definition aspect QName ASPECT_VITAL_RECORD_DEFINITION = QName.createQName(RM_URI, "vitalRecordDefinition"); diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordComponentIdentifierAspect.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordComponentIdentifierAspect.java index ba91199d44..8395eb92ea 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordComponentIdentifierAspect.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/aspect/RecordComponentIdentifierAspect.java @@ -47,7 +47,6 @@ import org.alfresco.repo.policy.annotation.BehaviourKind; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork; import org.alfresco.service.cmr.attributes.AttributeService; -import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; import org.springframework.extensions.surf.util.I18NUtil; @@ -65,7 +64,6 @@ import org.springframework.extensions.surf.util.I18NUtil; public class RecordComponentIdentifierAspect extends BaseBehaviourBean implements NodeServicePolicies.OnUpdatePropertiesPolicy, NodeServicePolicies.BeforeDeleteNodePolicy, - NodeServicePolicies.OnAddAspectPolicy, CopyServicePolicies.OnCopyCompletePolicy { /** I18N */ @@ -129,7 +127,7 @@ public class RecordComponentIdentifierAspect extends BaseBehaviourBean if (newIdValue != null) { String oldIdValue = (String)before.get(PROP_IDENTIFIER); - if (oldIdValue != null && !oldIdValue.equals(newIdValue) && !isRecordIdentifierEditable(nodeRef)) + if (oldIdValue != null && !oldIdValue.equals(newIdValue)) { throw new IntegrityException(I18NUtil.getMessage(MSG_SET_ID, nodeRef.toString()), null); } @@ -142,17 +140,6 @@ public class RecordComponentIdentifierAspect extends BaseBehaviourBean }, AuthenticationUtil.getSystemUserName()); } - /** - * Utility method that checks if a record's identifier is temporarily editable - * @param record the record to check - * @return true if it is editable false otherwise - */ - private boolean isRecordIdentifierEditable(NodeRef record) - { - Boolean isEditableProperty = (Boolean)nodeService.getProperty(record, RecordsManagementModel.PROP_ID_IS_TEMPORARILY_EDITABLE); - return isEditableProperty == null ? false : isEditableProperty; - } - /** * Cleans up the {@link RecordsManagementModel#PROP_IDENTIFIER rma:identifier} property unique triplet. * @@ -252,28 +239,4 @@ public class RecordComponentIdentifierAspect extends BaseBehaviourBean } } - @Behaviour - ( - kind = BehaviourKind.CLASS, - notificationFrequency = NotificationFrequency.TRANSACTION_COMMIT - ) - @Override - public void onAddAspect(final NodeRef nodeRef, final QName aspectTypeQName) - { - AuthenticationUtil.runAsSystem(new RunAsWork() - { - public Object doWork() - { - /* - * When creating a new record the identifier is writable to allow the upload in multiple steps. - * On transaction commit make the identifier read only (remove the editable aspect). - */ - if(nodeService.exists(nodeRef) && nodeService.hasAspect(nodeRef, aspectTypeQName)) - { - nodeService.setProperty(nodeRef, RecordsManagementModel.PROP_ID_IS_TEMPORARILY_EDITABLE, false); - } - return null; - } - }); - } } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java index 23c2b40faf..3de61c94d0 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/model/rma/type/RecordsManagementContainerType.java @@ -124,8 +124,7 @@ public class RecordsManagementContainerType extends BaseBehaviourBean @Behaviour ( kind = BehaviourKind.ASSOCIATION, - // Execute on first event to make all type conversions and set all the properties before transaction ends and response is returned - notificationFrequency = NotificationFrequency.EVERY_EVENT, + notificationFrequency = NotificationFrequency.TRANSACTION_COMMIT, name = BEHAVIOUR_NAME ) public void onCreateChildAssociation(final ChildAssociationRef childAssocRef, boolean isNewNode) @@ -199,10 +198,8 @@ public class RecordsManagementContainerType extends BaseBehaviourBean if (nodeService.hasAspect(nodeRef, ASPECT_FILE_PLAN_COMPONENT) && nodeService.getProperty(nodeRef, PROP_IDENTIFIER) == null) { - // Generate identifier and leave it editable until the transaction ends String id = identifierService.generateIdentifier(nodeRef); nodeService.setProperty(nodeRef, RecordsManagementModel.PROP_IDENTIFIER, id); - nodeService.setProperty(nodeRef, RecordsManagementModel.PROP_ID_IS_TEMPORARILY_EDITABLE, true); } return null; } diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ReportServiceImplTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ReportServiceImplTest.java index aa4c854a1b..13a4fc31f5 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ReportServiceImplTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ReportServiceImplTest.java @@ -218,6 +218,10 @@ public class ReportServiceImplTest extends BaseRMTestCase implements ReportModel NodeRef recordFolder = recordFolderService.createRecordFolder(recordCategory, GUID.generate()); + // Set the record folder identifier + String identifier = identifierService.generateIdentifier(TYPE_RECORD_FOLDER, recordCategory); + nodeService.setProperty(recordFolder, PROP_IDENTIFIER, identifier); + // Complete event Map params = new HashMap(1); params.put(CompleteEventAction.PARAM_EVENT_NAME, CommonRMTestUtils.DEFAULT_EVENT_NAME);