Class AbstractModuleComponent

    • Constructor Detail

      • AbstractModuleComponent

        public AbstractModuleComponent()
    • Method Detail

      • checkProperties

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

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        See Also:
        getModuleId(), getName()
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.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:
        getModuleId in interface ModuleComponent
        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:
        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​(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 the name has been explicitly set.
        Specified by:
        setBeanName in interface org.springframework.beans.factory.BeanNameAware
      • getDescription

        public java.lang.String getDescription()
        Specified by:
        getDescription in interface ModuleComponent
        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.
      • setSinceVersion

        public void setSinceVersion​(java.lang.String version)
        Set the version number for which this component was added.
      • setAppliesFromVersion

        public void setAppliesFromVersion​(java.lang.String version)
        Set the minimum module version number to which this component applies. Default 0.0.
      • 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:
        getDependsOn in interface ModuleComponent
        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:
        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 java.lang.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:
        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:
        execute in interface ModuleComponent
        See Also:
        the abstract method to be implemented by subclasses
      • shutdown

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