@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); BeanDefinition cloudConnectionConfiguration = null; BeanDefinition cloudPoolConfiguration = null; NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node child = childNodes.item(i); if (isElement(child, parserContext, ELEMENT_CONNECTION)) { cloudConnectionConfiguration = parseConnectionElement((Element) child); } else if (isElement(child, parserContext, ELEMENT_POOL)) { cloudPoolConfiguration = parsePoolElement((Element) child, parserContext); } } BeanDefinitionBuilder dataSourceConfigBeanBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.cloud.service.relational.DataSourceConfig"); dataSourceConfigBeanBuilder.addConstructorArgValue(cloudPoolConfiguration); dataSourceConfigBeanBuilder.addConstructorArgValue(cloudConnectionConfiguration); builder.addConstructorArgValue(dataSourceConfigBeanBuilder.getBeanDefinition()); }
Element connectionElement = DomUtils.getChildElementByTagName(element, ELEMENT_CONNECTION); if (connectionElement != null) { cloudConnectionConfiguration = parseConnectionElement(connectionElement); Element poolElement = DomUtils.getChildElementByTagName(element, ELEMENT_POOL); if (poolElement != null) { cloudPoolConfiguration = parsePoolElement(poolElement, parserContext);
@Override public void init() { registerBeanDefinitionParser("service", new GenericCloudServiceFactoryParser()); registerBeanDefinitionParser("rabbit-connection-factory", new CloudRabbitConnectionFactoryParser()); registerBeanDefinitionParser("redis-connection-factory", new CloudRedisConnectionFactoryParser()); registerBeanDefinitionParser("mongo-db-factory", new CloudMongoDbFactoryParser()); registerBeanDefinitionParser("data-source", new CloudDataSourceFactoryParser()); this.registerBeanDefinitionParser("properties", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return CloudPropertiesFactoryBean.class; } }); this.registerBeanDefinitionParser("service-scan", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return CloudServicesScanner.class; } @Override protected boolean shouldGenerateId() { return true; } }); } }
Element connectionElement = DomUtils.getChildElementByTagName(element, ELEMENT_CONNECTION); if (connectionElement != null) { cloudConnectionConfiguration = parseConnectionElement(connectionElement); Element poolElement = DomUtils.getChildElementByTagName(element, ELEMENT_POOL); if (poolElement != null) { cloudPoolConfiguration = parsePoolElement(poolElement, parserContext);
@Override public void init() { registerBeanDefinitionParser("service", new GenericCloudServiceFactoryParser()); registerBeanDefinitionParser("rabbit-connection-factory", new CloudRabbitConnectionFactoryParser()); registerBeanDefinitionParser("redis-connection-factory", new CloudRedisConnectionFactoryParser()); registerBeanDefinitionParser("mongo-db-factory", new CloudMongoDbFactoryParser()); registerBeanDefinitionParser("data-source", new CloudDataSourceFactoryParser()); registerBeanDefinitionParser("cassandra-session-factory", new CloudCassandraSessionParser()); registerBeanDefinitionParser("connection-properties", new ConnectionPropertiesParser()); this.registerBeanDefinitionParser("properties", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return CloudPropertiesFactoryBean.class; } }); this.registerBeanDefinitionParser("service-scan", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return ServiceScanBeanFactoryProcessor.class; } @Override protected boolean shouldGenerateId() { return true; } }); }
@Override public void init() { registerBeanDefinitionParser("service", new GenericCloudServiceFactoryParser()); registerBeanDefinitionParser("rabbit-connection-factory", new CloudRabbitConnectionFactoryParser()); registerBeanDefinitionParser("redis-connection-factory", new CloudRedisConnectionFactoryParser()); registerBeanDefinitionParser("mongo-db-factory", new CloudMongoDbFactoryParser()); registerBeanDefinitionParser("data-source", new CloudDataSourceFactoryParser()); registerBeanDefinitionParser("cassandra-session-factory", new CloudCassandraSessionParser()); registerBeanDefinitionParser("connection-properties", new ConnectionPropertiesParser()); this.registerBeanDefinitionParser("properties", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return CloudPropertiesFactoryBean.class; } }); this.registerBeanDefinitionParser("service-scan", new AbstractSimpleBeanDefinitionParser() { @Override protected Class<?> getBeanClass(Element element) { return ServiceScanBeanFactoryProcessor.class; } @Override protected boolean shouldGenerateId() { return true; } }); }