diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml index df03db2f7f..b6d791a296 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-service-context.xml @@ -1265,6 +1265,8 @@ + + diff --git a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml index ad81f2962f..4d964f0686 100644 --- a/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml +++ b/rm-server/config/alfresco/module/org_alfresco_module_rm/rm-webscript-context.xml @@ -406,6 +406,7 @@ + diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionService.java index 13f1570e2b..9419778aaa 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionService.java @@ -225,4 +225,11 @@ public interface DispositionService * @param nodeRef node reference */ void updateNextDispositionAction(NodeRef nodeRef); + + /** + * Refreshes the disposition action details of the given node. + * + * @param nodeRef node reference + */ + void refreshDispositionAction(NodeRef nodeRef); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java index 488a7b247d..c37e4b0a80 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/disposition/DispositionServiceImpl.java @@ -202,10 +202,9 @@ public class DispositionServiceImpl implements } /** - * Helper method used to refresh the dispostion action details of the given node. - * - * @param nodeRef node reference + * @see org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService#refreshDispositionAction(NodeRef) */ + @Override public void refreshDispositionAction(NodeRef nodeRef) { ParameterCheck.mandatory("nodeRef", nodeRef); @@ -224,7 +223,6 @@ public class DispositionServiceImpl implements initialiseDispositionAction(nodeRef, nextDispositionActionDefinition); } } - } /** ========= Disposition Property Methods ========= */ diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java index 3708580746..ee2c79418f 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/model/behaviour/RecordCopyBehaviours.java @@ -24,7 +24,7 @@ import java.util.List; import java.util.Map; import org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry; -import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionServiceImpl; +import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService; import org.alfresco.module.org_alfresco_module_rm.identifier.IdentifierService; import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.record.RecordService; @@ -43,17 +43,13 @@ import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.QName; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; /** * Class containing behaviour for the vitalRecordDefinition aspect. * * @author neilm */ -public class RecordCopyBehaviours implements RecordsManagementModel, - ApplicationContextAware +public class RecordCopyBehaviours implements RecordsManagementModel { /** The policy component */ private PolicyComponent policyComponent; @@ -67,18 +63,6 @@ public class RecordCopyBehaviours implements RecordsManagementModel, /** List of aspects to remove during move and copy */ private List unwantedAspects = new ArrayList(5); - /** Application context */ - private ApplicationContext applicationContext; - - /** - * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) - */ - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException - { - this.applicationContext = applicationContext; - } - /** * Set the policy component * @@ -218,7 +202,7 @@ public class RecordCopyBehaviours implements RecordsManagementModel, { final RecordService rmRecordService = rmServiceRegistry.getRecordService(); final RecordFolderService recordFolderService = rmServiceRegistry.getRecordFolderService(); - final DispositionServiceImpl dispositionService = (DispositionServiceImpl)applicationContext.getBean("dispositionService"); + final DispositionService dispositionService = rmServiceRegistry.getDispositionService(); behaviourFilter.disableBehaviour(); try diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java index abf4db9bce..e5c86222a4 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/record/RecordServiceImpl.java @@ -47,7 +47,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.role.Role; import org.alfresco.module.org_alfresco_module_rm.security.ExtendedSecurityService; -import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordServiceImpl; +import org.alfresco.module.org_alfresco_module_rm.vital.VitalRecordService; import org.alfresco.repo.node.NodeServicePolicies; import org.alfresco.repo.policy.Behaviour.NotificationFrequency; import org.alfresco.repo.policy.JavaBehaviour; @@ -85,9 +85,6 @@ import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; import org.springframework.extensions.surf.util.I18NUtil; /** @@ -101,7 +98,6 @@ public class RecordServiceImpl implements RecordService, RecordsManagementCustomModel, NodeServicePolicies.OnCreateChildAssociationPolicy, NodeServicePolicies.OnUpdatePropertiesPolicy, - ApplicationContextAware, NodeServicePolicies.OnAddAspectPolicy, NodeServicePolicies.OnRemoveAspectPolicy { @@ -148,9 +144,6 @@ public class RecordServiceImpl implements RecordService, }; - /** Application context */ - private ApplicationContext applicationContext; - /** Node service **/ private NodeService nodeService; @@ -193,6 +186,12 @@ public class RecordServiceImpl implements RecordService, /** Record folder service */ private RecordFolderService recordFolderService; + /** Vital record service */ + private VitalRecordService vitalRecordService; + + /** File plan role service */ + private FilePlanRoleService filePlanRoleService; + /** List of available record meta-data aspects */ private Set recordMetaDataAspects; @@ -210,12 +209,6 @@ public class RecordServiceImpl implements RecordService, "onDeleteDeclaredRecordLink", NotificationFrequency.FIRST_EVENT); - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException - { - this.applicationContext = applicationContext; - } - /** * @param nodeService node service */ @@ -328,6 +321,22 @@ public class RecordServiceImpl implements RecordService, this.recordFolderService = recordFolderService; } + /** + * @param vitalRecordService vital record service + */ + public void setVitalRecordService(VitalRecordService vitalRecordService) + { + this.vitalRecordService = vitalRecordService; + } + + /** + * @param filePlanRoleService file plan role service + */ + public void setFilePlanRoleService(FilePlanRoleService filePlanRoleService) + { + this.filePlanRoleService = filePlanRoleService; + } + /** * Init method */ @@ -907,7 +916,6 @@ public class RecordServiceImpl implements RecordService, // initialise vital record details // TODO .. change this to add the aspect which will trigger the init behaviour - VitalRecordServiceImpl vitalRecordService = (VitalRecordServiceImpl)applicationContext.getBean("vitalRecordService"); vitalRecordService.initialiseVitalRecord(record); // initialise disposition details @@ -1072,12 +1080,8 @@ public class RecordServiceImpl implements RecordService, } // DEBUG ... - FilePlanService fps = (FilePlanService)applicationContext.getBean("filePlanService"); - FilePlanRoleService fprs = (FilePlanRoleService)applicationContext.getBean("filePlanRoleService"); - PermissionService ps = (PermissionService)applicationContext.getBean("permissionService"); - - NodeRef filePlan = fps.getFilePlan(record); - Set roles = fprs.getRolesByUser(filePlan, AuthenticationUtil.getRunAsUser()); + NodeRef filePlan = filePlanService.getFilePlan(record); + Set roles = filePlanRoleService.getRolesByUser(filePlan, AuthenticationUtil.getRunAsUser()); if (logger.isDebugEnabled() == true) { @@ -1104,7 +1108,7 @@ public class RecordServiceImpl implements RecordService, { logger.debug(" ... user has the following set permissions on the file plan"); } - Set perms = ps.getAllSetPermissions(filePlan); + Set perms = permissionService.getAllSetPermissions(filePlan); for (AccessPermission perm : perms) { if (logger.isDebugEnabled() == true && @@ -1115,7 +1119,7 @@ public class RecordServiceImpl implements RecordService, } } - if (ps.hasPermission(filePlan, RMPermissionModel.EDIT_NON_RECORD_METADATA).equals(AccessStatus.ALLOWED)) + if (permissionService.hasPermission(filePlan, RMPermissionModel.EDIT_NON_RECORD_METADATA).equals(AccessStatus.ALLOWED)) { if (logger.isDebugEnabled() == true) { diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java index 42f293300a..c9fbd66a66 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/script/BootstrapTestDataGet.java @@ -38,7 +38,7 @@ import org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour; import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RmSiteType; -import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderServiceImpl; +import org.alfresco.module.org_alfresco_module_rm.recordfolder.RecordFolderService; import org.alfresco.module.org_alfresco_module_rm.security.RecordsManagementSecurityService; import org.alfresco.module.org_alfresco_module_rm.security.Role; import org.alfresco.repo.security.authentication.AuthenticationUtil; @@ -57,9 +57,6 @@ import org.alfresco.service.cmr.view.ImporterService; import org.alfresco.service.cmr.view.Location; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; import org.springframework.extensions.webscripts.Cache; import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.Status; @@ -70,7 +67,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest; */ @Deprecated public class BootstrapTestDataGet extends DeclarativeWebScript - implements RecordsManagementModel, ApplicationContextAware + implements RecordsManagementModel { private static Log logger = LogFactory.getLog(BootstrapTestDataGet.class); @@ -93,13 +90,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript private AuthorityService authorityService; private RecordsManagementSearchBehaviour recordsManagementSearchBehaviour; private DispositionService dispositionService; - private ApplicationContext applicationContext; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException - { - this.applicationContext = applicationContext; - } + private RecordFolderService recordFolderService; public void setNodeService(NodeService nodeService) { @@ -156,6 +147,11 @@ public class BootstrapTestDataGet extends DeclarativeWebScript this.recordsManagementSearchBehaviour = searchBehaviour; } + public void setRecordFolderService(RecordFolderService recordFolderService) + { + this.recordFolderService = recordFolderService; + } + @Override public Map executeImpl(WebScriptRequest req, Status status, Cache cache) { @@ -208,11 +204,11 @@ public class BootstrapTestDataGet extends DeclarativeWebScript } // Patch data - BootstrapTestDataGet.patchLoadedData(applicationContext, searchService, nodeService, recordsManagementService, + BootstrapTestDataGet.patchLoadedData(searchService, nodeService, recordsManagementService, recordsManagementActionService, permissionService, authorityService, recordsManagementSecurityService, recordsManagementSearchBehaviour, - dispositionService); + dispositionService, recordFolderService); Map model = new HashMap(1, 1.0f); model.put("success", true); @@ -228,8 +224,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript * @param recordsManagementService * @param recordsManagementActionService */ - public static void patchLoadedData( final ApplicationContext applicationContext, - final SearchService searchService, + public static void patchLoadedData( final SearchService searchService, final NodeService nodeService, final RecordsManagementService recordsManagementService, final RecordsManagementActionService recordsManagementActionService, @@ -237,7 +232,8 @@ public class BootstrapTestDataGet extends DeclarativeWebScript final AuthorityService authorityService, final RecordsManagementSecurityService recordsManagementSecurityService, final RecordsManagementSearchBehaviour recordManagementSearchBehaviour, - final DispositionService dispositionService) + final DispositionService dispositionService, + final RecordFolderService recordFolderService) { AuthenticationUtil.RunAsWork runAsWork = new AuthenticationUtil.RunAsWork() { @@ -327,8 +323,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript { // Fire action to "set-up" the folder correctly logger.info("Setting up bootstraped record folder: " + folderName); - RecordFolderServiceImpl recordService = (RecordFolderServiceImpl)applicationContext.getBean("RecordFolderService"); - recordService.initialiseRecordFolder(recordFolder); + recordFolderService.initialiseRecordFolder(recordFolder); } } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordService.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordService.java index a572c1b1a7..3d1f4f5376 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordService.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordService.java @@ -23,38 +23,45 @@ import org.alfresco.service.cmr.repository.Period; /** * Vital Record Service. - * + * * @author Roy Wetherall * @since 2.0 */ public interface VitalRecordService -{ +{ /** Period 'none' */ static final Period PERIOD_NONE = new Period("none|0"); - + /** - * Gets the vital record definition details for the node. - * + * Gets the vital record definition details for the node. + * * @param nodeRef node reference * @return VitalRecordDefinition vital record definition details */ VitalRecordDefinition getVitalRecordDefinition(NodeRef nodeRef); - + /** * Sets the vital record definition values for a given node. - * + * * @param nodeRef * @param enabled * @param reviewPeriod * @return */ VitalRecordDefinition setVitalRecordDefintion(NodeRef nodeRef, boolean enabled, Period reviewPeriod); - + /** * Indicates whether the record is a vital one or not. - * + * * @param nodeRef node reference * @return boolean true if this is a vital record, false otherwise */ - boolean isVitalRecord(NodeRef nodeRef); + boolean isVitalRecord(NodeRef nodeRef); + + /** + * Initialises the vital record details. + * + * @param nodeRef node reference to initialise with vital record details + */ + void initialiseVitalRecord(NodeRef nodeRef); } diff --git a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java index 802692a6da..b8d640cc6b 100644 --- a/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java +++ b/rm-server/source/java/org/alfresco/module/org_alfresco_module_rm/vital/VitalRecordServiceImpl.java @@ -238,11 +238,7 @@ public class VitalRecordServiceImpl implements VitalRecordService, } /** - * Helper method used by services with access to the private bean to initialise vital record details. - * - * TODO consider what (if any of this) should be on the public interface - * - * @param nodeRef node reference to initialise with vital record details + * @see VitalRecordService#initialiseVitalRecord(NodeRef) */ public void initialiseVitalRecord(NodeRef nodeRef) {