List of usage examples for org.springframework.beans.factory.support BeanDefinitionBuilder getBeanDefinition
public AbstractBeanDefinition getBeanDefinition()
From source file:org.jdal.vaadin.beans.TableBeanDefinitionParser.java
/** * {@inheritDoc}//from w w w .java 2s . c o m */ @SuppressWarnings("rawtypes") public BeanDefinition parse(Element element, ParserContext parserContext) { // Defaults String entity = null; if (element.hasAttribute(ENTITY)) entity = element.getAttribute(ENTITY); String name = StringUtils.uncapitalize(StringUtils.substringAfterLast(entity, ".")); if (element.hasAttribute(ID)) name = element.getAttribute(ID); parserContext.pushContainingComponent( new CompositeComponentDefinition(name, parserContext.extractSource(element))); // Bean names String pageableTableBeanName = name + PAGEABLE_TABLE_SUFFIX; String tableBeanName = name + TABLE_SUFFIX; String dataSource = name + SERVICE_SUFFIX; String paginator = PAGINATOR_VIEW; String editor = name + EDITOR_SUFFIX; String actions = DefaultsBeanDefinitionParser.DEFAULT_TABLE_ACTIONS; String guiFactory = DefaultsBeanDefinitionParser.DEFAULT_GUI_FACTORY; String scope = BeanDefinition.SCOPE_PROTOTYPE; String pageableTableClass = DEFAULT_PAGEABLE_TABLE_CLASS; String tableClass = DEFAULT_TABLE_CLASS; if (element.hasAttribute(DATA_SOURCE)) dataSource = element.getAttribute(DATA_SOURCE); if (element.hasAttribute(PAGINATOR)) paginator = element.getAttribute(PAGINATOR); if (element.hasAttribute(ACTIONS)) actions = element.getAttribute(ACTIONS); if (element.hasAttribute(GUI_FACTORY)) guiFactory = element.getAttribute(GUI_FACTORY); if (element.hasAttribute(EDITOR)) editor = element.getAttribute(EDITOR); if (element.hasAttribute(SCOPE)) scope = element.getAttribute(SCOPE); if (element.hasAttribute(PAGEABLE_TABLE_CLASS)) pageableTableClass = element.getAttribute(PAGEABLE_TABLE_CLASS); if (element.hasAttribute(TABLE_CLASS)) tableClass = element.getAttribute(TABLE_CLASS); // create PageableTable BeanDefinitionBuilder bdb = BeanDefinitionBuilder.genericBeanDefinition(pageableTableClass); bdb.setScope(scope); bdb.addPropertyReference(DATA_SOURCE, dataSource); bdb.addPropertyReference(PAGINATOR_VIEW, paginator); bdb.addPropertyValue(NAME, pageableTableBeanName); bdb.addPropertyReference(TABLE, tableBeanName); bdb.addPropertyReference(GUI_FACTORY, guiFactory); bdb.addPropertyValue(EDITOR_NAME, editor); bdb.addPropertyValue(ENTITY_CLASS, entity); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, TABLE_SERVICE); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, FILTER); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, MESSAGE_SOURCE); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, FILTER_FORM); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, SORT_PROPERTY); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, ORDER); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, PAGE_SIZE); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, NATIVE_BUTTONS); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, PROPAGATE_SERVICE); if (!element.hasAttribute(USE_ACTIONS) || "true".equals(element.getAttribute(USE_ACTIONS))) bdb.addPropertyReference(ACTIONS, actions); parserContext.getDelegate().parseBeanDefinitionAttributes(element, pageableTableBeanName, null, bdb.getBeanDefinition()); BeanDefinitionHolder holder = new BeanDefinitionHolder(bdb.getBeanDefinition(), pageableTableBeanName); // Test Decorators like aop:scoped-proxy NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node n = childNodes.item(i); if (Node.ELEMENT_NODE != n.getNodeType() || COLUMNS.equals(n.getLocalName())) continue; NamespaceHandler handler = parserContext.getReaderContext().getNamespaceHandlerResolver() .resolve(n.getNamespaceURI()); if (handler != null) { holder = handler.decorate(n, holder, parserContext); } } parserContext.registerBeanComponent(new BeanComponentDefinition(holder)); // create ConfigurableTable bdb = BeanDefinitionBuilder.genericBeanDefinition(tableClass); bdb.setScope(BeanDefinition.SCOPE_PROTOTYPE); BeanDefinitionUtils.addPropertyReferenceIfNeeded(bdb, element, FIELD_FACTORY); BeanDefinitionUtils.addPropertyValueIfNeeded(bdb, element, MULTISELECT); if (element.hasAttribute(SELECTABLE)) { bdb.addPropertyValue(SELECTABLE, element.getAttribute(SELECTABLE)); } else { // set selectable by default bdb.addPropertyValue(SELECTABLE, true); } // parse columns NodeList nl = element.getElementsByTagNameNS(element.getNamespaceURI(), COLUMNS); if (nl.getLength() > 0) { List columns = parserContext.getDelegate().parseListElement((Element) nl.item(0), bdb.getRawBeanDefinition()); bdb.addPropertyValue(COLUMNS, columns); } registerBeanDefinition(element, parserContext, tableBeanName, bdb); parserContext.popAndRegisterContainingComponent(); return null; }
From source file:org.xacml4j.spring.pdp.PolicyDecisionPointDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder factory = BeanDefinitionBuilder .rootBeanDefinition(PolicyDecisionPointFactoryBean.class); factory.addConstructorArgValue(element.getAttribute("id")); List<Element> childElements = DomUtils.getChildElementsByTagName(element, new String[] { "PolicyIdReference", "PolicySetIdReference" }); if (childElements != null && childElements.size() > 0) { parseChildComponents(childElements, factory); }/*from w w w . ja v a 2s . co m*/ String pipRef = element.getAttribute("pip"); factory.addPropertyReference("policyInformationPoint", pipRef); String repositoryRef = element.getAttribute("repository"); factory.addPropertyReference("policyRepository", repositoryRef); String auditorRef = element.getAttribute("auditor"); if (StringUtils.hasText(auditorRef)) { factory.addPropertyReference("decisionAuditor", auditorRef); } String handlers = element.getAttribute("handlers"); if (StringUtils.hasText(handlers)) { factory.addPropertyReference("handlers", handlers); } String xpathProvider = element.getAttribute("xpath-provider"); if (StringUtils.hasText(xpathProvider)) { factory.addPropertyReference("xpathProvider", xpathProvider); } String decisionCache = element.getAttribute("decisionCache"); if (StringUtils.hasText(decisionCache)) { factory.addPropertyReference("decisionCache", decisionCache); } String decisionCacheTTL = element.getAttribute("decisionCacheTTL"); if (StringUtils.hasText(decisionCache)) { factory.addPropertyValue("decisionCacheTTL", decisionCacheTTL); } return factory.getBeanDefinition(); }
From source file:org.drools.container.spring.namespace.KnowledgeAgentDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(KnowledgeAgentBeanFactory.class); String id = element.getAttribute("id"); emptyAttributeCheck(element.getLocalName(), "id", id); factory.addPropertyValue("id", id); String kbase = element.getAttribute("kbase"); if (StringUtils.hasText(kbase)) { factory.addPropertyReference("kbase", kbase); }/*from w w w . j a v a2 s .c o m*/ String newInstance = element.getAttribute("new-instance"); if (StringUtils.hasText(newInstance)) { factory.addPropertyValue("newInstance", newInstance); } String useKbaseClassloader = element.getAttribute("use-kbase-classloader"); if (!useKbaseClassloader.trim().equals("")) { factory.addPropertyValue("useKbaseClassloader", useKbaseClassloader); } ManagedList resources = KnowledgeBaseDefinitionParser.getResources(element, parserContext, factory); if (resources != null) { factory.addPropertyValue("resources", resources); } // inject the kagent into any stateless sessions for (String beanName : parserContext.getRegistry().getBeanDefinitionNames()) { BeanDefinition def = parserContext.getRegistry().getBeanDefinition(beanName); if (StatelessKnowledgeSessionBeanFactory.class.getName().equals(def.getBeanClassName())) { PropertyValue pvalue = def.getPropertyValues().getPropertyValue("kbase"); RuntimeBeanReference tbf = (RuntimeBeanReference) pvalue.getValue(); if (kbase.equals(tbf.getBeanName())) { def.getPropertyValues().addPropertyValue("knowledgeAgent", new RuntimeBeanReference(id)); } } } return factory.getBeanDefinition(); }
From source file:org.mule.transport.zmq.config.InboundEndpointDefinitionParser.java
public BeanDefinition parseChild(Element element, ParserContext parserContent) { BeanDefinitionBuilder builder = BeanDefinitionBuilder .rootBeanDefinition(InboundEndpointMessageSource.class.getName()); String configRef = element.getAttribute("config-ref"); if ((configRef != null) && (!StringUtils.isBlank(configRef))) { builder.addPropertyValue("moduleObject", configRef); }//from w w w .j ava 2 s .c om if (element.hasAttribute("exchange-pattern")) { builder.addPropertyValue("exchangePattern", element.getAttribute("exchange-pattern")); } if (element.hasAttribute("socket-operation")) { builder.addPropertyValue("socketOperation", element.getAttribute("socket-operation")); } if ((element.getAttribute("address") != null) && (!StringUtils.isBlank(element.getAttribute("address")))) { builder.addPropertyValue("address", element.getAttribute("address")); } if ((element.getAttribute("filter") != null) && (!StringUtils.isBlank(element.getAttribute("filter")))) { builder.addPropertyValue("filter", element.getAttribute("filter")); } if ((element.getAttribute("identity") != null) && (!StringUtils.isBlank(element.getAttribute("identity")))) { builder.addPropertyValue("identity", element.getAttribute("identity")); } if ((element.getAttribute("multipart") != null) && (!StringUtils.isBlank(element.getAttribute("multipart")))) { builder.addPropertyValue("multipart", element.getAttribute("multipart")); } if ((element.getAttribute("retryMax") != null) && (!StringUtils.isBlank(element.getAttribute("retryMax")))) { builder.addPropertyValue("retryMax", element.getAttribute("retryMax")); } BeanDefinition definition = builder.getBeanDefinition(); definition.setAttribute(MuleHierarchicalBeanDefinitionParserDelegate.MULE_NO_RECURSE, Boolean.TRUE); MutablePropertyValues propertyValues = parserContent.getContainingBeanDefinition().getPropertyValues(); propertyValues.addPropertyValue("messageSource", definition); return definition; }
From source file:com.dangdang.ddframe.job.lite.spring.namespace.parser.common.AbstractJobBeanDefinitionParser.java
private BeanDefinition createJobConfiguration(final Element element) { BeanDefinitionBuilder factory = BeanDefinitionBuilder.rootBeanDefinition(getJobConfigurationDTO()); String jobName = element.getAttribute(ID_ATTRIBUTE); factory.addConstructorArgValue(jobName); factory.addConstructorArgValue(element.getAttribute(CRON_ATTRIBUTE)); factory.addConstructorArgValue(element.getAttribute(SHARDING_TOTAL_COUNT_ATTRIBUTE)); addPropertyValueIfNotEmpty(SHARDING_ITEM_PARAMETERS_ATTRIBUTE, "shardingItemParameters", element, factory); addPropertyValueIfNotEmpty(JOB_PARAMETER_ATTRIBUTE, "jobParameter", element, factory); addPropertyValueIfNotEmpty(MONITOR_EXECUTION_ATTRIBUTE, "monitorExecution", element, factory); addPropertyValueIfNotEmpty(MONITOR_PORT_ATTRIBUTE, "monitorPort", element, factory); addPropertyValueIfNotEmpty(MAX_TIME_DIFF_SECONDS_ATTRIBUTE, "maxTimeDiffSeconds", element, factory); addPropertyValueIfNotEmpty(FAILOVER_ATTRIBUTE, "failover", element, factory); addPropertyValueIfNotEmpty(MISFIRE_ATTRIBUTE, "misfire", element, factory); addPropertyValueIfNotEmpty(JOB_SHARDING_STRATEGY_CLASS_ATTRIBUTE, "jobShardingStrategyClass", element, factory);/*from w w w. ja v a 2s . c o m*/ addPropertyValueIfNotEmpty(DESCRIPTION_ATTRIBUTE, "description", element, factory); addPropertyValueIfNotEmpty(DISABLED_ATTRIBUTE, "disabled", element, factory); addPropertyValueIfNotEmpty(OVERWRITE_ATTRIBUTE, "overwrite", element, factory); addPropertyValueIfNotEmpty(EXECUTOR_SERVICE_HANDLER_ATTRIBUTE, "executorServiceHandler", element, factory); addPropertyValueIfNotEmpty(JOB_EXCEPTION_HANDLER_ATTRIBUTE, "jobExceptionHandler", element, factory); setPropertiesValue(element, factory); return factory.getBeanDefinition(); }
From source file:com.mtgi.analytics.aop.config.v11.BtHttpRequestsBeanDefinitionParser.java
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { //compile required constructor arguments from attributes and nested elements. first up, event type. builder.addConstructorArg(element.getAttribute(ATT_EVENT_TYPE)); //manager ID from enclosing tag, or ref attribute. String managerId = parserContext.isNested() ? (String) parserContext.getContainingBeanDefinition().getAttribute("id") : element.getAttribute(BtNamespaceConstants.ATT_TRACKING_MANAGER); builder.addConstructorArgReference(managerId); //parameter list to include in event data, if any. String paramList = element.getAttribute(ATT_PARAMETERS); builder.addConstructorArg(parseList(paramList)); //parameter list to include in event name, if any String nameList = element.getAttribute(ATT_NAME_PARAMETERS); builder.addConstructorArg(parseList(nameList)); //URI patterns, if any. can be specified as attribute or nested elements. ArrayList<Pattern> accum = new ArrayList<Pattern>(); if (element.hasAttribute(ATT_URI_PATTERN)) accum.add(Pattern.compile(element.getAttribute(ATT_URI_PATTERN))); NodeList nl = element.getElementsByTagNameNS("*", ATT_URI_PATTERN); for (int i = 0; i < nl.getLength(); ++i) { Element e = (Element) nl.item(i); String pattern = e.getTextContent(); if (StringUtils.hasText(pattern)) accum.add(Pattern.compile(pattern)); }//from w w w. jav a2s. com if (accum.isEmpty()) builder.addConstructorArg(null); else builder.addConstructorArg(accum.toArray(new Pattern[accum.size()])); if (parserContext.isNested()) parserContext.getReaderContext().registerWithGeneratedName(builder.getBeanDefinition()); }
From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java
protected void preparePostProcessor(Element element, ParserContext parserContext) { String id = element.getAttribute("id"); String name = getName(element); BeanDefinitionBuilder postProcessor = BeanDefinitionBuilder .genericBeanDefinition(ConfigurationBeanPostProcessor.class); postProcessor.addConstructorArgValue(name); postProcessor.addConstructorArgReference(id); Element annotationConfigElement = selectSingleChildElement(element, "annotation-config", true); if (annotationConfigElement != null) { String marker = annotationConfigElement.getAttribute("marker"); if (StringUtils.hasLength(marker)) { Class<?> theClass = ClassUtils.resolveClassName(marker, Thread.currentThread().getContextClassLoader()); if (!theClass.isAnnotation()) { throw new ConfigurationException(String.format("The class '%s' is not an annotation", marker)); }// w w w. j ava 2 s . c om postProcessor.addPropertyValue("markerAnnotation", theClass); } } parserContext.registerBeanComponent( new BeanComponentDefinition(postProcessor.getBeanDefinition(), id + "-postProcessor")); }
From source file:fr.xebia.management.config.ThreadPoolExecutorFactoryDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ThreadPoolExecutorFactory.class); // Mark as infrastructure bean and attach source location. builder.setRole(BeanDefinition.ROLE_APPLICATION); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); String poolSize = element.getAttribute(POOL_SIZE_ATTRIBUTE); if (StringUtils.hasText(poolSize)) { builder.addPropertyValue("poolSize", poolSize); }//from w w w. j a v a 2s. c om String queueCapacity = element.getAttribute(QUEUE_CAPACITY_ATTRIBUTE); if (StringUtils.hasText(queueCapacity)) { builder.addPropertyValue("queueCapacity", queueCapacity); } String keepAlive = element.getAttribute(KEEP_ALIVE_ATTRIBUTE); if (StringUtils.hasText(keepAlive)) { builder.addPropertyValue("keepAliveTimeInSeconds", keepAlive); } String rejectionPolicy = element.getAttribute(REJECTION_POLICY_ATTRIBUTE); Class<? extends RejectedExecutionHandler> rejectedExecutionHandlerClass; if ("ABORT".equals(rejectionPolicy)) { rejectedExecutionHandlerClass = AbortPolicy.class; } else if ("CALLER_RUNS".equals(rejectionPolicy)) { rejectedExecutionHandlerClass = CallerRunsPolicy.class; } else if ("DISCARD".equals(rejectionPolicy)) { rejectedExecutionHandlerClass = DiscardPolicy.class; } else if ("DISCARD_OLDEST".equals(rejectionPolicy)) { rejectedExecutionHandlerClass = DiscardOldestPolicy.class; } else { throw new IllegalArgumentException( "Unsupported '" + REJECTION_POLICY_ATTRIBUTE + "': '" + rejectionPolicy + "'"); } builder.addPropertyValue("rejectedExecutionHandlerClass", rejectedExecutionHandlerClass); return builder.getBeanDefinition(); }
From source file:org.brekka.stillingar.spring.config.ConfigurationServiceBeanDefinitionParser.java
/** * @param element/*from w w w. j a va 2 s.c om*/ * @return */ protected AbstractBeanDefinition prepareResourceNameResolver(Element element, Engine engine) { Element selectorElement = selectSingleChildElement(element, "selector", true); BeanDefinitionBuilder builder = null; String prefix = getName(element); String extension = engine.getDefaultExtension(); if (selectorElement != null) { Element name = selectSingleChildElement(selectorElement, "name", true); if (name != null) { prefix = attribute(name, "prefix", prefix); extension = attribute(name, "extension", extension); Element version = selectSingleChildElement(name, "version", true); if (version != null) { String pattern = version.getAttribute("pattern"); Element versionMavenElement = selectSingleChildElement(selectorElement, "maven", true); builder = buildMavenVersionedResourceNameResolver(versionMavenElement, pattern, prefix, extension); } } } // Failsafe if (builder == null) { builder = buildBasicResourceNameResolver(prefix, extension); } return builder.getBeanDefinition(); }
From source file:org.jdal.beans.ServiceBeanDefinitionParser.java
/** * {@inheritDoc}/*from www. j av a 2s. c om*/ */ public AbstractBeanDefinition parse(Element element, ParserContext parserContext) { // default dao and service classes String daoClassName = JPA_DAO_CLASS_NAME; String serviceClassName = PERSISTENT_SERVICE_CLASS_NAME; String name = null; boolean declareService = false; if (element.hasAttribute(DAO_CLASS)) daoClassName = element.getAttribute(DAO_CLASS); if (element.hasAttribute(SERVICE_CLASS)) { serviceClassName = element.getAttribute(SERVICE_CLASS); declareService = true; } if (element.hasAttribute(NAME)) name = element.getAttribute(NAME); if (element.hasAttribute(ENTITY)) { String className = element.getAttribute(ENTITY); if (name == null) { name = StringUtils .uncapitalize(StringUtils.substringAfterLast(className, PropertyUtils.PROPERTY_SEPARATOR)); } parserContext.pushContainingComponent( new CompositeComponentDefinition(name, parserContext.extractSource(element))); // Dao BeanDefinitionBuilder daoBuilder = BeanDefinitionBuilder.genericBeanDefinition(daoClassName); NodeList nl = element.getElementsByTagNameNS(element.getNamespaceURI(), CRITERIA); if (nl.getLength() > 0) { ManagedMap<String, BeanReference> builders = new ManagedMap<String, BeanReference>(nl.getLength()); for (int i = 0; i < nl.getLength(); i++) { Element e = (Element) nl.item(i); builders.put(e.getAttribute(NAME), new RuntimeBeanReference(e.getAttribute(BUILDER))); } daoBuilder.addPropertyValue(CRITERIA_BUILDER_MAP, builders); } daoBuilder.addConstructorArgValue(ClassUtils.resolveClassName(className, null)); daoBuilder.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_BY_TYPE); String daoBeanName; if (declareService) { // use dao suffix daoBeanName = name + DAO_SUFFIX; registerBeanDefinition(parserContext, daoBuilder, daoBeanName); // register service wrapper String serviceBeanName = name + SERVICE_SUFFIX; BeanDefinitionBuilder serviceBuilder = BeanDefinitionBuilder .genericBeanDefinition(serviceClassName); serviceBuilder.addPropertyReference("dao", daoBeanName); registerBeanDefinition(parserContext, serviceBuilder, serviceBeanName); } else { // use service suffix for dao and declare an alias with dao suffix for compatibility with older api. daoBeanName = name + SERVICE_SUFFIX; String[] aliases = new String[] { name + DAO_SUFFIX }; BeanComponentDefinition bcd = new BeanComponentDefinition(daoBuilder.getBeanDefinition(), daoBeanName, aliases); parserContext.registerBeanComponent(bcd); } parserContext.popAndRegisterContainingComponent(); } return null; }