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 Object implements ModuleComponent, org.springframework.beans.factory.BeanNameAware
Implementation of a ModuleComponent to provide the basic necessities.
Since:
2.0
Author:
Roy Wetherall, Derek Hulley
See Also:
  • Field Details

  • Constructor Details

    • AbstractModuleComponent

      public AbstractModuleComponent()
  • Method Details

    • checkProperties

      protected void checkProperties()
      Checks for the presence of all generally-required properties.
    • toString

      public String toString()
      Overrides:
      toString in class Object
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class 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 String getModuleId()
      Specified by:
      getModuleId in interface ModuleComponent
      Returns:
      Returns the globally unique module ID.
    • setModuleId

      public void setModuleId(String moduleId)
      Parameters:
      moduleId - the globally unique module name.
    • getName

      public String getName()
      Specified by:
      getName in interface ModuleComponent
      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(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

      public void setBeanName(String name)
      Convenience method that will set the name of the component to match the bean name, unless the name has been explicitly set.
      Specified by:
      setBeanName in interface org.springframework.beans.factory.BeanNameAware
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface ModuleComponent
      Returns:
      Returns a description of the component.
    • setDescription

      public void setDescription(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:
      getSinceVersionNumber in interface ModuleComponent
      Returns:
      Returns the version number of the module for which this component was introduced.
    • setSinceVersion

      public void setSinceVersion(String version)
      Set the version number for which this component was added.
    • getAppliesFromVersionNumber

      public ModuleVersionNumber getAppliesFromVersionNumber()
      Specified by:
      getAppliesFromVersionNumber in interface ModuleComponent
      Returns:
      Returns the smallest version number of the module to which this component applies.
    • setAppliesFromVersion

      public void setAppliesFromVersion(String version)
      Set the minimum module version number to which this component applies. Default 0.0.
    • getAppliesToVersionNumber

      public ModuleVersionNumber getAppliesToVersionNumber()
      Specified by:
      getAppliesToVersionNumber in interface ModuleComponent
      Returns:
      Returns the largest version number of the module to which this component applies.
    • setAppliesToVersion

      public void setAppliesToVersion(String version)
      Set the minimum module version number to which this component applies. Default 999.0.
    • getDependsOn

      public 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:
      getDependsOn in interface ModuleComponent
      Returns:
      Returns a list of components that must be executed prior to this component.
    • setDependsOn

      public void setDependsOn(List<ModuleComponent> dependsOn)
      Parameters:
      dependsOn - a list of modules that must be executed before this one
    • isExecuteOnceOnly

      public boolean isExecuteOnceOnly()
      Specified by:
      isExecuteOnceOnly in interface ModuleComponent
      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 Throwable
      The method that performs the actual work. For the most part, derived classes will only have to override this method to be fully functional.
      Throws:
      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:
      execute in interface ModuleComponent
      See Also:
    • shutdown

      public final void shutdown()
      Description copied from interface: ModuleComponent
      Perform any cleanup required to remove module.
      Specified by:
      shutdown in interface ModuleComponent