Author: rmannibucau
Date: Thu Aug 2 07:50:40 2012
New Revision: 1368373
URL: http://svn.apache.org/viewvc?rev=1368373&view=rev
Log:
better consistency with tomcat-jdbc datasource unused property logging
Modified:
openejb/trunk/openejb/tomee/tomee-jdbc/src/main/java/org/apache/tomee/jdbc/TomEEDataSourceCreator.java
openejb/trunk/openejb/tomee/tomee-jdbc/src/test/java/org/apache/tomee/jdbc/TomcatPoolTest.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=1368373&r1=1368372&r2=1368373&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 Aug 2 07:50:40 2012
@@ -2,8 +2,9 @@ package org.apache.tomee.jdbc;
import org.apache.openejb.monitoring.LocalMBeanServer;
import org.apache.openejb.resource.jdbc.pool.PoolDataSourceCreator;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
import org.apache.tomcat.jdbc.pool.ConnectionPool;
-import org.apache.tomcat.jdbc.pool.DataSourceFactory;
import org.apache.tomcat.jdbc.pool.PoolConfiguration;
import org.apache.tomcat.jdbc.pool.PoolProperties;
@@ -18,6 +19,8 @@ import java.util.Map;
import java.util.Properties;
public class TomEEDataSourceCreator extends PoolDataSourceCreator {
+ private static final Logger LOGGER =
Logger.getInstance(LogCategory.OPENEJB, TomEEDataSourceCreator.class);
+
@Override
public DataSource pool(final String name, final DataSource ds, Properties
properties) {
final Properties converted = new Properties();
@@ -31,7 +34,7 @@ public class TomEEDataSourceCreator exte
} catch (SQLException e) {
throw new IllegalStateException(e);
}
- return build(TomEEDataSource.class, new TomEEDataSource(pool, name),
properties);
+ return build(TomEEDataSource.class, new TomEEDataSource(pool, name),
converted);
}
@Override
@@ -39,7 +42,8 @@ public class TomEEDataSourceCreator exte
final Properties converted = new Properties();
converted.setProperty("name", name);
updateProperties(properties, converted, driver);
- return new
TomEEDataSource(DataSourceFactory.parsePoolProperties(converted), name);
+ 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) {
@@ -47,16 +51,34 @@ public class TomEEDataSourceCreator exte
if (driver != null) {
converted.setProperty("driverClassName", driver);
}
+ if (properties.containsKey("JdbcDriver") &&
properties.getProperty("JdbcDriver") != null) {
+ converted.setProperty("driverClassName", (String)
properties.remove("JdbcDriver"));
+ }
if (properties.containsKey("JdbcUrl")) {
- converted.setProperty("url", properties.getProperty("JdbcUrl"));
+ converted.setProperty("url", (String)
properties.remove("JdbcUrl"));
}
if (properties.containsKey("user")) {
- converted.setProperty("username", properties.getProperty("user"));
+ converted.setProperty("username", (String)
properties.remove("user"));
}
for (Map.Entry<Object, Object> entry : properties.entrySet()) {
+ final String key = entry.getKey().toString();
final String value = entry.getValue().toString().trim();
if (!value.isEmpty()) {
- converted.put(entry.getKey(), entry.getValue());
+ if ("PasswordCipher".equals(key) && "PlainText".equals(value))
{ // no need to warn about it
+ continue;
+ }
+ 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");
+ }
+ continue;
+ }
+
+ converted.put(key, value);
}
}
}
@@ -107,7 +129,7 @@ public class TomEEDataSourceCreator exte
}
}
- private static class ContantHashCodeHandler implements InvocationHandler {
+ private static class ContantHashCodeHandler implements InvocationHandler {
// will be fixed in tomcat-jdbc in next version
private final Object delegate;
private final int hashCode;
Modified:
openejb/trunk/openejb/tomee/tomee-jdbc/src/test/java/org/apache/tomee/jdbc/TomcatPoolTest.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-jdbc/src/test/java/org/apache/tomee/jdbc/TomcatPoolTest.java?rev=1368373&r1=1368372&r2=1368373&view=diff
==============================================================================
---
openejb/trunk/openejb/tomee/tomee-jdbc/src/test/java/org/apache/tomee/jdbc/TomcatPoolTest.java
(original)
+++
openejb/trunk/openejb/tomee/tomee-jdbc/src/test/java/org/apache/tomee/jdbc/TomcatPoolTest.java
Thu Aug 2 07:50:40 2012
@@ -65,6 +65,7 @@ public class TomcatPoolTest {
p.put("managed.UserName", USER);
p.put("managed.Password", PASSWORD);
p.put("managed.JtaManaged", "true");
+ p.put("managed.JdbcInterceptors", "StatementCache(prepared=true)");
return p;
}