From: <mwl...@us...> - 2009-12-23 17:48:20
|
Revision: 998 http://cishell.svn.sourceforge.net/cishell/?rev=998&view=rev Author: mwlinnem Date: 2009-12-23 17:48:13 +0000 (Wed, 23 Dec 2009) Log Message: ----------- Minor changes based on Patrick's suggestions. Reviewed by Patrick. Modified Paths: -------------- trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/DerbyDatabaseService.java trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/ExternalDatabase.java trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/InternalDerbyDatabase.java Modified: trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/DerbyDatabaseService.java =================================================================== --- trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/DerbyDatabaseService.java 2009-12-23 16:07:47 UTC (rev 997) +++ trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/DerbyDatabaseService.java 2009-12-23 17:48:13 UTC (rev 998) @@ -3,10 +3,10 @@ import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; +import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Hashtable; -import java.util.Iterator; import java.util.List; import javax.sql.DataSource; @@ -45,7 +45,7 @@ * internal databases are created when requested by outside services, * and are cleaned and shut down when this service is stopped. */ - private List internalDatabases = new ArrayList(); + private List<InternalDerbyDatabase> internalDatabases = new ArrayList<InternalDerbyDatabase>(); public final void start(BundleContext context) throws Exception { @@ -55,7 +55,7 @@ */ System.setProperty("derby.system.home", DATABASE_DIRECTORY); - //allow the database service to be found by other services/plugins + //Allow the database service to be found by other services/plugins databaseServiceRegistration = context.registerService( DatabaseService.class.getName(), this, new Hashtable()); } @@ -64,10 +64,9 @@ //disallow the database service to be found by other services/plugins this.databaseServiceRegistration.unregister(); - //try to clean out the internal databases and shut them down. + //Clean out the internal databases and shut them down. try { - for (Iterator it = internalDatabases.iterator(); it.hasNext();) { - InternalDerbyDatabase internalDatabase = (InternalDerbyDatabase) it.next(); + for (InternalDerbyDatabase internalDatabase : internalDatabases) { Connection internalDatabaseConnection = internalDatabase.getConnection(); removeAllNonSystemDatabaseTables(internalDatabaseConnection); internalDatabase.shutdown(); @@ -90,7 +89,7 @@ try { //connect to and create a 'new' database String databaseName = INTERNAL_DB_NAME_PREFIX + id; - Database db = new InternalDerbyDatabase(createNewInternalDataSource(databaseName)); + InternalDerbyDatabase db = new InternalDerbyDatabase(createNewInternalDataSource(databaseName)); //if this database existed on disk from a previous session, clean it to be like new removeAllNonSystemDatabaseTables(db.getConnection()); @@ -160,7 +159,8 @@ private static final int TABLE_NAME_INDEX = 3; private static final String NONSYSTEM_SCHEMA_NAME = "APP"; - private void removeAllNonSystemDatabaseTables(Connection dbConnection) throws Exception { + //(removes all non-system tables from the provided databases) + private void removeAllNonSystemDatabaseTables(Connection dbConnection) throws SQLException { DatabaseMetaData dbMetadata = dbConnection.getMetaData(); ResultSet allTableNames = dbMetadata.getTables(null, null, null, null); @@ -168,10 +168,8 @@ while (allTableNames.next()) { if (!hasSystemSchema(allTableNames.getString(SCHEMA_NAME_INDEX))) { - String removeTableSQL = - "DROP TABLE " - + NONSYSTEM_SCHEMA_NAME + "." + allTableNames.getString(TABLE_NAME_INDEX); - removeTables.addBatch(removeTableSQL); + String dropTableQuery = allTableNames.getString(TABLE_NAME_INDEX); + removeTables.addBatch(dropTableQuery); } } @@ -181,4 +179,11 @@ private boolean hasSystemSchema(String tableSchemaName) { return tableSchemaName.indexOf(NONSYSTEM_SCHEMA_NAME) == -1; } + + private String formDropTableQuery(String tableName) { + String removeTableSQL = + "DROP TABLE " + + NONSYSTEM_SCHEMA_NAME + "." + tableName; + return removeTableSQL; + } } Modified: trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/ExternalDatabase.java =================================================================== --- trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/ExternalDatabase.java 2009-12-23 16:07:47 UTC (rev 997) +++ trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/ExternalDatabase.java 2009-12-23 17:48:13 UTC (rev 998) @@ -24,7 +24,7 @@ * Will want to discuss security implications here. */ public Connection getConnection(String username, String password) - throws SQLException { + throws SQLException { return dataSource.getConnection(username, password); } } Modified: trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/InternalDerbyDatabase.java =================================================================== --- trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/InternalDerbyDatabase.java 2009-12-23 16:07:47 UTC (rev 997) +++ trunk/core/org.cishell.reference.service.database/src/org/cishell/reference/service/database/InternalDerbyDatabase.java 2009-12-23 17:48:13 UTC (rev 998) @@ -26,7 +26,5 @@ DerbyDatabaseService.DERBY_PROTOCOL + DerbyDatabaseService.DEFAULT_SHUTDOWN_CONNECTION_STRING; DriverManager.getConnection(shutdownDatabaseCommand); - - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |