Commit in java/trunk/conditions/src/main/java/org/hps/conditions on MAIN
DatabaseConditionsManager.java+106-79444 -> 445
DefaultTestSetup.java+14-14444 -> 445
TableMetaData.java+15-15444 -> 445
+135-108
3 modified files
Just more variable renameing.

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsManager.java 444 -> 445
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java	2014-04-03 16:37:27 UTC (rev 444)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java	2014-04-03 16:38:10 UTC (rev 445)
@@ -43,29 +43,35 @@
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */ 
+// FIXME: Run number is not being stored correctly.  System thinks it is a new run every time.  (see test 
+// Driver output)
+// FIXME: Seems to be precaching all conditions which should be avoided.
+// FIXME: Hangs process at end of job???
 @SuppressWarnings("rawtypes")
 public class DatabaseConditionsManager extends ConditionsManagerImplementation {
 
-    int _runNumber = -1;
-    String _detectorName;
-    List<TableMetaData> _tableMetaData;    
-    List<ConditionsConverter> _converters;
-    File _connectionPropertiesFile;
-    ConditionsReader _baseReader;    
-    static Logger _logger = null;
-    ConnectionParameters _connectionParameters;
-    Connection _connection;
-    String _conditionsTableName;
-    boolean _wasConfigured = false;
-    boolean _isConnected = false;
-    static DatabaseConditionsManager _instance; // FIXME: Prefer using the ConditionsManager's instance if possible.
+    int runNumber = -1;
+    String detectorName;
+    List<TableMetaData> tableMetaData;    
+    List<ConditionsConverter> converters;
+    File connectionPropertiesFile;
+    ConditionsReader baseReader;    
+    static Logger logger = null;
+    ConnectionParameters connectionParameters;
+    Connection connection;
+    String conditionsTableName;
+    boolean wasConfigured = false;
+    boolean isConnected = false;
+    
+    // FIXME: Prefer using the ConditionsManager's instance if possible.
+    static DatabaseConditionsManager instance; 
 
     /**
      * Class constructor, which is only package accessible.
      */
     DatabaseConditionsManager() {
         registerConditionsConverter(new DetectorConditionsConverter());
-        _baseReader = new BaseClasspathConditionsReader();
+        baseReader = new BaseClasspathConditionsReader();
     }
 
     /**
@@ -84,14 +90,14 @@
      * Setup the logger for this class, with initial level of ALL.
      */
     static {
-        _logger = Logger.getLogger(DatabaseConditionsManager.class.getSimpleName());
-        _logger.setUseParentHandlers(false);
-        _logger.setLevel(Level.ALL);
+        logger = Logger.getLogger(DatabaseConditionsManager.class.getSimpleName());
+        logger.setUseParentHandlers(false);
+        logger.setLevel(Level.ALL);
         ConsoleHandler handler = new ConsoleHandler();
         handler.setLevel(Level.ALL);
         handler.setFormatter(new LogFormatter());
-        _logger.addHandler(handler);
-        _logger.config("logger initialized with level " + handler.getLevel());
+        logger.addHandler(handler);
+        logger.config("logger initialized with level " + handler.getLevel());
     }
     
     /**
@@ -99,7 +105,7 @@
      */
     void register() {
         ConditionsManager.setDefaultConditionsManager(this);
-        _instance = this;
+        instance = this;
     }
 
     /**
@@ -108,34 +114,46 @@
      * @return The static instance of the manager.
      */
     public static DatabaseConditionsManager getInstance() {
-        return _instance;
+        return instance;
     }
     
     /**
      * This method catches changes to the detector name and run number.    
      */
     @Override
+    // FIXME: Check if detectorName and runNumber are already the same.
+    // To add:
+    // 1) If run number changes then update.
+    // 2) If detector changes and run doesn't then this is an error.
     public void setDetector(String detectorName, int runNumber) throws ConditionsNotFoundException {
+        //System.out.println(this.getClass().getSimpleName() + ".setDetector called from...");
+        //new RuntimeException().printStackTrace();
         
-        _logger.fine("set detector " + detectorName);
-        _logger.fine("set run number " + runNumber);
+        // Detector update.
+        if (getDetector() == null || !getDetector().equals(detectorName)) {
+            logger.config("setting new detector " + detectorName);
+            setup(detectorName);
+        }
         
-        _runNumber = runNumber;
+        // Run number update.
+        if (this.runNumber != runNumber) {
+            logger.config("setting new run number " + runNumber);
+            this.runNumber = runNumber;
+        }
         
-        setup(detectorName);
-
+        // Let the super class do whatever it think it needs to do (???).
         super.setDetector(detectorName, runNumber);
     }    
     
     public void setup(String detectorName) {
-        if (_baseReader instanceof BaseClasspathConditionsReader) {
-            ((BaseClasspathConditionsReader)_baseReader).setResourcePath(detectorName);
-            _logger.config("set resource path " + detectorName + " on conditions reader");
+        if (baseReader instanceof BaseClasspathConditionsReader) {
+            ((BaseClasspathConditionsReader)baseReader).setResourcePath(detectorName);
+            logger.config("set resource path " + detectorName + " on conditions reader");
         }
         if (!isConnected())
             openConnection();
         else
-            _logger.config("using existing connection " + _connectionParameters.getConnectionString());        
+            logger.config("using existing connection " + connectionParameters.getConnectionString());        
     }
 
     /**
@@ -153,7 +171,7 @@
      * @return The conditions or null if does not exist.
      */
     public <T> T getConditionsData(Class<T> type, String name) {
-        _logger.fine("getting conditions " + name + " of type " + type.getSimpleName());
+        logger.fine("getting conditions " + name + " of type " + type.getSimpleName());
         return getCachedConditions(type, name).getCachedData();
     }
 
@@ -162,7 +180,7 @@
      * @param file The XML file.
      */
     public void configure(File file) {
-        _logger.config("setting configuration from file " + file.getPath());
+        logger.config("setting configuration from file " + file.getPath());
         if (!file.exists()) {
             throw new IllegalArgumentException("Config file does not exist.");
         }
@@ -178,7 +196,7 @@
      * @param resource The embedded XML resource.
      */
     public void configure(String resource) {
-        _logger.config("setting configuration from resource " + resource);
+        logger.config("setting configuration from resource " + resource);
         InputStream in = getClass().getResourceAsStream(resource);
         if (in == null)
             throw new IllegalArgumentException("The resource does not exist.");
@@ -190,10 +208,10 @@
      * @param file The properties file
      */
     public void setConnectionProperties(File file) {
-        _logger.config("setting connection prop file " + file.getPath());
+        logger.config("setting connection prop file " + file.getPath());
         if (!file.exists())
-            throw new IllegalArgumentException("The connection properties file does not exist: " + _connectionPropertiesFile.getPath());
-        _connectionParameters = ConnectionParameters.fromProperties(file);        
+            throw new IllegalArgumentException("The connection properties file does not exist: " + connectionPropertiesFile.getPath());
+        connectionParameters = ConnectionParameters.fromProperties(file);        
     }
     
     /**
@@ -201,8 +219,8 @@
      * @param resource The classpath resource
      */
     public void setConnectionResource(String resource) {
-        _logger.config("setting connection resource " + resource);
-        _connectionParameters = ConnectionParameters.fromResource(resource);        
+        logger.config("setting connection resource " + resource);
+        connectionParameters = ConnectionParameters.fromResource(resource);        
     }
 
     /**
@@ -211,8 +229,8 @@
      * @param reader The base ConditionsReader.
      */
     public void setBaseConditionsReader(ConditionsReader reader) {
-        _logger.config("setting conditions reader to " + reader.getClass().getCanonicalName());
-        _baseReader = reader;        
+        logger.config("setting conditions reader to " + reader.getClass().getCanonicalName());
+        baseReader = reader;        
     }
 
     /**
@@ -234,7 +252,7 @@
         } catch (SQLException e) {
             throw new RuntimeException(e);
         }
-        _logger.fine("new collection ID " + collectionId + " created for table " + tableName);
+        logger.fine("new collection ID " + collectionId + " created for table " + tableName);
         return collectionId;
     }
 
@@ -243,7 +261,7 @@
      * @return The list of table meta data.
      */
     public List<TableMetaData> getTableMetaDataList() {
-        return _tableMetaData;
+        return tableMetaData;
     }
 
     /**
@@ -252,7 +270,7 @@
      * @return The table's meta data or null if does not exist.
      */
     public TableMetaData findTableMetaData(String name) {
-        for (TableMetaData meta : _tableMetaData) {
+        for (TableMetaData meta : tableMetaData) {
             if (meta.getTableName().equals(name))
                 return meta;
         }
@@ -265,7 +283,7 @@
      * @return The table meta data.
      */
     public TableMetaData findTableMetaData(Class type) {
-        for (TableMetaData meta : _tableMetaData) {
+        for (TableMetaData meta : tableMetaData) {
             if (meta.getCollectionClass().equals(type)) {
                 return meta;
             }
@@ -279,11 +297,11 @@
      * @return The ResultSet from the query or null.
      */
     public ResultSet selectQuery(String query) {
-        _logger.fine(query);
+        logger.fine(query);
         ResultSet result = null;
         Statement statement = null;
         try {
-            statement = _connection.createStatement();
+            statement = connection.createStatement();
             result = statement.executeQuery(query);
         } catch (SQLException x) {
             throw new RuntimeException("Error in query: " + query, x);
@@ -297,11 +315,11 @@
      * @return The keys of the rows affected.
      */
     public List<Integer> updateQuery(String query) {        
-        _logger.fine(query);
+        logger.fine(query);
         List<Integer> keys = new ArrayList<Integer>();
         Statement statement = null;
         try {
-            statement = _connection.createStatement();
+            statement = connection.createStatement();
             statement.executeUpdate(query, Statement.RETURN_GENERATED_KEYS); 
             ResultSet resultSet = statement.getGeneratedKeys();            
             while (resultSet.next()) {
@@ -321,9 +339,9 @@
      * @param level The log level.
      */
     public void setLogLevel(Level level) {
-        _logger.config("setting log level to " + level);
-        _logger.setLevel(level);
-        _logger.getHandlers()[0].setLevel(level);
+        logger.config("setting log level to " + level);
+        logger.setLevel(level);
+        logger.getHandlers()[0].setLevel(level);
     }
     
     /**
@@ -331,7 +349,7 @@
      * @return The name of the conditions table with validity data.
      */
     public String getConditionsTableName() {
-        return _conditionsTableName;
+        return conditionsTableName;
     }
 
     /**
@@ -343,7 +361,7 @@
      */
     public ConditionsRecordCollection findConditionsRecords(String name) {
         ConditionsRecordCollection runConditionsRecords = getConditionsData(ConditionsRecordCollection.class, getConditionsTableName());
-        _logger.fine("searching for condition " + name + " in " + runConditionsRecords.getObjects().size() + " records ...");
+        logger.fine("searching for condition " + name + " in " + runConditionsRecords.getObjects().size() + " records ...");
         ConditionsRecordCollection foundConditionsRecords = new ConditionsRecordCollection();
         for (ConditionsRecord record : runConditionsRecords.getObjects()) {
             if (record.getName().equals(name)) {
@@ -352,7 +370,7 @@
         }
         if (foundConditionsRecords.getObjects().size() > 0) {
             for (ConditionsRecord record : foundConditionsRecords.getObjects()) {
-                _logger.fine("found ConditionsRecord with key " + name + " ..." 
+                logger.fine("found ConditionsRecord with key " + name + " ..." 
                         + '\n' + record.toString());
             }
         }
@@ -364,7 +382,7 @@
      * @return true if connection parameters are non-null
      */
     public boolean hasConnectionParameters() {
-        return _connectionParameters != null;
+        return connectionParameters != null;
     }
     
     /**
@@ -372,7 +390,7 @@
      * @return true if manager was configured
      */
     public boolean wasConfigured() {
-        return _wasConfigured;
+        return wasConfigured;
     }
         
     /**
@@ -385,7 +403,7 @@
                 if (!statement.isClosed())
                     statement.close();
                 else
-                    _logger.log(Level.WARNING, "Statement is already closed!");
+                    logger.log(Level.WARNING, "Statement is already closed!");
             } catch (SQLException x) {
                 throw new RuntimeException("Failed to close statement.", x);
             }
@@ -403,7 +421,7 @@
                 if (!statement.isClosed())
                     statement.close();
                 else
-                    _logger.log(Level.WARNING, "Statement is already closed!");
+                    logger.log(Level.WARNING, "Statement is already closed!");
             } catch (SQLException x) {
                 throw new RuntimeException("Failed to close statement.", x);
             }
@@ -411,7 +429,7 @@
     }
     
     private boolean isConnected() {
-        return _isConnected;
+        return isConnected;
     }
 
     /**
@@ -431,7 +449,7 @@
         loadConverters(config);        
         
         // Set configured state to true.
-        _wasConfigured = true;
+        wasConfigured = true;
     }
     
     /**
@@ -462,9 +480,9 @@
 
         // Register the list of converters with this manager.
         // FIXME: Should this happen here or when setup is called on the manager?
-        for (ConditionsConverter converter : _converters) {
+        for (ConditionsConverter converter : converters) {
             registerConditionsConverter(converter);
-            _logger.config("registered converter " + converter.getClass().getSimpleName());
+            logger.config("registered converter " + converter.getClass().getSimpleName());
         }
         
         // Find the mandatory converter for ConditionsRecord class which must be present in the configuration.
@@ -472,8 +490,8 @@
         if (conditionsTableMetaData == null) {
             throw new RuntimeException("No conditions converter found for ConditionsRecord type in the supplied configuration.");            
         }
-        _conditionsTableName = conditionsTableMetaData.getTableName();
-        _logger.config("conditions validity table set to " + _conditionsTableName);
+        conditionsTableName = conditionsTableMetaData.getTableName();
+        logger.config("conditions validity table set to " + conditionsTableName);
     }
     
     /**
@@ -489,30 +507,39 @@
      * Open the database connection.
      */
     private void openConnection() {
-        if (_connectionParameters == null)
+        if (connectionParameters == null)
             throw new RuntimeException("The connection parameters were not configured.");
-        _connection = _connectionParameters.createConnection();
-        _logger.config("created connection " + _connectionParameters.getConnectionString());
-        _isConnected = true;
+        connection = connectionParameters.createConnection();
+        logger.config("created connection " + connectionParameters.getConnectionString());
+        isConnected = true;
     }
     
     /**
      * Close the database connection.
      */
-    // FIXME: When should this be called, if ever?
-    private void closeConnection() {
-        if (_connection != null) {
+    public void closeConnection() {
+        logger.config("closing connection");
+        if (connection != null) {
             try {
-                if (!_connection.isClosed()) {
-                    _connection.close();
+                if (!connection.isClosed()) {
+                    connection.close();
+                    logger.config("connection closed");
+                } else {
+                    logger.config("connection already closed");
                 }
             } catch (SQLException e) {
                 throw new RuntimeException(e);
             }
         }
-        _connection = null;
-        _connectionParameters = null;
+        connection = null;
+        connectionParameters = null;
     }
+    
+    @Override
+    public void finalize() {
+        if (isConnected())
+            closeConnection();
+    }
        
     /**
      * This class loads an XML configuration of conditions table meta data.
@@ -528,7 +555,7 @@
          */
         void load(Element element) {
 
-            _tableMetaData = new ArrayList<TableMetaData>();
+            tableMetaData = new ArrayList<TableMetaData>();
 
             for (Iterator<?> iterator = element.getChildren("table").iterator(); iterator.hasNext();) {
                 Element tableElement = (Element) iterator.next();
@@ -573,7 +600,7 @@
                     tableData.addField(fieldName);
                 }
 
-                _tableMetaData.add(tableData);
+                tableMetaData.add(tableData);
             }
         }      
     }
@@ -587,14 +614,14 @@
     class ConditionsConverterLoader {
         
         void load(Element element) {
-            _converters = new ArrayList<ConditionsConverter>();
+            converters = new ArrayList<ConditionsConverter>();
             for (Iterator iterator = element.getChildren("converter").iterator(); iterator.hasNext();) {
                 Element converterElement = (Element) iterator.next();
                 try {
                     Class converterClass = Class.forName(converterElement.getAttributeValue("class"));
                     if (ConditionsConverter.class.isAssignableFrom(converterClass)) {
                         try {
-                            _converters.add((ConditionsConverter) converterClass.newInstance());
+                            converters.add((ConditionsConverter) converterClass.newInstance());
                         } catch (InstantiationException | IllegalAccessException e) {
                             throw new RuntimeException(e);
                         }

java/trunk/conditions/src/main/java/org/hps/conditions
DefaultTestSetup.java 444 -> 445
--- java/trunk/conditions/src/main/java/org/hps/conditions/DefaultTestSetup.java	2014-04-03 16:37:27 UTC (rev 444)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DefaultTestSetup.java	2014-04-03 16:38:10 UTC (rev 445)
@@ -37,26 +37,26 @@
 public final class DefaultTestSetup {
 
     // Default conditions manager parameters.
-    static String _connectionResource = "/org/hps/conditions/config/conditions_database_testrun_2012_connection.properties";
-    static String _conditionsConfig = "/org/hps/conditions/config/conditions_database_testrun_2012.xml";
+    static String connectionResource = "/org/hps/conditions/config/conditions_database_testrun_2012_connection.properties";
+    static String conditionsConfig = "/org/hps/conditions/config/conditions_database_testrun_2012.xml";
     
     // Default test detector and run number for test cases not using real data.
-    static String _detectorName = "HPS-conditions-test";
-    static int _runNumber = 1351;
+    static String detectorName = "HPS-conditions-test";
+    static int runNumber = 1351;
     
-    DatabaseConditionsManager _conditionsManager;
-    boolean _wasConfigured = false;
+    DatabaseConditionsManager conditionsManager;
+    boolean wasConfigured = false;
     
     /**
      * Configure and register the {@link DatabaseConditionsManager} with default parameters.
      * @return an instance of this class for chaining (e.g. to call {@link #setup()}.
      */
     public DefaultTestSetup configure() {        
-        _conditionsManager = new DatabaseConditionsManager();
-        _conditionsManager.setConnectionResource(_connectionResource);
-        _conditionsManager.configure(_conditionsConfig);
-        _conditionsManager.register();
-        _wasConfigured = true;
+        conditionsManager = new DatabaseConditionsManager();
+        conditionsManager.setConnectionResource(connectionResource);
+        conditionsManager.configure(conditionsConfig);
+        conditionsManager.register();
+        wasConfigured = true;
         return this;
     }
     
@@ -66,13 +66,13 @@
      * @return the conditions manager
      */
     public DatabaseConditionsManager setup() {
-        if (!_wasConfigured)
+        if (!wasConfigured)
             configure();
         try {
-            _conditionsManager.setDetector(_detectorName, _runNumber);
+            conditionsManager.setDetector(detectorName, runNumber);
         } catch (ConditionsNotFoundException e) {
             throw new RuntimeException(e);
         }
-        return _conditionsManager;
+        return conditionsManager;
     }
 }
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions
TableMetaData.java 444 -> 445
--- java/trunk/conditions/src/main/java/org/hps/conditions/TableMetaData.java	2014-04-03 16:37:27 UTC (rev 444)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/TableMetaData.java	2014-04-03 16:38:10 UTC (rev 445)
@@ -19,11 +19,11 @@
  */
 public class TableMetaData {
     
-    String _tableName;
-    String _key;
-    Class<? extends ConditionsObject> _objectClass;
-    Class<? extends ConditionsObjectCollection<?>> _collectionClass;
-    Set<String> _fieldNames = new LinkedHashSet<String>();
+    String tableName;
+    String key;
+    Class<? extends ConditionsObject> objectClass;
+    Class<? extends ConditionsObjectCollection<?>> collectionClass;
+    Set<String> fieldNames = new LinkedHashSet<String>();
         
     /**
      * The fully qualified constructor.
@@ -36,9 +36,9 @@
             String tableName, 
             Class<? extends ConditionsObject> objectClass, 
             Class<? extends ConditionsObjectCollection<?>> collectionClass) {
-        _tableName = tableName;
-        _objectClass = objectClass;
-        _collectionClass = collectionClass;
+        this.tableName = tableName;
+        this.objectClass = objectClass;
+        this.collectionClass = collectionClass;
     }
     
     /**
@@ -46,7 +46,7 @@
      * @return The type of object.
      */
     Class<? extends ConditionsObject> getObjectClass() {
-        return _objectClass;
+        return objectClass;
     }
     
     /**
@@ -54,7 +54,7 @@
      * @return
      */
     Class<? extends ConditionsObjectCollection<?>> getCollectionClass() {
-        return _collectionClass;
+        return collectionClass;
     }
     
     /**
@@ -63,7 +63,7 @@
      * @return The names of the fields.
      */
     String[] getFieldNames() {
-        return _fieldNames.toArray(new String[]{});
+        return fieldNames.toArray(new String[]{});
     }
      
     /**
@@ -71,10 +71,10 @@
      * @param name The name of the field.
      */
     void addField(String name) {
-        if (_fieldNames.contains(name)) {
+        if (fieldNames.contains(name)) {
             throw new RuntimeException("The table meta data already has a field called " + name);
         }
-        _fieldNames.add(name);
+        fieldNames.add(name);
     }
     
     /**
@@ -82,7 +82,7 @@
      * @return The name of the table.
      */
     public String getTableName() {
-        return _tableName;
+        return tableName;
     }
     
     /**
@@ -91,6 +91,6 @@
      * @return The key name of the conditions type.
      */
     public String getKey() {
-        return _key;
+        return key;
     }
 }
\ No newline at end of file
SVNspam 0.1