public class StandardIntegrationFlow extends java.lang.Object implements IntegrationFlow, org.springframework.context.SmartLifecycle
IntegrationFlow interface instantiated
by the Framework. Represents a logical container for the components configured
for the integration flow. It can be treated as a single component, especially
when declaring dynamically, using the
IntegrationFlowContext.
Being the logical container for the target integration components, this class controls
the lifecycle of all those components, when its start() and stop() are
invoked.
This component is never autoStartup, because all the components are
registered as beans in the application context and their initial start up phase is
controlled from the lifecycle processor automatically.
However, when we register an IntegrationFlow dynamically using the
IntegrationFlowContext API,
the lifecycle processor from the application context is not involved;
therefore we should control the lifecycle of the beans manually, or rely on the
IntegrationFlowContext API.
Its created registration is autoStartup by default and
starts the flow when it is registered. If you disable the registration's auto-
startup behavior, you are responsible for starting the flow or its component
beans.
This component doesn't track its running state during stop() action
and delegates directly to stop the registered components, to avoid dangling processes
after a registered IntegrationFlow is removed from the flow context.
IntegrationFlows,
IntegrationFlowBeanPostProcessor,
IntegrationFlowContext| Modifier and Type | Method and Description |
|---|---|
void |
configure(IntegrationFlowDefinition<?> flow)
The callback-based function to declare the chain of EIP-methods to
configure an integration flow with the provided
IntegrationFlowDefinition. |
org.springframework.messaging.MessageChannel |
getInputChannel()
Return the first
MessageChannel component
which is essential a flow input channel. |
java.util.Map<java.lang.Object,java.lang.String> |
getIntegrationComponents() |
int |
getPhase() |
boolean |
isAutoStartup() |
boolean |
isRunning() |
void |
setIntegrationComponents(java.util.Map<java.lang.Object,java.lang.String> integrationComponents) |
void |
start() |
void |
stop() |
void |
stop(java.lang.Runnable callback) |
java.lang.String |
toString() |
public void configure(IntegrationFlowDefinition<?> flow)
IntegrationFlowIntegrationFlowDefinition.configure in interface IntegrationFlowflow - the IntegrationFlowDefinition to configurepublic org.springframework.messaging.MessageChannel getInputChannel()
IntegrationFlowMessageChannel component
which is essential a flow input channel.getInputChannel in interface IntegrationFlowpublic void setIntegrationComponents(java.util.Map<java.lang.Object,java.lang.String> integrationComponents)
public java.util.Map<java.lang.Object,java.lang.String> getIntegrationComponents()
public void start()
start in interface org.springframework.context.Lifecyclepublic void stop(java.lang.Runnable callback)
stop in interface org.springframework.context.SmartLifecyclepublic void stop()
stop in interface org.springframework.context.Lifecyclepublic boolean isRunning()
isRunning in interface org.springframework.context.Lifecyclepublic boolean isAutoStartup()
isAutoStartup in interface org.springframework.context.SmartLifecyclepublic int getPhase()
getPhase in interface org.springframework.context.PhasedgetPhase in interface org.springframework.context.SmartLifecyclepublic java.lang.String toString()
toString in class java.lang.Object