Check that Apache Commons DBCP2 is on the classpath before trying to use it.

This commit is contained in:
Scott Frederick
2018-11-15 14:45:03 -06:00
parent fea3b37c47
commit c10b15ece3

View File

@@ -5,6 +5,8 @@ import javax.sql.DataSource;
import org.springframework.cloud.service.ServiceConnectorConfig;
import org.springframework.cloud.service.common.RelationalServiceInfo;
import static org.springframework.cloud.service.Util.hasClass;
/**
*
* @author Ramnivas Laddad
@@ -18,9 +20,12 @@ public class BasicDbcpPooledDataSourceCreator<SI extends RelationalServiceInfo>
@Override
public DataSource create(RelationalServiceInfo serviceInfo, ServiceConnectorConfig serviceConnectorConfig,
String driverClassName, String validationQuery) {
logger.info("Found DBCP2 on the classpath. Using it for DataSource connection pooling.");
org.apache.commons.dbcp2.BasicDataSource ds = new org.apache.commons.dbcp2.BasicDataSource();
setBasicDataSourceProperties(ds, serviceInfo, serviceConnectorConfig, driverClassName, validationQuery);
return new UrlDecodingDataSource(ds, "url");
if (hasClass(DBCP2_BASIC_DATASOURCE)) {
logger.info("Found DBCP2 on the classpath. Using it for DataSource connection pooling.");
org.apache.commons.dbcp2.BasicDataSource ds = new org.apache.commons.dbcp2.BasicDataSource();
setBasicDataSourceProperties(ds, serviceInfo, serviceConnectorConfig, driverClassName, validationQuery);
return new UrlDecodingDataSource(ds, "url");
}
return null;
}
}