diff --git a/.gitignore b/.gitignore index a9cb22fcc2..2001545daa 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,5 @@ out/ *.ipr *.iws -*.iml -/bin -/target +*.iml +/bin \ No newline at end of file diff --git a/src/main/java/com/alibaba/druid/filter/Filter.java b/src/main/java/com/alibaba/druid/filter/Filter.java index a38eaa5b30..5d39d82fb6 100644 --- a/src/main/java/com/alibaba/druid/filter/Filter.java +++ b/src/main/java/com/alibaba/druid/filter/Filter.java @@ -15,6 +15,17 @@ */ package com.alibaba.druid.filter; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; +import com.alibaba.druid.proxy.jdbc.CallableStatementProxy; +import com.alibaba.druid.proxy.jdbc.ClobProxy; +import com.alibaba.druid.proxy.jdbc.ConnectionProxy; +import com.alibaba.druid.proxy.jdbc.DataSourceProxy; +import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy; +import com.alibaba.druid.proxy.jdbc.ResultSetMetaDataProxy; +import com.alibaba.druid.proxy.jdbc.ResultSetProxy; +import com.alibaba.druid.proxy.jdbc.StatementProxy; + import java.io.InputStream; import java.io.OutputStream; import java.io.Reader; @@ -44,17 +55,6 @@ import java.sql.Wrapper; import java.util.Calendar; import java.util.Properties; -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.pool.DruidPooledConnection; -import com.alibaba.druid.proxy.jdbc.CallableStatementProxy; -import com.alibaba.druid.proxy.jdbc.ClobProxy; -import com.alibaba.druid.proxy.jdbc.ConnectionProxy; -import com.alibaba.druid.proxy.jdbc.DataSourceProxy; -import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy; -import com.alibaba.druid.proxy.jdbc.ResultSetMetaDataProxy; -import com.alibaba.druid.proxy.jdbc.ResultSetProxy; -import com.alibaba.druid.proxy.jdbc.StatementProxy; - /** * @author wenshao */ @@ -62,7 +62,7 @@ public interface Filter extends Wrapper { void init(DataSourceProxy dataSource); - void destory(); + void destroy(); void configFromProperties(Properties properties); diff --git a/src/main/java/com/alibaba/druid/filter/FilterAdapter.java b/src/main/java/com/alibaba/druid/filter/FilterAdapter.java index 2284057e0d..a5b648dc87 100644 --- a/src/main/java/com/alibaba/druid/filter/FilterAdapter.java +++ b/src/main/java/com/alibaba/druid/filter/FilterAdapter.java @@ -15,6 +15,18 @@ */ package com.alibaba.druid.filter; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; +import com.alibaba.druid.proxy.jdbc.CallableStatementProxy; +import com.alibaba.druid.proxy.jdbc.ClobProxy; +import com.alibaba.druid.proxy.jdbc.ConnectionProxy; +import com.alibaba.druid.proxy.jdbc.DataSourceProxy; +import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy; +import com.alibaba.druid.proxy.jdbc.ResultSetMetaDataProxy; +import com.alibaba.druid.proxy.jdbc.ResultSetProxy; +import com.alibaba.druid.proxy.jdbc.StatementProxy; + +import javax.management.NotificationBroadcasterSupport; import java.io.InputStream; import java.io.Reader; import java.math.BigDecimal; @@ -40,19 +52,6 @@ import java.util.Calendar; import java.util.Map; import java.util.Properties; -import javax.management.NotificationBroadcasterSupport; - -import com.alibaba.druid.pool.DruidDataSource; -import com.alibaba.druid.pool.DruidPooledConnection; -import com.alibaba.druid.proxy.jdbc.CallableStatementProxy; -import com.alibaba.druid.proxy.jdbc.ClobProxy; -import com.alibaba.druid.proxy.jdbc.ConnectionProxy; -import com.alibaba.druid.proxy.jdbc.DataSourceProxy; -import com.alibaba.druid.proxy.jdbc.PreparedStatementProxy; -import com.alibaba.druid.proxy.jdbc.ResultSetMetaDataProxy; -import com.alibaba.druid.proxy.jdbc.ResultSetProxy; -import com.alibaba.druid.proxy.jdbc.StatementProxy; - /** * 提供JdbcFilter的基本实现,使得实现一个JdbcFilter更容易。 * @@ -65,7 +64,7 @@ public abstract class FilterAdapter extends NotificationBroadcasterSupport imple } @Override - public void destory() { + public void destroy() { } diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java index 31c3dea211..9e546106a3 100644 --- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java +++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java @@ -15,41 +15,6 @@ */ package com.alibaba.druid.pool; -import static com.alibaba.druid.util.Utils.getBoolean; - -import java.io.Closeable; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.ConcurrentModificationException; -import java.util.Date; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.ServiceLoader; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - -import javax.management.JMException; -import javax.management.ObjectName; -import javax.naming.NamingException; -import javax.naming.Reference; -import javax.naming.Referenceable; -import javax.naming.StringRefAddr; -import javax.sql.ConnectionEvent; -import javax.sql.ConnectionEventListener; -import javax.sql.ConnectionPoolDataSource; -import javax.sql.PooledConnection; - import com.alibaba.druid.Constants; import com.alibaba.druid.TransactionTimeoutException; import com.alibaba.druid.VERSION; @@ -90,6 +55,40 @@ import com.alibaba.druid.util.Utils; import com.alibaba.druid.wall.WallFilter; import com.alibaba.druid.wall.WallProviderStatValue; +import javax.management.JMException; +import javax.management.ObjectName; +import javax.naming.NamingException; +import javax.naming.Reference; +import javax.naming.Referenceable; +import javax.naming.StringRefAddr; +import javax.sql.ConnectionEvent; +import javax.sql.ConnectionEventListener; +import javax.sql.ConnectionPoolDataSource; +import javax.sql.PooledConnection; +import java.io.Closeable; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.ConcurrentModificationException; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.ServiceLoader; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import static com.alibaba.druid.util.Utils.getBoolean; + /** * @author ljw * @author wenshao @@ -126,7 +125,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat // threads private CreateConnectionThread createConnectionThread; - private DestroyConnectionThread destoryConnectionThread; + private DestroyConnectionThread destroyConnectionThread; private LogStatsThread logStatsThread; private final CountDownLatch initedLatch = new CountDownLatch(2); @@ -143,13 +142,13 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat protected JdbcDataSourceStat dataSourceStat; - private boolean useGloalDataSourceStat = false; + private boolean useGlobalDataSourceStat = false; private boolean mbeanRegistered = false; public static ThreadLocal waitNanosLocal = new ThreadLocal(); - private boolean logDiffrentThread = true; + private boolean logDifferentThread = true; public DruidDataSource(){ this(false); @@ -181,9 +180,9 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } } { - Boolean value = getBoolean(properties, "druid.useGloalDataSourceStat"); + Boolean value = getBoolean(properties, "druid.useGlobalDataSourceStat"); if (value != null) { - this.setUseGloalDataSourceStat(value); + this.setUseGlobalDataSourceStat(value); } } { @@ -235,12 +234,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } } - public boolean isUseGloalDataSourceStat() { - return useGloalDataSourceStat; + public boolean isUseGlobalDataSourceStat() { + return useGlobalDataSourceStat; } - public void setUseGloalDataSourceStat(boolean useGloalDataSourceStat) { - this.useGloalDataSourceStat = useGloalDataSourceStat; + public void setUseGlobalDataSourceStat(boolean useGlobalDataSourceStat) { + this.useGlobalDataSourceStat = useGlobalDataSourceStat; } public String getInitStackTrace() { @@ -544,8 +543,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat + maxActive); } - if (timeBetweenLogStatsMillis > 0 && useGloalDataSourceStat) { - throw new IllegalArgumentException("timeBetweenLogStatsMillis not support useGloalDataSourceStat=true"); + if (timeBetweenLogStatsMillis > 0 && useGlobalDataSourceStat) { + throw new IllegalArgumentException("timeBetweenLogStatsMillis not support useGlobalDataSourceStat=true"); } if (this.driverClass != null) { @@ -576,7 +575,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat initValidConnectionChecker(); validationQueryCheck(); - if (isUseGloalDataSourceStat()) { + if (isUseGlobalDataSourceStat()) { dataSourceStat = JdbcDataSourceStat.getGlobal(); if (dataSourceStat == null) { dataSourceStat = new JdbcDataSourceStat("Global", "Global", this.dbType); @@ -651,9 +650,9 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat } private void createAndStartDestroyThread() { - String threadName = "Druid-ConnectionPool-Destory-" + System.identityHashCode(this); - destoryConnectionThread = new DestroyConnectionThread(threadName); - destoryConnectionThread.start(); + String threadName = "Druid-ConnectionPool-Destroy-" + System.identityHashCode(this); + destroyConnectionThread = new DestroyConnectionThread(threadName); + destroyConnectionThread.start(); } protected void createAndStartCreatorThread() { @@ -1126,7 +1125,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat return; } - if (logDiffrentThread && pooledConnection.getOwnerThread() != Thread.currentThread()) { + if (logDifferentThread && pooledConnection.getOwnerThread() != Thread.currentThread()) { LOG.warn("get/close not same thread"); } @@ -1244,8 +1243,8 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat createConnectionThread.interrupt(); } - if (destoryConnectionThread != null) { - destoryConnectionThread.interrupt(); + if (destroyConnectionThread != null) { + destroyConnectionThread.interrupt(); } for (int i = 0; i < poolingCount; ++i) { @@ -1276,7 +1275,7 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat this.closeTimeMillis = System.currentTimeMillis(); for (Filter filter : filters) { - filter.destory(); + filter.destroy(); } } finally { lock.unlock(); @@ -2395,12 +2394,12 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat return super.unwrap(iface); } - public boolean isLogDiffrentThread() { - return logDiffrentThread; + public boolean isLogDifferentThread() { + return logDifferentThread; } - public void setLogDiffrentThread(boolean logDiffrentThread) { - this.logDiffrentThread = logDiffrentThread; + public void setLogDifferentThread(boolean logDifferentThread) { + this.logDifferentThread = logDifferentThread; } public DruidPooledConnection tryGetConnection() throws SQLException { diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java index 9208bc450c..2101fc8d16 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLEvalVisitorUtils.java @@ -15,23 +15,6 @@ */ package com.alibaba.druid.sql.visitor; -import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_ERROR; -import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_EXPR; -import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_VALUE; -import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_VALUE_NULL; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; - import com.alibaba.druid.DruidRuntimeException; import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLExpr; @@ -95,6 +78,23 @@ import com.alibaba.druid.util.Utils; import com.alibaba.druid.wall.spi.WallVisitorUtils; import com.alibaba.druid.wall.spi.WallVisitorUtils.WallConditionContext; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; + +import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_ERROR; +import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_EXPR; +import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_VALUE; +import static com.alibaba.druid.sql.visitor.SQLEvalVisitor.EVAL_VALUE_NULL; + public class SQLEvalVisitorUtils { private static Map functions = new HashMap(); @@ -209,7 +209,7 @@ public class SQLEvalVisitorUtils { functions.put("trim", Trim.instance); functions.put("ucase", Ucase.instance); functions.put("upper", Ucase.instance); - functions.put("ucase", Lcase.instance); + functions.put("lcase", Lcase.instance); functions.put("lower", Lcase.instance); functions.put("hex", Hex.instance); functions.put("unhex", Unhex.instance); diff --git a/src/test/java/com/alibaba/druid/TestRollBack.java b/src/test/java/com/alibaba/druid/TestRollBack.java index 9a07206a86..08cae1c912 100644 --- a/src/test/java/com/alibaba/druid/TestRollBack.java +++ b/src/test/java/com/alibaba/druid/TestRollBack.java @@ -1,11 +1,9 @@ package com.alibaba.druid; -import java.beans.PropertyVetoException; -import java.sql.SQLException; - -import org.junit.Assert; - +import com.alibaba.druid.pool.DruidDataSource; +import com.mchange.v2.c3p0.ComboPooledDataSource; import org.junit.AfterClass; +import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; @@ -17,8 +15,8 @@ import org.nutz.dao.impl.NutDao; import org.nutz.trans.Atom; import org.nutz.trans.Trans; -import com.alibaba.druid.pool.DruidDataSource; -import com.mchange.v2.c3p0.ComboPooledDataSource; +import java.beans.PropertyVetoException; +import java.sql.SQLException; /* * Copyright 1999-2011 Alibaba Group Holding Ltd. @@ -79,7 +77,7 @@ public class TestRollBack { } @AfterClass - public static void destory() { + public static void destroy() { c3p0.close(); druid.close(); } diff --git a/src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGloalDataSourceStat.java b/src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGlobalDataSourceStat.java similarity index 56% rename from src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGloalDataSourceStat.java rename to src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGlobalDataSourceStat.java index 0972a1379d..e6d97441e4 100644 --- a/src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGloalDataSourceStat.java +++ b/src/test/java/com/alibaba/druid/bvt/pool/property/PropertyTest_useGlobalDataSourceStat.java @@ -8,23 +8,23 @@ import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.util.JdbcUtils; -public class PropertyTest_useGloalDataSourceStat extends TestCase { +public class PropertyTest_useGlobalDataSourceStat extends TestCase { private DruidDataSource dataSource; public void test_true() { - System.setProperty("druid.useGloalDataSourceStat", "true"); + System.setProperty("druid.useGlobalDataSourceStat", "true"); dataSource = new DruidDataSource(); - Assert.assertTrue(dataSource.isUseGloalDataSourceStat()); + Assert.assertTrue(dataSource.isUseGlobalDataSourceStat()); } public void test_false() { - System.setProperty("druid.useGloalDataSourceStat", "false"); + System.setProperty("druid.useGlobalDataSourceStat", "false"); dataSource = new DruidDataSource(); - Assert.assertFalse(dataSource.isUseGloalDataSourceStat()); + Assert.assertFalse(dataSource.isUseGlobalDataSourceStat()); } protected void tearDown() throws Exception { - System.clearProperty("druid.useGloalDataSourceStat"); + System.clearProperty("druid.useGlobalDataSourceStat"); JdbcUtils.close(dataSource); } } diff --git a/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest0.java b/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest0.java index d0a24ba237..5c93aaf04a 100644 --- a/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest0.java +++ b/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest0.java @@ -28,12 +28,12 @@ public class GlobalStatTest0 extends TestCase { dataSourceA = new DruidDataSource(); dataSourceA.setUrl("jdbc:mock:xx_A"); dataSourceA.setFilters("stat"); - dataSourceA.setUseGloalDataSourceStat(true); + dataSourceA.setUseGlobalDataSourceStat(true); dataSourceB = new DruidDataSource(); dataSourceB.setUrl("jdbc:mock:xx_A"); dataSourceB.setFilters("stat"); - dataSourceB.setUseGloalDataSourceStat(true); + dataSourceB.setUseGlobalDataSourceStat(true); } protected void tearDown() throws Exception { diff --git a/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest1.java b/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest1.java index 74199be9ca..5008cbbf3c 100644 --- a/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest1.java +++ b/src/test/java/com/alibaba/druid/bvt/proxy/filter/GlobalStatTest1.java @@ -25,12 +25,12 @@ public class GlobalStatTest1 extends TestCase { dataSourceA = new DruidDataSource(); dataSourceA.setUrl("jdbc:mock:xx_A"); dataSourceA.setFilters("stat"); - dataSourceA.setUseGloalDataSourceStat(true); + dataSourceA.setUseGlobalDataSourceStat(true); dataSourceB = new DruidDataSource(); dataSourceB.setUrl("jdbc:mock:xx_A"); dataSourceB.setFilters("stat"); - dataSourceB.setUseGloalDataSourceStat(true); + dataSourceB.setUseGlobalDataSourceStat(true); } protected void tearDown() throws Exception {