Print

Print


Author: [log in to unmask]
Date: Fri Sep  4 14:54:39 2015
New Revision: 3526

Log:
Remove unused methods; setup static state in getInstance and resetInstance methods instead of constructor; clear conditions cache between runs.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	Fri Sep  4 14:54:39 2015
@@ -11,7 +11,6 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
-import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -118,7 +117,10 @@
         if (!ConditionsManager.isSetup() || !(ConditionsManager.defaultInstance() instanceof DatabaseConditionsManager)) {
             logger.finest("creating new DatabaseConditionsManager instance");
             // Create a new instance if necessary, which will install it globally as the default.
-            new DatabaseConditionsManager();
+            DatabaseConditionsManager dbManager = new DatabaseConditionsManager();
+
+            // Register default conditions manager.
+            ConditionsManager.setDefaultConditionsManager(dbManager);
         }
 
         // Get the instance back from the default conditions system and check that the type is correct now.
@@ -156,7 +158,12 @@
      */
     public static synchronized void resetInstance() {
         logger.finest("DatabaseConditionsManager instance is being reset");
-        new DatabaseConditionsManager();
+        
+        // Create a new instance if necessary, which will install it globally as the default.
+        DatabaseConditionsManager dbManager = new DatabaseConditionsManager();
+
+        // Register default conditions manager.
+        ConditionsManager.setDefaultConditionsManager(dbManager);
     }
 
     /**
@@ -277,30 +284,31 @@
     /**
      * Class constructor. Calling this will automatically register this manager as the global default.
      */
-    private DatabaseConditionsManager() {
+    protected DatabaseConditionsManager() {
         
         // Register detector conditions converter.
+        logger.config("registering detector converter");
         this.registerConditionsConverter(new DetectorConditionsConverter());
         
         // Setup connection from system property pointing to a file, if it was set.
+        logger.config("checking for file connection system property");
         this.setupConnectionSystemPropertyFile();
         
         // Setup connection from system property pointing to a resource, if it was set.
+        logger.config("checking for resource connection system property");
         this.setupConnectionSystemPropertyResource();
-        
-        // Register default conditions manager.
-        ConditionsManager.setDefaultConditionsManager(this);
-        
+                
         // Set run to invalid number.
         this.setRun(-1);
         
         // Register conditions converters.
         for (final AbstractConditionsObjectConverter converter : this.converters.values()) {
-            // logger.fine("registering converter for " + converter.getType());
+            logger.config("registering converter for " + converter.getType());
             this.registerConditionsConverter(converter);
         }
         
         // Add the SVT detector setup object as a listener.
+        logger.config("adding SVT setup");
         this.addConditionsListener(this.svtSetup);
     }
 
@@ -410,17 +418,7 @@
     public ConditionsRecordCollection findConditionsRecords(final String name) {
         return getConditionsRecords().findByKey(name);
     }
-
-    /**
-     * Find table information from the collection type.
-     *
-     * @param type the collection type
-     * @return the table information or <code>null</code> if does not exist
-     */
-    public List<TableMetaData> findTableMetaData(final Class<?> type) {
-        return this.tableRegistry.findByCollectionType(type);
-    }
-
+  
     /**
      * Find table information from the name.
      *
@@ -653,8 +651,11 @@
      * @throws ConditionsNotFoundException if there is a conditions system error
      */
     private void initialize(final String detectorName, final int runNumber) throws ConditionsNotFoundException {
-
+        
         logger.config("initializing with detector " + detectorName + " and run " + runNumber);
+                
+        // Clear the conditions cache.
+        this.clearCache();
 
         // Is not configured yet?
         if (!this.isConfigured) {
@@ -894,7 +895,6 @@
             this.isConnected = true;
             openedConnection = true;
         }
-        logger.fine("connection opened successfully");
 
         // Flag to indicate whether an existing connection was used or not.
         return openedConnection;
@@ -1145,33 +1145,5 @@
     public synchronized void unfreeze() {
         this.isFrozen = false;
         logger.info("conditions system unfrozen");
-    }
-
-    /**
-     * Perform a SQL query with an update command like INSERT, DELETE or UPDATE.
-     *
-     * @param query the SQL query string
-     * @return the keys of the rows affected
-     */
-    public List<Integer> updateQuery(final String query) {
-        final boolean openedConnection = this.openConnection();
-        logger.fine("executing SQL update query ..." + '\n' + query);
-        final List<Integer> keys = new ArrayList<Integer>();
-        Statement statement = null;
-        ResultSet resultSet = null;
-        try {
-            statement = this.connection.createStatement();
-            statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
-            resultSet = statement.getGeneratedKeys();
-            while (resultSet.next()) {
-                final int key = resultSet.getInt(1);
-                keys.add(key);
-            }
-        } catch (final SQLException x) {
-            throw new RuntimeException("Error in SQL query: " + query, x);
-        }
-        DatabaseUtilities.cleanup(resultSet);
-        this.closeConnection(openedConnection);
-        return keys;
-    }
+    }    
 }