Skip to content

Commit

Permalink
0.1.19-SNAPSHOT && add test && test library
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Feb 2, 2012
1 parent ddd2925 commit 2bd7262
Show file tree
Hide file tree
Showing 9 changed files with 340 additions and 4 deletions.
11 changes: 10 additions & 1 deletion README
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,13 @@ mvn install:install-file -Dfile=lib/oracle/10.2.0.2/ojdbc14_g.jar -DgroupId=com.
mvn install:install-file -Dfile=lib/oracle/10.2.0.5/ojdbc14_g.jar -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.5 -Dpackaging=jar -DgeneratePom=true

mvn install:install-file -Dfile=lib/oracle/11.2.0.3/ojdbc5_g.jar -DgroupId=com.oracle -DartifactId=ojdbc5 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/oracle/11.2.0.3/ojdbc6_g.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/oracle/11.2.0.3/ojdbc6_g.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.3 -Dpackaging=jar -DgeneratePom=true

mvn install:install-file -Dfile=lib/proxool/proxool-0.9.1.jar -DgroupId=proxool -DartifactId=proxool -Dversion=0.9.1 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/proxool/proxool-cglib.jar -DgroupId=proxool -DartifactId=proxool-cglib -Dversion=0.9.1 -Dpackaging=jar -DgeneratePom=true

mvn install:install-file -Dfile=lib/jboss/4.2.3/jboss-common.jar -DgroupId=jboss -DartifactId=jboss-common -Dversion=4.2.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/jboss/4.2.3/jboss-remoting.jar -DgroupId=jboss -DartifactId=jboss-remoting -Dversion=4.2.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/jboss/4.2.3/jboss-serialization.jar -DgroupId=jboss -DartifactId=jboss-serialization -Dversion=4.2.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/jboss/4.2.3/jboss.jar -DgroupId=jboss -DartifactId=jboss -Dversion=4.2.3 -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -Dfile=lib/jboss/4.2.3/jboss-transaction.jar -DgroupId=jboss -DartifactId=jboss-transaction -Dversion=4.2.3 -Dpackaging=jar -DgeneratePom=true
Binary file added lib/proxool/proxool-0.9.1-sources.jar
Binary file not shown.
Binary file added lib/proxool/proxool-0.9.1.jar
Binary file not shown.
Binary file added lib/proxool/proxool-cglib.jar
Binary file not shown.
31 changes: 28 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>0.1.18</version>
<version>0.1.19-SNAPSHOT</version>

<name>druid</name>

Expand Down Expand Up @@ -54,7 +54,7 @@

<url>http://code.alibabatech.com/wiki/display/Druid/Home</url>
<issueManagement>
<system>JIRA</system>
<system>Jira</system>
<url>http://code.alibabatech.com/jira/browse/DRUID</url>
</issueManagement>
<build>
Expand Down Expand Up @@ -278,12 +278,37 @@
<version>0.7.1.RELEASE</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-benchmark</artifactId>
<version>0.7.1-rc2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jolbox</groupId>
<artifactId>bonecp-test-commons</artifactId>
<version>0.7.1-rc2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>proxool</groupId>
<artifactId>proxool</artifactId>
<version>0.9.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>proxool</groupId>
<artifactId>proxool-cglib</artifactId>
<version>0.9.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<scope>test</scope>
</dependency>

</dependencies>
</project>
15 changes: 15 additions & 0 deletions src/test/java/com/alibaba/druid/TestForZY.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.alibaba.druid;

import java.util.HashMap;
import java.util.Map;


public class TestForZY {
public void foo() throws Exception {
Map<String, Map.Entry<String, Boolean>> m = new HashMap<String, Map.Entry<String, Boolean>>();
}

public static class A<T> {
private T value;
}
}
28 changes: 28 additions & 0 deletions src/test/java/com/alibaba/druid/TestLinkedTransferQueue.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.alibaba.druid;

import junit.framework.TestCase;

import com.alibaba.druid.util.LinkedTransferQueue;

public class TestLinkedTransferQueue extends TestCase {

public void test_LinkedTransferQueue() throws Exception {
final LinkedTransferQueue<String> q = new LinkedTransferQueue<String>();

Thread thread = new Thread() {

public void run() {
for (;;) {
try {
q.take();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
thread.start();
q.put("1");
}
}
130 changes: 130 additions & 0 deletions src/test/java/com/alibaba/druid/pool/bonecp/TestLRU.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
package com.alibaba.druid.pool.bonecp;

import java.lang.reflect.Field;
import java.sql.Connection;

import javax.sql.DataSource;

import junit.framework.TestCase;

import org.apache.commons.dbcp.BasicDataSource;
import org.logicalcobwebs.proxool.ProxoolDataSource;

import com.alibaba.druid.mock.MockConnection;
import com.alibaba.druid.pool.DruidDataSource;
import com.jolbox.bonecp.BoneCPDataSource;
import com.jolbox.bonecp.ConnectionHandle;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.impl.NewProxyConnection;

public class TestLRU extends TestCase {

public void f_test_boneCP() throws Exception {
BoneCPDataSource ds = new BoneCPDataSource();
ds.setJdbcUrl("jdbc:mock:test");
ds.setPartitionCount(1);
ds.setMaxConnectionsPerPartition(10);
ds.setMinConnectionsPerPartition(0);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_druid() throws Exception {
DruidDataSource ds = new DruidDataSource();
ds.setUrl("jdbc:mock:test");
ds.setMaxIdle(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_dbcp() throws Exception {
BasicDataSource ds = new BasicDataSource();
ds.setUrl("jdbc:mock:test");
ds.setMaxIdle(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_c3p0() throws Exception {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setJdbcUrl("jdbc:mock:test");
ds.setMaxPoolSize(10);
ds.setMinPoolSize(0);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_proxool() throws Exception {
ProxoolDataSource ds = new ProxoolDataSource();
ds.setDriver("com.alibaba.druid.mock.MockDriver");
ds.setDriverUrl("jdbc:mock:test");
ds.setMaximumConnectionCount(10);
ds.setMinimumConnectionCount(0);
ds.setUser("user");
ds.setPassword("password");

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

// public void test_jboss() throws Exception {
// LocalTxDataSource ds = new LocalTxDataSource();
// ds.setDriverClass("com.alibaba.druid.mock.MockDriver");
// ds.setConnectionURL("jdbc:mock:test");
// ds.setMaxSize(10);
// ds.setMinSize(0);
// ds.setUserName("user");
// ds.setPassword("password");
//
// for (int i = 0; i < 10; ++i) {
// f(ds, 5);
// System.out.println("--------------------------------------------");
// }
// }

public static void f(DataSource ds, int count) throws Exception {
Connection[] connections = new Connection[count];
for (int i = 0; i < count; ++i) {
connections[i] = ds.getConnection();
}

for (int i = 0; i < count; ++i) {
System.out.println(unwrap(connections[i]).getId());
}

for (int i = count - 1; i >= 0; --i) {
connections[i].close();
}
}

public static MockConnection unwrap(Connection conn) throws Exception {
if (conn instanceof ConnectionHandle) {
ConnectionHandle handle = (ConnectionHandle) conn;
return (MockConnection) handle.getInternalConnection();
}
if (conn instanceof NewProxyConnection) {
NewProxyConnection handle = (NewProxyConnection) conn;

Field field = NewProxyConnection.class.getDeclaredField("inner");
field.setAccessible(true);
return (MockConnection) field.get(handle);
}

return conn.unwrap(MockConnection.class);
}

}
129 changes: 129 additions & 0 deletions src/test/java/com/alibaba/druid/pool/bonecp/TestPSCache.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
package com.alibaba.druid.pool.bonecp;

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.sql.DataSource;

import junit.framework.TestCase;

import org.apache.commons.dbcp.BasicDataSource;
import org.logicalcobwebs.proxool.ProxoolDataSource;

import com.alibaba.druid.mock.MockConnection;
import com.alibaba.druid.mock.MockPreparedStatement;
import com.alibaba.druid.pool.DruidDataSource;
import com.jolbox.bonecp.BoneCPDataSource;
import com.jolbox.bonecp.ConnectionHandle;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.impl.NewProxyConnection;
import com.mchange.v2.c3p0.impl.NewProxyPreparedStatement;

public class TestPSCache extends TestCase {

public void test_boneCP() throws Exception {
BoneCPDataSource ds = new BoneCPDataSource();
ds.setJdbcUrl("jdbc:mock:test");
ds.setPartitionCount(1);
ds.setMaxConnectionsPerPartition(10);
ds.setMinConnectionsPerPartition(0);
ds.setPreparedStatementsCacheSize(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_druid() throws Exception {
DruidDataSource ds = new DruidDataSource();
ds.setUrl("jdbc:mock:test");
ds.setMaxIdle(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_dbcp() throws Exception {
BasicDataSource ds = new BasicDataSource();
ds.setUrl("jdbc:mock:test");
ds.setMaxIdle(10);
ds.setPoolPreparedStatements(true);
ds.setMaxOpenPreparedStatements(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_c3p0() throws Exception {
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setJdbcUrl("jdbc:mock:test");
ds.setMaxPoolSize(10);
ds.setMinPoolSize(0);
ds.setMaxStatements(10);

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public void f_test_proxool() throws Exception {
ProxoolDataSource ds = new ProxoolDataSource();
ds.setDriver("com.alibaba.druid.mock.MockDriver");
ds.setDriverUrl("jdbc:mock:test");
ds.setMaximumConnectionCount(10);
ds.setMinimumConnectionCount(0);
ds.setUser("user");
ds.setPassword("password");

for (int i = 0; i < 10; ++i) {
f(ds, 5);
System.out.println("--------------------------------------------");
}
}

public static void f(DataSource ds, int count) throws Exception {
Connection conn = ds.getConnection();

for (int i = 0; i < count; ++i) {
PreparedStatement stmt = conn.prepareStatement("SELECT 1");
System.out.println(System.identityHashCode(unwrap(stmt)));
stmt.close();
}

conn.close();
}

public static MockPreparedStatement unwrap(PreparedStatement stmt) throws Exception {
if (stmt instanceof NewProxyPreparedStatement) {
Field field = NewProxyPreparedStatement.class.getDeclaredField("inner");
field.setAccessible(true);
return (MockPreparedStatement) field.get(stmt);
}
MockPreparedStatement mockStmt = stmt.unwrap(MockPreparedStatement.class);
return mockStmt;
}

public static MockConnection unwrap(Connection conn) throws Exception {
if (conn instanceof ConnectionHandle) {
ConnectionHandle handle = (ConnectionHandle) conn;
return (MockConnection) handle.getInternalConnection();
}
if (conn instanceof NewProxyConnection) {
NewProxyConnection handle = (NewProxyConnection) conn;

Field field = NewProxyConnection.class.getDeclaredField("inner");
field.setAccessible(true);
return (MockConnection) field.get(handle);
}

return conn.unwrap(MockConnection.class);
}

}

0 comments on commit 2bd7262

Please sign in to comment.