Package org.springframework.beans.factory.support

Examples of org.springframework.beans.factory.support.BeanDefinitionBuilder


    private static final String CACHE_MANAGER_CLASS = "org.infinispan.spring.provider.SpringEmbeddedCacheManagerFactoryBean";

    @Override
    protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
      BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(CACHE_MANAGER_CLASS);
      String configFileLocation = element.getAttribute("configuration");
      if (StringUtils.hasText(configFileLocation)) {
         beanDefinitionBuilder.addPropertyValue("configurationFileLocation", configFileLocation);
      }
      return beanDefinitionBuilder.getBeanDefinition();
    }
View Full Code Here


    private static final String CACHE_MANAGER_CLASS = "org.infinispan.spring.provider.SpringRemoteCacheManagerFactoryBean";

    @Override
    protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
      BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(CACHE_MANAGER_CLASS);
      String configFileLocation = element.getAttribute("configuration");
      if (StringUtils.hasText(configFileLocation)) {
         beanDefinitionBuilder.addPropertyValue("configurationPropertiesFileLocation", configFileLocation);
      }
      return beanDefinitionBuilder.getBeanDefinition();
    }
View Full Code Here

                StringWriter writer = new StringWriter();
                XMLStreamWriter xmlWriter = StaxUtils.createXMLStreamWriter(writer);
                StaxUtils.copy(data, xmlWriter);
                xmlWriter.flush();
   
                BeanDefinitionBuilder jaxbbean
                    = BeanDefinitionBuilder.rootBeanDefinition(JAXBBeanFactory.class);
                jaxbbean.getRawBeanDefinition().setFactoryMethodName("createJAXBBean");
                jaxbbean.addConstructorArg(context);
                jaxbbean.addConstructorArg(writer.toString());
                jaxbbean.addConstructorArg(c);
                bean.addPropertyValue(propertyName, jaxbbean.getBeanDefinition());
            } catch (Exception ex) {
                Unmarshaller u = context.createUnmarshaller();
                Object obj;
                if (c != null) {
                    obj = u.unmarshal(data, c);
View Full Code Here

            xmlWriter.flush();
        } catch (XMLStreamException e) {
            throw new RuntimeException(e);
        }

        BeanDefinitionBuilder jaxbbean
            = BeanDefinitionBuilder.rootBeanDefinition(cls);
        if (factory != null) {
            jaxbbean.getRawBeanDefinition().setFactoryBeanName(factory.getName());
        }
        jaxbbean.getRawBeanDefinition().setFactoryMethodName(method);
        jaxbbean.addConstructorArg(writer.toString());
        if (args != null) {
            for (Object o : args) {
                jaxbbean.addConstructorArg(o);
            }               
        }
        return jaxbbean.getBeanDefinition();
    }
View Full Code Here

   
    @SuppressWarnings("deprecation")
    @Override
    protected void doParse(Element element, ParserContext ctx, BeanDefinitionBuilder bean) {
        Class factoryClass = getFactoryClass();
        BeanDefinitionBuilder factoryBean = bean;
        if (!FactoryBean.class.isAssignableFrom(factoryClass)) {
            factoryBean = BeanDefinitionBuilder.rootBeanDefinition(getFactoryClass());
        }

        NamedNodeMap atts = element.getAttributes();       
        boolean createdFromAPI = false;
        boolean setBus = false;
        for (int i = 0; i < atts.getLength(); i++) {
            Attr node = (Attr) atts.item(i);
            String val = node.getValue();
            String pre = node.getPrefix();
            String name = node.getLocalName();
           
            if ("createdFromAPI".equals(name)) {
                factoryBean.setAbstract(true);
                bean.setAbstract(true);
                createdFromAPI = true;
            } else if ("abstract".equals(name)) {
                factoryBean.setAbstract(true);
                bean.setAbstract(true);
            } else if (!"id".equals(name) && !"name".equals(name) && isAttribute(pre, name)) {
                if ("bus".equals(name)) {
                    setBus = true;
                }
                mapAttribute(factoryBean, element, name, val);
            }
        }
       
        if (!setBus) {
            addBusWiringAttribute(factoryBean, BusWiringType.PROPERTY);
        }
       
        Node node = element.getFirstChild();
        while (node != null) {
            if (node.getNodeType() == Node.ELEMENT_NODE) {
                String name = node.getLocalName();
                mapElement(ctx, factoryBean, (Element) node, name);
            }
            node = node.getNextSibling();
        }
       
        String id = getIdOrName(element);
        BeanDefinition container = ctx.getContainingBeanDefinition();
        boolean noFactory = false;
        if (StringUtils.isEmpty(id)) {
            if (container == null) {
                id = BeanDefinitionReaderUtils.generateBeanName(bean.getBeanDefinition(),
                                                                ctx.getRegistry(),
                                                                false);
            } else {
                id = BeanDefinitionReaderUtils.generateBeanName(bean.getBeanDefinition(),
                                                                ctx.getRegistry(),
                                                                true);
                noFactory = true;
                //inner bean, no need for the factory to be public at all
            }
        }
        if (createdFromAPI) {
            id = id + getSuffix();
        }
       
        if (FactoryBean.class.isAssignableFrom(getFactoryClass())) {
            if (!noFactory) {
                AbstractBeanDefinition def = factoryBean.getRawBeanDefinition().cloneBeanDefinition();
                def.setBeanClass(getRawFactoryClass());
                def.setAbstract(factoriesAreAbstract);
                def.setLazyInit(true);
                ctx.getRegistry().registerBeanDefinition(id + getFactoryIdSuffix(),
                                                         def);
            }
            bean.getBeanDefinition().setAttribute("id", id);
        } else {
            String factoryId = id + getFactoryIdSuffix();
            ctx.getRegistry().registerBeanDefinition(factoryId, factoryBean.getBeanDefinition());
            bean.getBeanDefinition().setAttribute("id", id);
            bean.setFactoryBean(factoryId, "create");
        }
    }
View Full Code Here

    @SuppressWarnings("unchecked")
    @Override
    protected AbstractBeanDefinition parseInternal(Element element,
                                                   ParserContext parserContext) {
        BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition( DroolsResourceAdapter.class );

        if ( StringUtils.hasText( element.getAttribute( REF ) ) ) {
            String ref = element.getAttribute( REF );
            emptyAttributeCheck( element.getLocalName(),
                                 REF,
                                 ref );
            return (AbstractBeanDefinition) parserContext.getRegistry().getBeanDefinition( ref );
        }

        String source = element.getAttribute( SOURCE_ATTRIBUTE );
        emptyAttributeCheck( element.getLocalName(),
                             SOURCE_ATTRIBUTE,
                             source );
        factory.addPropertyValue( "resource",
                                  source );

        String type = element.getAttribute( TYPE_ATTRIBUTE );

        String resourceType = type == null || type.length() == 0 ? ResourceType.DRL.getName() : type;

        factory.addPropertyValue( "resourceType",
                                  resourceType );

        boolean basicAuthenticationEnabled = element.getAttribute( BASIC_AUTHENTICATION_ATTRIBUTE ) != null && element.getAttribute( BASIC_AUTHENTICATION_ATTRIBUTE ).equalsIgnoreCase( "enabled" );
        factory.addPropertyValue( "basicAuthenticationEnabled",
                                  basicAuthenticationEnabled );

        if ( basicAuthenticationEnabled ) {
            String username = element.getAttribute( USERNAME_ATTRIBUTE );
            factory.addPropertyValue( "basicAuthenticationUsername",
                                      username );

            String password = element.getAttribute( PASSWORD_ATTRIBUTE );
            factory.addPropertyValue( "basicAuthenticationPassword",
                                      password );
        }
       
        String name = element.getAttribute( NAME );
        factory.addPropertyValue( "name",
                                  name.isEmpty()? null : name );
       
        String description = element.getAttribute( DESCRIPTION );
        factory.addPropertyValue( "description",
                                  description.isEmpty()? null : description );
       

        if ( "xsd".equals( resourceType.toLowerCase() ) ) {
            XsdParser.parse( element,
                             parserContext,
                             factory );
        } else if ( "dtable".equals( resourceType.toLowerCase() ) ) {
            List<Element> childElements = DomUtils.getChildElementsByTagName( element,
                                                                              "decisiontable-conf" );
            if ( !childElements.isEmpty() ) {
                Element conf = childElements.get( 0 );
                DecisionTableConfigurationImpl dtableConf = new DecisionTableConfigurationImpl();

                String inputType = conf.getAttribute( INPUT_TYPE_ATTRIBUTE );
                emptyAttributeCheck( conf.getLocalName(),
                                     INPUT_TYPE_ATTRIBUTE,
                                     inputType );
                dtableConf.setInputType( DecisionTableInputType.valueOf( inputType ) );

                String worksheetName = conf.getAttribute( WORKSHEET_NAME_ATTRIBUTE );
                emptyAttributeCheck( conf.getLocalName(),
                                     WORKSHEET_NAME_ATTRIBUTE,
                                     worksheetName );
                dtableConf.setWorksheetName( worksheetName );

                factory.addPropertyValue( "resourceConfiguration",
                                          dtableConf );
            }
        }

        return factory.getBeanDefinition();
    }
View Full Code Here

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

        String sessionType = element.getAttribute(TYPE_ATTRIBUTE);
        BeanDefinitionBuilder factory;

        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 paramaters 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);
        }
View Full Code Here

                }
            }
        }

        protected BeanDefinitionBuilder createBeanBuilder(final Class clazz) {
            BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(clazz);
            builder.setScope(configBuilder.getBeanDefinition().getScope());
            builder.setLazyInit(configBuilder.getBeanDefinition().isLazyInit());
            return builder;
        }
View Full Code Here

        protected BeanDefinitionBuilder createAndFillBeanBuilder(Node node, final Class clazz,
                                                                 final String propertyName,
                                                                 final BeanDefinitionBuilder parent,
                                                                 final String... exceptPropertyNames) {
            BeanDefinitionBuilder builder = createBeanBuilder(clazz);
            final AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();
            fillValues(node, builder, exceptPropertyNames);
            parent.addPropertyValue(propertyName, beanDefinition);
            return builder;
        }
View Full Code Here

        protected void createAndFillListedBean(Node node,
                                               final Class clazz,
                                               final String propertyName,
                                               final ManagedMap managedMap,
                                               String... excludeNames) {
            BeanDefinitionBuilder builder = createBeanBuilder(clazz);
            final AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();
            final Node attName = node.getAttributes().getNamedItem(propertyName ); //"name"
            final String name = getTextContent(attName);
            builder.addPropertyValue("name", name);
            fillValues(node, builder,excludeNames);
            managedMap.put(name, beanDefinition);
        }
View Full Code Here

TOP

Related Classes of org.springframework.beans.factory.support.BeanDefinitionBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.