Adding support for ServiceConnectorConfig on generic services
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user