WIP
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
<properties>
|
||||
<spring.framework.version>3.0.7.RELEASE</spring.framework.version>
|
||||
|
||||
<tomcat.version>6.0.29</tomcat.version>
|
||||
<tomcat.version>7.0.42</tomcat.version>
|
||||
|
||||
<spring.amqp.version>1.0.0.RELEASE</spring.amqp.version>
|
||||
<spring-data-redis.version>1.0.0.RELEASE</spring-data-redis.version>
|
||||
@@ -80,7 +80,7 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.tomcat</groupId>
|
||||
<artifactId>dbcp</artifactId>
|
||||
<artifactId>tomcat-jdbc</artifactId>
|
||||
<version>${tomcat.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
@@ -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<SI extends RelationalServiceInfo> extends AbstractServiceConnectorCreator<DataSource, SI> {
|
||||
|
||||
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<SI extends RelationalServiceInfo> 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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user