Class AbstractEndpoint

java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.context.Lifecycle, org.springframework.context.Phased, org.springframework.context.SmartLifecycle, ExpressionCapable, NamedComponent, ManageableLifecycle, ManageableSmartLifecycle
Direct Known Subclasses:
AbstractPollingEndpoint, EventDrivenConsumer, GatewayProxyFactoryBean, MessageProducerSupport, MessagingGatewaySupport, ReactiveStreamsConsumer

@IntegrationManagedResource
public abstract class AbstractEndpoint
extends IntegrationObjectSupport
implements ManageableSmartLifecycle, org.springframework.beans.factory.DisposableBean
The base class for Message Endpoint implementations.

This class implements Lifecycle and provides an autoStartup property. If true, the endpoint will start automatically upon initialization. Otherwise, it will require an explicit invocation of its start() method. The default value is true. To require explicit startup, provide a value of false to the setAutoStartup(boolean) method.

  • Field Details

    • lifecycleLock

      protected final java.util.concurrent.locks.ReentrantLock lifecycleLock
    • lifecycleCondition

      protected final java.util.concurrent.locks.Condition lifecycleCondition
  • Constructor Details

  • Method Details

    • setAutoStartup

      public void setAutoStartup​(boolean autoStartup)
    • setPhase

      public void setPhase​(int phase)
    • setRole

      public void setRole​(java.lang.String role)
      Specify the role for the endpoint. Such endpoints can be started/stopped as a group.
      Parameters:
      role - the role for this endpoint.
      Since:
      5.0
      See Also:
      SmartLifecycle, SmartLifecycleRoleController
    • getRole

      public java.lang.String getRole()
    • onInit

      protected void onInit()
      Description copied from class: IntegrationObjectSupport
      Subclasses may implement this for initialization logic.
      Overrides:
      onInit in class IntegrationObjectSupport
    • destroy

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

      public final boolean isAutoStartup()
      Specified by:
      isAutoStartup in interface org.springframework.context.SmartLifecycle
    • getPhase

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

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

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

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

      public final void stop​(java.lang.Runnable callback)
      Specified by:
      stop in interface org.springframework.context.SmartLifecycle
    • doStop

      protected void doStop​(java.lang.Runnable callback)
      Stop the component and invoke callback.
      Parameters:
      callback - the Runnable to invoke.
    • isActive

      public boolean isActive()
    • doStart

      protected abstract void doStart()
      Subclasses must implement this method with the start behavior. This method will be invoked while holding the lifecycleLock.
    • doStop

      protected abstract void doStop()
      Subclasses must implement this method with the stop behavior. This method will be invoked while holding the lifecycleLock.