/** * Populate the provided {@link AbstractMessageSplitter} to the current integration * flow position. * @param splitterMessageHandlerSpec the {@link MessageHandlerSpec} to populate. * @param endpointConfigurer the {@link Consumer} to provide integration endpoint options. * @param <S> the {@link AbstractMessageSplitter} * @return the current {@link IntegrationFlowDefinition}. * @since 1.1 * @see SplitterEndpointSpec */ public <S extends AbstractMessageSplitter> B split(MessageHandlerSpec<?, S> splitterMessageHandlerSpec, Consumer<SplitterEndpointSpec<S>> endpointConfigurer) { Assert.notNull(splitterMessageHandlerSpec, "'splitterMessageHandlerSpec' must not be null"); return split(splitterMessageHandlerSpec.get(), endpointConfigurer); }
/** * Populate the provided {@link AbstractMessageSplitter} to the current integration * flow position. * @param splitterMessageHandlerSpec the {@link MessageHandlerSpec} to populate. * @param endpointConfigurer the {@link Consumer} to provide integration endpoint options. * @param <S> the {@link AbstractMessageSplitter} * @return the current {@link IntegrationFlowDefinition}. * @since 1.1 * @see SplitterEndpointSpec */ public <S extends AbstractMessageSplitter> B split(MessageHandlerSpec<?, S> splitterMessageHandlerSpec, Consumer<SplitterEndpointSpec<S>> endpointConfigurer) { Assert.notNull(splitterMessageHandlerSpec, "'splitterMessageHandlerSpec' must not be null"); return split(splitterMessageHandlerSpec.get(), endpointConfigurer); }
/** * Populate a {@link ServiceActivatingHandler} for the selected protocol specific * {@link MessageHandler} implementation from {@code Namespace Factory}: * In addition accept options for the integration endpoint using {@link GenericEndpointSpec}. * Typically used with a Java 8 Lambda expression: * <pre class="code"> * {@code * .handle(Amqp.outboundAdapter(this.amqpTemplate).routingKeyExpression("headers.routingKey"), * e -> e.autoStartup(false)) * } * </pre> * @param messageHandlerSpec the {@link MessageHandlerSpec} to configure protocol specific * {@link MessageHandler}. * @param endpointConfigurer the {@link Consumer} to provide integration endpoint options. * @param <H> the {@link MessageHandler} type. * @return the current {@link IntegrationFlowDefinition}. */ public <H extends MessageHandler> B handle(MessageHandlerSpec<?, H> messageHandlerSpec, Consumer<GenericEndpointSpec<H>> endpointConfigurer) { Assert.notNull(messageHandlerSpec, "'messageHandlerSpec' must not be null"); if (messageHandlerSpec instanceof ComponentsRegistration) { addComponents(((ComponentsRegistration) messageHandlerSpec).getComponentsToRegister()); } return handle(messageHandlerSpec.get(), endpointConfigurer); }
/** * Populate a {@link ServiceActivatingHandler} for the selected protocol specific * {@link MessageHandler} implementation from {@code Namespace Factory}: * In addition accept options for the integration endpoint using {@link GenericEndpointSpec}. * Typically used with a Java 8 Lambda expression: * <pre class="code"> * {@code * .handle(Amqp.outboundAdapter(this.amqpTemplate).routingKeyExpression("headers.routingKey"), * e -> e.autoStartup(false)) * } * </pre> * @param messageHandlerSpec the {@link MessageHandlerSpec} to configure protocol specific * {@link MessageHandler}. * @param endpointConfigurer the {@link Consumer} to provide integration endpoint options. * @param <H> the {@link MessageHandler} type. * @return the current {@link IntegrationFlowDefinition}. */ public <H extends MessageHandler> B handle(MessageHandlerSpec<?, H> messageHandlerSpec, Consumer<GenericEndpointSpec<H>> endpointConfigurer) { Assert.notNull(messageHandlerSpec, "'messageHandlerSpec' must not be null"); if (messageHandlerSpec instanceof ComponentsRegistration) { addComponents(((ComponentsRegistration) messageHandlerSpec).getComponentsToRegister()); } return handle(messageHandlerSpec.get(), endpointConfigurer); }