package org.springframework.cloud.config.xml; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.cloud.service.CloudServiceConnectorFactory; import org.w3c.dom.Element; /** * Support for service connector that can use pooling * * @author Ramnivas Laddad * @author Thomas Risberg */ abstract class AbstractPoolingCloudServiceFactoryParser extends AbstractNestedElementCloudServiceFactoryParser { public AbstractPoolingCloudServiceFactoryParser(Class<? extends CloudServiceConnectorFactory<?>> beanClass) { super(beanClass); } protected BeanDefinition parsePoolElement(Element element, ParserContext parserContext) { BeanDefinitionBuilder cloudPoolConfigurationBeanBuilder = BeanDefinitionBuilder.genericBeanDefinition("org.springframework.cloud.service.PooledServiceConnectorConfig.PoolConfig"); String poolSize = element.getAttribute("pool-size"); String maxWaitTime = element.getAttribute("max-wait-time"); cloudPoolConfigurationBeanBuilder.addConstructorArgValue(poolSize); cloudPoolConfigurationBeanBuilder.addConstructorArgValue(maxWaitTime); return cloudPoolConfigurationBeanBuilder.getBeanDefinition(); } }