Merge pull request #103 from viniciusccarvalho/master

Adding support for ServiceConnectorConfig on generic services
This commit is contained in:
Scott Frederick
2015-02-23 10:48:56 -06:00
2 changed files with 28 additions and 1 deletions

View File

@@ -14,6 +14,7 @@ import org.springframework.cloud.Cloud;
import org.springframework.cloud.CloudException;
import org.springframework.cloud.CloudFactory;
import org.springframework.cloud.service.PooledServiceConnectorConfig;
import org.springframework.cloud.service.ServiceConnectorConfig;
import org.springframework.cloud.service.document.MongoDbFactoryConfig;
import org.springframework.cloud.service.messaging.RabbitConnectionFactoryConfig;
import org.springframework.cloud.service.relational.DataSourceConfig;
@@ -419,5 +420,9 @@ public abstract class AbstractCloudConfig implements BeanFactoryAware {
public <T> T service(String serviceId, Class<T> serviceConnectorType) {
return cloud.getServiceConnector(serviceId, serviceConnectorType, null);
}
public <T> T service(String serviceId, Class<T> serviceConnectorType, ServiceConnectorConfig serviceConnectorConfig){
return cloud.getServiceConnector(serviceId, serviceConnectorType, serviceConnectorConfig);
}
}
}

View File

@@ -5,7 +5,11 @@ import static org.junit.Assert.assertNotNull;
import javax.sql.DataSource;
import org.junit.Test;
import org.springframework.cloud.service.ServiceConnectorConfig;
import org.springframework.cloud.service.ServiceInfo;
import org.springframework.cloud.service.PooledServiceConnectorConfig.PoolConfig;
import org.springframework.cloud.service.relational.DataSourceConfig;
import org.springframework.cloud.service.relational.DataSourceConfig.ConnectionConfig;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@@ -23,6 +27,7 @@ public class GenericServiceJavaConfigTest extends AbstractServiceJavaConfigTest<
return createMysqlService(id);
}
protected Class<DataSource> getConnectorType() {
return DataSource.class;
}
@@ -36,7 +41,9 @@ public class GenericServiceJavaConfigTest extends AbstractServiceJavaConfigTest<
testContext.getBean("myServiceWithTypeWithServiceName", DataSource.class));
assertNotNull("Getting service with connector type (unique service)",
testContext.getBean("myServiceWithTypeWithoutServiceName", DataSource.class));
testContext.getBean("myServiceWithTypeWithoutServiceName", DataSource.class));
assertNotNull("Getting service with connector type (unique service)",
testContext.getBean("myServiceWithTypeWithServiceNameAndConfig", DataSource.class));
}
}
@@ -49,6 +56,10 @@ class GenericServiceWithId extends AbstractCloudConfig {
}
class GenericServiceConnectorConfig implements ServiceConnectorConfig {
}
class GenericServiceWithoutId extends AbstractCloudConfig {
@Bean(name="my-service")
public Object testService() {
@@ -66,4 +77,15 @@ class GenericServiceWithConnectorType extends AbstractCloudConfig {
public DataSource myServiceWithTypeWithoutServiceName() {
return connectionFactory().service(DataSource.class);
}
@Bean
public DataSource myServiceWithTypeWithServiceNameAndConfig(){
PoolConfig poolConfig = new PoolConfig(20, 200);
ConnectionConfig connectionConfig = new ConnectionConfig("sessionVariables=sql_mode='ANSI';characterEncoding=UTF-8");
DataSourceConfig serviceConfig = new DataSourceConfig(poolConfig, connectionConfig);
return connectionFactory().service("my-service",DataSource.class,serviceConfig);
}
}