@Override @Nullable public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); String defaultServletName = element.getAttribute("default-servlet-name"); RootBeanDefinition defaultServletHandlerDef = new RootBeanDefinition(DefaultServletHttpRequestHandler.class); defaultServletHandlerDef.setSource(source); defaultServletHandlerDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); if (StringUtils.hasText(defaultServletName)) { defaultServletHandlerDef.getPropertyValues().add("defaultServletName", defaultServletName); } String defaultServletHandlerName = parserContext.getReaderContext().generateBeanName(defaultServletHandlerDef); parserContext.getRegistry().registerBeanDefinition(defaultServletHandlerName, defaultServletHandlerDef); parserContext.registerComponent(new BeanComponentDefinition(defaultServletHandlerDef, defaultServletHandlerName)); Map<String, String> urlMap = new ManagedMap<>(); urlMap.put("/**", defaultServletHandlerName); RootBeanDefinition handlerMappingDef = new RootBeanDefinition(SimpleUrlHandlerMapping.class); handlerMappingDef.setSource(source); handlerMappingDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); handlerMappingDef.getPropertyValues().add("urlMap", urlMap); String handlerMappingBeanName = parserContext.getReaderContext().generateBeanName(handlerMappingDef); parserContext.getRegistry().registerBeanDefinition(handlerMappingBeanName, handlerMappingDef); parserContext.registerComponent(new BeanComponentDefinition(handlerMappingDef, handlerMappingBeanName)); // Ensure BeanNameUrlHandlerMapping (SPR-8289) and default HandlerAdapters are not "turned off" MvcNamespaceUtils.registerDefaultComponents(parserContext, source); return null; }
@Override public BeanDefinition[] getBeanDefinitions() { return new BeanDefinition[] {getBeanDefinition()}; }
@Override public String getName() { return getBeanName(); }
String converterRef = element.getAttribute("converter-ref"); String dbFactoryRef = element.getAttribute("db-factory-ref"); String bucket = element.getAttribute("bucket"); BeanDefinitionBuilder gridFsTemplateBuilder = BeanDefinitionBuilder.genericBeanDefinition(GridFsTemplate.class); if (StringUtils.hasText(dbFactoryRef)) { gridFsTemplateBuilder.addConstructorArgReference(dbFactoryRef); } else { gridFsTemplateBuilder.addConstructorArgReference(BeanNames.DB_FACTORY_BEAN_NAME); if (StringUtils.hasText(converterRef)) { gridFsTemplateBuilder.addConstructorArgReference(converterRef); } else { if (StringUtils.hasText(bucket)) { gridFsTemplateBuilder.addConstructorArgValue(bucket); .getBeanDefinition();
private static void registerCacheAdvisor(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(CacheManagementConfigUtils.JCACHE_ADVISOR_BEAN_NAME)) { Object source = parserContext.extractSource(element); String sourceName = parserContext.getReaderContext().registerWithGeneratedName(sourceDef); new RootBeanDefinition("org.springframework.cache.jcache.interceptor.JCacheInterceptor"); interceptorDef.setSource(source); interceptorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); interceptorDef.getPropertyValues().add("cacheOperationSource", new RuntimeBeanReference(sourceName)); parseErrorHandler(element, interceptorDef); String interceptorName = parserContext.getReaderContext().registerWithGeneratedName(interceptorDef); advisorDef.getPropertyValues().add("cacheOperationSource", new RuntimeBeanReference(sourceName)); advisorDef.getPropertyValues().add("adviceBeanName", interceptorName); if (element.hasAttribute("order")) { advisorDef.getPropertyValues().add("order", element.getAttribute("order")); parserContext.getRegistry().registerBeanDefinition(CacheManagementConfigUtils.JCACHE_ADVISOR_BEAN_NAME, advisorDef); CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), source); compositeDef.addNestedComponent(new BeanComponentDefinition(sourceDef, sourceName)); compositeDef.addNestedComponent(new BeanComponentDefinition(interceptorDef, interceptorName)); compositeDef.addNestedComponent(new BeanComponentDefinition(advisorDef, CacheManagementConfigUtils.JCACHE_ADVISOR_BEAN_NAME)); parserContext.registerComponent(compositeDef);
element.getTagName(), pc.extractSource(element)); pc.pushContainingComponent(compositeDef); BeanDefinitionRegistry beanRegistry = pc.getRegistry(); String sessionRegistryId = element.getAttribute(ATT_SESSION_REGISTRY_REF); if (!StringUtils.hasText(sessionRegistryId)) { RootBeanDefinition sessionRegistry = new RootBeanDefinition( SessionRegistryImpl.class); sessionRegistryId = pc.getReaderContext().registerWithGeneratedName( sessionRegistry); pc.registerComponent(new BeanComponentDefinition(sessionRegistry, sessionRegistryId)); String registryAlias = element.getAttribute(ATT_SESSION_REGISTRY_ALIAS); if (StringUtils.hasText(registryAlias)) { beanRegistry.registerAlias(sessionRegistryId, registryAlias); .rootBeanDefinition(ConcurrentSessionFilter.class); filterBuilder.addConstructorArgReference(sessionRegistryId); Object source = pc.extractSource(element); filterBuilder.getRawBeanDefinition().setSource(source); filterBuilder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); String expiredSessionStrategyRef = element.getAttribute(ATT_EXPIRED_SESSION_STRATEGY_REF);
private RuntimeBeanReference getConversionService(Element element, @Nullable Object source, ParserContext context) { RuntimeBeanReference conversionServiceRef; if (element.hasAttribute("conversion-service")) { conversionServiceRef = new RuntimeBeanReference(element.getAttribute("conversion-service")); } else { RootBeanDefinition conversionDef = new RootBeanDefinition(FormattingConversionServiceFactoryBean.class); conversionDef.setSource(source); conversionDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); String conversionName = context.getReaderContext().registerWithGeneratedName(conversionDef); context.registerComponent(new BeanComponentDefinition(conversionDef, conversionName)); conversionServiceRef = new RuntimeBeanReference(conversionName); } return conversionServiceRef; }
@Override @Nullable public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); parserContext.pushContainingComponent(compositeDef); MutablePropertyValues commonProperties = parseCommonContainerProperties(element, parserContext); MutablePropertyValues specificProperties = parseSpecificContainerProperties(element, parserContext); String factoryId = element.getAttribute(FACTORY_ID_ATTRIBUTE); if (StringUtils.hasText(factoryId)) { RootBeanDefinition beanDefinition = createContainerFactory( factoryId, element, parserContext, commonProperties, specificProperties); if (beanDefinition != null) { beanDefinition.setSource(parserContext.extractSource(element)); parserContext.registerBeanComponent(new BeanComponentDefinition(beanDefinition, factoryId)); } } NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node child = childNodes.item(i); if (child.getNodeType() == Node.ELEMENT_NODE) { String localName = parserContext.getDelegate().getLocalName(child); if (LISTENER_ELEMENT.equals(localName)) { parseListener(element, (Element) child, parserContext, commonProperties, specificProperties); } } } parserContext.popAndRegisterContainingComponent(); return null; }
private void registerAsyncExecutionAspect(Element element, ParserContext parserContext) { if (!parserContext.getRegistry().containsBeanDefinition(TaskManagementConfigUtils.ASYNC_EXECUTION_ASPECT_BEAN_NAME)) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(ASYNC_EXECUTION_ASPECT_CLASS_NAME); builder.setFactoryMethod("aspectOf"); String executor = element.getAttribute("executor"); if (StringUtils.hasText(executor)) { builder.addPropertyReference("executor", executor); } String exceptionHandler = element.getAttribute("exception-handler"); if (StringUtils.hasText(exceptionHandler)) { builder.addPropertyReference("exceptionHandler", exceptionHandler); } parserContext.registerBeanComponent(new BeanComponentDefinition(builder.getBeanDefinition(), TaskManagementConfigUtils.ASYNC_EXECUTION_ASPECT_BEAN_NAME)); } }
getClass().getClassLoader()); if (webmvcPresent) { if (!pc.getRegistry().containsBeanDefinition(REQUEST_DATA_VALUE_PROCESSOR)) { RootBeanDefinition beanDefinition = new RootBeanDefinition( CsrfRequestDataValueProcessor.class); BeanComponentDefinition componentDefinition = new BeanComponentDefinition( beanDefinition, REQUEST_DATA_VALUE_PROCESSOR); pc.registerBeanComponent(componentDefinition); this.csrfRepositoryRef = element.getAttribute(ATT_REPOSITORY); matcherRef = element.getAttribute(ATT_MATCHER); if (!StringUtils.hasText(this.csrfRepositoryRef)) { RootBeanDefinition csrfTokenRepository = new RootBeanDefinition( HttpSessionCsrfTokenRepository.class); BeanDefinitionBuilder lazyTokenRepository = BeanDefinitionBuilder .rootBeanDefinition(LazyCsrfTokenRepository.class); lazyTokenRepository.addConstructorArgValue(csrfTokenRepository); this.csrfRepositoryRef = pc.getReaderContext() .generateBeanName(lazyTokenRepository.getBeanDefinition()); pc.registerBeanComponent(new BeanComponentDefinition( lazyTokenRepository.getBeanDefinition(), this.csrfRepositoryRef)); builder.addConstructorArgReference(this.csrfRepositoryRef); if (StringUtils.hasText(matcherRef)) { builder.addPropertyReference("requireCsrfProtectionMatcher", matcherRef);
public final BeanDefinition parse(Element element, ParserContext parserContext) { AbstractBeanDefinition definition = parseInternal(element, parserContext); if (definition != null && !parserContext.isNested()) { try { String id = resolveId(element, definition, parserContext); if (!StringUtils.hasText(id)) { parserContext.getReaderContext().error( "Id is required for element '" + parserContext.getDelegate().getLocalName(element) + "' when used as a top-level tag", element); String name = element.getAttribute(NAME_ATTRIBUTE); if (StringUtils.hasLength(name)) { aliases = StringUtils.trimArrayElements(StringUtils.commaDelimitedListToStringArray(name)); registerBeanDefinition(holder, parserContext.getRegistry()); if (shouldFireEvents()) { BeanComponentDefinition componentDefinition = new BeanComponentDefinition(holder); postProcessComponentDefinition(componentDefinition); parserContext.registerComponent(componentDefinition); parserContext.getReaderContext().error((msg != null ? msg : ex.toString()), element); return null;
@Override @Nullable public BeanDefinition parse(Element element, ParserContext context) { context.pushContainingComponent( new CompositeComponentDefinition(element.getTagName(), context.extractSource(element))); if (element.hasAttribute("path-matcher")) { pathMatcherRef = new RuntimeBeanReference(element.getAttribute("path-matcher")); RootBeanDefinition mappedInterceptorDef = new RootBeanDefinition(MappedInterceptor.class); mappedInterceptorDef.setSource(context.extractSource(interceptor)); mappedInterceptorDef.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); String beanName = context.getReaderContext().registerWithGeneratedName(mappedInterceptorDef); context.registerComponent(new BeanComponentDefinition(mappedInterceptorDef, beanName));
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(FACTORY_BEAN_CLASS); String cacheContainerRef = element.getAttribute("cache-container-ref"); BeanComponentDefinition innerBean = InfinispanNamespaceUtils.parseInnerBeanDefinition(element, parserContext); if (innerBean != null) { parserContext.registerBeanComponent(innerBean); } if ((!StringUtils.hasText(cacheContainerRef) && innerBean == null) || (StringUtils.hasText(cacheContainerRef) && innerBean != null)) { parserContext.getReaderContext().error("Exactly one of the 'cache-container-ref' attribute " + "or an inner bean definition is required for a 'container-cache-manager' element", element); } beanDefinitionBuilder.addConstructorArgReference(innerBean != null ? innerBean.getBeanName() : cacheContainerRef); return beanDefinitionBuilder.getBeanDefinition(); }
String realm = httpElt.getAttribute(ATT_REALM); if (!StringUtils.hasText(realm)) { realm = DEF_REALM; .rootBeanDefinition(BasicAuthenticationFilter.class); if (StringUtils.hasText(basicAuthElt.getAttribute(ATT_ENTRY_POINT_REF))) { basicEntryPoint = new RuntimeBeanReference( basicAuthElt.getAttribute(ATT_ENTRY_POINT_REF)); RootBeanDefinition entryPoint = new RootBeanDefinition( BasicAuthenticationEntryPoint.class); entryPoint.setSource(pc.extractSource(httpElt)); entryPoint.getPropertyValues().addPropertyValue("realmName", realm); entryPointId = pc.getReaderContext().generateBeanName(entryPoint); pc.registerBeanComponent(new BeanComponentDefinition(entryPoint, entryPointId)); basicEntryPoint = new RuntimeBeanReference(entryPointId); filterBuilder.addConstructorArgValue(authManager); filterBuilder.addConstructorArgValue(basicEntryPoint); basicFilter = filterBuilder.getBeanDefinition();
BeanMetadataElement filterChainMatcher; String requestMatcherRef = element.getAttribute(ATT_REQUEST_MATCHER_REF); String filterChainPattern = element.getAttribute(ATT_PATH_PATTERN); if (StringUtils.hasText(requestMatcherRef)) { if (StringUtils.hasText(filterChainPattern)) { pc.getReaderContext().error( "You can't define a pattern and a request-matcher-ref for the " + "same filter chain", pc.extractSource(element)); else if (StringUtils.hasText(filterChainPattern)) { filterChainMatcher = MatcherType.fromElement(element).createMatcher(pc, filterChainPattern, null); filterChainMatcher = new RootBeanDefinition(AnyRequestMatcher.class); .rootBeanDefinition(DefaultSecurityFilterChain.class); filterChainBldr.addConstructorArgValue(filterChainMatcher); filterChainBldr.addConstructorArgValue(filterChain); BeanDefinition filterChainBean = filterChainBldr.getBeanDefinition(); pc.registerBeanComponent(new BeanComponentDefinition(filterChainBean, id));
private void parseListener(Element containerEle, Element listenerEle, ParserContext parserContext, MutablePropertyValues commonContainerProperties, PropertyValues specificContainerProperties) { RootBeanDefinition listenerDef = new RootBeanDefinition(); listenerDef.setSource(parserContext.extractSource(listenerEle)); listenerDef.setBeanClassName("org.springframework.jms.listener.adapter.MessageListenerAdapter"); String ref = listenerEle.getAttribute(REF_ATTRIBUTE); if (!StringUtils.hasText(ref)) { parserContext.getReaderContext().error( "Listener 'ref' attribute contains empty value.", listenerEle); if (listenerEle.hasAttribute(METHOD_ATTRIBUTE)) { String method = listenerEle.getAttribute(METHOD_ATTRIBUTE); if (!StringUtils.hasText(method)) { parserContext.getReaderContext().error( "Listener 'method' attribute contains empty value.", listenerEle); String containerBeanName = listenerEle.getAttribute(ID_ATTRIBUTE); if (!StringUtils.hasText(containerBeanName)) { containerBeanName = parserContext.getReaderContext().generateBeanName(containerDef); parserContext.registerBeanComponent(new BeanComponentDefinition(containerDef, containerBeanName));
public BeanDefinition parse(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder .rootBeanDefinition(getBeanClassName(element)); doParse(element, parserContext, builder); RootBeanDefinition userService = (RootBeanDefinition) builder.getBeanDefinition(); final String beanId = resolveId(element, userService, parserContext); parserContext.registerBeanComponent(new BeanComponentDefinition(userService, beanId)); String cacheRef = element.getAttribute(CACHE_REF); // Register a caching version of the user service if there's a cache-ref if (StringUtils.hasText(cacheRef)) { BeanDefinitionBuilder cachingUSBuilder = BeanDefinitionBuilder .rootBeanDefinition(CachingUserDetailsService.class); cachingUSBuilder.addConstructorArgReference(beanId); cachingUSBuilder.addPropertyValue("userCache", new RuntimeBeanReference( cacheRef)); BeanDefinition cachingUserService = cachingUSBuilder.getBeanDefinition(); parserContext.registerBeanComponent(new BeanComponentDefinition( cachingUserService, beanId + CACHING_SUFFIX)); } return null; }
@Override protected BeanMetadataElement parseSource(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition( MBeanTreePollingMessageSource.class); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, "query-expression", "queryExpression"); if (StringUtils.hasText(element.getAttribute("query-name")) && StringUtils.hasText(element.getAttribute("query-name-ref"))) { parserContext.getReaderContext().error("Cannot have both `query-name' and 'query-name-ref'", element); if (StringUtils.hasText(element.getAttribute("query-expression")) && StringUtils.hasText(element.getAttribute("query-expression-ref"))) { parserContext.getReaderContext().error("Cannot have both `query-expression' and 'query-expression-ref'", element); if (StringUtils.hasText(beanName)) { parserContext.getReaderContext().error("Cannot have both a 'converter' and an inner bean", element); beanName = BeanDefinitionReaderUtils.generateBeanName(innerBeanDef.getBeanDefinition(), parserContext.getRegistry(), true); parserContext.getRegistry().registerBeanDefinition(beanName, innerBeanDef.getBeanDefinition()); else if (!StringUtils.hasText(beanName)) { BeanDefinitionBuilder childBuilder = BeanDefinitionBuilder.genericBeanDefinition(DefaultMBeanObjectConverter.class); beanName = BeanDefinitionReaderUtils.generateBeanName(childBuilder.getBeanDefinition(), parserContext.getRegistry(), true); parserContext.getRegistry().registerBeanDefinition(beanName, childBuilder.getBeanDefinition());
public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); String id = element.getAttribute("id"); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(MongoClientFactoryBean.class); MongoParsingUtils.parseReplicaSet(element, builder); String defaultedId = StringUtils.hasText(id) ? id : BeanNames.MONGO_BEAN_NAME; parserContext.pushContainingComponent(new CompositeComponentDefinition("Mongo", source)); parserContext.registerBeanComponent(mongoComponent); parserContext.popAndRegisterContainingComponent(); return mongoComponent.getBeanDefinition();
if (StringUtils.hasLength(elt .getAttribute(HttpSecurityBeanDefinitionParser.ATT_REQUIRES_CHANNEL))) { parserContext.getReaderContext().error( "The attribute '" + HttpSecurityBeanDefinitionParser.ATT_REQUIRES_CHANNEL if (StringUtils.hasLength(elt .getAttribute(HttpSecurityBeanDefinitionParser.ATT_FILTERS))) { parserContext.getReaderContext().error( "The attribute '" + HttpSecurityBeanDefinitionParser.ATT_FILTERS + "' isn't allowed here.", elt); if (StringUtils.hasLength(elt.getAttribute(ATT_SERVLET_PATH))) { parserContext.getReaderContext().error( "The attribute '" + ATT_SERVLET_PATH + "' isn't allowed here.", elt); if (StringUtils.hasText(id)) { parserContext.registerComponent(new BeanComponentDefinition(mds, id)); parserContext.getRegistry().registerBeanDefinition(id, mds);