Index: src/java/org/jamwiki/db/DatabaseConnection.java
===================================================================
--- src/java/org/jamwiki/db/DatabaseConnection.java	(revisione 1488)
+++ src/java/org/jamwiki/db/DatabaseConnection.java	(copia locale)
@@ -326,10 +326,33 @@
 	public static void testDatabase(String driver, String url, String user, String password, boolean existence) throws Exception {
 		Connection conn = null;
 		try {
-			if (StringUtils.hasText(driver)) {
-				Class.forName(driver, true, Thread.currentThread().getContextClassLoader());
+			if (url.startsWith("jdbc:")) {
+				if (!poolInitialized) {
+					setUpConnectionPool(url, user, password);
+				}
+				if (StringUtils.hasText(driver)) {
+					Class.forName(driver, true, Thread.currentThread().getContextClassLoader());
+				}
+				conn = DriverManager.getConnection(url, user, password);
+			} else {
+				// Use Reflection here to avoid a compile time dependency
+				// on the DataSource interface. It's not available by default
+				// on j2se 1.3.
+				Context ctx = new InitialContext();
+				Object dataSource = ctx.lookup(url);
+				Method m;
+				Object args[];
+				if (user.length() == 0) {
+					Class[] parameterTypes = null;
+					m = dataSource.getClass().getMethod("getConnection", parameterTypes);
+					args = new Object[]{};
+				} else {
+					m = dataSource.getClass().getMethod("getConnection", new Class[]{String.class, String.class});
+					args = new Object[]{user, password};
+				}
+				conn = (Connection)m.invoke(dataSource, args);
 			}
-			conn = DriverManager.getConnection(url, user, password);
+
 			if (existence) {
 				// test to see if database exists
 				executeQuery(WikiDatabase.getExistenceValidationQuery(), conn);
