From 3c8e7ed6fc7ea98d85722e8073d085343812b5e4 Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Mon, 18 Nov 2013 11:30:16 +0000 Subject: [PATCH] RM-1095: Added TransferService git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@57961 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-capabilities-condition-context.xml | 2 +- .../rm-service-context.xml | 50 +++++++++++++++++++ .../RecordsManagementService.java | 10 ++-- .../RecordsManagementServiceImpl.java | 13 ++++- .../RecordsManagementServiceRegistry.java | 11 +++- .../RecordsManagementServiceRegistryImpl.java | 10 ++++ .../fileplan/FilePlanServiceImpl.java | 10 ++-- .../transfer/TransferService.java | 40 +++++++++++++++ .../transfer/TransferServiceImpl.java | 43 ++++++++++++++++ 9 files changed, 174 insertions(+), 15 deletions(-) create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferService.java create mode 100644 rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml index b4c08ab445..b78ae135ae 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/capability/rm-capabilities-condition-context.xml @@ -13,7 +13,7 @@ - + + + + + + + org.alfresco.module.org_alfresco_module_rm.transfer.TransferService + + + + + + + + + + + + + + + + + + + + ${server.transaction.mode.default} + + + + + + + + + + + + + + + + + + + + + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementService.java index 479446e51e..09bffd0727 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementService.java @@ -29,6 +29,7 @@ import org.alfresco.module.org_alfresco_module_rm.fileplan.FilePlanService; import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService; +import org.alfresco.module.org_alfresco_module_rm.transfer.TransferService; import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.namespace.QName; @@ -86,14 +87,11 @@ public interface RecordsManagementService boolean isRecordFolder(NodeRef nodeRef); /** - * Indicates whether the given node is a transfer (container) or not. - * - * @param nodeRef node reference - * @return boolean true if transfer, false otherwise - * * @since 2.0 + * @deprecated As of 2.2, see {@link TransferService#isTransfer(NodeRef)} */ - boolean isTransfer(NodeRef nodeRef); // transfer service + @Deprecated + boolean isTransfer(NodeRef nodeRef); /** * @since 2.0 diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceImpl.java index 24fbddf550..586b2780d2 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceImpl.java @@ -38,6 +38,7 @@ import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService; import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService; +import org.alfresco.module.org_alfresco_module_rm.transfer.TransferService; import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl; import org.alfresco.repo.policy.Behaviour.NotificationFrequency; import org.alfresco.repo.policy.JavaBehaviour; @@ -182,6 +183,14 @@ public class RecordsManagementServiceImpl extends ServiceBaseImpl return serviceRegistry.getNamespaceService(); } + /** + * @return Transfer service + */ + private TransferService getTransferService() + { + return serviceRegistry.getTransferService(); + } + /** * Init method. Registered behaviours. */ @@ -599,12 +608,12 @@ public class RecordsManagementServiceImpl extends ServiceBaseImpl } /** - * @see org.alfresco.module.org_alfresco_module_rm.RecordsManagementService#isTransfer(org.alfresco.service.cmr.repository.NodeRef) + * @deprecated As of 2.2, see {@link TransferService#isTransfer(NodeRef)} */ @Override public boolean isTransfer(NodeRef nodeRef) { - return instanceOf(nodeRef, TYPE_TRANSFER); + return getTransferService().isTransfer(nodeRef); } /** diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistry.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistry.java index 615084ea33..86a0a218f2 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistry.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistry.java @@ -34,6 +34,7 @@ import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityServi import org.alfresco.module.org_alfresco_module_rm.security.FilePlanAuthenticationService; import org.alfresco.module.org_alfresco_module_rm.security.FilePlanPermissionService; import org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService; +import org.alfresco.module.org_alfresco_module_rm.transfer.TransferService; import org.alfresco.service.NotAuditable; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.namespace.NamespaceService; @@ -63,9 +64,10 @@ public interface RecordsManagementServiceRegistry extends ServiceRegistry static final QName FILE_PLAN_PERMISSION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "FilePlanPermissionService"); static final QName FILE_PLAN_AUTHENTICATION_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "FilePlanAuthenticationService"); static final QName IDENTIFIER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "recordsManagementIdentifierService"); + static final QName RECORD_FOLDER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "RecordFolderService"); + static final QName TRANSFER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "TransferService"); @Deprecated static final QName RECORDS_MANAGEMENT_SECURITY_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "RecordsManagementSecurityService"); - static final QName RECORD_FOLDER_SERVICE = QName.createQName(NamespaceService.ALFRESCO_URI, "RecordFolderService"); /** @@ -179,4 +181,11 @@ public interface RecordsManagementServiceRegistry extends ServiceRegistry */ @NotAuditable RecordFolderService getRecordFolderService(); + + /** + * @return transfer service + * @since 2.2 + */ + @NotAuditable + TransferService getTransferService(); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistryImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistryImpl.java index b42343d2d0..31a1bbd20e 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistryImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/RecordsManagementServiceRegistryImpl.java @@ -33,6 +33,7 @@ import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityServi import org.alfresco.module.org_alfresco_module_rm.security.FilePlanAuthenticationService; import org.alfresco.module.org_alfresco_module_rm.security.FilePlanPermissionService; import org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService; +import org.alfresco.module.org_alfresco_module_rm.transfer.TransferService; import org.alfresco.repo.service.ServiceDescriptorRegistry; /** @@ -196,4 +197,13 @@ public class RecordsManagementServiceRegistryImpl extends ServiceDescriptorRegis { return (RecordFolderService) getService(RECORD_FOLDER_SERVICE); } + + /** + * @see org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry#getTransferService() + */ + @Override + public TransferService getTransferService() + { + return (TransferService) getService(TRANSFER_SERVICE); + } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java index da8ea1a261..0c39199086 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/fileplan/FilePlanServiceImpl.java @@ -29,7 +29,6 @@ import java.util.Set; import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.model.ContentModel; -import org.alfresco.module.org_alfresco_module_rm.RecordsManagementService; import org.alfresco.module.org_alfresco_module_rm.capability.RMPermissionModel; import org.alfresco.module.org_alfresco_module_rm.freeze.FreezeService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; @@ -38,6 +37,7 @@ import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderServi import org.alfresco.module.org_alfresco_module_rm.role.FilePlanRoleService; import org.alfresco.module.org_alfresco_module_rm.security.ExtendedReaderDynamicAuthority; import org.alfresco.module.org_alfresco_module_rm.security.ExtendedWriterDynamicAuthority; +import org.alfresco.module.org_alfresco_module_rm.transfer.TransferService; import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl; import org.alfresco.repo.domain.node.NodeDAO; import org.alfresco.service.cmr.repository.ChildAssociationRef; @@ -166,11 +166,11 @@ public class FilePlanServiceImpl extends ServiceBaseImpl } /** - * @return records management service + * @return transfer service */ - protected RecordsManagementService getRecordsManagementService() + protected TransferService getTransferService() { - return (RecordsManagementService)applicationContext.getBean("RecordsManagementService"); + return (TransferService)applicationContext.getBean("RmTransferService"); } /** @@ -218,7 +218,7 @@ public class FilePlanServiceImpl extends ServiceBaseImpl { result = FilePlanComponentKind.HOLD; } - else if (getRecordsManagementService().isTransfer(nodeRef) == true) + else if (getTransferService().isTransfer(nodeRef) == true) { result = FilePlanComponentKind.TRANSFER; } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferService.java new file mode 100644 index 0000000000..83db9939ba --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferService.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2005-2013 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.transfer; + +import org.alfresco.service.cmr.repository.NodeRef; + +/** + * Transfer Service Interface + * + * @author Tuna Aksoy + * @since 2.2 + */ +public interface TransferService +{ + /** + * Indicates whether the given node is a transfer (container) or not. + * + * @param nodeRef node reference + * @return boolean true if transfer, false otherwise + * + * @since 2.0 + */ + boolean isTransfer(NodeRef nodeRef); +} diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java new file mode 100644 index 0000000000..7c57663891 --- /dev/null +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/transfer/TransferServiceImpl.java @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2005-2013 Alfresco Software Limited. + * + * This file is part of Alfresco + * + * Alfresco is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Alfresco is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with Alfresco. If not, see . + */ +package org.alfresco.module.org_alfresco_module_rm.transfer; + +import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; +import org.alfresco.module.org_alfresco_module_rm.util.ServiceBaseImpl; +import org.alfresco.service.cmr.repository.NodeRef; +import org.springframework.extensions.surf.util.ParameterCheck; + +/** + * Transfer service implementation + * + * @author Tuna Aksoy + * @since 2.2 + */ +public class TransferServiceImpl extends ServiceBaseImpl implements TransferService, RecordsManagementModel +{ + /** + * @see org.alfresco.module.org_alfresco_module_rm.transfer.TransferService#isTransfer(NodeRef) + */ + @Override + public boolean isTransfer(NodeRef nodeRef) + { + ParameterCheck.mandatory("nodeRef", nodeRef); + return instanceOf(nodeRef, TYPE_TRANSFER); + } +}