Removed applicationContext from the java classes where possible and used dependency injection instead.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@58074 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Tuna Aksoy
2013-11-21 15:02:02 +00:00
parent cc00d9b5f0
commit b30410c1db
9 changed files with 74 additions and 80 deletions

View File

@@ -1265,6 +1265,8 @@
<property name="ruleService" ref="RuleService" /> <property name="ruleService" ref="RuleService" />
<property name="fileFolderService" ref="FileFolderService" /> <property name="fileFolderService" ref="FileFolderService" />
<property name="recordFolderService" ref="RecordFolderService" /> <property name="recordFolderService" ref="RecordFolderService" />
<property name="vitalRecordService" ref="VitalRecordService" />
<property name="filePlanRoleService" ref="FilePlanRoleService" />
</bean> </bean>
<bean id="RecordService" class="org.springframework.aop.framework.ProxyFactoryBean"> <bean id="RecordService" class="org.springframework.aop.framework.ProxyFactoryBean">

View File

@@ -406,6 +406,7 @@
<property name="recordsManagementSecurityService" ref="RecordsManagementSecurityService" /> <property name="recordsManagementSecurityService" ref="RecordsManagementSecurityService" />
<property name="recordsManagementSearchBehaviour" ref="recordsManagementSearchBehaviour" /> <property name="recordsManagementSearchBehaviour" ref="recordsManagementSearchBehaviour" />
<property name="dispositionService" ref="dispositionService" /> <property name="dispositionService" ref="dispositionService" />
<property name="recordFolderService" ref="RecordFolderService" />
</bean> </bean>
<!-- REST impl for GET applydodcertmodelfixes --> <!-- REST impl for GET applydodcertmodelfixes -->

View File

@@ -225,4 +225,11 @@ public interface DispositionService
* @param nodeRef node reference * @param nodeRef node reference
*/ */
void updateNextDispositionAction(NodeRef nodeRef); void updateNextDispositionAction(NodeRef nodeRef);
/**
* Refreshes the disposition action details of the given node.
*
* @param nodeRef node reference
*/
void refreshDispositionAction(NodeRef nodeRef);
} }

View File

@@ -202,10 +202,9 @@ public class DispositionServiceImpl implements
} }
/** /**
* Helper method used to refresh the dispostion action details of the given node. * @see org.alfresco.module.org_alfresco_module_rm.disposition.DispositionService#refreshDispositionAction(NodeRef)
*
* @param nodeRef node reference
*/ */
@Override
public void refreshDispositionAction(NodeRef nodeRef) public void refreshDispositionAction(NodeRef nodeRef)
{ {
ParameterCheck.mandatory("nodeRef", nodeRef); ParameterCheck.mandatory("nodeRef", nodeRef);
@@ -224,7 +223,6 @@ public class DispositionServiceImpl implements
initialiseDispositionAction(nodeRef, nextDispositionActionDefinition); initialiseDispositionAction(nodeRef, nextDispositionActionDefinition);
} }
} }
} }
/** ========= Disposition Property Methods ========= */ /** ========= Disposition Property Methods ========= */

View File

@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import org.alfresco.module.org_alfresco_module_rm.RecordsManagementServiceRegistry; 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.identifier.IdentifierService;
import org.alfresco.module.org_alfresco_module_rm.model.RecordsManagementModel; 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.record.RecordService;
@@ -43,17 +43,13 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService; import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName; 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. * Class containing behaviour for the vitalRecordDefinition aspect.
* *
* @author neilm * @author neilm
*/ */
public class RecordCopyBehaviours implements RecordsManagementModel, public class RecordCopyBehaviours implements RecordsManagementModel
ApplicationContextAware
{ {
/** The policy component */ /** The policy component */
private PolicyComponent policyComponent; private PolicyComponent policyComponent;
@@ -67,18 +63,6 @@ public class RecordCopyBehaviours implements RecordsManagementModel,
/** List of aspects to remove during move and copy */ /** List of aspects to remove during move and copy */
private List<QName> unwantedAspects = new ArrayList<QName>(5); private List<QName> unwantedAspects = new ArrayList<QName>(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 * Set the policy component
* *
@@ -218,7 +202,7 @@ public class RecordCopyBehaviours implements RecordsManagementModel,
{ {
final RecordService rmRecordService = rmServiceRegistry.getRecordService(); final RecordService rmRecordService = rmServiceRegistry.getRecordService();
final RecordFolderService recordFolderService = rmServiceRegistry.getRecordFolderService(); final RecordFolderService recordFolderService = rmServiceRegistry.getRecordFolderService();
final DispositionServiceImpl dispositionService = (DispositionServiceImpl)applicationContext.getBean("dispositionService"); final DispositionService dispositionService = rmServiceRegistry.getDispositionService();
behaviourFilter.disableBehaviour(); behaviourFilter.disableBehaviour();
try try

View File

@@ -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.FilePlanRoleService;
import org.alfresco.module.org_alfresco_module_rm.role.Role; 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.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.node.NodeServicePolicies;
import org.alfresco.repo.policy.Behaviour.NotificationFrequency; import org.alfresco.repo.policy.Behaviour.NotificationFrequency;
import org.alfresco.repo.policy.JavaBehaviour; 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.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; 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; import org.springframework.extensions.surf.util.I18NUtil;
/** /**
@@ -101,7 +98,6 @@ public class RecordServiceImpl implements RecordService,
RecordsManagementCustomModel, RecordsManagementCustomModel,
NodeServicePolicies.OnCreateChildAssociationPolicy, NodeServicePolicies.OnCreateChildAssociationPolicy,
NodeServicePolicies.OnUpdatePropertiesPolicy, NodeServicePolicies.OnUpdatePropertiesPolicy,
ApplicationContextAware,
NodeServicePolicies.OnAddAspectPolicy, NodeServicePolicies.OnAddAspectPolicy,
NodeServicePolicies.OnRemoveAspectPolicy NodeServicePolicies.OnRemoveAspectPolicy
{ {
@@ -148,9 +144,6 @@ public class RecordServiceImpl implements RecordService,
}; };
/** Application context */
private ApplicationContext applicationContext;
/** Node service **/ /** Node service **/
private NodeService nodeService; private NodeService nodeService;
@@ -193,6 +186,12 @@ public class RecordServiceImpl implements RecordService,
/** Record folder service */ /** Record folder service */
private RecordFolderService recordFolderService; private RecordFolderService recordFolderService;
/** Vital record service */
private VitalRecordService vitalRecordService;
/** File plan role service */
private FilePlanRoleService filePlanRoleService;
/** List of available record meta-data aspects */ /** List of available record meta-data aspects */
private Set<QName> recordMetaDataAspects; private Set<QName> recordMetaDataAspects;
@@ -210,12 +209,6 @@ public class RecordServiceImpl implements RecordService,
"onDeleteDeclaredRecordLink", "onDeleteDeclaredRecordLink",
NotificationFrequency.FIRST_EVENT); NotificationFrequency.FIRST_EVENT);
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
this.applicationContext = applicationContext;
}
/** /**
* @param nodeService node service * @param nodeService node service
*/ */
@@ -328,6 +321,22 @@ public class RecordServiceImpl implements RecordService,
this.recordFolderService = recordFolderService; 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 * Init method
*/ */
@@ -907,7 +916,6 @@ public class RecordServiceImpl implements RecordService,
// initialise vital record details // initialise vital record details
// TODO .. change this to add the aspect which will trigger the init behaviour // TODO .. change this to add the aspect which will trigger the init behaviour
VitalRecordServiceImpl vitalRecordService = (VitalRecordServiceImpl)applicationContext.getBean("vitalRecordService");
vitalRecordService.initialiseVitalRecord(record); vitalRecordService.initialiseVitalRecord(record);
// initialise disposition details // initialise disposition details
@@ -1072,12 +1080,8 @@ public class RecordServiceImpl implements RecordService,
} }
// DEBUG ... // DEBUG ...
FilePlanService fps = (FilePlanService)applicationContext.getBean("filePlanService"); NodeRef filePlan = filePlanService.getFilePlan(record);
FilePlanRoleService fprs = (FilePlanRoleService)applicationContext.getBean("filePlanRoleService"); Set<Role> roles = filePlanRoleService.getRolesByUser(filePlan, AuthenticationUtil.getRunAsUser());
PermissionService ps = (PermissionService)applicationContext.getBean("permissionService");
NodeRef filePlan = fps.getFilePlan(record);
Set<Role> roles = fprs.getRolesByUser(filePlan, AuthenticationUtil.getRunAsUser());
if (logger.isDebugEnabled() == true) 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"); logger.debug(" ... user has the following set permissions on the file plan");
} }
Set<AccessPermission> perms = ps.getAllSetPermissions(filePlan); Set<AccessPermission> perms = permissionService.getAllSetPermissions(filePlan);
for (AccessPermission perm : perms) for (AccessPermission perm : perms)
{ {
if (logger.isDebugEnabled() == true && 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) if (logger.isDebugEnabled() == true)
{ {

View File

@@ -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.RecordsManagementModel;
import org.alfresco.module.org_alfresco_module_rm.model.behaviour.RecordsManagementSearchBehaviour; 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.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.RecordsManagementSecurityService;
import org.alfresco.module.org_alfresco_module_rm.security.Role; import org.alfresco.module.org_alfresco_module_rm.security.Role;
import org.alfresco.repo.security.authentication.AuthenticationUtil; 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.alfresco.service.cmr.view.Location;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; 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.Cache;
import org.springframework.extensions.webscripts.DeclarativeWebScript; import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status; import org.springframework.extensions.webscripts.Status;
@@ -70,7 +67,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
*/ */
@Deprecated @Deprecated
public class BootstrapTestDataGet extends DeclarativeWebScript public class BootstrapTestDataGet extends DeclarativeWebScript
implements RecordsManagementModel, ApplicationContextAware implements RecordsManagementModel
{ {
private static Log logger = LogFactory.getLog(BootstrapTestDataGet.class); private static Log logger = LogFactory.getLog(BootstrapTestDataGet.class);
@@ -93,13 +90,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
private AuthorityService authorityService; private AuthorityService authorityService;
private RecordsManagementSearchBehaviour recordsManagementSearchBehaviour; private RecordsManagementSearchBehaviour recordsManagementSearchBehaviour;
private DispositionService dispositionService; private DispositionService dispositionService;
private ApplicationContext applicationContext; private RecordFolderService recordFolderService;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
this.applicationContext = applicationContext;
}
public void setNodeService(NodeService nodeService) public void setNodeService(NodeService nodeService)
{ {
@@ -156,6 +147,11 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
this.recordsManagementSearchBehaviour = searchBehaviour; this.recordsManagementSearchBehaviour = searchBehaviour;
} }
public void setRecordFolderService(RecordFolderService recordFolderService)
{
this.recordFolderService = recordFolderService;
}
@Override @Override
public Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache) public Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
{ {
@@ -208,11 +204,11 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
} }
// Patch data // Patch data
BootstrapTestDataGet.patchLoadedData(applicationContext, searchService, nodeService, recordsManagementService, BootstrapTestDataGet.patchLoadedData(searchService, nodeService, recordsManagementService,
recordsManagementActionService, permissionService, recordsManagementActionService, permissionService,
authorityService, recordsManagementSecurityService, authorityService, recordsManagementSecurityService,
recordsManagementSearchBehaviour, recordsManagementSearchBehaviour,
dispositionService); dispositionService, recordFolderService);
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f); Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
model.put("success", true); model.put("success", true);
@@ -228,8 +224,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
* @param recordsManagementService * @param recordsManagementService
* @param recordsManagementActionService * @param recordsManagementActionService
*/ */
public static void patchLoadedData( final ApplicationContext applicationContext, public static void patchLoadedData( final SearchService searchService,
final SearchService searchService,
final NodeService nodeService, final NodeService nodeService,
final RecordsManagementService recordsManagementService, final RecordsManagementService recordsManagementService,
final RecordsManagementActionService recordsManagementActionService, final RecordsManagementActionService recordsManagementActionService,
@@ -237,7 +232,8 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
final AuthorityService authorityService, final AuthorityService authorityService,
final RecordsManagementSecurityService recordsManagementSecurityService, final RecordsManagementSecurityService recordsManagementSecurityService,
final RecordsManagementSearchBehaviour recordManagementSearchBehaviour, final RecordsManagementSearchBehaviour recordManagementSearchBehaviour,
final DispositionService dispositionService) final DispositionService dispositionService,
final RecordFolderService recordFolderService)
{ {
AuthenticationUtil.RunAsWork<Object> runAsWork = new AuthenticationUtil.RunAsWork<Object>() AuthenticationUtil.RunAsWork<Object> runAsWork = new AuthenticationUtil.RunAsWork<Object>()
{ {
@@ -327,8 +323,7 @@ public class BootstrapTestDataGet extends DeclarativeWebScript
{ {
// Fire action to "set-up" the folder correctly // Fire action to "set-up" the folder correctly
logger.info("Setting up bootstraped record folder: " + folderName); logger.info("Setting up bootstraped record folder: " + folderName);
RecordFolderServiceImpl recordService = (RecordFolderServiceImpl)applicationContext.getBean("RecordFolderService"); recordFolderService.initialiseRecordFolder(recordFolder);
recordService.initialiseRecordFolder(recordFolder);
} }
} }

View File

@@ -23,38 +23,45 @@ import org.alfresco.service.cmr.repository.Period;
/** /**
* Vital Record Service. * Vital Record Service.
* *
* @author Roy Wetherall * @author Roy Wetherall
* @since 2.0 * @since 2.0
*/ */
public interface VitalRecordService public interface VitalRecordService
{ {
/** Period 'none' */ /** Period 'none' */
static final Period PERIOD_NONE = new Period("none|0"); 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 * @param nodeRef node reference
* @return VitalRecordDefinition vital record definition details * @return VitalRecordDefinition vital record definition details
*/ */
VitalRecordDefinition getVitalRecordDefinition(NodeRef nodeRef); VitalRecordDefinition getVitalRecordDefinition(NodeRef nodeRef);
/** /**
* Sets the vital record definition values for a given node. * Sets the vital record definition values for a given node.
* *
* @param nodeRef * @param nodeRef
* @param enabled * @param enabled
* @param reviewPeriod * @param reviewPeriod
* @return * @return
*/ */
VitalRecordDefinition setVitalRecordDefintion(NodeRef nodeRef, boolean enabled, Period reviewPeriod); VitalRecordDefinition setVitalRecordDefintion(NodeRef nodeRef, boolean enabled, Period reviewPeriod);
/** /**
* Indicates whether the record is a vital one or not. * Indicates whether the record is a vital one or not.
* *
* @param nodeRef node reference * @param nodeRef node reference
* @return boolean true if this is a vital record, false otherwise * @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);
} }

View File

@@ -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. * @see VitalRecordService#initialiseVitalRecord(NodeRef)
*
* TODO consider what (if any of this) should be on the public interface
*
* @param nodeRef node reference to initialise with vital record details
*/ */
public void initialiseVitalRecord(NodeRef nodeRef) public void initialiseVitalRecord(NodeRef nodeRef)
{ {