diff --git a/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceConfigurer.java b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceConfigurer.java index caccad8..5a07315 100644 --- a/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceConfigurer.java +++ b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceConfigurer.java @@ -1,5 +1,6 @@ package org.springframework.cloud.service.relational; +import static org.springframework.cloud.service.PooledServiceConnectorConfig.*; import static org.springframework.cloud.service.Util.setCorrespondingProperties; import javax.sql.DataSource; @@ -17,16 +18,19 @@ import org.springframework.cloud.service.PooledServiceConnectorConfigurer; */ public class DataSourceConfigurer extends PooledServiceConnectorConfigurer { private MapServiceConnectionConfigurer mapServiceConnectionConfigurer = - new MapServiceConnectionConfigurer(); + new MapServiceConnectionConfigurer<>(); @Override public DataSource configure(DataSource dataSource, DataSourceConfig config) { - if (config != null) { - configureConnection(dataSource, config); - configureConnectionProperties(dataSource, config); - return super.configure(dataSource, config); + if (config == null) { + // choose sensible values so that we set max connection pool size to what + // free tier services on Cloud Foundry and Heroku allow + config = new DataSourceConfig(new PoolConfig(4, 30000), null); } - return dataSource; + + configureConnection(dataSource, config); + configureConnectionProperties(dataSource, config); + return super.configure(dataSource, config); } private void configureConnection(DataSource dataSource, DataSourceConfig config) { diff --git a/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DbcpLikePooledDataSourceCreator.java b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DbcpLikePooledDataSourceCreator.java index c933973..fa48cf4 100644 --- a/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DbcpLikePooledDataSourceCreator.java +++ b/spring-cloud-spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DbcpLikePooledDataSourceCreator.java @@ -6,7 +6,6 @@ import javax.sql.DataSource; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; -import org.springframework.cloud.service.PooledServiceConnectorConfig.PoolConfig; import org.springframework.cloud.service.ServiceConnectorConfig; import org.springframework.cloud.service.common.RelationalServiceInfo; @@ -34,11 +33,6 @@ public abstract class DbcpLikePooledDataSourceCreator