Example usage for org.springframework.integration.context IntegrationProperties CHANNELS_AUTOCREATE

List of usage examples for org.springframework.integration.context IntegrationProperties CHANNELS_AUTOCREATE

Introduction

In this page you can find the example usage for org.springframework.integration.context IntegrationProperties CHANNELS_AUTOCREATE.

Prototype

String CHANNELS_AUTOCREATE

To view the source code for org.springframework.integration.context IntegrationProperties CHANNELS_AUTOCREATE.

Click Source Link

Document

Specifies whether to allow create automatically org.springframework.integration.channel.DirectChannel beans for non-declared channels or not.

Usage

From source file:org.springframework.integration.config.IntegrationRegistrar.java

/**
 * This method will auto-register a ChannelInitializer which could also be overridden by the user
 * by simply registering a ChannelInitializer {@code <bean>} with its {@code autoCreate} property
 * set to false to suppress channel creation.
 * It will also register a ChannelInitializer$AutoCreateCandidatesCollector
 * which simply collects candidate channel names.
 * @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
 *//*w w  w .  j  a va 2 s.c  om*/
private void registerImplicitChannelCreator(BeanDefinitionRegistry registry) {
    if (!registry.containsBeanDefinition(IntegrationContextUtils.CHANNEL_INITIALIZER_BEAN_NAME)) {
        String channelsAutoCreateExpression = IntegrationProperties
                .getExpressionFor(IntegrationProperties.CHANNELS_AUTOCREATE);
        BeanDefinitionBuilder channelDef = BeanDefinitionBuilder.genericBeanDefinition(ChannelInitializer.class)
                .addPropertyValue("autoCreate", channelsAutoCreateExpression);
        BeanDefinitionHolder channelCreatorHolder = new BeanDefinitionHolder(channelDef.getBeanDefinition(),
                IntegrationContextUtils.CHANNEL_INITIALIZER_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(channelCreatorHolder, registry);
    }

    if (!registry.containsBeanDefinition(IntegrationContextUtils.AUTO_CREATE_CHANNEL_CANDIDATES_BEAN_NAME)) {
        BeanDefinitionBuilder channelRegistryBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(ChannelInitializer.AutoCreateCandidatesCollector.class);
        channelRegistryBuilder.addConstructorArgValue(new ManagedSet<String>());
        channelRegistryBuilder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); //SPR-12761
        BeanDefinitionHolder channelRegistryHolder = new BeanDefinitionHolder(
                channelRegistryBuilder.getBeanDefinition(),
                IntegrationContextUtils.AUTO_CREATE_CHANNEL_CANDIDATES_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(channelRegistryHolder, registry);
    }
}