Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 17697 invoked from network); 10 Jun 2008 20:31:30 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 10 Jun 2008 20:31:30 -0000 Received: (qmail 91952 invoked by uid 500); 10 Jun 2008 20:31:33 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 91911 invoked by uid 500); 10 Jun 2008 20:31:32 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 91901 invoked by uid 99); 10 Jun 2008 20:31:32 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Jun 2008 13:31:32 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 10 Jun 2008 20:30:51 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 889DB23889BA; Tue, 10 Jun 2008 13:31:09 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r666311 - /geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java Date: Tue, 10 Jun 2008 20:31:09 -0000 To: scm@geronimo.apache.org From: jbohn@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080610203109.889DB23889BA@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jbohn Date: Tue Jun 10 13:31:09 2008 New Revision: 666311 URL: http://svn.apache.org/viewvc?rev=666311&view=rev Log: merge 666003 from samples/trunk - minor code cleanup Modified: geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java Modified: geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java URL: http://svn.apache.org/viewvc/geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java?rev=666311&r1=666310&r2=666311&view=diff ============================================================================== --- geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java (original) +++ geronimo/samples/branches/2.1/samples/dbtester/dbtester-war/src/main/java/org/apache/geronimo/samples/dbtester/beans/DBManagerBean.java Tue Jun 10 13:31:09 2008 @@ -25,7 +25,6 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -34,43 +33,27 @@ import org.apache.geronimo.gbean.AbstractName; import org.apache.geronimo.gbean.AbstractNameQuery; -import org.apache.geronimo.kernel.GBeanNotFoundException; -import org.apache.geronimo.kernel.InternalKernelException; import org.apache.geronimo.kernel.Kernel; import org.apache.geronimo.kernel.KernelRegistry; -import org.apache.geronimo.kernel.NoSuchOperationException; import org.apache.geronimo.naming.ResourceSource; public class DBManagerBean { - private Map poolMap; - private Map tableMap; + private final Map poolMap = new HashMap(); public DBManagerBean() { - poolMap = new HashMap(); - init(); - } - - private void init() { Kernel kernel = KernelRegistry.getSingleKernel(); - Set cfList = kernel.listGBeans(new AbstractNameQuery(ResourceSource.class.getName())); + Set cfList = kernel.listGBeans(new AbstractNameQuery(ResourceSource.class.getName())); - for (Iterator iterator = cfList.iterator(); iterator.hasNext();) { + for (AbstractName name : cfList) { - AbstractName name = (AbstractName) iterator.next(); try { Object rs = kernel.invoke(name, "$getResource", new Object[]{}, new String[]{}); - if (rs instanceof javax.sql.DataSource) { + if (rs instanceof DataSource) { DataSource ds = (DataSource) rs; poolMap.put(name.getArtifact().getArtifactId(), ds); } - } catch (GBeanNotFoundException e) { - e.printStackTrace(); - } catch (NoSuchOperationException e) { - e.printStackTrace(); - } catch (InternalKernelException e) { - e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } @@ -83,10 +66,10 @@ public Map getTableList(String poolName) throws SQLException { - tableMap = new HashMap(); + Map> tableMap = new HashMap>(); if (poolMap.containsKey(poolName)) { - DataSource ds = (DataSource) poolMap.get(poolName); + DataSource ds = poolMap.get(poolName); Connection con = null; try { @@ -99,19 +82,17 @@ while (rs.next()) { String schemaName = rs.getString("TABLE_SCHEM"); String tableName = rs.getString("TABLE_NAME"); - ArrayList tableList = null; + List tableList; if (tableMap.containsKey(schemaName)) { - tableList = (ArrayList) tableMap.get(schemaName); + tableList = tableMap.get(schemaName); tableList.add(tableName); } else { - tableList = new ArrayList(); + tableList = new ArrayList(); tableList.add(tableName); } tableMap.put(schemaName, tableList); } - } catch (SQLException e) { - throw e; } finally { if (con != null) { try { @@ -126,43 +107,56 @@ return tableMap; } - public List getTableContents(String poolName, String schemaName, String tableName) throws SQLException { - - ArrayList matrix = new ArrayList(); - - DataSource ds = (DataSource) poolMap.get(poolName); - Connection con = null; - - con = ds.getConnection(); + public List> getTableContents(String poolName, String schemaName, String tableName) throws SQLException { - String SQL = "SELECT * FROM "; + List> matrix = new ArrayList>(); - if (schemaName == null || schemaName.equals("null")) { - SQL += tableName; //Problem comes with MySQL - } else { - SQL += (schemaName + "." + tableName); + DataSource ds = poolMap.get(poolName); + if (ds == null) { + throw new IllegalArgumentException("no pool named: " + poolName); } + Connection con = ds.getConnection(); - PreparedStatement pStmt = con.prepareStatement(SQL); - ResultSet rs = pStmt.executeQuery(); + try { + String SQL = "SELECT * FROM "; - ResultSetMetaData metaData = rs.getMetaData(); - int columns = metaData.getColumnCount(); + if (schemaName == null || schemaName.equals("null")) { + SQL += tableName; //Problem comes with MySQL + } else { + SQL += (schemaName + "." + tableName); + } - ArrayList header = new ArrayList(); - for (int i = 1; i <= columns; i++) { - String colName = metaData.getColumnLabel(i); - header.add(colName); - } - matrix.add(header); + PreparedStatement pStmt = con.prepareStatement(SQL); + try { + ResultSet rs = pStmt.executeQuery(); + + try { + ResultSetMetaData metaData = rs.getMetaData(); + int columns = metaData.getColumnCount(); + + ArrayList header = new ArrayList(); + for (int i = 1; i <= columns; i++) { + String colName = metaData.getColumnLabel(i); + header.add(colName); + } + matrix.add(header); - while (rs.next()) { - ArrayList row = new ArrayList(); + while (rs.next()) { + ArrayList row = new ArrayList(); - for (int i = 1; i <= columns; i++) { - row.add(rs.getString(i)); + for (int i = 1; i <= columns; i++) { + row.add(rs.getString(i)); + } + matrix.add(row); + } + } finally { + rs.close(); + } + } finally { + pStmt.close(); } - matrix.add(row); + } finally { + con.close(); } return matrix;