@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); Map<String, String> attributeMap = new HashMap<String, String>(); parseWriteConcern(element, attributeMap); parseMongoOptionsElement(element, attributeMap); BeanDefinitionBuilder cloudMongoConfigurationBeanBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.cloud.service.document.MongoDbFactoryConfig"); for (String key : new String[]{WRITE_CONCERN, CONNECTIONS_PER_HOST, MAX_WAIT_TIME}) { String value = attributeMap.get(key); cloudMongoConfigurationBeanBuilder.addConstructorArgValue(value); } builder.addConstructorArgValue(cloudMongoConfigurationBeanBuilder.getBeanDefinition()); }
private void parseMongoOptionsElement(Element element, ParserContext parserContext, Map<String, String> attributeMap) { NodeList childNodes = element.getChildNodes(); for (int i = 0; i < childNodes.getLength(); i++) { Node child = childNodes.item(i); if (isElement(child, parserContext, ELEMENT_MONGO_OPTIONS)) { Element optionElement = (Element) child; String connectionsPerHost = optionElement.getAttribute(CONNECTIONS_PER_HOST); if (StringUtils.hasText(connectionsPerHost)) { attributeMap.put(CONNECTIONS_PER_HOST, connectionsPerHost); } String maxWaitTime = optionElement.getAttribute(MAX_WAIT_TIME); if (StringUtils.hasText(maxWaitTime)) { attributeMap.put(MAX_WAIT_TIME, maxWaitTime); } } } } }
@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; } }); } }
@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 protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); Map<String, String> attributeMap = new HashMap<String, String>(); parseWriteConcern(element, attributeMap); parseMongoOptionsElement(element, parserContext, attributeMap); BeanDefinitionBuilder cloudMongoConfigurationBeanBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.cloud.service.document.MongoDbFactoryConfig"); for (String key : new String[]{WRITE_CONCERN, CONNECTIONS_PER_HOST, MAX_WAIT_TIME}) { String value = attributeMap.get(key); cloudMongoConfigurationBeanBuilder.addConstructorArgValue(value); } builder.addConstructorArgValue(cloudMongoConfigurationBeanBuilder.getBeanDefinition()); }
@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 protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { super.doParse(element, parserContext, builder); Map<String, String> attributeMap = new HashMap<String, String>(); parseWriteConcern(element, attributeMap); parseMongoOptionsElement(element, attributeMap); BeanDefinitionBuilder cloudMongoConfigurationBeanBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.cloud.service.document.MongoDbFactoryConfig"); for (String key : new String[]{WRITE_CONCERN, CONNECTIONS_PER_HOST, MAX_WAIT_TIME}) { String value = attributeMap.get(key); cloudMongoConfigurationBeanBuilder.addConstructorArgValue(value); } builder.addConstructorArgValue(cloudMongoConfigurationBeanBuilder.getBeanDefinition()); }