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)); } }
@Override protected void doParse(Element element, BeanDefinitionBuilder builder) { String poolSize = element.getAttribute("pool-size"); if (StringUtils.hasText(poolSize)) { builder.addPropertyValue("poolSize", poolSize); } }
/** * Parse a '{@code declare-parents}' element and register the appropriate * DeclareParentsAdvisor with the BeanDefinitionRegistry encapsulated in the * supplied ParserContext. */ private AbstractBeanDefinition parseDeclareParents(Element declareParentsElement, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(DeclareParentsAdvisor.class); builder.addConstructorArgValue(declareParentsElement.getAttribute(IMPLEMENT_INTERFACE)); builder.addConstructorArgValue(declareParentsElement.getAttribute(TYPE_PATTERN)); String defaultImpl = declareParentsElement.getAttribute(DEFAULT_IMPL); String delegateRef = declareParentsElement.getAttribute(DELEGATE_REF); if (StringUtils.hasText(defaultImpl) && !StringUtils.hasText(delegateRef)) { builder.addConstructorArgValue(defaultImpl); } else if (StringUtils.hasText(delegateRef) && !StringUtils.hasText(defaultImpl)) { builder.addConstructorArgReference(delegateRef); } else { parserContext.getReaderContext().error( "Exactly one of the " + DEFAULT_IMPL + " or " + DELEGATE_REF + " attributes must be specified", declareParentsElement, this.parseState.snapshot()); } AbstractBeanDefinition definition = builder.getBeanDefinition(); definition.setSource(parserContext.extractSource(declareParentsElement)); parserContext.getReaderContext().registerWithGeneratedName(definition); return definition; }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(DataSourceInitializer.class); builder.addPropertyReference("dataSource", element.getAttribute("data-source")); builder.addPropertyValue("enabled", element.getAttribute("enabled")); DatabasePopulatorConfigUtils.setDatabasePopulator(element, builder); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); return builder.getBeanDefinition(); }
private RuntimeBeanReference intervalTaskReference(String runnableBeanName, String initialDelay, String interval, Element taskElement, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( "org.springframework.scheduling.config.IntervalTask"); builder.addConstructorArgReference(runnableBeanName); builder.addConstructorArgValue(interval); builder.addConstructorArgValue(StringUtils.hasLength(initialDelay) ? initialDelay : ZERO_INITIAL_DELAY); return beanReference(taskElement, parserContext, builder); }
private RuntimeBeanReference cronTaskReference(String runnableBeanName, String cronExpression, Element taskElement, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( "org.springframework.scheduling.config.CronTask"); builder.addConstructorArgReference(runnableBeanName); builder.addConstructorArgValue(cronExpression); return beanReference(taskElement, parserContext, builder); }
@Override @Nullable public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); CompositeComponentDefinition compDefinition = new CompositeComponentDefinition(element.getTagName(), source); parserContext.pushContainingComponent(compDefinition); BeanDefinitionRegistry registry = parserContext.getRegistry(); if (registry.containsBeanDefinition(JmsListenerConfigUtils.JMS_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)) { parserContext.getReaderContext().error( "Only one JmsListenerAnnotationBeanPostProcessor may exist within the context.", source); BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( "org.springframework.jms.annotation.JmsListenerAnnotationBeanPostProcessor"); builder.getRawBeanDefinition().setSource(source); String endpointRegistry = element.getAttribute("registry"); if (StringUtils.hasText(endpointRegistry)) { builder.addPropertyReference("endpointRegistry", endpointRegistry); String containerFactory = element.getAttribute("container-factory"); if (StringUtils.hasText(containerFactory)) { builder.addPropertyValue("containerFactoryBeanName", containerFactory); String handlerMethodFactory = element.getAttribute("handler-method-factory"); if (StringUtils.hasText(handlerMethodFactory)) { builder.addPropertyReference("messageHandlerMethodFactory", handlerMethodFactory);
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { List<Element> childElements = DomUtils.getChildElementsByTagName(element, "template-loader-path"); if (!childElements.isEmpty()) { List<String> locations = new ArrayList<>(childElements.size()); for (Element childElement : childElements) { locations.add(childElement.getAttribute("location")); } if (locations.isEmpty()) { locations.add("/WEB-INF/"); } builder.addPropertyValue("templateLoaderPaths", StringUtils.toStringArray(locations)); } }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(AnnotationMBeanExporter.class); builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); builder.getRawBeanDefinition().setSource(parserContext.extractSource(element)); String defaultDomain = element.getAttribute(DEFAULT_DOMAIN_ATTRIBUTE); if (StringUtils.hasText(defaultDomain)) { builder.addPropertyValue("defaultDomain", defaultDomain); String serverBeanName = element.getAttribute(SERVER_ATTRIBUTE); if (StringUtils.hasText(serverBeanName)) { builder.addPropertyReference("server", serverBeanName); builder.addPropertyValue("server", specialServer); String registration = element.getAttribute(REGISTRATION_ATTRIBUTE); RegistrationPolicy registrationPolicy = RegistrationPolicy.FAIL_ON_EXISTING; if (REGISTRATION_IGNORE_EXISTING.equals(registration)) { registrationPolicy = RegistrationPolicy.REPLACE_EXISTING; builder.addPropertyValue("registrationPolicy", registrationPolicy); return builder.getBeanDefinition();
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { String tokenServicesRef = element.getAttribute("token-services-ref"); String serializerRef = element.getAttribute("serialization-service-ref"); if (!StringUtils.hasText(tokenServicesRef)) { tokenServicesRef = "oauth2TokenServices"; BeanDefinitionBuilder tokenServices = BeanDefinitionBuilder.rootBeanDefinition(DefaultTokenServices.class); AbstractBeanDefinition tokenStore = BeanDefinitionBuilder.rootBeanDefinition(InMemoryTokenStore.class).getBeanDefinition(); tokenServices.addPropertyValue("tokenStore", tokenStore); parserContext.getRegistry().registerBeanDefinition(tokenServicesRef, tokenServices.getBeanDefinition()); } return parseEndpointAndReturnFilter(element, parserContext, tokenServicesRef, serializerRef); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { Set<Object> parsedSet = parserContext.getDelegate().parseSetElement(element, builder.getRawBeanDefinition()); builder.addPropertyValue("sourceSet", parsedSet); String setClass = element.getAttribute("set-class"); if (StringUtils.hasText(setClass)) { builder.addPropertyValue("targetSetClass", setClass); } String scope = element.getAttribute(SCOPE_ATTRIBUTE); if (StringUtils.hasLength(scope)) { builder.setScope(scope); } } }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { List<Object> parsedList = parserContext.getDelegate().parseListElement(element, builder.getRawBeanDefinition()); builder.addPropertyValue("sourceList", parsedList); String listClass = element.getAttribute("list-class"); if (StringUtils.hasText(listClass)) { builder.addPropertyValue("targetListClass", listClass); } String scope = element.getAttribute(SCOPE_ATTRIBUTE); if (StringUtils.hasLength(scope)) { builder.setScope(scope); } } }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { Map<Object, Object> parsedMap = parserContext.getDelegate().parseMapElement(element, builder.getRawBeanDefinition()); builder.addPropertyValue("sourceMap", parsedMap); String mapClass = element.getAttribute("map-class"); if (StringUtils.hasText(mapClass)) { builder.addPropertyValue("targetMapClass", mapClass); } String scope = element.getAttribute(SCOPE_ATTRIBUTE); if (StringUtils.hasLength(scope)) { builder.setScope(scope); } } }
void createX509Filter(BeanReference authManager) { Element x509Elt = DomUtils.getChildElementByTagName(httpElt, Elements.X509); RootBeanDefinition filter = null; if (x509Elt != null) { BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder .rootBeanDefinition(X509AuthenticationFilter.class); filterBuilder.getRawBeanDefinition().setSource(pc.extractSource(x509Elt)); filterBuilder.addPropertyValue("authenticationManager", authManager); String regex = x509Elt.getAttribute("subject-principal-regex"); if (StringUtils.hasText(regex)) { BeanDefinitionBuilder extractor = BeanDefinitionBuilder .rootBeanDefinition(SubjectDnX509PrincipalExtractor.class); extractor.addPropertyValue("subjectDnRegex", regex); filterBuilder.addPropertyValue("principalExtractor", extractor.getBeanDefinition()); } injectAuthenticationDetailsSource(x509Elt, filterBuilder); filter = (RootBeanDefinition) filterBuilder.getBeanDefinition(); createPrauthEntryPoint(x509Elt); createX509Provider(); } x509Filter = filter; }
/** * parse * <prev> * <dubbo:annotation package="" /> * </prev> * * @param element * @param parserContext * @param builder */ @Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { String packageToScan = element.getAttribute("package"); String[] packagesToScan = trimArrayElements(commaDelimitedListToStringArray(packageToScan)); builder.addConstructorArgValue(packagesToScan); builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); // Registers CompatibleReferenceAnnotationBeanPostProcessor registerReferenceAnnotationBeanPostProcessor(parserContext.getRegistry()); }
@Override protected void postProcess(BeanDefinitionBuilder definitionBuilder, Element element) { Object envValue = DomUtils.getChildElementValueByTagName(element, ENVIRONMENT); if (envValue != null) { // Specific environment settings defined, overriding any shared properties. definitionBuilder.addPropertyValue(JNDI_ENVIRONMENT, envValue); } else { // Check whether there is a reference to shared environment properties... String envRef = element.getAttribute(ENVIRONMENT_REF); if (StringUtils.hasLength(envRef)) { definitionBuilder.addPropertyValue(JNDI_ENVIRONMENT, new RuntimeBeanReference(envRef)); } } String lazyInit = element.getAttribute(LAZY_INIT_ATTRIBUTE); if (StringUtils.hasText(lazyInit) && !DEFAULT_VALUE.equals(lazyInit)) { definitionBuilder.setLazyInit(TRUE_VALUE.equals(lazyInit)); } } }
protected void doParse(Element elt, ParserContext parserContext, BeanDefinitionBuilder builder) { if (!StringUtils.hasText(elt.getAttribute(ATT_USER_SEARCH_FILTER))) { parserContext.getReaderContext().error("User search filter must be supplied", elt); } builder.addConstructorArgValue(parseSearchBean(elt, parserContext)); builder.getRawBeanDefinition().setSource(parserContext.extractSource(elt)); builder.addConstructorArgValue(parseAuthoritiesPopulator(elt, parserContext)); builder.addPropertyValue("userDetailsMapper", parseUserDetailsClassOrUserMapperRef(elt, parserContext)); }
private void parseHeaderElements(Element element) { List<Element> headerElts = element == null ? Collections.<Element> emptyList() : DomUtils.getChildElementsByTagName(element, GENERIC_HEADER_ELEMENT); for (Element headerElt : headerElts) { String headerFactoryRef = headerElt.getAttribute(ATT_REF); if (StringUtils.hasText(headerFactoryRef)) { headerWriters.add(new RuntimeBeanReference(headerFactoryRef)); } else { BeanDefinitionBuilder builder = BeanDefinitionBuilder .genericBeanDefinition(StaticHeadersWriter.class); builder.addConstructorArgValue(headerElt.getAttribute(ATT_NAME)); builder.addConstructorArgValue(headerElt.getAttribute(ATT_VALUE)); headerWriters.add(builder.getBeanDefinition()); } } }
@Override protected BeanDefinition getJobTypeConfigurationBeanDefinition(final ParserContext parserContext, final BeanDefinition jobCoreConfigurationBeanDefinition, final Element element) { BeanDefinitionBuilder result = BeanDefinitionBuilder.rootBeanDefinition(SimpleJobConfiguration.class); result.addConstructorArgValue(jobCoreConfigurationBeanDefinition); if (Strings.isNullOrEmpty(element.getAttribute(BaseJobBeanDefinitionParserTag.CLASS_ATTRIBUTE))) { result.addConstructorArgValue(parserContext.getRegistry().getBeanDefinition(element.getAttribute(BaseJobBeanDefinitionParserTag.JOB_REF_ATTRIBUTE)).getBeanClassName()); } else { result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.CLASS_ATTRIBUTE)); } return result.getBeanDefinition(); } }
private ManagedList<BeanDefinition> parseOpenIDAttributes(Element attrExElt) { ManagedList<BeanDefinition> attributes = new ManagedList<>(); for (Element attElt : DomUtils.getChildElementsByTagName(attrExElt, Elements.OPENID_ATTRIBUTE)) { String name = attElt.getAttribute("name"); String type = attElt.getAttribute("type"); String required = attElt.getAttribute("required"); String count = attElt.getAttribute("count"); BeanDefinitionBuilder attrBldr = BeanDefinitionBuilder .rootBeanDefinition(OPEN_ID_ATTRIBUTE_CLASS); attrBldr.addConstructorArgValue(name); attrBldr.addConstructorArgValue(type); if (StringUtils.hasLength(required)) { attrBldr.addPropertyValue("required", Boolean.valueOf(required)); } if (StringUtils.hasLength(count)) { attrBldr.addPropertyValue("count", Integer.parseInt(count)); } attributes.add(attrBldr.getBeanDefinition()); } return attributes; }