Example usage for org.springframework.beans.factory.parsing BeanComponentDefinition BeanComponentDefinition

List of usage examples for org.springframework.beans.factory.parsing BeanComponentDefinition BeanComponentDefinition

Introduction

In this page you can find the example usage for org.springframework.beans.factory.parsing BeanComponentDefinition BeanComponentDefinition.

Prototype

public BeanComponentDefinition(BeanDefinition beanDefinition, String beanName) 

Source Link

Document

Create a new BeanComponentDefinition for the given bean.

Usage

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element/*from   ww w.j a v a2s .c om*/
 * @param parserContext
 */
protected void preparePlaceholderConfigurer(Element element, ParserContext parserContext) {
    Element placeholderElement = selectSingleChildElement(element, "property-placeholder", true);
    if (placeholderElement != null) {
        String id = element.getAttribute("id");
        String name = getName(element);
        String prefix = placeholderElement.getAttribute("prefix");
        String suffix = placeholderElement.getAttribute("suffix");

        BeanDefinitionBuilder placeholderConfigurer = BeanDefinitionBuilder
                .genericBeanDefinition(ConfigurationPlaceholderConfigurer.class);
        placeholderConfigurer.addConstructorArgReference(id);

        if (!StringUtils.hasText(prefix)) {
            prefix = "$" + name + "{";
        }
        if (!StringUtils.hasText(suffix)) {
            suffix = "}";
        }
        BeanDefinitionBuilder placeholderParser = BeanDefinitionBuilder
                .genericBeanDefinition(DefaultPlaceholderParser.class);
        placeholderParser.addConstructorArgValue(prefix);
        placeholderParser.addConstructorArgValue(suffix);

        placeholderConfigurer.addPropertyValue("placeholderParser", placeholderParser.getBeanDefinition());

        parserContext.registerBeanComponent(new BeanComponentDefinition(
                placeholderConfigurer.getBeanDefinition(), id + "-placeholderConfigurer"));
    }
}

From source file:org.springjutsu.validation.namespace.ValidationConfigurationDefinitionParser.java

private String registerInfrastructureBean(ParserContext context, BeanDefinitionBuilder componentBuilder) {
    BeanDefinition definition = componentBuilder.getBeanDefinition();
    String entityName = context.getReaderContext().registerWithGeneratedName(definition);
    context.registerComponent(new BeanComponentDefinition(definition, entityName));
    return entityName;
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element/*from   w  ww .  j  ava  2 s.co m*/
 * @param parserContext
 */
protected void prepareLoader(Element element, ParserContext parserContext, Engine engine) {
    String loaderReference = getLoaderReference(element);
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(engine.getLoaderClassName());

    switch (engine) {
    case XMLBEANS:
        prepareXmlBeans(element, parserContext, builder);
        break;
    case DOM:
        prepareDOM(element, parserContext, builder);
        break;
    case JAXB:
        prepareJAXB(element, parserContext, builder);
        break;
    case JSON:
        prepareJson(element, builder);
        break;
    case PROPS:
        // No extra handling for properties
        break;
    default:
        // No special requirements
        break;
    }
    AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();
    parserContext.registerBeanComponent(new BeanComponentDefinition(beanDefinition, loaderReference));
}

From source file:org.jdal.beans.DefaultsBeanDefinitionParser.java

/**
 * Register default TablePanel Actions//from  w ww  .  j a  v  a2  s  .  c om
 * @param element current element
 * @param parserContext parserContext
 * @return a new ComponentDefinition with default table action list.
 */
private ComponentDefinition registerDefaultTableActions(Element element, ParserContext parserContext) {
    ManagedList<Object> actions = new ManagedList<Object>(7);
    actions.add(createBeanDefinition(AddAction.class, parserContext));
    actions.add(createBeanDefinition(SelectAllAction.class, parserContext));
    actions.add(createBeanDefinition(DeselectAllAction.class, parserContext));
    actions.add(createBeanDefinition(RemoveAllAction.class, parserContext));
    actions.add(createBeanDefinition(HideShowFilterAction.class, parserContext));
    actions.add(createBeanDefinition(ApplyFilterAction.class, parserContext));
    actions.add(createBeanDefinition(ClearFilterAction.class, parserContext));

    BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(ListFactoryBean.class);
    bdb.getRawBeanDefinition().setSource(parserContext.extractSource(element));
    bdb.addPropertyValue("sourceList", actions);
    bdb.setScope(BeanDefinition.SCOPE_PROTOTYPE);
    BeanComponentDefinition bcd = new BeanComponentDefinition(bdb.getBeanDefinition(), DEFAULT_TABLE_ACTIONS);
    registerBeanComponentDefinition(element, parserContext, bcd);
    return bcd;
}

From source file:org.synyx.hades.dao.config.DaoConfigDefinitionParser.java

/**
 * Registers a possibly available custom DAO implementation on the DAO bean.
 * Tries to find an already registered bean to reference or tries to detect
 * a custom implementation itself.//from   w w w  .ja  va  2  s  .c om
 * 
 * @param context
 * @param parserContext
 * @param source
 * @return the bean name of the custom implementation or {@code null} if
 *         none available
 */
private String registerCustomImplementation(final DaoContext context, final ParserContext parserContext,
        final Object source) {

    String beanName = context.getImplementationBeanName();

    // Already a bean configured?
    if (parserContext.getRegistry().containsBeanDefinition(beanName)) {
        return beanName;
    }

    // Autodetect implementation
    if (context.autodetectCustomImplementation()) {

        AbstractBeanDefinition beanDefinition = detectCustomImplementation(context, parserContext);

        if (null == beanDefinition) {
            return null;
        }

        LOG.debug("Registering custom DAO implementation: {} {}", context.getImplementationBeanName(),
                beanDefinition.getBeanClassName());

        beanDefinition.setSource(source);
        parserContext.registerBeanComponent(new BeanComponentDefinition(beanDefinition, beanName));

    } else {

        beanName = context.getCustomImplementationRef();
    }

    return beanName;
}

From source file:org.jdal.beans.DefaultsBeanDefinitionParser.java

/**
 * @param element//  w ww  .j a v a2s. c  o  m
 * @param parserContext
 * @return
 */
private ComponentDefinition registerDefaultGuiFactory(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(ApplicationContextGuiFactory.class);
    BeanComponentDefinition bcd = new BeanComponentDefinition(bdb.getBeanDefinition(), DEFAULT_GUI_FACTORY);
    registerBeanComponentDefinition(element, parserContext, bcd);
    return bcd;
}

From source file:org.jdal.beans.DefaultsBeanDefinitionParser.java

/**
 * @param element/*ww  w . j a va2s  .  c o  m*/
 * @param parserContext
 * @return
 */
@SuppressWarnings("unused")
private ComponentDefinition registerControlInitializer(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(AnnotationControlInitializer.class);

    bdb.addPropertyReference(PERSISTENT_SERVICE, PERSISTENT_SERVICE);
    BeanComponentDefinition bcd = new BeanComponentDefinition(bdb.getBeanDefinition(), CONTROL_INITIALIZER);

    registerBeanComponentDefinition(element, parserContext, bcd);
    return bcd;
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

/**
 * @param element/*from   ww w  .j ava  2s. co  m*/
 * @return
 */
protected void prepareNamespaces(Element element, ParserContext parserContext) {
    String id = element.getAttribute("id");
    this.namespacesId = id + "-Namespaces";
    List<Element> namespaceElements = selectChildElements(element, "namespace");
    ManagedArray array = new ManagedArray(String.class.getName(), namespaceElements.size() * 2);
    for (Element namespaceElement : namespaceElements) {
        array.add(namespaceElement.getAttribute("prefix"));
        array.add(namespaceElement.getAttribute("uri"));
    }
    BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(DefaultNamespaceContext.class);
    builder.addConstructorArgValue(array);
    parserContext
            .registerBeanComponent(new BeanComponentDefinition(builder.getBeanDefinition(), this.namespacesId));
}

From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java

protected void prepareReloadMechanism(Element element, ParserContext parserContext) {
    String id = element.getAttribute("id");
    String reloadIntervalStr = element.getAttribute("reload-interval");
    if (StringUtils.hasLength(reloadIntervalStr)) {
        int reloadInterval = 0;
        try {//from  w w w.ja  v a  2  s .c om
            reloadInterval = Integer.valueOf(reloadIntervalStr);
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("The attribute reload-interval is invalid", e);
        }
        if (reloadInterval >= MINIMUM_RELOAD_INTERVAL) {
            // Update task
            BeanDefinitionBuilder updateTask = BeanDefinitionBuilder
                    .genericBeanDefinition(ConfigurationSnapshotRefresher.class);
            updateTask.addConstructorArgReference(id);

            // Scheduled executor
            BeanDefinitionBuilder scheduledExecutorTask = BeanDefinitionBuilder
                    .genericBeanDefinition(ScheduledExecutorTask.class);
            scheduledExecutorTask.addConstructorArgValue(updateTask.getBeanDefinition());
            if (watchableAvailable) {
                /*
                 * The WatchedResourceMonitor is blocking with a timeout of reloadInterval. Must set a period, choose
                 * an interval of 1s.
                 */
                scheduledExecutorTask.addPropertyValue("period", 1000);
                scheduledExecutorTask.addPropertyValue("delay", 1000);
            } else {
                scheduledExecutorTask.addPropertyValue("period", reloadInterval);
                scheduledExecutorTask.addPropertyValue("delay", reloadInterval);
            }

            ManagedList<Object> taskList = new ManagedList<Object>();
            taskList.add(scheduledExecutorTask.getBeanDefinition());

            // Scheduler factory bean
            BeanDefinitionBuilder scheduledExecutorFactoryBean = BeanDefinitionBuilder
                    .genericBeanDefinition(ScheduledExecutorFactoryBean.class);
            scheduledExecutorFactoryBean.addPropertyValue("scheduledExecutorTasks", taskList);
            scheduledExecutorFactoryBean.addPropertyValue("threadNamePrefix", id + "-reloader");
            scheduledExecutorFactoryBean.addPropertyValue("daemon", Boolean.TRUE);
            parserContext.registerBeanComponent(new BeanComponentDefinition(
                    scheduledExecutorFactoryBean.getBeanDefinition(), id + "-Scheduler"));
        }
    }
}

From source file:com.cloudseal.spring.client.namespace.CloudSealBeanDefinitionParserInstance.java

private BeanDefinition registerBean(BeanDefinition bean, String beanID) {
    LOGGER.debug("Registering a {} class bean as {}...", bean.getBeanClassName(), beanID);
    parserContext.registerBeanComponent(new BeanComponentDefinition(bean, beanID));
    return bean;/*from  www.ja va 2s.c  om*/
}