Example usage for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference

List of usage examples for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference

Introduction

In this page you can find the example usage for org.springframework.beans.factory.config RuntimeBeanReference RuntimeBeanReference.

Prototype

public RuntimeBeanReference(Class<?> beanType) 

Source Link

Document

Create a new RuntimeBeanReference to a bean of the given type.

Usage

From source file:net.scriptability.core.integration.spring.ScriptAbilityBeanDefinitionParser.java

private String registerScriptAbilityInitialisingBean(final Element configureElement,
        final String factoryBeanName, final BeanDefinitionRegistry beanDefinitionRegistry) {
    BeanDefinitionBuilder builder = BeanDefinitionBuilder
            .genericBeanDefinition(MethodInvokingFactoryBean.class);
    builder.addPropertyReference("targetObject", DEFAULT_SCRIPTABILITY_BEAN_NAME);
    builder.addPropertyValue("targetMethod", "start");

    List<Object> arguments = new ManagedList();
    if (hasBindingsElement(configureElement)) {
        Map<String, RuntimeBeanReference> bindings = createBeanBindings((Element) configureElement
                .getElementsByTagNameNS(XML_NAMESPACE__SCRIPTABILITY, XML_ELEMENT__BINDINGS).item(0));
        arguments.add(bindings);/*from w w w .  ja va 2s.  c o m*/
    }
    arguments.add(new RuntimeBeanReference(factoryBeanName));
    builder.addPropertyValue("arguments", arguments);

    return BeanDefinitionReaderUtils.registerWithGeneratedName(builder.getBeanDefinition(),
            beanDefinitionRegistry);
}

From source file:de.itsvs.cwtrpc.controller.config.RemoteServiceControllerConfigBeanDefinitionParser.java

protected ManagedList<BeanMetadataElement> parseModules(Element element, ParserContext parserContext) {
    final ManagedList<BeanMetadataElement> modules;

    modules = new ManagedList<BeanMetadataElement>();
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.MODULE_ELEMENT)) {
        modules.add(getServiceModuleConfigBeanDefinitionParser().parseNested(child, parserContext));
    }/*from   w w  w .j  a  v  a2 s  .  c  o m*/
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.MODULE_REF_ELEMENT)) {
        final String name;
        final RuntimeBeanReference beanReference;

        name = child.getAttribute(XmlNames.BEAN_REFERENCE_NAME_ATTR);
        if (!StringUtils.hasText(name)) {
            parserContext.getReaderContext().error("Module reference must not be empty",
                    parserContext.extractSource(element));
        }
        beanReference = new RuntimeBeanReference(name);
        beanReference.setSource(parserContext.extractSource(element));
        modules.add(beanReference);
    }

    return modules;
}

From source file:org.drools.container.spring.namespace.KnowledgeBaseDefinitionParser.java

@SuppressWarnings("unchecked")
@Override//from www . jav a2s . c  o m
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
    BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(KnowledgeBaseBeanFactory.class);

    Element kbaseConf = DomUtils.getChildElementByTagName(element, "configuration");
    if (kbaseConf != null) {
        BeanDefinitionBuilder rbaseConfBuilder = BeanDefinitionBuilder
                .rootBeanDefinition(RuleBaseConfiguration.class);
        Element e = DomUtils.getChildElementByTagName(kbaseConf, ADVANCED_PROCESS_RULE_INTEGRATED);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("enabled"))) {
            rbaseConfBuilder.addPropertyValue("advancedProcessRuleIntegration",
                    Boolean.parseBoolean(e.getAttribute("enabled")));
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, MULTITHREADS);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("enabled"))) {
            rbaseConfBuilder.addPropertyValue("multithreadEvaluation",
                    Boolean.parseBoolean(e.getAttribute("enabled")));
            if (!StringUtils.isEmpty(e.getAttribute(MAX_THREADS))) {
                rbaseConfBuilder.addPropertyValue("maxThreads", Integer.parseInt(e.getAttribute(MAX_THREADS)));
            }
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, MBEABS);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("enabled"))) {
            rbaseConfBuilder.addPropertyValue("MBeansEnabled", Boolean.parseBoolean(e.getAttribute("enabled")));
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, EVENT_PROCESSING_MODE);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("mode"))) {
            rbaseConfBuilder.addPropertyValue("eventProcessingMode",
                    EventProcessingOption.valueOf(e.getAttribute("mode")));
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, ASSERT_BEHAVIOR);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("mode"))) {
            rbaseConfBuilder.addPropertyValue("assertBehaviour",
                    AssertBehaviour.determineAssertBehaviour(e.getAttribute("mode")));
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, ACCUMULATE_FUNCTIONS);
        if (e != null) {
            List<Element> children = DomUtils.getChildElementsByTagName(e, ACCUMULATE_FUNCTION);
            if (children != null && !children.isEmpty()) {
                ManagedMap functions = new ManagedMap();
                for (Element child : children) {
                    functions.put(child.getAttribute("name"),
                            new RuntimeBeanReference(child.getAttribute("ref")));
                }
                factory.addPropertyValue("accumulateFunctions", functions);
            }
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, EVALUATORS);
        if (e != null) {
            List<Element> children = DomUtils.getChildElementsByTagName(e, EVALUATOR);
            if (children != null && !children.isEmpty()) {
                ManagedMap evaluators = new ManagedMap();
                for (Element child : children) {
                    evaluators.put(child.getAttribute("name"),
                            new RuntimeBeanReference(child.getAttribute("ref")));
                }
                factory.addPropertyValue("evaluators", evaluators);
            }
        }

        e = DomUtils.getChildElementByTagName(kbaseConf, CONSEQUENCE_EXCEPTION_HANDLER);
        if (e != null && !StringUtils.isEmpty(e.getAttribute("handler"))) {
            rbaseConfBuilder.addPropertyValue("consequenceExceptionHandler", e.getAttribute("handler"));
        }

        factory.addPropertyValue("conf", rbaseConfBuilder.getBeanDefinition());
    }

    String nodeRef = element.getAttribute(EXECUTION_NODE_ATTRIBUTE);
    if (nodeRef != null && nodeRef.length() > 0) {
        factory.addPropertyReference(EXECUTION_NODE_ATTRIBUTE, nodeRef);
    }

    ManagedList resources = getResources(element, parserContext, factory);

    if (resources != null) {
        factory.addPropertyValue("resources", resources);
    }

    return factory.getBeanDefinition();
}

From source file:org.bigtester.ate.model.page.elementaction.SendKeysActionPostBeanProcessor.java

/**
 * {@inheritDoc}/*from w  ww  . j  ava2  s .  c o m*/
 */
@Override
public void postProcessBeanFactory(@Nullable ConfigurableListableBeanFactory beanFactory)
        throws BeansException {
    if (beanFactory == null)
        throw new IllegalStateException("Spring Container initialization error");
    // String[] homePageNames =
    // beanFactory.getBeanNamesForType(IStepInputData.class, true, false);
    String[] allSendKeysActions = beanFactory.getBeanNamesForType(SendKeysAction.class, true, false);
    for (int index = 0; index < allSendKeysActions.length; index++) {
        BeanDefinition sendKeyActDef = beanFactory.getBeanDefinition(allSendKeysActions[index]);
        String dataValue = ((RuntimeBeanReference) sendKeyActDef.getConstructorArgumentValues()
                .getGenericArgumentValue(RuntimeBeanReference.class).getValue()).getBeanName();
        //.getAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE);
        if (null == dataValue) {
            throw new IllegalStateException("Spring Container sendKeyActionValue initialization error");
        } else {
            try {
                beanFactory.getBeanDefinition(dataValue);
            } catch (NoSuchBeanDefinitionException NoBeanDef) {

                String idstr;
                BeanDefinitionBuilder definitionBuilder;

                if (StringUtils.isEmpty(dataValue)) {
                    definitionBuilder = BeanDefinitionBuilder
                            .genericBeanDefinition(RandomAlphaTextValueDataHolder.class);
                    idstr = (String) sendKeyActDef.getAttribute("id")
                            + "_SendKeysRandomAlphaTextDataValueBean_ID";
                    definitionBuilder.addConstructorArgValue(idstr);
                    definitionBuilder.addConstructorArgValue(10);

                } else {
                    definitionBuilder = BeanDefinitionBuilder
                            .genericBeanDefinition(ManualAssignedValueDataHolder.class);

                    definitionBuilder.addConstructorArgValue(EnumRunTimeDataType.TEXT);
                    definitionBuilder.addConstructorArgValue(dataValue);

                    idstr = (String) sendKeyActDef.getAttribute("id") + "_SendKeysDataValueBean_ID";
                    definitionBuilder.addConstructorArgValue(idstr);

                }

                getBdReg().registerBeanDefinition(idstr, definitionBuilder.getBeanDefinition());
                sendKeyActDef.setAttribute(XsdElementConstants.ATTR_SENDKEYSACTION_DATAVALUE, idstr);
                sendKeyActDef.getConstructorArgumentValues().getGenericArgumentValue(RuntimeBeanReference.class)
                        .setValue(new RuntimeBeanReference(idstr));
            }
        }
    }

}

From source file:info.sargis.eventbus.config.EventBusHandlerBeanDefinitionParser.java

private RuntimeBeanReference defineRuntimeBeanReference(ParserContext parserContext,
        BeanDefinition beanDefinition) {
    String generatedBeanName = getGeneratedBeanName(parserContext, beanDefinition);

    parserContext.getRegistry().registerBeanDefinition(generatedBeanName, beanDefinition);
    return new RuntimeBeanReference(generatedBeanName);
}

From source file:org.drools.container.spring.namespace.KnowledgeSessionDefinitionParser.java

@SuppressWarnings("unchecked")
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {

    String id = element.getAttribute("id");
    emptyAttributeCheck(element.getLocalName(), "id", id);

    String kbase = element.getAttribute(KBASE_ATTRIBUTE);
    emptyAttributeCheck(element.getLocalName(), KBASE_ATTRIBUTE, kbase);

    String sessionType = element.getAttribute(TYPE_ATTRIBUTE);
    BeanDefinitionBuilder factory;//  w  w  w . ja v  a2  s  .c  o m

    if ("stateful".equals(sessionType)) {
        factory = BeanDefinitionBuilder.rootBeanDefinition(StatefulKnowledgeSessionBeanFactory.class);
    } else if ("stateless".equals(sessionType)) {
        factory = BeanDefinitionBuilder.rootBeanDefinition(StatelessKnowledgeSessionBeanFactory.class);
    } else {
        throw new IllegalArgumentException(
                "Invalid value for " + TYPE_ATTRIBUTE + " attribute: " + sessionType);
    }

    factory.addPropertyReference("kbase", kbase);

    String node = element.getAttribute(GRID_NODE_ATTRIBUTE);
    if (node != null && node.length() > 0) {
        factory.addPropertyReference("node", node);
    }

    String name = element.getAttribute(NAME_ATTRIBUTE);
    if (StringUtils.hasText(name)) {
        factory.addPropertyValue("name", name);
    } else {
        factory.addPropertyValue("name", id);
    }

    // Additions for JIRA JBRULES-3076
    String listeners = element.getAttribute(LISTENERS_ATTRIBUTE);
    if (StringUtils.hasText(listeners)) {
        factory.addPropertyValue("eventListenersFromGroup", new RuntimeBeanReference(listeners));
    }
    EventListenersUtil.parseEventListeners(parserContext, factory, element);
    // End of Additions for JIRA JBRULES-3076

    Element ksessionConf = DomUtils.getChildElementByTagName(element, "configuration");
    if (ksessionConf != null) {
        Element persistenceElm = DomUtils.getChildElementByTagName(ksessionConf, "jpa-persistence");
        if (persistenceElm != null) {
            BeanDefinitionBuilder beanBuilder = BeanDefinitionBuilder
                    .genericBeanDefinition(JpaConfiguration.class);

            String loadId = persistenceElm.getAttribute("load");
            if (StringUtils.hasText(loadId)) {
                beanBuilder.addPropertyValue("id", Long.parseLong(loadId));
            }

            Element tnxMng = DomUtils.getChildElementByTagName(persistenceElm, TX_MANAGER_ATTRIBUTE);
            String ref = tnxMng.getAttribute("ref");

            beanBuilder.addPropertyReference("platformTransactionManager", ref);

            Element emf = DomUtils.getChildElementByTagName(persistenceElm, EMF_ATTRIBUTE);
            ref = emf.getAttribute("ref");
            beanBuilder.addPropertyReference("entityManagerFactory", ref);

            Element variablePersisters = DomUtils.getChildElementByTagName(persistenceElm,
                    "variable-persisters");
            if (variablePersisters != null && variablePersisters.hasChildNodes()) {
                List<Element> childPersisterElems = DomUtils.getChildElementsByTagName(variablePersisters,
                        "persister");
                ManagedMap persistors = new ManagedMap(childPersisterElems.size());
                for (Element persisterElem : childPersisterElems) {
                    String forClass = persisterElem.getAttribute(FORCLASS_ATTRIBUTE);
                    String implementation = persisterElem.getAttribute(IMPLEMENTATION_ATTRIBUTE);
                    if (!StringUtils.hasText(forClass)) {
                        throw new RuntimeException("persister element must have valid for-class attribute");
                    }
                    if (!StringUtils.hasText(implementation)) {
                        throw new RuntimeException(
                                "persister element must have valid implementation attribute");
                    }
                    persistors.put(forClass, implementation);
                }
                beanBuilder.addPropertyValue("variablePersisters", persistors);
            }

            factory.addPropertyValue("jpaConfiguration", beanBuilder.getBeanDefinition());
        }
        BeanDefinitionBuilder rbaseConfBuilder = BeanDefinitionBuilder
                .rootBeanDefinition(SessionConfiguration.class);
        Element e = DomUtils.getChildElementByTagName(ksessionConf, KEEP_REFERENCE);
        if (e != null && StringUtils.hasText(e.getAttribute("enabled"))) {
            rbaseConfBuilder.addPropertyValue("keepReference", Boolean.parseBoolean(e.getAttribute("enabled")));
        }

        e = DomUtils.getChildElementByTagName(ksessionConf, CLOCK_TYPE);
        if (e != null && StringUtils.hasText(e.getAttribute("type"))) {
            rbaseConfBuilder.addPropertyValue("clockType", ClockType.resolveClockType(e.getAttribute("type")));
        }
        factory.addPropertyValue("conf", rbaseConfBuilder.getBeanDefinition());

        e = DomUtils.getChildElementByTagName(ksessionConf, WORK_ITEMS);
        if (e != null) {
            List<Element> children = DomUtils.getChildElementsByTagName(e, WORK_ITEM);
            if (children != null && !children.isEmpty()) {
                ManagedMap workDefs = new ManagedMap();
                for (Element child : children) {
                    workDefs.put(child.getAttribute("name"),
                            new RuntimeBeanReference(child.getAttribute("ref")));
                }
                factory.addPropertyValue("workItems", workDefs);
            }
        }
    }

    Element batch = DomUtils.getChildElementByTagName(element, "batch");
    if (batch == null) {
        // just temporary legacy suppport
        batch = DomUtils.getChildElementByTagName(element, "script");
    }
    if (batch != null) {
        // we know there can only ever be one
        ManagedList children = new ManagedList();

        for (int i = 0, length = batch.getChildNodes().getLength(); i < length; i++) {
            Node n = batch.getChildNodes().item(i);
            if (n instanceof Element) {
                Element e = (Element) n;

                BeanDefinitionBuilder beanBuilder = null;
                if ("insert-object".equals(e.getLocalName())) {
                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(InsertObjectCommand.class);
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "insert-object must either specify a 'ref' attribute or have a nested bean");
                    }
                } else if ("set-global".equals(e.getLocalName())) {
                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(SetGlobalCommand.class);
                    beanBuilder.addConstructorArgValue(e.getAttribute("identifier"));
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "set-global must either specify a 'ref' attribute or have a nested bean");
                    }
                } else if ("fire-until-halt".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(FireUntilHaltCommand.class);
                } else if ("fire-all-rules".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(FireAllRulesCommand.class);
                    String max = e.getAttribute("max");
                    if (StringUtils.hasText(max)) {
                        beanBuilder.addPropertyValue("max", max);
                    }
                } else if ("start-process".equals(e.getLocalName())) {

                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(StartProcessCommand.class);
                    String processId = e.getAttribute("process-id");
                    if (!StringUtils.hasText(processId)) {
                        throw new IllegalArgumentException("start-process must specify a process-id");
                    }
                    beanBuilder.addConstructorArgValue(processId);

                    List<Element> params = DomUtils.getChildElementsByTagName(e, "parameter");
                    if (!params.isEmpty()) {
                        ManagedMap map = new ManagedMap();
                        for (Element param : params) {
                            String identifier = param.getAttribute("identifier");
                            if (!StringUtils.hasText(identifier)) {
                                throw new IllegalArgumentException(
                                        "start-process paramaters must specify an identifier");
                            }

                            String ref = param.getAttribute("ref");
                            Element nestedElm = getFirstElement(param.getChildNodes());
                            if (StringUtils.hasText(ref)) {
                                map.put(identifier, new RuntimeBeanReference(ref));
                            } else if (nestedElm != null) {
                                map.put(identifier, parserContext.getDelegate()
                                        .parsePropertySubElement(nestedElm, null, null));
                            } else {
                                throw new IllegalArgumentException(
                                        "start-process parameters must either specify a 'ref' attribute or have a nested bean");
                            }
                        }
                        beanBuilder.addPropertyValue("parameters", map);
                    }
                } else if ("signal-event".equals(e.getLocalName())) {
                    beanBuilder = BeanDefinitionBuilder.genericBeanDefinition(SignalEventCommand.class);
                    String processInstanceId = e.getAttribute("process-instance-id");
                    if (StringUtils.hasText(processInstanceId)) {
                        beanBuilder.addConstructorArgValue(processInstanceId);
                    }

                    beanBuilder.addConstructorArgValue(e.getAttribute("event-type"));

                    String ref = e.getAttribute("ref");
                    Element nestedElm = getFirstElement(e.getChildNodes());
                    if (StringUtils.hasText(ref)) {
                        beanBuilder.addConstructorArgReference(ref);
                    } else if (nestedElm != null) {
                        beanBuilder.addConstructorArgValue(
                                parserContext.getDelegate().parsePropertySubElement(nestedElm, null, null));
                    } else {
                        throw new IllegalArgumentException(
                                "signal-event must either specify a 'ref' attribute or have a nested bean");
                    }
                }
                if (beanBuilder == null) {
                    throw new IllegalStateException("Unknow element: " + e.getLocalName());
                }
                children.add(beanBuilder.getBeanDefinition());
            }
        }
        factory.addPropertyValue("batch", children);
    }

    // find any kagent's for the current kbase and assign (only if this 
    // is a stateless session)
    if (sessionType.equals("stateless")) {
        for (String beanName : parserContext.getRegistry().getBeanDefinitionNames()) {
            BeanDefinition def = parserContext.getRegistry().getBeanDefinition(beanName);
            if (KnowledgeAgentBeanFactory.class.getName().equals(def.getBeanClassName())) {
                PropertyValue pvalue = def.getPropertyValues().getPropertyValue("kbase");
                RuntimeBeanReference tbf = (RuntimeBeanReference) pvalue.getValue();
                if (kbase.equals(tbf.getBeanName())) {
                    factory.addPropertyValue("knowledgeAgent", new RuntimeBeanReference(beanName));
                }
            }
        }
    }

    return factory.getBeanDefinition();
}

From source file:edu.internet2.middleware.shibboleth.common.config.SpringConfigurationUtils.java

/**
 * Parses a bean definition using an xsi:type aware version of
 * BeanDefinitionParserDelegate.parseCustomElement(Element).
 * //  w w w  .  ja  v a2  s .  co m
 * @param element element to parse
 * @param idAttribute attribute that carries the unique ID for the bean
 * @param parserContext current parser context
 * 
 * @return bean definition reference
 */
public static RuntimeBeanReference parseCustomElement(Element element, String idAttribute,
        ParserContext parserContext) {
    createBeanDefinition(element, parserContext);
    RuntimeBeanReference beanRef = new RuntimeBeanReference(element.getAttributeNS(null, idAttribute));
    beanRef.setSource(element);
    return beanRef;
}

From source file:org.bigtester.ate.model.page.elementfind.ElementFinderIndexOfSameProcessor.java

/**
 * {@inheritDoc}/* ww w  .  ja v  a  2  s  .  c o  m*/
 */
@Override
public void postProcessBeanFactory(@Nullable ConfigurableListableBeanFactory beanFactory)
        throws BeansException {
    if (beanFactory == null)
        throw new IllegalStateException("Spring Container initialization error");
    // String[] homePageNames =
    // beanFactory.getBeanNamesForType(IStepInputData.class, true, false);
    String[] elementFinders = beanFactory.getBeanNamesForType(AbstractElementFind.class, true, false);
    for (int index = 0; index < elementFinders.length; index++) {
        BeanDefinition elementFinderDef = beanFactory.getBeanDefinition(elementFinders[index]);

        Object indexOfSameElementsRef = null; // NOPMD
        if (elementFinderDef.getPropertyValues()
                .getPropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS) != null) {
            indexOfSameElementsRef = elementFinderDef.getPropertyValues()
                    .getPropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS)
                    .getValue();
        }
        if (indexOfSameElementsRef == null)
            continue;
        String dataValue = ((RuntimeBeanReference) indexOfSameElementsRef).getBeanName();

        if (null == dataValue) {
            throw new IllegalStateException("Spring Container sendKeyActionValue initialization error");
        } else {
            try {
                beanFactory.getBeanDefinition(dataValue);
            } catch (NoSuchBeanDefinitionException NoBeanDef) {

                String idstr;
                int intDataValue;
                BeanDefinitionBuilder definitionBuilder;

                if (StringUtils.isEmpty(dataValue)) {// assign 0
                    intDataValue = 0;
                } else {
                    try {
                        intDataValue = Integer.parseInt(dataValue);//NOPMD
                    } catch (NumberFormatException nonNumeric) {
                        intDataValue = 0;
                    }
                }
                definitionBuilder = BeanDefinitionBuilder
                        .genericBeanDefinition(AutoIncrementalDataHolder.class);

                definitionBuilder.addConstructorArgValue(intDataValue);
                definitionBuilder.addConstructorArgValue(1);

                idstr = (String) elementFinderDef.getAttribute("id") + "_elementfinderIndexOfSameElements_ID";

                getBdReg().registerBeanDefinition(idstr, definitionBuilder.getBeanDefinition());

                elementFinderDef.getPropertyValues()
                        .removePropertyValue(XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS);
                elementFinderDef.getPropertyValues().addPropertyValue(
                        XsdElementConstants.ATTR_GENERICELEMENTFIND_INDEXOFSAMEELEMENTS,
                        new RuntimeBeanReference(idstr));

            }
        }
    }

}

From source file:org.solmix.runtime.support.spring.ContainerPostProcessor.java

private Object getContainerByName(String name, ConfigurableListableBeanFactory factory, boolean create,
        String cn) {/* w ww.  j ava2  s.  c  o  m*/

    if (!factory.containsBeanDefinition(name) && (create || Container.DEFAULT_CONTAINER_ID.equals(name))) {
        //
        DefaultListableBeanFactory df = (DefaultListableBeanFactory) factory;
        RootBeanDefinition rbd = new RootBeanDefinition(SpringContainer.class);
        if (cn != null) {
            //  SpringContainer.setConfig
            rbd.setAttribute("config", new RuntimeBeanReference(cn));
        }
        df.registerBeanDefinition(name, rbd);
    } else if (cn != null) {
        BeanDefinition bd = factory.getBeanDefinition(name);
        bd.getPropertyValues().addPropertyValue("config", new RuntimeBeanReference(cn));
    }
    return new RuntimeBeanReference(name);
}