Class SmartLifecycleRoleController

java.lang.Object
org.springframework.integration.support.SmartLifecycleRoleController
All Implemented Interfaces:
EventListener, org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<AbstractLeaderEvent>

public class SmartLifecycleRoleController extends Object implements org.springframework.context.ApplicationListener<AbstractLeaderEvent>, org.springframework.context.ApplicationContextAware
Bulk start/stop SmartLifecycle in a particular role in phase order.
Since:
4.2
  • Constructor Details

    • SmartLifecycleRoleController

      public SmartLifecycleRoleController()
      Construct an instance without any lifecycle initially: can be added later on via addLifecycleToRole(String, SmartLifecycle).
      Since:
      5.5
    • SmartLifecycleRoleController

      public SmartLifecycleRoleController(List<String> roles, List<org.springframework.context.SmartLifecycle> lifecycles)
      Construct an instance with the provided lists of roles and lifecycles, which must be of equal length.
      Parameters:
      roles - the roles.
      lifecycles - the lifecycles corresponding to the roles.
    • SmartLifecycleRoleController

      public SmartLifecycleRoleController(org.springframework.util.MultiValueMap<String,org.springframework.context.SmartLifecycle> lifecycles)
      Construct an instance with the provided map of roles/instances.
      Parameters:
      lifecycles - the MultiValueMap of beans in roles.
  • Method Details

    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
      Throws:
      org.springframework.beans.BeansException
    • addLifecycleToRole

      public final void addLifecycleToRole(String role, org.springframework.context.SmartLifecycle lifecycle)
      Add a SmartLifecycle to the role.
      Parameters:
      role - the role.
      lifecycle - the SmartLifecycle.
    • addLifecycleToRole

      public final void addLifecycleToRole(String role, String lifecycleBeanName)
      Add a SmartLifecycle bean to the role using its name.
      Parameters:
      role - the role.
      lifecycleBeanName - the bean name of the SmartLifecycle.
    • addLifecyclesToRole

      public void addLifecyclesToRole(String role, List<String> lifecycleBeanNames)
      Add a SmartLifecycle beans to the role using their names.
      Parameters:
      role - the role.
      lifecycleBeanNames - the bean names of the SmartLifecycles.
    • startLifecyclesInRole

      public void startLifecyclesInRole(String role)
      Start all registered SmartLifecycles in the role.
      Parameters:
      role - the role.
    • stopLifecyclesInRole

      public void stopLifecyclesInRole(String role)
      Stop all registered SmartLifecycles in the role.
      Parameters:
      role - the role.
    • getRoles

      public Collection<String> getRoles()
      Return a collection of the roles currently managed by this controller.
      Returns:
      the roles.
      Since:
      4.3.8
    • allEndpointsRunning

      public boolean allEndpointsRunning(String role)
      Return true if all endpoints in the role are running.
      Parameters:
      role - the role.
      Returns:
      true if at least one endpoint in the role, and all are running.
      Since:
      4.3.8
    • noEndpointsRunning

      public boolean noEndpointsRunning(String role)
      Return true if none of the endpoints in the role are running or if there are no endpoints in the role.
      Parameters:
      role - the role.
      Returns:
      true if there are no endpoints or none are running.
      Since:
      4.3.8
    • getEndpointsRunningStatus

      public Map<String,Boolean> getEndpointsRunningStatus(String role)
      Return the running status of each endpoint in the role.
      Parameters:
      role - the role.
      Returns:
      A map of component names : running status
      Since:
      4.3.8
    • onApplicationEvent

      public void onApplicationEvent(AbstractLeaderEvent event)
      Specified by:
      onApplicationEvent in interface org.springframework.context.ApplicationListener<AbstractLeaderEvent>
    • removeLifecycle

      public boolean removeLifecycle(org.springframework.context.SmartLifecycle lifecycle)
      Remove the provided SmartLifecycle from all the roles, for example when a SmartLifecycle bean is destroyed. The role entry in the lifecycles map is cleared as well if its value list is empty after SmartLifecycle removal.
      Parameters:
      lifecycle - the SmartLifecycle to remove.
      Returns:
      the removal status
      Since:
      5.0