List of usage examples for org.springframework.beans.factory.support ManagedList ManagedList
public ManagedList()
From source file:org.solmix.runtime.support.spring.AbstractRootBeanDefinitionParser.java
protected void parseArguments(String id, NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) {//from w w w. j a v a 2 s .c om if (nodeList != null && nodeList.getLength() > 0) { ManagedList arguments = null; for (int i = 0; i < nodeList.getLength(); i++) { Node node = nodeList.item(i); if (node instanceof Element) { Element element = (Element) node; if ("argument".equals(node.getNodeName()) || "argument".equals(node.getLocalName())) { String argumentIndex = element.getAttribute("index"); if (arguments == null) { arguments = new ManagedList(); } BeanDefinition argumentBeanDefinition = parse(((Element) node), parserContext, /*ArgumentConfig.class*/null); String name = id + "." + argumentIndex; BeanDefinitionHolder argumentBeanDefinitionHolder = new BeanDefinitionHolder( argumentBeanDefinition, name); arguments.add(argumentBeanDefinitionHolder); } } } if (arguments != null) { beanDefinition.getPropertyValues().addPropertyValue("arguments", arguments); } } }
From source file:de.acosix.alfresco.mtsupport.repo.beans.TemplatedTenantBeanEmitter.java
protected void shallowCloneManagedCollections(final AbstractBeanDefinition cloneBeanDefinition) { // clone is not a deep clone - managed lists / maps are by-reference which is problematic for placeholder resolution final MutablePropertyValues propertyValues = cloneBeanDefinition.getPropertyValues(); for (final PropertyValue pv : propertyValues.getPropertyValues()) { final Object value = pv.getValue(); if (value instanceof ManagedList<?>) { final ManagedList<Object> newList = new ManagedList<>(); newList.setSource(((ManagedList<?>) value).getSource()); newList.setElementTypeName(((ManagedList<?>) value).getElementTypeName()); newList.addAll((ManagedList<?>) value); propertyValues.add(pv.getName(), newList); } else if (value instanceof ManagedSet<?>) { final ManagedSet<Object> newSet = new ManagedSet<>(); newSet.setSource(((ManagedSet<?>) value).getSource()); newSet.setElementTypeName(((ManagedSet<?>) value).getElementTypeName()); newSet.addAll((ManagedSet<?>) value); propertyValues.add(pv.getName(), newSet); } else if (value instanceof ManagedMap<?, ?>) { final ManagedMap<Object, Object> newMap = new ManagedMap<>(); newMap.setSource(((ManagedMap<?, ?>) value).getSource()); newMap.setKeyTypeName(((ManagedMap<?, ?>) value).getKeyTypeName()); newMap.setValueTypeName(((ManagedMap<?, ?>) value).getValueTypeName()); newMap.putAll((ManagedMap<?, ?>) value); propertyValues.add(pv.getName(), newMap); }//from w w w . j av a 2 s . com } }
From source file:org.smf4j.spring.RegistryNodeTemplateDefinitionParser.java
protected String parseNode(ParserContext context, Element element, BeanDefinitionBuilder builder) { String name = element.getAttribute(NAME_ATTR); if (!StringUtils.hasLength(name)) { context.getReaderContext().error("'node' elements must have a 'name' attribute.", element); }//from ww w . jav a 2 s .c o m // Process all child node tags ManagedList<RuntimeBeanReference> childProxyIds = new ManagedList<RuntimeBeanReference>(); NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node childNode = childNodes.item(i); if (childNode.getNodeType() != Node.ELEMENT_NODE) { continue; } Element child = (Element) childNode; String childTagName = child.getLocalName(); String childProxyId = null; // Parse the child node if (NODE_TAG.equals(childTagName)) { BeanDefinitionBuilder bdb = getBdb(RegistryNodeProxy.class); childProxyId = parseNode(context, child, bdb); } else if (NODE_TEMPLATE_TAG.equals(childTagName)) { childProxyId = createNodeTemplateRef(context, child); } else if (COUNTER_TAG.equals(childTagName)) { CounterConfig config = new CounterConfig(CounterType.ADD, child); childProxyId = createCounter(context, child, config); } else if (MIN_TAG.equals(childTagName)) { CounterConfig config = new CounterConfig(CounterType.MIN, child); childProxyId = createCounter(context, child, config); } else if (MAX_TAG.equals(childTagName)) { CounterConfig config = new CounterConfig(CounterType.MAX, child); childProxyId = createCounter(context, child, config); } else if (CUSTOM_TAG.equals(childTagName)) { childProxyId = parseCustom(context, child, builder.getRawBeanDefinition()); } else if (NORMALIZE_TAG.equals(childTagName)) { childProxyId = createNormalize(context, child); } else if (RATIO_TAG.equals(childTagName)) { childProxyId = createRatio(context, child); } else if (RANGEGROUP_TAG.equals(childTagName)) { childProxyId = createRangeGroup(context, child); } else { context.getReaderContext().error("Unknown tag", child); } if (childProxyId != null) { childProxyIds.add(new RuntimeBeanReference(childProxyId)); } } // Finish building the node proxy builder.addPropertyValue(NAME_ATTR, name); builder.addPropertyValue(CHILDREN_ATTR, childProxyIds); String nodeId = context.getReaderContext().registerWithGeneratedName(builder.getBeanDefinition()); return nodeId; }
From source file:org.springmodules.cache.config.AbstractCacheSetupStrategyParser.java
/** * Parses the given XML element containing references to the caching listeners * to be added to the caching setup strategy. * //from w w w.j a v a 2s. co m * @param element * the XML element to parse * @param parserContext * the parser context * @return a list containing references to caching listeners already * registered in the given register * @throws IllegalStateException * if any of the given ids reference a caching listener that does * not exist in the registry * @throws IllegalStateException * if the given id references a caching listener that is not an * instance of <code>CachingListener</code> * @throws IllegalStateException * if the caching listener elements does not contain a reference to * an existing caching listener and does not contain an inner * definition of a caching listener */ private List parseCachingListeners(Element element, ParserContext parserContext) throws IllegalStateException { List listenersElements = DomUtils.getChildElementsByTagName(element, "cachingListeners"); if (CollectionUtils.isEmpty(listenersElements)) { return null; } Element listenersElement = (Element) listenersElements.get(0); List listenerElements = DomUtils.getChildElementsByTagName(listenersElement, "cachingListener"); ManagedList listeners = new ManagedList(); boolean registerCachingListener = true; int listenerCount = listenerElements.size(); for (int i = 0; i < listenerCount; i++) { Element listenerElement = (Element) listenerElements.get(i); Object cachingListener = beanReferenceParser.parse(listenerElement, parserContext, registerCachingListener); cachingListenerValidator.validate(cachingListener, i, parserContext); listeners.add(cachingListener); } return listeners; }
From source file:com.weibo.api.motan.config.springsupport.MotanBeanDefinitionParser.java
@SuppressWarnings({ "unchecked", "rawtypes" }) private static void parseMultiRef(String property, String value, RootBeanDefinition beanDefinition, ParserContext parserContext) {/*from w w w . j a va2 s . c o m*/ String[] values = value.split("\\s*[,]+\\s*"); ManagedList list = null; for (int i = 0; i < values.length; i++) { String v = values[i]; if (v != null && v.length() > 0) { if (list == null) { list = new ManagedList(); } list.add(new RuntimeBeanReference(v)); } } beanDefinition.getPropertyValues().addPropertyValue(property, list); }
From source file:it.pronetics.madstore.common.configuration.spring.MadStoreConfigurationBeanDefinitionParser.java
@SuppressWarnings("unchecked") private void dummyCrawlerConfigurations(BeanDefinitionBuilder factory) { List<CrawlerConfiguration> crawlerConfigurations = new ManagedList(); factory.addPropertyValue(CRAWLER_CONFIGURATIONS_BEAN_PROPERTY, crawlerConfigurations); }
From source file:org.solmix.runtime.support.spring.AbstractRootBeanDefinitionParser.java
protected static void parseMultiRef(String property, String value, RootBeanDefinition beanDefinition, ParserContext parserContext) {/*from w w w . ja v a 2 s .c o m*/ String[] values = value.split("\\s*[,]+\\s*"); ManagedList<Object> list = null; for (int i = 0; i < values.length; i++) { String v = values[i]; if (v != null && v.length() > 0) { if (list == null) { list = new ManagedList<Object>(); } list.add(new RuntimeBeanReference(v)); } } beanDefinition.getPropertyValues().addPropertyValue(property, list); }
From source file:com.cloudseal.spring.client.namespace.CloudSealBeanDefinitionParserInstance.java
private void parseAndRegisterMetadataManager() { String defaultIDP = getRequiredAttribute(rootNode, ROOT_ENDPOINT_ATTRIBUTE); Element node = getRequiredElement(rootNode, METADATA_NODE); Collection<BeanDefinition> metadataDelegates = new ManagedList<BeanDefinition>(); metadataDelegates.add(createMetadataDelegate(node)); BeanDefinitionBuilder builder = createBean(CachingMetadataManager.class); builder.addConstructorArgValue(metadataDelegates); builder.addPropertyValue("defaultIDP", defaultIDP); registerBean(builder);/*from w ww . ja v a 2s . c o m*/ }
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;//from w w w .j a va 2 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(); }