List of usage examples for org.springframework.beans.factory.xml ParserContext extractSource
@Nullable
public Object extractSource(Object sourceCandidate)
From source file:biz.c24.io.spring.config.C24ModelBeanDefinitionParser.java
@Override public AbstractBeanDefinition parseInternal(Element element, ParserContext context) { String basePackage = element.getAttribute("base-package"); String baseElement = element.getAttribute("base-element"); if (StringUtils.hasText(baseElement) && StringUtils.hasText(basePackage)) { throw new BeanDefinitionStoreException("Either base-package or base-element are allowed!"); }/*from w w w. j a v a 2s . c o m*/ Object source = context.extractSource(element); AbstractBeanDefinition modelDefinition = StringUtils.hasText(baseElement) ? getC24ModelFromElement(baseElement, context, source) : getC24ModelFromPackage(basePackage, context, source); BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(C24Model.class); builder.addConstructorArgValue(modelDefinition); return getSourcedBeanDefinition(builder, context.extractSource(element)); }
From source file:de.itsvs.cwtrpc.controller.config.RemoteServiceGroupConfigBeanDefinitionParser.java
protected AbstractBeanDefinition createServiceConfigBeanDefinition(Element element, ParserContext parserContext) { final String serviceName; final BeanDefinitionBuilder bdd; final String relativePath; serviceName = element.getAttribute(XmlNames.SERVICE_REF_ATTR); if (!StringUtils.hasText(serviceName)) { parserContext.getReaderContext().error("Service reference must not be empty", parserContext.extractSource(element)); }//from w w w .j a va 2 s .c om bdd = BeanDefinitionBuilder.rootBeanDefinition(RemoteServiceConfig.class); if (parserContext.isDefaultLazyInit()) { bdd.setLazyInit(true); } bdd.getRawBeanDefinition().setSource(parserContext.extractSource(element)); bdd.addConstructorArgValue(serviceName); if (element.hasAttribute(XmlNames.SERVICE_INTERFACE_ATTR)) { bdd.addPropertyValue("serviceInterface", element.getAttribute(XmlNames.SERVICE_INTERFACE_ATTR)); } if (element.hasAttribute(XmlNames.RELATIVE_PATH_ATTR)) { relativePath = element.getAttribute(XmlNames.RELATIVE_PATH_ATTR); if (!StringUtils.hasText(relativePath)) { parserContext.getReaderContext().error("Relative path must not be empty", parserContext.extractSource(element)); } bdd.addPropertyValue("relativePath", relativePath); } getBaseServiceConfigParser().update(element, parserContext, bdd); return bdd.getBeanDefinition(); }
From source file:org.synyx.hades.dao.config.DaoConfigDefinitionParser.java
/** * Registers a {@code GenericDaoFactoryBean} for a bean with the given name * and the provided configuration context. It is mainly used to construct * bean name, entity class name and DAO interface name. * /* w ww .ja v a 2s. com*/ * @param parserContext * @param name * @param context */ private void registerGenericDaoFactoryBean(final ParserContext parserContext, final DaoContext context) { Object beanSource = parserContext.extractSource(context.getElement()); BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder .rootBeanDefinition(context.getDaoFactoryClassName()); beanDefinitionBuilder.addPropertyValue("daoInterface", context.getInterfaceName()); beanDefinitionBuilder.addPropertyValue("queryLookupStrategy", context.getQueryLookupStrategy()); String entityManagerRef = context.getEntityManagerFactoryRef(); if (null != entityManagerRef) { beanDefinitionBuilder.addPropertyValue("entityManager", getEntityManagerBeanDefinitionFor(entityManagerRef, beanSource)); } beanDefinitionBuilder.addPropertyValue("transactionManager", context.getTransactionManagerRef()); String customImplementationBeanName = registerCustomImplementation(context, parserContext, beanSource); if (customImplementationBeanName != null) { beanDefinitionBuilder.addPropertyReference("customDaoImplementation", customImplementationBeanName); } AbstractBeanDefinition beanDefinition = beanDefinitionBuilder.getBeanDefinition(); beanDefinition.setSource(beanSource); LOG.debug("Registering Hades DAO: {} - DAO interface: {} - Factory: {} - Custom implementation: {}", new Object[] { context.getBeanName(), context.getInterfaceName(), context.getDaoFactoryClassName(), customImplementationBeanName }); BeanComponentDefinition definition = new BeanComponentDefinition(beanDefinition, context.getBeanName()); parserContext.registerBeanComponent(definition); }
From source file:org.jsr107.ri.annotations.spring.config.AnnotationDrivenJCacheBeanDefinitionParser.java
@Override public BeanDefinition parse(Element element, ParserContext parserContext) { AopNamespaceUtils.registerAutoProxyCreatorIfNecessary(parserContext, element); final BeanDefinitionRegistry registry = parserContext.getRegistry(); if (!registry.containsBeanDefinition(JCACHE_CACHE_OPERATION_SOURCE_BEAN_NAME)) { final Object elementSource = parserContext.extractSource(element); final RuntimeBeanReference cacheOperationSourceReference = this.setupCacheOperationSource(element, parserContext, elementSource); this.setupPointcutAdvisor(CacheResultInterceptor.class, element, parserContext, elementSource, cacheOperationSourceReference); this.setupPointcutAdvisor(CachePutInterceptor.class, element, parserContext, elementSource, cacheOperationSourceReference); this.setupPointcutAdvisor(CacheRemoveEntryInterceptor.class, element, parserContext, elementSource, cacheOperationSourceReference); this.setupPointcutAdvisor(CacheRemoveAllInterceptor.class, element, parserContext, elementSource, cacheOperationSourceReference); return registry.getBeanDefinition(JCACHE_CACHE_OPERATION_SOURCE_BEAN_NAME); }/*from w w w . j av a 2s. c om*/ return null; }
From source file:com.googlecode.ehcache.annotations.config.AnnotationDrivenEhCacheBeanDefinitionParser.java
private void registerAspect(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(EHCACHE_CACHING_ASPECT_BEAN_NAME)) { final Object elementSource = parserContext.extractSource(element); final RuntimeBeanReference cacheAttributeSourceReference = this.setupCacheAttributeSource(element, parserContext, elementSource); RootBeanDefinition def = new RootBeanDefinition(); def.setBeanClassName(EHCACHE_CACHING_ASPECT_CLASS_NAME); def.setFactoryMethodName("aspectOf"); def.getPropertyValues().add("cacheAttributeSource", cacheAttributeSourceReference); //registerTransactionManager(element, def); parserContext.registerBeanComponent(new BeanComponentDefinition(def, EHCACHE_CACHING_ASPECT_BEAN_NAME)); }//from w ww. j a v a 2 s. c o m }
From source file:de.itsvs.cwtrpc.controller.config.BaseServiceConfigParser.java
protected void createDefaultRpcTokenValidatorBeanDefinition(Element element, ParserContext parserContext, String rpcTokenValidatorName) { if (!parserContext.getRegistry().containsBeanDefinition(rpcTokenValidatorName)) { final RootBeanDefinition bd; if (log.isInfoEnabled()) { log.info("Registering default RPC token validator with name '" + rpcTokenValidatorName + "'"); }/*from w w w . ja v a 2s .co m*/ bd = new RootBeanDefinition(DefaultXsrfTokenService.class); bd.setSource(parserContext.extractSource(element)); bd.setLazyInit(true); parserContext.registerBeanComponent(new BeanComponentDefinition(bd, rpcTokenValidatorName)); } }
From source file:org.opencredo.couchdb.config.CouchDbUrlToDocumentTransformerParser.java
@Override protected void parseTransformer(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { System.out.println("CouchDbUrlToDocumentTransformerParser2"); String documentType = element.getAttribute(COUCHDB_DOCUMENT_TYPE_ATTRIBUTE); String documentOperations = element.getAttribute(COUCHDB_DOCUMENT_OPERATIONS_ATTRIBUTE); if (!StringUtils.hasText(documentType)) { parserContext.getReaderContext().error("The '" + COUCHDB_DOCUMENT_TYPE_ATTRIBUTE + "' is mandatory.", parserContext.extractSource(element)); } else {/*from www . j a va 2 s . co m*/ builder.addConstructorArgValue(documentType); } if (StringUtils.hasText(documentOperations)) { builder.addConstructorArgReference(documentOperations); } }
From source file:eap.config.TxAdviceBeanDefinitionParser.java
private RootBeanDefinition parseAttributeSource(Element attrEle, ParserContext parserContext) { List<Element> methods = DomUtils.getChildElementsByTagName(attrEle, METHOD_ELEMENT); ManagedMap<TypedStringValue, RuleBasedTransactionAttribute> transactionAttributeMap = new ManagedMap<TypedStringValue, RuleBasedTransactionAttribute>( methods.size());/* w ww . ja v a 2 s . c o m*/ transactionAttributeMap.setSource(parserContext.extractSource(attrEle)); for (Element methodEle : methods) { String name = methodEle.getAttribute(METHOD_NAME_ATTRIBUTE); TypedStringValue nameHolder = new TypedStringValue(name); nameHolder.setSource(parserContext.extractSource(methodEle)); RuleBasedTransactionAttribute attribute = new RuleBasedTransactionAttribute(); String propagation = methodEle.getAttribute(PROPAGATION_ATTRIBUTE); String isolation = methodEle.getAttribute(ISOLATION_ATTRIBUTE); String timeout = methodEle.getAttribute(TIMEOUT_ATTRIBUTE); String readOnly = methodEle.getAttribute(READ_ONLY_ATTRIBUTE); if (StringUtils.hasText(propagation)) { attribute .setPropagationBehaviorName(RuleBasedTransactionAttribute.PREFIX_PROPAGATION + propagation); } if (StringUtils.hasText(isolation)) { attribute.setIsolationLevelName(RuleBasedTransactionAttribute.PREFIX_ISOLATION + isolation); } if (StringUtils.hasText(timeout)) { try { attribute.setTimeout(Integer.parseInt(timeout)); } catch (NumberFormatException ex) { parserContext.getReaderContext().error("Timeout must be an integer value: [" + timeout + "]", methodEle); } } if (StringUtils.hasText(readOnly)) { attribute.setReadOnly(Boolean.valueOf(methodEle.getAttribute(READ_ONLY_ATTRIBUTE))); } List<RollbackRuleAttribute> rollbackRules = new LinkedList<RollbackRuleAttribute>(); if (methodEle.hasAttribute(ROLLBACK_FOR_ATTRIBUTE)) { String rollbackForValue = methodEle.getAttribute(ROLLBACK_FOR_ATTRIBUTE); addRollbackRuleAttributesTo(rollbackRules, rollbackForValue); } if (methodEle.hasAttribute(NO_ROLLBACK_FOR_ATTRIBUTE)) { String noRollbackForValue = methodEle.getAttribute(NO_ROLLBACK_FOR_ATTRIBUTE); addNoRollbackRuleAttributesTo(rollbackRules, noRollbackForValue); } attribute.setRollbackRules(rollbackRules); transactionAttributeMap.put(nameHolder, attribute); } RootBeanDefinition attributeSourceDefinition = new RootBeanDefinition( NameMatchTransactionAttributeSource.class); attributeSourceDefinition.setSource(parserContext.extractSource(attrEle)); attributeSourceDefinition.getPropertyValues().add("nameMap", transactionAttributeMap); return attributeSourceDefinition; }
From source file:be.hikage.springtemplate.ImportTemplateBeanDefinitionParser.java
public BeanDefinition parse(Element element, ParserContext parserContext) { Map<String, String> patternMap = prepareReplacement(element); MappingBeanDefinitionVisitor visitor = new MappingBeanDefinitionVisitor(patternMap); Map<String, BeanDefinition> beansDefinition = loadTemplateBeans(element, visitor); CompositeComponentDefinition def = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(def); registerBeans(parserContext, beansDefinition); parserContext.popAndRegisterContainingComponent(); return null;/* w w w .j av a2 s. com*/ }
From source file:fr.xebia.management.config.ProfileAspectDefinitionParser.java
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ProfileAspect.class); // see http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/aop.html#aop-aj-configure builder.setFactoryMethod("aspectOf"); // Mark as infrastructure bean and attach source location. builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); String serverBeanName = element.getAttribute(SERVER_ATTRIBUTE); if (StringUtils.hasText(serverBeanName)) { builder.addPropertyReference("server", serverBeanName); } else {//from w w w . j a va2 s. c om AbstractBeanDefinition specialServer = findServerForSpecialEnvironment(); if (specialServer != null) { builder.addPropertyValue("server", specialServer); } } String jmxDomain = element.getAttribute(JMX_DOMAIN_ATTRIBUTE); if (StringUtils.hasLength(jmxDomain)) { builder.addPropertyValue("jmxDomain", jmxDomain); } return builder.getBeanDefinition(); }