Example usage for org.springframework.beans.factory.support BeanDefinitionRegistry isBeanNameInUse

List of usage examples for org.springframework.beans.factory.support BeanDefinitionRegistry isBeanNameInUse

Introduction

In this page you can find the example usage for org.springframework.beans.factory.support BeanDefinitionRegistry isBeanNameInUse.

Prototype

boolean isBeanNameInUse(String beanName);

Source Link

Document

Determine whether the given bean name is already in use within this registry, i.e.

Usage

From source file:org.activiti.spring.components.config.xml.StateHandlerAnnotationBeanFactoryPostProcessor.java

private boolean beanAlreadyConfigured(BeanDefinitionRegistry registry, String beanName, Class clz) {
    if (registry.isBeanNameInUse(beanName)) {
        BeanDefinition bDef = registry.getBeanDefinition(beanName);
        if (bDef.getBeanClassName().equals(clz.getName())) {
            return true; // so the beans already registered, and of the right type. so we assume the user is overriding our configuration
        } else {// w  ww  .  j av  a 2s.c  o  m
            throw new IllegalStateException("The bean name '" + beanName + "' is reserved.");
        }
    }
    return false;
}

From source file:org.blocks4j.feature.toggle.spring.scheme.FeatureToggleDefinitionParser.java

private void buildNewFactoryBean(String factoryBeanName, ParserContext context, String onRefName,
        String offRefName, Class<?> commonInterface, String feature) {
    BeanDefinitionRegistry factory = context.getReaderContext().getReader().getBeanFactory();
    if (!factory.isBeanNameInUse(factoryBeanName)) {
        BeanDefinitionBuilder builder = BeanDefinitionBuilder
                .genericBeanDefinition(FeatureToggleBeanFactory.class);
        builder.addPropertyValue(TAG_ONREF_NAME, onRefName);
        builder.addPropertyValue(TAG_OFFREF_NAME, offRefName);
        builder.addPropertyValue(TAG_FEATURENAME, feature);
        builder.addPropertyValue(TAG_COMMONINTERFACE_NAME, commonInterface);
        factory.registerBeanDefinition(factoryBeanName, builder.getBeanDefinition());
    } else {//from   w ww  . ja  va  2  s . c  o  m
        throw new RuntimeException(String
                .format("A bean with name '%s' already exists in the application context.", factoryBeanName));
    }
}

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

/**
 * Register {@code integrationGlobalProperties} bean if necessary.
 * @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
 *//*www  . ja  v  a  2 s  .  c o  m*/
private void registerIntegrationProperties(BeanDefinitionRegistry registry) {
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry)
                .containsBean(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME);
    } else {
        alreadyRegistered = registry
                .isBeanNameInUse(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME);
    }
    if (!alreadyRegistered) {
        ResourcePatternResolver resourceResolver = new PathMatchingResourcePatternResolver(this.classLoader);
        try {
            Resource[] defaultResources = resourceResolver
                    .getResources("classpath*:META-INF/spring.integration.default.properties");
            Resource[] userResources = resourceResolver
                    .getResources("classpath*:META-INF/spring.integration.properties");

            List<Resource> resources = new LinkedList<Resource>(Arrays.asList(defaultResources));
            resources.addAll(Arrays.asList(userResources));

            BeanDefinitionBuilder integrationPropertiesBuilder = BeanDefinitionBuilder
                    .genericBeanDefinition(PropertiesFactoryBean.class)
                    .addPropertyValue("locations", resources);

            registry.registerBeanDefinition(IntegrationContextUtils.INTEGRATION_GLOBAL_PROPERTIES_BEAN_NAME,
                    integrationPropertiesBuilder.getBeanDefinition());
        } catch (IOException e) {
            logger.warn("Cannot load 'spring.integration.properties' Resources.", e);
        }
    }
}

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

/**
 * Register {@code jsonPath} and {@code xpath} SpEL-function beans, if necessary.
 * @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
 *///from w w  w .  j  a v  a 2s.com
private void registerBuiltInBeans(BeanDefinitionRegistry registry) {
    int registryId = System.identityHashCode(registry);

    String jsonPathBeanName = "jsonPath";
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry).containsBean(jsonPathBeanName);
    } else {
        alreadyRegistered = registry.isBeanNameInUse(jsonPathBeanName);
    }
    if (!alreadyRegistered && !registriesProcessed.contains(registryId)) {
        Class<?> jsonPathClass = null;
        try {
            jsonPathClass = ClassUtils.forName("com.jayway.jsonpath.JsonPath", this.classLoader);
        } catch (ClassNotFoundException e) {
            logger.debug("The '#jsonPath' SpEL function cannot be registered: "
                    + "there is no jayway json-path.jar on the classpath.");
        }

        if (jsonPathClass != null) {
            try {
                ClassUtils.forName("com.jayway.jsonpath.Predicate", this.classLoader);
            } catch (ClassNotFoundException e) {
                jsonPathClass = null;
                logger.warn("The '#jsonPath' SpEL function cannot be registered. "
                        + "An old json-path.jar version is detected in the classpath."
                        + "At least 1.2.0 is required; see version information at: "
                        + "https://github.com/jayway/JsonPath/releases", e);

            }
        }

        if (jsonPathClass != null) {
            IntegrationConfigUtils.registerSpelFunctionBean(registry, jsonPathBeanName,
                    IntegrationConfigUtils.BASE_PACKAGE + ".json.JsonPathUtils", "evaluate");
        }
    }

    alreadyRegistered = false;
    String xpathBeanName = "xpath";
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry).containsBean(xpathBeanName);
    } else {
        alreadyRegistered = registry.isBeanNameInUse(xpathBeanName);
    }
    if (!alreadyRegistered && !registriesProcessed.contains(registryId)) {
        Class<?> xpathClass = null;
        try {
            xpathClass = ClassUtils.forName(IntegrationConfigUtils.BASE_PACKAGE + ".xml.xpath.XPathUtils",
                    this.classLoader);
        } catch (ClassNotFoundException e) {
            logger.debug("SpEL function '#xpath' isn't registered: "
                    + "there is no spring-integration-xml.jar on the classpath.");
        }

        if (xpathClass != null) {
            IntegrationConfigUtils.registerSpelFunctionBean(registry, xpathBeanName,
                    IntegrationConfigUtils.BASE_PACKAGE + ".xml.xpath.XPathUtils", "evaluate");
        }
    }

    alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry).containsBean(
                IntegrationContextUtils.TO_STRING_FRIENDLY_JSON_NODE_TO_STRING_CONVERTER_BEAN_NAME);
    } else {
        alreadyRegistered = registry.isBeanNameInUse(
                IntegrationContextUtils.TO_STRING_FRIENDLY_JSON_NODE_TO_STRING_CONVERTER_BEAN_NAME);
    }

    if (!alreadyRegistered && !registriesProcessed.contains(registryId) && this.jackson2Present) {
        registry.registerBeanDefinition(
                IntegrationContextUtils.TO_STRING_FRIENDLY_JSON_NODE_TO_STRING_CONVERTER_BEAN_NAME,
                BeanDefinitionBuilder.genericBeanDefinition(
                        IntegrationConfigUtils.BASE_PACKAGE + ".json.ToStringFriendlyJsonNodeToStringConverter")
                        .getBeanDefinition());
        INTEGRATION_CONVERTER_INITIALIZER.registerConverter(registry, new RuntimeBeanReference(
                IntegrationContextUtils.TO_STRING_FRIENDLY_JSON_NODE_TO_STRING_CONVERTER_BEAN_NAME));
    }

    registriesProcessed.add(registryId);
}

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

/**
 * Register {@code DefaultConfiguringBeanFactoryPostProcessor}, if necessary.
 * @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
 *///  w  w w  . j a  va  2  s.  c  o  m
private void registerDefaultConfiguringBeanFactoryPostProcessor(BeanDefinitionRegistry registry) {
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry)
                .containsBean(IntegrationContextUtils.DEFAULT_CONFIGURING_POSTPROCESSOR_BEAN_NAME);
    } else {
        alreadyRegistered = registry
                .isBeanNameInUse(IntegrationContextUtils.DEFAULT_CONFIGURING_POSTPROCESSOR_BEAN_NAME);
    }
    if (!alreadyRegistered) {
        BeanDefinitionBuilder postProcessorBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultConfiguringBeanFactoryPostProcessor.class);
        BeanDefinitionHolder postProcessorHolder = new BeanDefinitionHolder(
                postProcessorBuilder.getBeanDefinition(),
                IntegrationContextUtils.DEFAULT_CONFIGURING_POSTPROCESSOR_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(postProcessorHolder, registry);
    }
}

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

/**
 * Register a {@link DefaultHeaderChannelRegistry} in the given {@link BeanDefinitionRegistry}, if necessary.
 * @param registry The {@link BeanDefinitionRegistry} to register additional {@link BeanDefinition}s.
 *///  www .  j ava2 s.c o  m
private void registerHeaderChannelRegistry(BeanDefinitionRegistry registry) {
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry)
                .containsBean(IntegrationContextUtils.INTEGRATION_HEADER_CHANNEL_REGISTRY_BEAN_NAME);
    } else {
        alreadyRegistered = registry
                .isBeanNameInUse(IntegrationContextUtils.INTEGRATION_HEADER_CHANNEL_REGISTRY_BEAN_NAME);
    }
    if (!alreadyRegistered) {
        if (logger.isInfoEnabled()) {
            logger.info(
                    "No bean named '" + IntegrationContextUtils.INTEGRATION_HEADER_CHANNEL_REGISTRY_BEAN_NAME
                            + "' has been explicitly defined. "
                            + "Therefore, a default DefaultHeaderChannelRegistry will be created.");
        }
        BeanDefinitionBuilder schedulerBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultHeaderChannelRegistry.class);
        BeanDefinitionHolder replyChannelRegistryComponent = new BeanDefinitionHolder(
                schedulerBuilder.getBeanDefinition(),
                IntegrationContextUtils.INTEGRATION_HEADER_CHANNEL_REGISTRY_BEAN_NAME);
        BeanDefinitionReaderUtils.registerBeanDefinition(replyChannelRegistryComponent, registry);
    }
}

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

/**
 * Register the default datatype channel MessageConverter.
 * @param registry the registry.//from   w w  w . ja  va  2  s  .c  om
 */
private void registerDefaultDatatypeChannelMessageConverter(BeanDefinitionRegistry registry) {
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry)
                .containsBean(IntegrationContextUtils.INTEGRATION_DATATYPE_CHANNEL_MESSAGE_CONVERTER_BEAN_NAME);
    } else {
        alreadyRegistered = registry.isBeanNameInUse(
                IntegrationContextUtils.INTEGRATION_DATATYPE_CHANNEL_MESSAGE_CONVERTER_BEAN_NAME);
    }
    if (!alreadyRegistered) {
        BeanDefinitionBuilder converterBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultDatatypeChannelMessageConverter.class);
        registry.registerBeanDefinition(
                IntegrationContextUtils.INTEGRATION_DATATYPE_CHANNEL_MESSAGE_CONVERTER_BEAN_NAME,
                converterBuilder.getBeanDefinition());
    }

}

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

private void registerMessageBuilderFactory(BeanDefinitionRegistry registry) {
    boolean alreadyRegistered = false;
    if (registry instanceof ListableBeanFactory) {
        alreadyRegistered = ((ListableBeanFactory) registry)
                .containsBean(IntegrationUtils.INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME);
    } else {/*from  w w w. j  ava2 s .c o m*/
        alreadyRegistered = registry
                .isBeanNameInUse(IntegrationUtils.INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME);
    }
    if (!alreadyRegistered) {
        BeanDefinitionBuilder mbfBuilder = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultMessageBuilderFactory.class).addPropertyValue("readOnlyHeaders",
                        IntegrationProperties.getExpressionFor(IntegrationProperties.READ_ONLY_HEADERS));
        registry.registerBeanDefinition(IntegrationUtils.INTEGRATION_MESSAGE_BUILDER_FACTORY_BEAN_NAME,
                mbfBuilder.getBeanDefinition());
    }

}

From source file:org.springframework.integration.flow.config.FlowUtils.java

/**
 * Register a bean with "flow" prefix//w  w w . ja v  a 2 s.c  o m
 * 
 * @param beanDefinition
 * @param registry
 * @return
 */
public static String registerBeanDefinition(BeanDefinition beanDefinition, BeanDefinitionRegistry registry) {
    String beanName = BeanDefinitionReaderUtils.generateBeanName(beanDefinition, registry);
    beanName = "flow." + beanName;
    String strIndex = org.apache.commons.lang.StringUtils.substringAfter(beanName, "#");
    int index = Integer.valueOf(strIndex);
    while (registry.isBeanNameInUse(beanName)) {
        index++;
        beanName = beanName.replaceAll("#\\d$", "#" + (index));
    }
    registry.registerBeanDefinition(beanName, beanDefinition);
    return beanName;
}

From source file:org.statefulj.framework.core.StatefulFactory.java

private void registerActionAndTransition(ReferenceFactory referenceFactory, Class<?> clazz, String from,
        String to, boolean reload, Transition transition, Method method, boolean isDomainEntity,
        RuntimeBeanReference controllerRef, String transitionId, BeanDefinitionRegistry reg) {

    // Remap to="Any" to to=from
    ///*from ww  w . jav a  2 s .c  o  m*/
    to = (Transition.ANY_STATE.equals(to)) ? from : to;

    logger.debug("Registered: {}({})->{}/{}", from, transition.event(), to,
            (method == null) ? "noop" : method.getName());

    // Build the Action Bean
    //
    RuntimeBeanReference actionRef = null;
    if (method != null) {
        String actionId = referenceFactory.getActionId(method);
        if (!reg.isBeanNameInUse(actionId)) {
            registerMethodInvocationAction(referenceFactory, method, isDomainEntity, controllerRef, reg,
                    actionId);
        }
        actionRef = new RuntimeBeanReference(actionId);
    }

    registerTransition(referenceFactory, from, to, reload, transition, transitionId, reg, actionRef);
}