You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/09/13 12:26:15 UTC
svn commit: r1384268 -
/openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
Author: rmannibucau
Date: Thu Sep 13 10:26:14 2012
New Revision: 1384268
URL: http://svn.apache.org/viewvc?rev=1384268&view=rev
Log:
better tomcat-jdbc handling
Modified:
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
Modified: openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java?rev=1384268&r1=1384267&r2=1384268&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java (original)
+++ openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java Thu Sep 13 10:26:14 2012
@@ -26,6 +26,7 @@ import org.apache.openejb.resource.jdbc.
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Strings;
+import org.apache.openejb.util.SuperProperties;
import org.apache.openejb.util.reflection.Reflections;
import org.apache.tomcat.jdbc.pool.ConnectionPool;
import org.apache.tomcat.jdbc.pool.PoolConfiguration;
@@ -49,7 +50,7 @@ public class TomEEDataSourceCreator exte
@Override
public DataSource pool(final String name, final DataSource ds, Properties properties) {
final Properties converted = new Properties();
- updateProperties(properties, converted, null);
+ updateProperties(new SuperProperties(properties).caseInsensitive(true), converted, null);
final PoolConfiguration config = build(PoolProperties.class, converted);
config.setDataSource(ds);
@@ -66,24 +67,36 @@ public class TomEEDataSourceCreator exte
public DataSource pool(final String name, final String driver, final Properties properties) {
final Properties converted = new Properties();
converted.setProperty("name", name);
- updateProperties(properties, converted, driver);
+ updateProperties(new SuperProperties(properties).caseInsensitive(true), converted, driver);
final PoolConfiguration config = build(PoolProperties.class, converted);
return build(TomEEDataSource.class, new TomEEDataSource(config, name), converted);
}
- private void updateProperties(final Properties properties, final Properties converted, final String driver) {
+ private void updateProperties(final SuperProperties properties, final Properties converted, final String driver) {
// some compatibility with old dbcp style
if (driver != null) {
converted.setProperty("driverClassName", driver);
}
- if (properties.getProperty("JdbcDriver") != null) {
- converted.setProperty("driverClassName", (String) properties.remove("JdbcDriver"));
+ if (properties.containsKey("JdbcDriver")) {
+ converted.setProperty("driverClassName", (String) properties.get("JdbcDriver"));
}
if (properties.containsKey("JdbcUrl")) {
- converted.setProperty("url", (String) properties.remove("JdbcUrl"));
+ converted.setProperty("url", (String) properties.get("JdbcUrl"));
}
if (properties.containsKey("user")) {
- converted.setProperty("username", (String) properties.remove("user"));
+ converted.setProperty("username", (String) properties.get("user"));
+ }
+ if (properties.containsKey("user")) {
+ converted.setProperty("username", (String) properties.get("user"));
+ }
+ if (properties.containsKey("maxWaitTime")) {
+ converted.setProperty("maxWait", (String) properties.get("maxWaitTime"));
+ }
+ if (properties.containsKey("timeBetweenEvictionRuns")) {
+ converted.setProperty("timeBetweenEvictionRunsMillis", (String) properties.get("timeBetweenEvictionRuns"));
+ }
+ if (properties.containsKey("minEvictableIdleTime")) {
+ converted.setProperty("minEvictableIdleTimeMillis", (String) properties.get("minEvictableIdleTime"));
}
for (Map.Entry<Object, Object> entry : properties.entrySet()) {
final String key = entry.getKey().toString();
@@ -94,11 +107,10 @@ public class TomEEDataSourceCreator exte
}
if ("MaxOpenPreparedStatements".equalsIgnoreCase(key) || "PoolPreparedStatements".equalsIgnoreCase(key)) {
String interceptors = properties.getProperty("jdbcInterceptors");
- if (interceptors == null) {
- interceptors = properties.getProperty("JdbcInterceptors");
- }
if (interceptors == null || !interceptors.contains("StatementCache")) {
- LOGGER.warning("Tomcat-jdbc doesn't support '" + key + "' property, please configure the StatementCache jdbc interceptor");
+ converted.setProperty("jdbcInterceptors",
+ "StatementCache(max=" + properties.getProperty("MaxOpenPreparedStatements", "128") + ")");
+ LOGGER.debug("Tomcat-jdbc StatementCache added to handle prepared statement cache/pool");
}
continue;
}