Class IntegrationFlowExtension<B extends IntegrationFlowExtension<B>>

Type Parameters:
B - the IntegrationFlowDefinition implementation type.

public abstract class IntegrationFlowExtension<B extends IntegrationFlowExtension<B>> extends IntegrationFlowDefinition<B>
An IntegrationFlowDefinition extension for custom Java DSL operators and reusable solutions. For supporting method flow chain an implementation of this class has to return an extension class from new methods, e.g.:

	public class MyIntegrationFlowDefinition
			extends IntegrationFlowExtension<MyIntegrationFlowDefinition> {

		public MyIntegrationFlowDefinition upperCaseAfterSplit() {
			return split()
					.transform("payload.toUpperCase()");
     }
}

This way it will be used in the target configuration as natural DSL definition:

 &#064;Bean
 public IntegrationFlow myFlowDefinition() {
		return
				new MyIntegrationFlowDefinition()
			            .log()
						.upperCaseAfterSplit()
						.aggregate()
						.get();
 }

This IntegrationFlowExtension can also be used for overriding existing operators with extensions to any IntegrationComponentSpec extensions, e.g. adding new options for target component configuration.
Since:
5.3
Author:
Artem Bilan