Example usage for org.springframework.beans.factory.support BeanDefinitionBuilder childBeanDefinition

List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder childBeanDefinition

Introduction

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

Prototype

public static BeanDefinitionBuilder childBeanDefinition(String parentName) 

Source Link

Document

Create a new BeanDefinitionBuilder used to construct a ChildBeanDefinition .

Usage

From source file:org.jsconf.core.impl.BeanFactory.java

private BeanDefinitionBuilder buildBeanFromParent(String beanId) {
    BeanDefinitionBuilder beanDefinition = BeanDefinitionBuilder.childBeanDefinition(this.parentId);
    if (StringUtils.hasText(this.className)) {
        throw new BeanCreationException(beanId,
                String.format("Bean have a Class %s and a Parent defined : %s", this.className, this.parentId));
    }/*from   w  w  w  . j  a v  a  2s.c om*/
    return setBeanProperties(beanDefinition, beanId, this.properties);
}

From source file:org.parancoe.web.xml.ControllerBeanDefinitionParser.java

private void createBeanDefinition(Class ctrl, String parent) {
    String id = ctrl.getName();//w  ww  .j a  va  2s. co m
    BeanDefinitionBuilder rootBuilder = BeanDefinitionBuilder.childBeanDefinition(parent);
    rootBuilder.getBeanDefinition().setBeanClass(ctrl);
    if (logger.isDebugEnabled()) {
        logger.debug("registering bean definition: " + rootBuilder.getBeanDefinition().toString());
    }
    //logger.info("registering bean definition: " + rootBuilder.getBeanDefinition().toString());
    registry.registerBeanDefinition(id, rootBuilder.getBeanDefinition());

}

From source file:org.devproof.portal.core.config.factory.DevproofClassPathBeanDefinitionScanner.java

private BeanDefinitionHolder buildGenericRepositoryDefinition(Class<?> clazz) {
    Class<?> entityClazz = getEntityClazz(clazz);
    GenericRepository annotation = clazz.getAnnotation(GenericRepository.class);
    BeanDefinition bd = BeanDefinitionBuilder.childBeanDefinition("baseGenericDao")
            .addPropertyValue("daoInterface", clazz).addPropertyValue("entityClass", entityClazz)
            .getBeanDefinition();/*from   w ww  . j  av a 2s . co m*/
    return new BeanDefinitionHolder(bd, annotation.value());
}

From source file:org.devproof.portal.core.config.factory.DevproofClassPathBeanDefinitionScanner.java

private BeanDefinitionHolder buildGenericDataProviderDefinition(Class<?> clazz) {
    RegisterGenericDataProvider annotation = clazz.getAnnotation(RegisterGenericDataProvider.class);
    Class<?> entityClazz = clazz;
    Class<?> queryClazz = annotation.queryClass();
    BeanDefinition bd = BeanDefinitionBuilder.childBeanDefinition("persistenceDataProvider")
            .setScope(BeanDefinition.SCOPE_PROTOTYPE)
            .addPropertyValue("sort", new SortParam(annotation.sortProperty(), annotation.sortAscending()))
            .addPropertyValue("queryClass", queryClazz).addPropertyValue("entityClass", entityClazz)
            .addPropertyValue("countQuery", annotation.countQuery())
            .addPropertyValue("prefetch", Arrays.asList(annotation.prefetch())).getBeanDefinition();
    return new BeanDefinitionHolder(bd, annotation.value());
}

From source file:org.metaeffekt.dcc.commons.spring.xml.DCCConfigurationBeanDefinitionParser.java

private void parseAndRegisterUnits(Element profileElement, File origin, BeanDefinitionRegistry registry,
        ParserContext parserContext) {// w w  w.  ja  v a2s.co  m

    List<Element> unitElements = DomUtils.getChildElementsByTagName(profileElement, ELEMENT_UNIT);
    for (Element unitElement : unitElements) {
        // first retrieve all XML attributes of the Unit element
        String unitId = extractMandatoryIdAttributeFromElement(unitElement, "Unit", registry);
        // TODO: currently not used as there is nowhere to set this on a ConfigurationUnit
        @SuppressWarnings("unused")
        String unitType = unitElement.getAttribute(ATTRIBUTE_UNIT_TYPE);
        boolean unitIsAbstract = Boolean.valueOf(unitElement.getAttribute(ATTRIBUTE_UNIT_ABSTRACT));
        String unitExtends = parseString(unitElement, ATTRIBUTE_UNIT_EXTENDS, null, registry);

        ManagedList<AbstractBeanDefinition> requiredCapabilityReferences = parseRequiredCapabilities(
                unitElement, unitId, registry);
        ManagedList<AbstractBeanDefinition> providedCapabilityReferences = parseProvidedCapabilities(
                unitElement, unitId, registry);
        ManagedList<Attribute> attributes = parseAttributesElement(unitElement, parserContext);
        ManagedList<AbstractBeanDefinition> mappings = parseMappingsElement(unitElement, unitId, registry);
        ManagedList<AbstractBeanDefinition> commands = parseCommands(unitElement, unitId, registry);
        ManagedList<AbstractBeanDefinition> asserts = parseAsserts(unitElement, registry);

        BeanDefinitionBuilder unitBeanDefBuilder = null;
        if (StringUtils.isNotBlank(unitExtends)) {
            unitBeanDefBuilder = BeanDefinitionBuilder.childBeanDefinition(unitExtends);
            unitBeanDefBuilder.getRawBeanDefinition().setBeanClass(ConfigurationUnit.class);
            requiredCapabilityReferences.setMergeEnabled(true);
            providedCapabilityReferences.setMergeEnabled(true);
            attributes.setMergeEnabled(true);
            mappings.setMergeEnabled(true);
            commands.setMergeEnabled(true);
            asserts.setMergeEnabled(true);

            unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_PARENT_ID, unitExtends);
        } else {
            unitBeanDefBuilder = BeanDefinitionBuilder.rootBeanDefinition(ConfigurationUnit.class);
        }

        String description = extractDescription(unitElement, registry);

        unitBeanDefBuilder.setAbstract(false);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_ORIGIN, origin);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_DESCRIPTION, description);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_ABSTRACT, unitIsAbstract);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_PROVIDED_CAPABILITIES, providedCapabilityReferences);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_REQUIRED_CAPABILITIES, requiredCapabilityReferences);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_ATTRIBUTES, attributes);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_MAPPINGS, mappings);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_COMMANDS, commands);
        unitBeanDefBuilder.addPropertyValue(PROPERTY_UNIT_ASSERTS, asserts);

        unitBeanDefBuilder.addConstructorArgValue(unitId);
        RuntimeBeanReference unitBeanRef = new RuntimeBeanReference(unitId);
        unitBeanRef.setSource(parserContext.getReaderContext().extractSource(unitElement));

        registry.registerBeanDefinition(unitId, unitBeanDefBuilder.getBeanDefinition());
    }

}

From source file:org.springframework.beans.factory.DefaultListableBeanFactoryTests.java

@Test
public void testExplicitScopeInheritanceForChildBeanDefinitions() throws Exception {
    String theChildScope = "bonanza!";

    RootBeanDefinition parent = new RootBeanDefinition();
    parent.setScope(RootBeanDefinition.SCOPE_PROTOTYPE);

    AbstractBeanDefinition child = BeanDefinitionBuilder.childBeanDefinition("parent").getBeanDefinition();
    child.setBeanClass(TestBean.class);
    child.setScope(theChildScope);//from  ww w  .  j  a  va 2 s  . c om

    DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
    factory.registerBeanDefinition("parent", parent);
    factory.registerBeanDefinition("child", child);

    AbstractBeanDefinition def = (AbstractBeanDefinition) factory.getBeanDefinition("child");
    assertEquals("Child 'scope' not overriding parent scope (it must).", theChildScope, def.getScope());
}