private static IntegrationFlowBuilder registerComponents(Object spec) { if (spec instanceof ComponentsRegistration) { return new IntegrationFlowBuilder() .addComponents(((ComponentsRegistration) spec).getComponentsToRegister()); } return null; }
private void processIntegrationComponentSpec(String beanName, IntegrationComponentSpec<?, ?> bean) { Object target = bean.get(); invokeBeanInitializationHooks(beanName, target); if (bean instanceof ComponentsRegistration) { Map<Object, String> componentsToRegister = ((ComponentsRegistration) bean).getComponentsToRegister(); if (!CollectionUtils.isEmpty(componentsToRegister)) { componentsToRegister.entrySet() .stream() .filter(component -> noBeanPresentForComponent(component.getKey(), beanName)) .forEach(component -> registerComponent(component.getKey(), generateBeanName(component.getKey(), component.getValue()))); } } }
/** * 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); }
private static IntegrationFlowBuilder registerComponents(Object spec) { if (spec instanceof ComponentsRegistration) { return new IntegrationFlowBuilder() .addComponents(((ComponentsRegistration) spec).getComponentsToRegister()); } return null; }
private void processIntegrationComponentSpec(String beanName, IntegrationComponentSpec<?, ?> bean) { Object target = bean.get(); invokeBeanInitializationHooks(beanName, target); if (bean instanceof ComponentsRegistration) { Map<Object, String> componentsToRegister = ((ComponentsRegistration) bean).getComponentsToRegister(); if (!CollectionUtils.isEmpty(componentsToRegister)) { componentsToRegister.entrySet() .stream() .filter(component -> noBeanPresentForComponent(component.getKey(), beanName)) .forEach(component -> registerComponent(component.getKey(), generateBeanName(component.getKey(), component.getValue()))); } } }
/** * 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); }