Package org.alfresco.repo.module
Class AbstractModuleComponent
- java.lang.Object
-
- org.alfresco.repo.module.AbstractModuleComponent
-
- All Implemented Interfaces:
ModuleComponent,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware
- Direct Known Subclasses:
ImporterModuleComponent,LoggerModuleComponent
@AlfrescoPublicApi public abstract class AbstractModuleComponent extends java.lang.Object implements ModuleComponent, org.springframework.beans.factory.BeanNameAware
Implementation of aModuleComponentto provide the basic necessities.- Since:
- 2.0
- Author:
- Roy Wetherall, Derek Hulley
- See Also:
executeInternal()
-
-
Field Summary
Fields Modifier and Type Field Description protected AuthenticationComponentauthenticationComponentprotected ModuleServicemoduleServiceprotected ServiceRegistryserviceRegistry
-
Constructor Summary
Constructors Constructor Description AbstractModuleComponent()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected voidcheckProperties()Checks for the presence of all generally-required properties.booleanequals(java.lang.Object obj)voidexecute()Perform the actual component's work.protected abstract voidexecuteInternal()The method that performs the actual work.ModuleVersionNumbergetAppliesFromVersionNumber()ModuleVersionNumbergetAppliesToVersionNumber()java.util.List<ModuleComponent>getDependsOn()A list of module components that must be executed prior to this instance.java.lang.StringgetDescription()java.lang.StringgetModuleId()java.lang.StringgetName()ModuleVersionNumbergetSinceVersionNumber()inthashCode()voidinit()booleanisExecuteOnceOnly()voidsetAppliesFromVersion(java.lang.String version)Set the minimum module version number to which this component applies.voidsetAppliesToVersion(java.lang.String version)Set the minimum module version number to which this component applies.voidsetAuthenticationComponent(AuthenticationComponent authenticationComponent)voidsetBeanName(java.lang.String name)Convenience method that will set the name of the component to match the bean name, unless thenamehas been explicitly set.voidsetDependsOn(java.util.List<ModuleComponent> dependsOn)voidsetDescription(java.lang.String description)Set the component's description.voidsetExecuteOnceOnly(boolean executeOnceOnly)voidsetModuleId(java.lang.String moduleId)voidsetModuleService(ModuleService moduleService)Set the module service to register with.voidsetName(java.lang.String name)Set the component name, which must be unique within the context of the module.voidsetServiceRegistry(ServiceRegistry serviceRegistry)voidsetSinceVersion(java.lang.String version)Set the version number for which this component was added.voidsetTenantAdminService(TenantAdminService tenantAdminService)voidshutdown()Perform any cleanup required to remove module.java.lang.StringtoString()
-
-
-
Field Detail
-
serviceRegistry
protected ServiceRegistry serviceRegistry
-
authenticationComponent
protected AuthenticationComponent authenticationComponent
-
moduleService
protected ModuleService moduleService
-
-
Method Detail
-
checkProperties
protected void checkProperties()
Checks for the presence of all generally-required properties.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- See Also:
getModuleId(),getName()
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
setAuthenticationComponent
public void setAuthenticationComponent(AuthenticationComponent authenticationComponent)
-
setModuleService
public void setModuleService(ModuleService moduleService)
Set the module service to register with. If not set, the component will not be automatically started.- Parameters:
moduleService- the service to register against. This is optional.
-
setServiceRegistry
public void setServiceRegistry(ServiceRegistry serviceRegistry)
-
setTenantAdminService
public void setTenantAdminService(TenantAdminService tenantAdminService)
-
getModuleId
public java.lang.String getModuleId()
- Specified by:
getModuleIdin interfaceModuleComponent- Returns:
- Returns the globally unique module ID.
-
setModuleId
public void setModuleId(java.lang.String moduleId)
- Parameters:
moduleId- the globally unique module name.
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceModuleComponent- Returns:
- Returns the name of the component in the context of the module ID. It does not have to be globally unique.
-
setName
public void setName(java.lang.String name)
Set the component name, which must be unique within the context of the module. If the is not set, then the bean name will be used.- Parameters:
name- the name of the component within the module.- See Also:
setBeanName(String)
-
setBeanName
public void setBeanName(java.lang.String name)
Convenience method that will set the name of the component to match the bean name, unless thenamehas been explicitly set.- Specified by:
setBeanNamein interfaceorg.springframework.beans.factory.BeanNameAware
-
getDescription
public java.lang.String getDescription()
- Specified by:
getDescriptionin interfaceModuleComponent- Returns:
- Returns a description of the component.
-
setDescription
public void setDescription(java.lang.String description)
Set the component's description. This will automatically be I18N'ized, so it may just be a resource bundle key.- Parameters:
description- a description of the component.
-
getSinceVersionNumber
public ModuleVersionNumber getSinceVersionNumber()
- Specified by:
getSinceVersionNumberin interfaceModuleComponent- Returns:
- Returns the version number of the module for which this component was introduced.
-
setSinceVersion
public void setSinceVersion(java.lang.String version)
Set the version number for which this component was added.
-
getAppliesFromVersionNumber
public ModuleVersionNumber getAppliesFromVersionNumber()
- Specified by:
getAppliesFromVersionNumberin interfaceModuleComponent- Returns:
- Returns the smallest version number of the module to which this component applies.
-
setAppliesFromVersion
public void setAppliesFromVersion(java.lang.String version)
Set the minimum module version number to which this component applies. Default 0.0.
-
getAppliesToVersionNumber
public ModuleVersionNumber getAppliesToVersionNumber()
- Specified by:
getAppliesToVersionNumberin interfaceModuleComponent- Returns:
- Returns the largest version number of the module to which this component applies.
-
setAppliesToVersion
public void setAppliesToVersion(java.lang.String version)
Set the minimum module version number to which this component applies. Default 999.0.
-
getDependsOn
public java.util.List<ModuleComponent> getDependsOn()
A list of module components that must be executed prior to this instance. This is the only way to guarantee ordered execution. The dependencies may include components from other modules, guaranteeing an early failure if a module is missing.- Specified by:
getDependsOnin interfaceModuleComponent- Returns:
- Returns a list of components that must be executed prior to this component.
-
setDependsOn
public void setDependsOn(java.util.List<ModuleComponent> dependsOn)
- Parameters:
dependsOn- a list of modules that must be executed before this one
-
isExecuteOnceOnly
public boolean isExecuteOnceOnly()
- Specified by:
isExecuteOnceOnlyin interfaceModuleComponent- Returns:
- Returns true always. Override as required.
-
setExecuteOnceOnly
public void setExecuteOnceOnly(boolean executeOnceOnly)
- Parameters:
executeOnceOnly- true to force execution of this component with each startup or false if it must only be executed once.
-
init
public void init()
-
executeInternal
protected abstract void executeInternal() throws java.lang.ThrowableThe method that performs the actual work. For the most part, derived classes will only have to override this method to be fully functional.- Throws:
java.lang.Throwable- any problems, just throw them
-
execute
public final void execute()
Perform the actual component's work. Execution will be done within the context of a system account with an enclosing transaction. Long-running processes should be spawned from the calling thread, if required. All failures should just be thrown out as runtime exceptions and will be dealt with by the associated module infrastructure.- Specified by:
executein interfaceModuleComponent- See Also:
the abstract method to be implemented by subclasses
-
shutdown
public final void shutdown()
Description copied from interface:ModuleComponentPerform any cleanup required to remove module.- Specified by:
shutdownin interfaceModuleComponent
-
-