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); }
@Override protected BeanDefinition getJobTypeConfigurationBeanDefinition(final ParserContext parserContext, final BeanDefinition jobCoreConfigurationBeanDefinition, final Element element) { BeanDefinitionBuilder result = BeanDefinitionBuilder.rootBeanDefinition(ScriptJobConfiguration.class); result.addConstructorArgValue(jobCoreConfigurationBeanDefinition); result.addConstructorArgValue(element.getAttribute(ScriptJobBeanDefinitionParserTag.SCRIPT_COMMAND_LINE_ATTRIBUTE)); return result.getBeanDefinition(); } }
private BeanDefinition createSecurityFilterChain(BeanDefinition matcher, ManagedList<?> filters) { BeanDefinitionBuilder sfc = BeanDefinitionBuilder .rootBeanDefinition(DefaultSecurityFilterChain.class); sfc.addConstructorArgValue(matcher); sfc.addConstructorArgValue(filters); return sfc.getBeanDefinition(); } }
private static BeanDefinition createDatabasePopulator(Element element, List<Element> scripts, String execution) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(CompositeDatabasePopulator.class); boolean ignoreFailedDrops = element.getAttribute("ignore-failures").equals("DROPS"); boolean continueOnError = element.getAttribute("ignore-failures").equals("ALL"); String executionAttr = scriptElement.getAttribute("execution"); if (!StringUtils.hasText(executionAttr)) { executionAttr = "INIT"; continue; BeanDefinitionBuilder delegate = BeanDefinitionBuilder.genericBeanDefinition(ResourceDatabasePopulator.class); delegate.addPropertyValue("ignoreFailedDrops", ignoreFailedDrops); delegate.addPropertyValue("continueOnError", continueOnError); BeanDefinitionBuilder resourcesFactory = BeanDefinitionBuilder.genericBeanDefinition(SortedResourcesFactoryBean.class); resourcesFactory.addConstructorArgValue(new TypedStringValue(scriptElement.getAttribute("location"))); delegate.addPropertyValue("scripts", resourcesFactory.getBeanDefinition()); if (StringUtils.hasLength(scriptElement.getAttribute("encoding"))) { delegate.addPropertyValue("sqlScriptEncoding", new TypedStringValue(scriptElement.getAttribute("encoding"))); delegate.addPropertyValue("separator", new TypedStringValue(separator)); delegates.add(delegate.getBeanDefinition()); return builder.getBeanDefinition();
@Override protected void doParse(Element element, BeanDefinitionBuilder builder) { builder.addConstructorArgValue(element.getAttribute("ref")); }
String converterRef = element.getAttribute("converter-ref"); String dbFactoryRef = element.getAttribute("db-factory-ref"); String bucket = element.getAttribute("bucket"); BeanDefinitionBuilder gridFsTemplateBuilder = BeanDefinitionBuilder.genericBeanDefinition(GridFsTemplate.class); gridFsTemplateBuilder.addConstructorArgValue(bucket);
/** * Create, if necessary, a bean definition for a HandlerDefinition and returns the reference to bean for use in * other Bean Definitions. * * @param registry The registry in which to look for an already existing instance * @return a BeanReference to the BeanDefinition for the HandlerDefinition */ public static RuntimeBeanReference getBeanReference(BeanDefinitionRegistry registry) { if (!registry.containsBeanDefinition(HANDLER_DEFINITION_BEAN_NAME)) { BeanDefinition definition = BeanDefinitionBuilder .genericBeanDefinition(SpringHandlerDefinitionBean.class).getBeanDefinition(); BeanDefinition enhancer = BeanDefinitionBuilder .genericBeanDefinition(SpringHandlerEnhancerDefinitionBean.class).getBeanDefinition(); AbstractBeanDefinition def = BeanDefinitionBuilder.genericBeanDefinition(MultiHandlerDefinition.class) .addConstructorArgValue(definition) .addConstructorArgValue(enhancer) .getBeanDefinition(); def.setPrimary(true); registry.registerBeanDefinition(HANDLER_DEFINITION_BEAN_NAME, def); } return new RuntimeBeanReference(HANDLER_DEFINITION_BEAN_NAME); } }
private void addReferrerPolicy(Element referrerPolicyElement, ParserContext context) { BeanDefinitionBuilder headersWriter = BeanDefinitionBuilder.genericBeanDefinition(ReferrerPolicyHeaderWriter.class); String policy = referrerPolicyElement.getAttribute(ATT_POLICY); if (StringUtils.hasLength(policy)) { headersWriter.addConstructorArgValue(ReferrerPolicy.get(policy)); } headerWriters.add(headersWriter.getBeanDefinition()); }
private BeanDefinition createLiteJobConfigurationBeanDefinition(final ParserContext parserContext, final Element element, final BeanDefinition jobCoreBeanDefinition) { BeanDefinitionBuilder result = BeanDefinitionBuilder.rootBeanDefinition(LiteJobConfiguration.class); result.addConstructorArgValue(getJobTypeConfigurationBeanDefinition(parserContext, jobCoreBeanDefinition, element)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.MONITOR_EXECUTION_ATTRIBUTE)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.MAX_TIME_DIFF_SECONDS_ATTRIBUTE)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.MONITOR_PORT_ATTRIBUTE)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.JOB_SHARDING_STRATEGY_CLASS_ATTRIBUTE)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.RECONCILE_INTERVAL_MINUTES)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.DISABLED_ATTRIBUTE)); result.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.OVERWRITE_ATTRIBUTE)); return result.getBeanDefinition(); }
@Override protected void doParse(Element element, BeanDefinitionBuilder builder) { // configure MockFactory builder.addConstructorArgValue(element.getAttribute("class")); builder.addPropertyValue("name", element.getAttribute("id")); builder.addPropertyValue("mockNature", element.getLocalName()); }
@Override protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { // Common setup BeanDefinitionBuilder dbFactoryBuilder = BeanDefinitionBuilder.genericBeanDefinition(SimpleMongoDbFactory.class); setPropertyValue(dbFactoryBuilder, element, "write-concern", "writeConcern"); BeanDefinition mongoUri = getMongoUri(element, parserContext); if (mongoUri != null) { dbFactoryBuilder.addConstructorArgValue(mongoUri); return getSourceBeanDefinition(dbFactoryBuilder, parserContext, element); } BeanComponentDefinitionBuilder helper = new BeanComponentDefinitionBuilder(element, parserContext); String mongoRef = element.getAttribute("mongo-ref"); String dbname = element.getAttribute("dbname"); // Defaulting if (StringUtils.hasText(mongoRef)) { dbFactoryBuilder.addConstructorArgReference(mongoRef); } else { dbFactoryBuilder.addConstructorArgValue(registerMongoBeanDefinition(element, parserContext)); } dbFactoryBuilder.addConstructorArgValue(StringUtils.hasText(dbname) ? dbname : "db"); BeanDefinitionBuilder writeConcernPropertyEditorBuilder = getWriteConcernPropertyEditorBuilder(); BeanComponentDefinition component = helper.getComponent(writeConcernPropertyEditorBuilder); parserContext.registerBeanComponent(component); return (AbstractBeanDefinition) helper.getComponentIdButFallback(dbFactoryBuilder, BeanNames.DB_FACTORY_BEAN_NAME) .getBeanDefinition(); }
@Override protected BeanDefinitionBuilder getAuditHandlerBeanDefinitionBuilder(AuditingConfiguration configuration) { Assert.notNull(configuration, "AuditingConfiguration must not be null!"); BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(IsNewAwareAuditingHandler.class); BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(MongoMappingContextLookup.class); definition.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR); builder.addConstructorArgValue(definition.getBeanDefinition()); return configureDefaultAuditHandlerAttributes(configuration, builder); }
private BeanDefinition getLogoutRequestMatcher(String logoutUrl) { BeanDefinitionBuilder matcherBuilder = BeanDefinitionBuilder .rootBeanDefinition("org.springframework.security.web.util.matcher.AntPathRequestMatcher"); matcherBuilder.addConstructorArgValue(logoutUrl); if (this.csrfEnabled) { matcherBuilder.addConstructorArgValue("POST"); } return matcherBuilder.getBeanDefinition(); }
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); }
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()); } } }
private BeanDefinition createJobCoreBeanDefinition(final Element element) { BeanDefinitionBuilder jobCoreBeanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(JobCoreConfiguration.class); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(ID_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.CRON_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.SHARDING_TOTAL_COUNT_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.SHARDING_ITEM_PARAMETERS_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.JOB_PARAMETER_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.FAILOVER_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.MISFIRE_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(element.getAttribute(BaseJobBeanDefinitionParserTag.DESCRIPTION_ATTRIBUTE)); jobCoreBeanDefinitionBuilder.addConstructorArgValue(createJobPropertiesBeanDefinition(element)); return jobCoreBeanDefinitionBuilder.getBeanDefinition(); }
/** * 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()); }
/** * @param parserContext the parser context * @param stateDefinition a reference to the state implementation * @param on the pattern value * @param next the next step id * @return a bean definition for a * {@link org.springframework.batch.core.job.flow.support.StateTransition} */ public static BeanDefinition getStateTransitionReference(ParserContext parserContext, BeanDefinition stateDefinition, String on, String next) { BeanDefinitionBuilder nextBuilder = BeanDefinitionBuilder .genericBeanDefinition("org.springframework.batch.core.job.flow.support.StateTransition"); nextBuilder.addConstructorArgValue(stateDefinition); if (StringUtils.hasText(on)) { nextBuilder.addConstructorArgValue(on); } if (StringUtils.hasText(next)) { nextBuilder.setFactoryMethod("createStateTransition"); nextBuilder.addConstructorArgValue(next); } else { nextBuilder.setFactoryMethod("createEndStateTransition"); } return nextBuilder.getBeanDefinition(); }
private void registerDubboConfigBindingBeanPostProcessor(String prefix, String beanName, boolean multiple, BeanDefinitionRegistry registry) { Class<?> processorClass = DubboConfigBindingBeanPostProcessor.class; BeanDefinitionBuilder builder = rootBeanDefinition(processorClass); String actualPrefix = multiple ? normalizePrefix(prefix) + beanName : prefix; builder.addConstructorArgValue(actualPrefix).addConstructorArgValue(beanName); AbstractBeanDefinition beanDefinition = builder.getBeanDefinition(); beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE); registerWithGeneratedName(beanDefinition, registry); if (log.isInfoEnabled()) { log.info("The BeanPostProcessor bean definition [" + processorClass.getName() + "] for dubbo config bean [name : " + beanName + "] has been registered."); } }
private RuntimeBeanReference runnableReference(String ref, String method, Element taskElement, ParserContext parserContext) { BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition( "org.springframework.scheduling.support.ScheduledMethodRunnable"); builder.addConstructorArgReference(ref); builder.addConstructorArgValue(method); return beanReference(taskElement, parserContext, builder); }