Class FlowableWorkerEndpointRegistry

java.lang.Object
org.flowable.external.worker.config.FlowableWorkerEndpointRegistry
All Implemented Interfaces:
EventListener, org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle

public class FlowableWorkerEndpointRegistry extends Object implements org.springframework.beans.factory.DisposableBean, org.springframework.context.SmartLifecycle, org.springframework.context.ApplicationContextAware, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
Author:
Filip Hrisafov
  • Field Details

    • logger

      protected final org.slf4j.Logger logger
    • workerContainers

      protected final Map<String,FlowableWorkerContainer> workerContainers
    • phase

      protected int phase
    • applicationContext

      protected org.springframework.context.ApplicationContext applicationContext
    • contextRefreshed

      protected boolean contextRefreshed
  • Constructor Details

    • FlowableWorkerEndpointRegistry

      public FlowableWorkerEndpointRegistry()
  • 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
    • onApplicationEvent

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

      @Nullable public FlowableWorkerContainer getWorkerContainer(String id)
      Return the FlowableWorkerContainer with the specified id or null if no such container exists.
      Parameters:
      id - the id of the container
      Returns:
      the container or null if no container with that id exists
      See Also:
    • getWorkerContainerIds

      public Set<String> getWorkerContainerIds()
      Return the ids of the managed FlowableWorkerContainer instance(s).
      See Also:
    • getWorkerContainers

      public Collection<FlowableWorkerContainer> getWorkerContainers()
      Return the managed FlowableWorkerContainer instance(s).
    • registerWorkerContainer

      public void registerWorkerContainer(FlowableWorkerEndpoint endpoint, FlowableWorkerContainerFactory<?> factory, boolean startImmediately)
      Create a worker container for the given FlowableWorkerEndpoint.

      This create the necessary infrastructure to honor that endpoint with regard to its configuration.

      The startImmediately flag determines if the container should be started immediately.

      Parameters:
      endpoint - the endpoint to add
      factory - the worker factory to use
      startImmediately - start the container immediately if necessary
      See Also:
    • registerWorkerContainer

      public void registerWorkerContainer(FlowableWorkerEndpoint endpoint, FlowableWorkerContainerFactory<?> factory)
      Create a worker container for the given FlowableWorkerEndpoint.

      This create the necessary infrastructure to honor that endpoint with regard to its configuration.

      Parameters:
      endpoint - the endpoint to add
      factory - the worker factory to use
      See Also:
    • createWorkerContainer

      protected FlowableWorkerContainer createWorkerContainer(FlowableWorkerEndpoint endpoint, FlowableWorkerContainerFactory<?> factory)
      Create and start a new container using the specified factory.
    • getPhase

      public int getPhase()
      Specified by:
      getPhase in interface org.springframework.context.Phased
      Specified by:
      getPhase in interface org.springframework.context.SmartLifecycle
    • start

      public void start()
      Specified by:
      start in interface org.springframework.context.Lifecycle
    • stop

      public void stop()
      Specified by:
      stop in interface org.springframework.context.Lifecycle
    • stop

      public void stop(Runnable callback)
      Specified by:
      stop in interface org.springframework.context.SmartLifecycle
    • isRunning

      public boolean isRunning()
      Specified by:
      isRunning in interface org.springframework.context.Lifecycle
    • startIfNecessary

      protected void startIfNecessary(FlowableWorkerContainer workerContainer)
      Start the specified FlowableWorkerContainer if it should be started on startup or when start is called explicitly after startup.
      See Also:
      • SmartLifecycle.isAutoStartup()
    • destroy

      public void destroy()
      Specified by:
      destroy in interface org.springframework.beans.factory.DisposableBean