KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > smartlib > pool > core > PoolTestFixture


1 package org.smartlib.pool.core;
2
3 import junit.framework.TestCase;
4 import org.apache.log4j.LogManager;
5 import org.apache.log4j.PropertyConfigurator;
6 import org.apache.log4j.Logger;
7 import org.smartlib.pool.core.PoolConstants;
8 import org.smartlib.pool.core.PoolConfig;
9
10 import java.util.Properties JavaDoc;
11 import java.sql.Connection JavaDoc;
12 import java.sql.Statement JavaDoc;
13 import java.sql.ResultSet JavaDoc;
14 import java.sql.PreparedStatement JavaDoc;
15
16
17 /**
18  * Created by IntelliJ IDEA.
19  * User: kerneldebugger
20  * Date: Sep 28, 2005
21  * Time: 8:54:09 PM
22  * To change this template use File | Settings | File Templates.
23  */

24 public class PoolTestFixture extends TestCase {
25
26     Logger logger = Logger.getLogger(PoolTestFixture.class);
27
28     protected PoolConfig getBasicPoolConfig() {
29         PoolConfig config = new PoolConfig();
30         config.setMultiPoolName("MultiPool-1");
31         config.setAllowAnonymousConnections(true);
32         config.setAutoClose(true);
33         PoolConfig.ConnectionString connectionString = new PoolConfig.ConnectionString();
34         connectionString.setName("MultiPool.Pool-1");
35         connectionString.setConnectString("jdbc:oracle:thin:@db01.dev:1521:dev1");
36         config.setConnectionString(new PoolConfig.ConnectionString[] {connectionString});
37         config.setDefaultPool(true);
38         config.setDetectLeaks(false);
39         config.setDriver("oracle.jdbc.driver.OracleDriver");
40         config.setMaxConnections(3);
41         config.setMinConnections(1);
42         config.setPassword("passw0rd");
43         config.setUserName("sachin");
44         return config;
45     }
46
47     protected PoolConfig getPoolConfigWithMultiplePools() {
48         PoolConfig config = getBasicPoolConfig();
49
50         PoolConfig.ConnectionString connectionString = new PoolConfig.ConnectionString();
51         connectionString.setName("MultiPool.Pool-1");
52         connectionString.setConnectString("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.102.15.212)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DEV)(INSTANCE_NAME=DEV1)))");
53         PoolConfig.ConnectionString connectionString1 = new PoolConfig.ConnectionString();
54         connectionString1.setConnectString("jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=10.102.15.213)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=DEV)(INSTANCE_NAME=DEV1)))");
55         connectionString1.setName("MultiPool.Pool-2");
56         config.setConnectionString(new PoolConfig.ConnectionString[] {connectionString, connectionString1});
57         return config;
58
59     }
60
61     protected PoolConfig getPoolConfigWithMultipleExternalPools() {
62         PoolConfig config = getBasicPoolConfig();
63
64         PoolConfig.ConnectionLoaderClass connectionLoaderClass = new PoolConfig.ConnectionLoaderClass();
65
66         connectionLoaderClass.setName("MultiPool.ConnectionProviderImpl-1");
67         connectionLoaderClass.setConnectionLoaderClass("org.smartlib.pool.core.ConnectionProviderImpl1");
68
69         PoolConfig.ConnectionLoaderClass connectionLoaderClass1 = new PoolConfig.ConnectionLoaderClass();
70         connectionLoaderClass1.setConnectionLoaderClass("org.smartlib.pool.core.ConnectionProviderImpl2");
71         connectionLoaderClass1.setName("MultiPool.ConnectionProviderImpl-2");
72         config.setConnectionLoaderClass(new PoolConfig.ConnectionLoaderClass[] {connectionLoaderClass, connectionLoaderClass1});
73         return config;
74
75     }
76
77     protected void testConnection(Connection JavaDoc conn) throws Exception JavaDoc {
78
79         logger.debug("Testing Connection: " + conn);
80         Statement JavaDoc stmt = null;
81         try {
82             stmt = conn.createStatement();
83             stmt.execute("Select count(*) from version");
84             logger.debug("Test Passed: " + conn);
85         } finally {
86             if (stmt != null) {
87                 try {
88                     stmt.close();
89                 } catch (Exception JavaDoc e) {
90                     //Ignore
91
}
92             }
93         }
94
95     }
96
97     protected void setUp() throws Exception JavaDoc {
98         super.setUp();
99         LogManager.resetConfiguration();
100         Properties JavaDoc log4j = new Properties JavaDoc();
101
102         // ----------Basic dont change
103
log4j.put("log4j.appender.A1", "org.apache.log4j.DailyRollingFileAppender");
104         log4j.put("log4j.appender.A1.File", "c:\\smartpool.log");
105         log4j.put("log4j.appender.A1.layout", "org.apache.log4j.PatternLayout");
106         log4j.put("log4j.appender.A1.layout.ConversionPattern", "[%d{ISO8601}] <%t> %-5p %c: %m%n");
107         log4j.put("log4j.appender.A1.DatePattern", "'.'yyyy-MM-dd");
108         log4j.put("log4j.appender.SYSTEMOUT", "org.apache.log4j.ConsoleAppender");
109         log4j.put("log4j.appender.SYSTEMOUT.layout", "org.apache.log4j.PatternLayout");
110         log4j.put("log4j.appender.SYSTEMOUT.layout.ConversionPattern", "[%d{ISO8601}] <%t> %-5p %c: %m%n");
111         log4j.put("log4j.appender.KILL", "org.apache.log4j.FileAppender");
112         log4j.put("log4j.appender.KILL.File", "/dev/null");
113         log4j.put("log4j.appender.KILL.layout", "org.apache.log4j.PatternLayout");
114         log4j.put("log4j.appender.KILL.layout.ConversionPattern", "[%d] %m%n");
115         //--------------------------
116

117         log4j.put("log4j.rootLogger", "WARN, SYSTEMOUT");
118         log4j.put("log4j.logger.org.smartlib", "DEBUG");
119
120         PropertyConfigurator.configure(log4j);
121         if (logger.isDebugEnabled()) {
122             logger.debug("Log4J Configured");
123         }
124
125         //Set the test config file name to main config file name
126
System.setProperty(PoolConstants.CONFIG_FILE_SYSTEM_PROPERTY, System.getProperty(PoolConstants.TEST_CONFIG_FILE_SYSTEM_PROPERTY));
127
128
129     }
130
131     /**
132      * Gets the instance name from the V$instance view, the connected user should have the required prevelige
133      * @param conn
134      * @return
135      * @throws Exception
136      */

137     protected String JavaDoc getInstanceName(Connection JavaDoc conn) throws Exception JavaDoc {
138         PreparedStatement JavaDoc stmt = null;
139         ResultSet JavaDoc rs = null;
140         try {
141             stmt = conn.prepareStatement("select instance_name from v$instance");
142             rs = stmt.executeQuery();
143             if (rs.next()) {
144                 return rs.getString(1);
145             }
146             else {
147                 throw new Exception JavaDoc("No Rows found, should never happen");
148             }
149         }
150         finally {
151             stmt.close();
152             rs.close();
153         }
154     }
155
156 }
157
Popular Tags