Example usage for org.springframework.beans.factory.support ManagedList ManagedList

List of usage examples for org.springframework.beans.factory.support ManagedList ManagedList

Introduction

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

Prototype

public ManagedList() 

Source Link

Usage

From source file:com.apporiented.spring.override.ListMergeProcessor.java

@SuppressWarnings({ "rawtypes", "unchecked" })
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    BeanDefinition bd = beanFactory.getBeanDefinition(ref);
    if (property == null) {
        //Assert.state(ListFactoryBean.class.getName().equals(bd.getBeanClassName()),
        //        "Bean [" + ref + "] must be a ListFactoryBean");

        property = "sourceList";
    }//w ww  .ja  v a2 s  . c  om

    log.debug("Adding " + values.size() + " items to " + ref + "." + property + ": " + values);

    PropertyValue pv = bd.getPropertyValues().getPropertyValue(property);
    if (pv == null) {
        // No list set on the target bean, create a new one ...
        ManagedList list = new ManagedList();
        list.addAll(values);
        bd.getPropertyValues().addPropertyValue(property, list);
    } else {
        Object value = pv.getValue();
        if (value instanceof RuntimeBeanReference) {
            RuntimeBeanReference ref = (RuntimeBeanReference) value;
            value = beanFactory.getBean(ref.getBeanName());
        } else if (value instanceof TypedStringValue) {
            TypedStringValue tsv = (TypedStringValue) value;
            ManagedList list = new ManagedList();
            list.addAll(values);
            list.add(tsv.getValue());
            bd.getPropertyValues().addPropertyValue(property, list);
            return;
        }
        Assert.isInstanceOf(List.class, value);
        List list = (List) value;
        if (append) {
            list.addAll(values);
        } else {
            for (int i = values.size() - 1; i >= 0; i--) {
                list.add(0, values.get(i));
            }
        }
    }
}

From source file:com.mtgi.analytics.aop.config.v11.BtPersisterChainBeanDefinitionParser.java

@Override
@SuppressWarnings("unchecked")
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {

    //propagate shared template factory into sub-components if necessary.  this would not be
    //necessary if parserContext gave us access to the entire component stack instead of just the
    //top.  In that case, deeply nested children could search up the stack until they found
    //the template.  perhaps a future version of the Spring API will support this.
    DefaultListableBeanFactory template = findEnclosingTemplateFactory(parserContext);
    if (template != null)
        parserContext.pushContainingComponent(new TemplateComponentDefinition(element.getNodeName(),
                parserContext.extractSource(element), template));

    try {//from w  ww .j  a v  a 2  s.  com
        //parse delegate persister definitions
        ManagedList persisters = new ManagedList();
        persisters.setSource(element);

        NodeList nodes = element.getChildNodes();
        for (int i = 0; i < nodes.getLength(); ++i) {
            Node node = nodes.item(i);
            if (node.getNodeType() == Node.ELEMENT_NODE) {
                String namespaceUri = node.getNamespaceURI();
                NamespaceHandler handler = parserContext.getReaderContext().getNamespaceHandlerResolver()
                        .resolve(namespaceUri);
                Object def = handler == null
                        ? parserContext.getDelegate().parsePropertySubElement((Element) node,
                                builder.getRawBeanDefinition())
                        : handler.parse((Element) node, parserContext);
                persisters.add(def);
            }
        }
        builder.addPropertyValue("delegates", persisters);
    } finally {
        if (template != null)
            parserContext.popContainingComponent();
    }

    //register persister implementation with parent.
    if (parserContext.isNested()) {
        AbstractBeanDefinition def = builder.getBeanDefinition();
        String id = element.hasAttribute("id") ? element.getAttribute("id")
                : parserContext.getReaderContext().generateBeanName(def);
        BeanDefinitionHolder holder = new BeanDefinitionHolder(def, id);
        BtManagerBeanDefinitionParser.registerNestedBean(holder, "persister", parserContext);
    }
}

From source file:com.dinstone.jrpc.spring.spi.ServerBeanDefinitionParser.java

private List<BeanDefinition> getServiceBeanDefinition(Element element, ParserContext parserContext) {
    List<BeanDefinition> sblist = new ManagedList<BeanDefinition>();

    Element services = getChildElement(element, "services");
    if (services != null) {
        NodeList snl = services.getChildNodes();
        for (int i = 0; i < snl.getLength(); i++) {
            Node node = snl.item(i);
            if (node instanceof Element && nodeMatch(node, "service")) {
                Element sn = (Element) node;

                BeanDefinitionBuilder sbd = BeanDefinitionBuilder.genericBeanDefinition(ServiceBean.class);

                String si = sn.getAttribute("interface");
                sbd.addPropertyValue("service", si);

                String so = sn.getAttribute("implement");
                sbd.addPropertyReference("instance", so);

                String sg = sn.getAttribute("group");
                sbd.addPropertyValue("group", sg);

                String st = sn.getAttribute("timeout");
                sbd.addPropertyValue("timeout", st);

                sblist.add(sbd.getBeanDefinition());
            }/*from   w  w  w  . ja v a 2 s  .  c o m*/
        }
    }

    return sblist;
}

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

/** {@inheritDoc} */
@SuppressWarnings("unchecked")
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    log.info("Parsing configuration for {} trust engine with id: {}",
            XMLHelper.getXSIType(element).getLocalPart(), element.getAttributeNS(null, "id"));

    ManagedList managedChain = new ManagedList();

    Element child = XMLHelper.getFirstChildElement(element);
    while (child != null) {
        QName childName = XMLHelper.getNodeQName(child);
        if (TRUST_ENGINE_NAME.equals(childName)) {
            log.debug("Parsing chain trust engine member {}", element.getAttributeNS(null, "id"));
            managedChain.add(SpringConfigurationUtils.parseCustomElement(child, parserContext));
        } else if (TRUST_ENGINE_REF_NAME.equals(childName)) {
            log.debug("Parsing chain trust engine member reference {}", element.getAttributeNS(null, "ref"));
            managedChain.add(SpringConfigurationUtils.parseCustomElementReference(child, "ref", parserContext));
        } else {/*  ww w . j  ava  2  s .c o m*/
            log.error("Unsupported child element of chaining trust engine '{}' encountered with name: {}",
                    element.getAttributeNS(null, "id"), childName);
            throw new FatalBeanException("Unsupported child element of chaining trust engine encountered");
        }

        child = XMLHelper.getNextSiblingElement(child);
    }

    builder.addPropertyValue("chain", managedChain);
}

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

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    final String[] basePackages;
    ManagedList<BeanDefinition> filters;

    getBaseServiceConfigParser().update(element, parserContext, builder);

    if (element.hasAttribute(XmlNames.BASE_PACKAGES_ATTR)) {
        basePackages = StringUtils.tokenizeToStringArray(element.getAttribute(XmlNames.BASE_PACKAGES_ATTR),
                ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS);
        builder.addPropertyValue("basePackages", basePackages);
    }/*from  www  .  j  a  v  a  2 s.  c  o m*/

    filters = new ManagedList<BeanDefinition>();
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.INCLUDE_FILTER_ELEMENT)) {
        filters.add(parseFilter(child, parserContext));
    }
    if (!filters.isEmpty()) {
        builder.addPropertyValue("includeFilters", filters);
    }

    filters = new ManagedList<BeanDefinition>();
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.EXCLUDE_FILTER_ELEMENT)) {
        filters.add(parseFilter(child, parserContext));
    }
    if (!filters.isEmpty()) {
        builder.addPropertyValue("excludeFilters", filters);
    }
}

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

private static ManagedMap parseEventListenersByType(ParserContext parserContext, List<Element> eventListeners,
        String listenerType) {/*from w  ww  . j  ava2 s.c  o m*/
    ManagedMap listeners = new ManagedMap();
    for (Element listener : eventListeners) {
        String ref = listener.getAttribute("ref");
        // if this a bean ref
        if (StringUtils.hasText(ref)) {
            if (TYPE_AGENDA_EVENT_LISTENER.equalsIgnoreCase(listenerType)
                    || TYPE_PROCESS_EVENT_LISTENER.equalsIgnoreCase(listenerType)
                    || TYPE_WORKING_MEMORY_EVENT_LISTENER.equalsIgnoreCase(listenerType)) {
                ManagedList subList = (ManagedList) listeners.get(listenerType);
                if (subList == null) {
                    subList = new ManagedList();
                    listeners.put(listenerType, subList);
                }
                subList.add(new RuntimeBeanReference(ref));
            } else {
                throw new IllegalArgumentException(
                        "eventListener must be of type 'agenda-event-listener or 'process-event-listener' or 'working-memory-event-listener'.");
            }
        } else {
            //not a ref check if it is a nested bean
            Element nestedBean = DomUtils.getChildElementByTagName(listener, "bean");
            if (nestedBean == null) {
                //no 'ref' and no nested beans, add the default debug listeners part of the core libs.
                Object obj = null;
                if (TYPE_AGENDA_EVENT_LISTENER.equalsIgnoreCase(listenerType)) {
                    obj = new DebugAgendaEventListener();
                } else if (TYPE_PROCESS_EVENT_LISTENER.equalsIgnoreCase(listenerType)) {
                    obj = new DebugProcessEventListener();
                } else if (TYPE_WORKING_MEMORY_EVENT_LISTENER.equalsIgnoreCase(listenerType)) {
                    obj = new DebugWorkingMemoryEventListener();
                } else {
                    throw new IllegalArgumentException(
                            "eventListener must be of type 'agenda-event-listener or 'process-event-listener' or 'working-memory-event-listener'.");
                }
                ManagedList subList = (ManagedList) listeners.get(listenerType);
                if (subList == null) {
                    subList = new ManagedList();
                    listeners.put(listenerType, subList);
                }
                subList.add(obj);
            } else {
                //String type = StringUtils.hasText(listenerType) ? listenerType: "infer";
                Object obj = parserContext.getDelegate().parsePropertySubElement(nestedBean, null, null);
                ManagedList subList = (ManagedList) listeners.get(listenerType);
                if (subList == null) {
                    subList = new ManagedList();
                    listeners.put(listenerType, subList);
                }
                subList.add(obj);
            }
        }
    }
    return listeners;
}

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

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
    final ManagedList<BeanMetadataElement> serviceConfigs;
    final ManagedList<BeanMetadataElement> childGroupConfigs;

    getBaseServiceConfigParser().update(element, parserContext, builder);

    serviceConfigs = new ManagedList<BeanMetadataElement>();
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.SERVICE_ELEMENT)) {
        serviceConfigs.add(createServiceConfigBeanDefinition(child, parserContext));
    }// w  w  w.  j a v a  2  s .c  o m
    childGroupConfigs = new ManagedList<BeanMetadataElement>();
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.SERVICE_GROUP_ELEMENT)) {
        childGroupConfigs.add(parseNested(child, parserContext));
    }
    for (Element child : DomUtils.getChildElementsByTagName(element, XmlNames.SERVICE_GROUP_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));
        childGroupConfigs.add(beanReference);
    }
    for (Element child : DomUtils.getChildElementsByTagName(element,
            XmlNames.AUTOWIRED_SERVICE_GROUP_ELEMENT)) {
        childGroupConfigs
                .add(getAutowiredServiceGroupConfigBeanDefinitionParser().parseNested(child, parserContext));
    }

    builder.addConstructorArgValue(serviceConfigs);
    builder.addConstructorArgValue(childGroupConfigs);
}

From source file:fr.acxio.tools.agia.alfresco.configuration.SimpleNodeFactory.java

public NodeList getNodes(EvaluationContext sContext) throws ConversionException {
    Assert.notNull(sContext, "The evaluation context is mandatory.");
    ManagedList<Node> aResult = new ManagedList<Node>();

    if (nodeDefinition instanceof FolderDefinition) {
        // Regular usecase
        FolderDefinition aFolderDefinition = (FolderDefinition) nodeDefinition;
        addFolderNode(aResult, aFolderDefinition, null, sContext);
    }// ww w  .j  ava2 s .  c om
    // TODO : special usecase: document with a path in its name. Folders
    // should be created as default ones _without_ coyping document
    // properties.
    // If the document has no path in its name, then a default
    // app:company_home is added.

    return new NodeList(aResult);
}

From source file:net.javacrumbs.springws.test.xml.MockWsMessageSenderBeanDefinitionParser.java

@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder bean) {
    Map<?, ?> namespaces = parseNamespaces(element, parserContext, bean);
    Map<?, ?> discriminators = parseDiscriminators(element, parserContext, bean);
    Element resourceConfig = DomUtils.getChildElementByTagName(element, "resource-config");
    String pathPrefix = resourceConfig.getAttribute("pathPrefix");
    String prependUri = resourceConfig.getAttribute("prependUri");
    String ignoreWhitespace = resourceConfig.getAttribute("ignoreWhitespace");
    BeanDefinitionBuilder templateProcessor = getTemplateProcessor(resourceConfig);

    bean.addPropertyValue("autowireRequestProcessors", element.getAttribute("autowireRequestProcessors"));

    BeanDefinitionBuilder expressionResolver = BeanDefinitionBuilder
            .rootBeanDefinition(XPathExpressionResolver.class);
    expressionResolver.addPropertyValue("namespaceMap", namespaces);

    ManagedList requestProcessors = new ManagedList();

    BeanDefinitionBuilder controlResourceLookup = BeanDefinitionBuilder
            .rootBeanDefinition(PayloadRootBasedResourceLookup.class);
    controlResourceLookup.addPropertyValue("expressionResolver", expressionResolver.getBeanDefinition());
    controlResourceLookup.addPropertyValue("discriminators", discriminators);
    controlResourceLookup.addPropertyValue("pathPrefix", pathPrefix);
    controlResourceLookup.addPropertyValue("prependUri", prependUri);
    controlResourceLookup.addPropertyValue("pathSuffix", "request.xml");
    controlResourceLookup.addPropertyValue("templateProcessor", templateProcessor.getBeanDefinition());

    BeanDefinitionBuilder xmlCompareRequestValidator = BeanDefinitionBuilder
            .rootBeanDefinition(XmlCompareRequestValidator.class);
    xmlCompareRequestValidator.addPropertyValue("controlResourceLookup",
            controlResourceLookup.getBeanDefinition());
    xmlCompareRequestValidator.addPropertyValue("ignoreWhitespace", ignoreWhitespace);

    addRequestProcessor(requestProcessors, xmlCompareRequestValidator);

    String[] schemas = parseRequestValidationSchemas(element, bean);
    if (schemas != null) {
        BeanDefinitionBuilder schemaRequestValidator = BeanDefinitionBuilder
                .rootBeanDefinition(SchemaRequestValidator.class);
        schemaRequestValidator.addPropertyValue("schemas", schemas);
        addRequestProcessor(requestProcessors, schemaRequestValidator);
    }//ww  w  .ja v a2s . c  o  m

    BeanDefinitionBuilder responseResourceLookup = BeanDefinitionBuilder
            .rootBeanDefinition(PayloadRootBasedResourceLookup.class);
    responseResourceLookup.addPropertyValue("expressionResolver", expressionResolver.getBeanDefinition());
    responseResourceLookup.addPropertyValue("discriminators", discriminators);
    responseResourceLookup.addPropertyValue("pathPrefix", pathPrefix);
    responseResourceLookup.addPropertyValue("prependUri", prependUri);
    responseResourceLookup.addPropertyValue("pathSuffix", "response.xml");
    responseResourceLookup.addPropertyValue("templateProcessor", templateProcessor.getBeanDefinition());

    BeanDefinitionBuilder defaultResponseGenerator = BeanDefinitionBuilder
            .rootBeanDefinition(DefaultResponseGenerator.class);
    defaultResponseGenerator.addPropertyValue("resourceLookup", responseResourceLookup.getBeanDefinition());
    addRequestProcessor(requestProcessors, defaultResponseGenerator);

    bean.addPropertyValue("requestProcessors", requestProcessors);

    if (TRUE.equals(element.getAttribute("autoinjectMock"))) {
        AbstractBeanDefinition injector = BeanDefinitionBuilder
                .rootBeanDefinition(MockMessageSenderInjector.class).getBeanDefinition();
        BeanDefinitionHolder holder = new BeanDefinitionHolder(injector,
                parserContext.getReaderContext().generateBeanName(injector));
        registerBeanDefinition(holder, parserContext.getRegistry());
    }

    bean.addPropertyValue("interceptors", parseInterceptors(element, parserContext, bean));
}

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

@Before
@SuppressWarnings({ "unchecked" })
public void prepareParserContext() throws IOException, SAXException, ParserConfigurationException {
    final XmlReaderContext readerContext = mock(XmlReaderContext.class);
    when(readerContext.generateBeanName(any(BeanDefinition.class)))
            .thenAnswer(GeneratedBeanNameAnswer.generatedBeanName());
    when(readerContext.getResourceLoader()).thenReturn(new DefaultResourceLoader());

    registry = new SimpleBeanDefinitionRegistry();
    final BeanDefinitionBuilder filterChain = BeanDefinitionBuilder.rootBeanDefinition(FilterChainProxy.class);
    final Map map = new ManagedMap();
    map.put("/**", new ManagedList());
    filterChain.addPropertyValue("filterChainMap", map);
    registry.registerBeanDefinition("org.springframework.security.filterChainProxy",
            filterChain.getBeanDefinition());

    parserContext = mock(ParserContext.class);
    when(parserContext.getReaderContext()).thenReturn(readerContext);
    when(parserContext.getRegistry()).thenReturn(registry);

    rootElement = domFromFile("full-config.xml", "sso");
}