diff --git a/spring-service-connector/pom.xml b/spring-service-connector/pom.xml index ebbb08d..82ac25c 100644 --- a/spring-service-connector/pom.xml +++ b/spring-service-connector/pom.xml @@ -22,7 +22,7 @@ 3.0.7.RELEASE - 6.0.29 + 7.0.42 1.0.0.RELEASE 1.0.0.RELEASE @@ -80,7 +80,7 @@ org.apache.tomcat - dbcp + tomcat-jdbc ${tomcat.version} provided diff --git a/spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceCreator.java b/spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceCreator.java index 448ee9a..888eadb 100644 --- a/spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceCreator.java +++ b/spring-service-connector/src/main/java/org/springframework/cloud/service/relational/DataSourceCreator.java @@ -1,19 +1,21 @@ package org.springframework.cloud.service.relational; +import static org.springframework.cloud.service.Util.hasClass; + import java.sql.DriverManager; +import java.util.logging.Logger; import javax.sql.DataSource; import org.springframework.beans.BeanWrapper; import org.springframework.beans.BeanWrapperImpl; +import org.springframework.cloud.Cloud; import org.springframework.cloud.service.AbstractServiceConnectorCreator; import org.springframework.cloud.service.ServiceConnectorConfig; import org.springframework.cloud.service.ServiceConnectorCreationException; import org.springframework.cloud.service.common.RelationalServiceInfo; import org.springframework.jdbc.datasource.SimpleDriverDataSource; -import static org.springframework.cloud.service.Util.*; - /** * * @author Ramnivas Laddad @@ -22,6 +24,8 @@ import static org.springframework.cloud.service.Util.*; */ public abstract class DataSourceCreator extends AbstractServiceConnectorCreator { + private static Logger logger = Logger.getLogger(DataSourceCreator.class.getName()); + private DataSourceConfigurer configurer = new DataSourceConfigurer(); public abstract String getDriverClassName(); @@ -34,16 +38,19 @@ public abstract class DataSourceCreator extend Class.forName(getDriverClassName()); // Give first preference to user's DBCP datasource if (hasClass("org.apache.commons.dbcp.BasicDataSource")) { + logger.info("Found DBCP on the classpath. Using it for DataSource connection pooling."); org.apache.commons.dbcp.BasicDataSource ds = new org.apache.commons.dbcp.BasicDataSource(); setBasicDataSourceProperties(ds, serviceInfo, serviceConnectorConfig); return ds; // else, we have one from Tomcat - } else if (hasClass("org.apache.tomcat.dbcp.dbcp.BasicDataSource")) { - org.apache.tomcat.dbcp.dbcp.BasicDataSource ds = new org.apache.tomcat.dbcp.dbcp.BasicDataSource(); + } else if (hasClass("org.apache.tomcat.jdbc.pool.DataSource")) { + logger.info("Found Tomcat connection pool on the classpath. Using it for DataSource connection pooling."); + org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource(); setBasicDataSourceProperties(ds, serviceInfo, serviceConnectorConfig); return ds; } else { // Only for testing outside Tomcat/CloudFoundry + logger.warning("Found neither DBCP nor Tomcat connection pool on the classpath (no pooling in effect)"); return new SimpleDriverDataSource(DriverManager.getDriver(serviceInfo.getJdbcUrl()), serviceInfo.getJdbcUrl()); }