Author: [log in to unmask] Date: Tue Apr 21 17:42:47 2015 New Revision: 2779 Log: Replace old method for getting collection ID from conditions manager. Modified: java/trunk/conditions/src/main/java/org/hps/conditions/beam/ImportBeamConditionsEngRun.java java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/beam/ImportBeamConditionsEngRun.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/beam/ImportBeamConditionsEngRun.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/ImportBeamConditionsEngRun.java Tue Apr 21 17:42:47 2015 @@ -37,13 +37,8 @@ private static final double NULL_VALUE = -999.0; /** - * Class should not be instantiated. - */ - private ImportBeamConditionsEngRun() { - } - - /** * Import the Eng Run beam conditions from a text file. + * * @param args the argument list * @throws Exception if there is an error importing the text file */ @@ -75,7 +70,7 @@ if (beam.getFieldValue("current") == null) { // Use null value to indicate beam was not measured. beam.setFieldValue("energy", null); - } else if (((Double) beam.getFieldValue("current")) == 0) { + } else if ((Double) beam.getFieldValue("current") == 0) { // Use zero for no beam. beam.setFieldValue("energy", 0); } else { @@ -89,7 +84,7 @@ System.out.println("printing beam conditions parsed from " + fileName + " ..."); System.out.println("run id current x y energy"); - for (Entry<Integer, BeamConditions> entry : beamMap.entrySet()) { + for (final Entry<Integer, BeamConditions> entry : beamMap.entrySet()) { System.out.print(entry.getKey() + " "); System.out.println(entry.getValue() + " "); } @@ -97,12 +92,13 @@ final DatabaseConditionsManager manager = DatabaseConditionsManager.getInstance(); manager.setLogLevel(Level.ALL); - for (Entry<Integer, BeamConditions> entry : beamMap.entrySet()) { + for (final Entry<Integer, BeamConditions> entry : beamMap.entrySet()) { final int run = entry.getKey(); final BeamConditions beam = entry.getValue(); - final int collectionId = manager.getNextCollectionID("beam"); - final ConditionsRecord record = new ConditionsRecord( - collectionId, run, run, "beam", "beam", "imported from HPS_Runs.pdf", "eng_run"); + final int collectionId = manager.addCollection("beam", "ImportBeamConditionsEngRun created collection by " + + System.getProperty("user.name"), null); + final ConditionsRecord record = new ConditionsRecord(collectionId, run, run, "beam", "beam", + "imported from HPS_Runs.pdf", "eng_run"); System.out.println(record); System.out.println(beam); final BeamConditionsCollection collection = new BeamConditionsCollection(); @@ -115,6 +111,7 @@ /** * Set the value of the beam current. + * * @param beam the beam conditions object * @param fieldName the name of the field * @param rawValue the raw value from the text file @@ -127,4 +124,10 @@ beam.setFieldValue(fieldName, null); } } + + /** + * Class should not be instantiated. + */ + private ImportBeamConditionsEngRun() { + } } 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 Tue Apr 21 17:42:47 2015 @@ -571,28 +571,6 @@ } /** - * Get the next collection ID for a database conditions table. - * - * @param tableName the name of the table - * @return the next collection ID - */ - public synchronized int getNextCollectionID(final String tableName) { - final boolean openedConnection = this.openConnection(); - final ResultSet resultSet = this.selectQuery("SELECT MAX(collection_id)+1 FROM " + tableName); - int collectionId = 1; - try { - resultSet.next(); - collectionId = resultSet.getInt(1); - } catch (final SQLException e) { - e.printStackTrace(); - logger.warning(e.getMessage()); - } - logger.fine("new collection ID " + collectionId + " created for table " + tableName); - this.closeConnection(openedConnection); - return collectionId; - } - - /** * Get the combined SVT conditions for this run. * * @return the combined SVT conditions @@ -744,7 +722,8 @@ } if (collection.getCollectionId() == -1) { try { - collection.setCollectionId(this.getNextCollectionID(tableMetaData.getTableName())); + collection.setCollectionId(this.addCollection(tableMetaData.getTableName(), + "DatabaseConditionsManager created collection by " + System.getProperty("user.name"), null)); } catch (final ConditionsObjectException e) { throw new RuntimeException(e); } Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java Tue Apr 21 17:42:47 2015 @@ -28,215 +28,204 @@ public final class SvtConditionsLoader { /** + * Calibrations table name. + */ + public static final String CALIBRATIONS_TABLE_NAME = "svt_calibrations"; + + /** + * SVT DAQ map table name. + */ + public static final String DAQ_MAP_TABLE_NAME = "svt_daq_map"; + + /** + * Default detector name. + */ + public static final String DETECTOR = "HPS-Proposal2014-v9-2pt2"; + + /** * Initialize the logger. */ - private static Logger logger = LogUtil.create(SvtConditionsLoader.class.getName(), - new DefaultLogFormatter(), Level.INFO); - - /** - * Default detector name. - */ - public static final String DETECTOR = "HPS-Proposal2014-v9-2pt2"; - - /** - * SVT DAQ map table name. - */ - public static final String DAQ_MAP_TABLE_NAME = "svt_daq_map"; - - /** - * Calibrations table name. - */ - public static final String CALIBRATIONS_TABLE_NAME = "svt_calibrations"; + private static Logger logger = LogUtil.create(SvtConditionsLoader.class.getName(), new DefaultLogFormatter(), + Level.INFO); /** * SVT channels table name. */ public static final String SVT_CHANNELS_TABLE_NAME = "svt_channels"; - + + /** + * Run this class from the command line. + * + * @param args The command line arguments. + */ + public static void main(final String[] args) { + + // Set up the command line options + final Options options = setupCommandLineOptions(); + + // Parse the command line arguments + final CommandLineParser parser = new PosixParser(); + final CommandLine commandLine; + try { + commandLine = parser.parse(options, args); + } catch (final ParseException e) { + throw new RuntimeException("Unable to parse command line arguments.", e); + } + + // Get the run number. If a run number hasn't been set, warn the user and exit. + if (!commandLine.hasOption("r")) { + System.out.println("\nPlease specify a run number to associate with the conditions set.\n"); + return; + } + final int runNumber = Integer.valueOf(commandLine.getOptionValue("r")); + logger.info("Run number set to " + runNumber); + + // Initialize the conditions system and load the conditions onto the + // detector object + try { + + // If a user has specified the connection properties, set them, otherwise use the default values. + if (commandLine.hasOption("p")) { + DatabaseConditionsManager.getInstance().setConnectionProperties( + new File(commandLine.getOptionValue("p"))); + } + DatabaseConditionsManager.getInstance().setDetector(SvtConditionsLoader.DETECTOR, runNumber); + } catch (final ConditionsNotFoundException e) { + throw new RuntimeException("Could not initialize the conditions system.", e); + } + + // Instantiate the SVT conditions reader + final SvtConditionsReader reader; + try { + reader = new SvtConditionsReader(); + } catch (final Exception e) { + throw new RuntimeException("Couldn't open SvtConditionsReader.", e); + } + + // If a calibrations file has been specified, parse it and load them + // to the conditions database. + if (commandLine.hasOption("c")) { + final File calibrationFile = new File(commandLine.getOptionValue("c")); + logger.info("Loading calibrations from file " + calibrationFile.getAbsolutePath()); + try { + + // Parse the calibration file and retrieve the calibrations collection. + reader.parseCalibrations(calibrationFile); + final SvtCalibrationCollection calibrations = reader.getSvtCalibrationCollection(); + + // Set the table meta data + final TableMetaData tableMetaData = DatabaseConditionsManager.getInstance().findTableMetaData( + SvtConditionsLoader.CALIBRATIONS_TABLE_NAME); + calibrations.setTableMetaData(tableMetaData); + + // Set the collection ID. + final int collectionID = DatabaseConditionsManager.getInstance().addCollection( + SvtConditionsLoader.CALIBRATIONS_TABLE_NAME, + "added with SvtConditionsLoader by " + System.getProperty("user.name"), null); + calibrations.setCollectionId(collectionID); + logger.info("Using collection ID " + collectionID); + + // Load the calibrations + calibrations.insert(); + logger.info("A total of " + calibrations.size() + + " SvtCalibrations were loaded successfully into the database."); + + // Create a conditions record associated with the set of conditions that were just loaded. + final ConditionsRecord conditionsRecord = new ConditionsRecord(calibrations.getCollectionId(), + runNumber, 99999, SvtConditionsLoader.CALIBRATIONS_TABLE_NAME, + SvtConditionsLoader.CALIBRATIONS_TABLE_NAME, + "Pedestals and noise. Loaded using SvtConditionsLoader.", "eng_run"); + conditionsRecord.insert(); + + } catch (final Exception e) { + throw new RuntimeException("Couldn't parse calibration file.", e); + } + } + + // If a DAQ map file has been specified, parse it and load them to the + // conditions database. + if (commandLine.hasOption("d")) { + final File daqMapFile = new File(commandLine.getOptionValue("d")); + logger.info("Loading DAQ map from file " + daqMapFile.getAbsolutePath()); + try { + + // Parse the DAQ map file + reader.parseDaqMap(daqMapFile); + final SvtDaqMappingCollection daqMapping = reader.getDaqMapCollection(); + + // Set the table meta data + TableMetaData tableMetaData = DatabaseConditionsManager.getInstance().findTableMetaData( + SvtConditionsLoader.DAQ_MAP_TABLE_NAME); + daqMapping.setTableMetaData(tableMetaData); + + // Set the collection ID + int collectionID = DatabaseConditionsManager.getInstance().addCollection( + SvtConditionsLoader.DAQ_MAP_TABLE_NAME, + "added with SvtConditionsLoader by " + System.getProperty("user.name"), null); + daqMapping.setCollectionId(collectionID); + logger.info("Using collection ID " + collectionID); + + // Load the DAQ map + daqMapping.insert(); + logger.info("DAQ map has been loaded successfully"); + logger.fine(daqMapping.toString()); + + // Create a conditions record associated with the set of + // conditions that were just loaded. + ConditionsRecord conditionsRecord = new ConditionsRecord(daqMapping.getCollectionId(), runNumber, + 99999, SvtConditionsLoader.DAQ_MAP_TABLE_NAME, SvtConditionsLoader.DAQ_MAP_TABLE_NAME, + "Engineering run DAQ map. Loaded using SvtConditionsLoader.", "eng_run"); + conditionsRecord.insert(); + + logger.info("Loading the collection of SvtChannel's"); + final SvtChannelCollection svtChannels = reader.getSvtChannelCollection(); + + // Set the table meta data + tableMetaData = DatabaseConditionsManager.getInstance().findTableMetaData( + SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME); + svtChannels.setTableMetaData(tableMetaData); + + // Set the collection ID + collectionID = DatabaseConditionsManager.getInstance().addCollection( + SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME, + "added with SvtConditionsLoader by " + System.getProperty("user.name"), null); + svtChannels.setCollectionId(collectionID); + logger.info("Using collection ID " + collectionID); + + svtChannels.insert(); + logger.info("A total of " + svtChannels.size() + + " SvtChannels were successfully loaded into the database."); + + // Create a conditions record associated with the set of + // conditions that were just loaded. + conditionsRecord = new ConditionsRecord(svtChannels.getCollectionId(), runNumber, 99999, + SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME, SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME, + "Engineering run SVT channel IDs. Loaded using SvtConditionsLoader.", "eng_run"); + conditionsRecord.insert(); + } catch (final Exception e) { + throw new RuntimeException("Couldn't parse DAQ map file.", e); + } + } + } + + /** + * Method used to setup all command line options. + * + * @return a set of options + */ + private static Options setupCommandLineOptions() { + final Options options = new Options(); + options.addOption(new Option("r", true, "Run number")); + options.addOption(new Option("p", true, "Path to properties file")); + options.addOption(new Option("c", true, "Calibration file")); + options.addOption(new Option("d", true, "DAQ map file")); + return options; + } + /** * Do not allow instantiation. */ private SvtConditionsLoader() { throw new UnsupportedOperationException("Do not instantiate this class."); } - - /** - * Run this class from the command line. - * @param args The command line arguments. - */ - public static void main(final String[] args) { - - // Set up the command line options - final Options options = setupCommandLineOptions(); - - // Parse the command line arguments - final CommandLineParser parser = new PosixParser(); - final CommandLine commandLine; - try { - commandLine = parser.parse(options, args); - } catch (ParseException e) { - throw new RuntimeException("Unable to parse command line arguments.", e); - } - - // Get the run number. If a run number hasn't been set, warn the user and exit. - if (!commandLine.hasOption("r")) { - System.out.println("\nPlease specify a run number to associate with the conditions set.\n"); - return; - } - final int runNumber = Integer.valueOf(commandLine.getOptionValue("r")); - logger.info("Run number set to " + runNumber); - - // Initialize the conditions system and load the conditions onto the - // detector object - try { - - // If a user has specified the connection properties, set them, otherwise use the default values. - if (commandLine.hasOption("p")) { - DatabaseConditionsManager.getInstance() - .setConnectionProperties(new File(commandLine.getOptionValue("p"))); - } - DatabaseConditionsManager.getInstance() - .setDetector(SvtConditionsLoader.DETECTOR, runNumber); - } catch (ConditionsNotFoundException e) { - throw new RuntimeException("Could not initialize the conditions system.", e); - } - - // Instantiate the SVT conditions reader - final SvtConditionsReader reader; - try { - reader = new SvtConditionsReader(); - } catch (Exception e) { - throw new RuntimeException("Couldn't open SvtConditionsReader.", e); - } - - // If a calibrations file has been specified, parse it and load them - // to the conditions database. - if (commandLine.hasOption("c")) { - final File calibrationFile = new File(commandLine.getOptionValue("c")); - logger.info("Loading calibrations from file " + calibrationFile.getAbsolutePath()); - try { - - // Parse the calibration file and retrieve the calibrations collection. - reader.parseCalibrations(calibrationFile); - final SvtCalibrationCollection calibrations = reader.getSvtCalibrationCollection(); - - // Set the table meta data - final TableMetaData tableMetaData = DatabaseConditionsManager.getInstance() - .findTableMetaData(SvtConditionsLoader.CALIBRATIONS_TABLE_NAME); - calibrations.setTableMetaData(tableMetaData); - - // Set the collection ID. - final int collectionID = DatabaseConditionsManager.getInstance() - .getNextCollectionID(SvtConditionsLoader.CALIBRATIONS_TABLE_NAME); - calibrations.setCollectionId(collectionID); - logger.info("Using collection ID " + collectionID); - - // Load the calibrations - calibrations.insert(); - logger.info("A total of " + calibrations.size() - + " SvtCalibrations were loaded successfully into the database."); - - // Create a conditions record associated with the set of conditions that were just loaded. - final ConditionsRecord conditionsRecord = new ConditionsRecord( - calibrations.getCollectionId(), - runNumber, - 99999, - SvtConditionsLoader.CALIBRATIONS_TABLE_NAME, - SvtConditionsLoader.CALIBRATIONS_TABLE_NAME, - "Pedestals and noise. Loaded using SvtConditionsLoader.", - "eng_run"); - conditionsRecord.insert(); - - } catch (Exception e) { - throw new RuntimeException("Couldn't parse calibration file.", e); - } - } - - // If a DAQ map file has been specified, parse it and load them to the - // conditions database. - if (commandLine.hasOption("d")) { - final File daqMapFile = new File(commandLine.getOptionValue("d")); - logger.info("Loading DAQ map from file " + daqMapFile.getAbsolutePath()); - try { - - // Parse the DAQ map file - reader.parseDaqMap(daqMapFile); - final SvtDaqMappingCollection daqMapping = reader.getDaqMapCollection(); - - // Set the table meta data - TableMetaData tableMetaData = DatabaseConditionsManager.getInstance().findTableMetaData( - SvtConditionsLoader.DAQ_MAP_TABLE_NAME); - daqMapping.setTableMetaData(tableMetaData); - - // Set the collection ID - int collectionID = DatabaseConditionsManager.getInstance().getNextCollectionID( - SvtConditionsLoader.DAQ_MAP_TABLE_NAME); - daqMapping.setCollectionId(collectionID); - logger.info("Using collection ID " + collectionID); - - // Load the DAQ map - daqMapping.insert(); - logger.info("DAQ map has been loaded successfully"); - logger.fine(daqMapping.toString()); - - // Create a conditions record associated with the set of - // conditions that were just loaded. - ConditionsRecord conditionsRecord = new ConditionsRecord( - daqMapping.getCollectionId(), - runNumber, - 99999, - SvtConditionsLoader.DAQ_MAP_TABLE_NAME, - SvtConditionsLoader.DAQ_MAP_TABLE_NAME, - "Engineering run DAQ map. Loaded using SvtConditionsLoader.", - "eng_run"); - conditionsRecord.insert(); - - logger.info("Loading the collection of SvtChannel's"); - final SvtChannelCollection svtChannels = reader.getSvtChannelCollection(); - - // Set the table meta data - tableMetaData = DatabaseConditionsManager.getInstance().findTableMetaData( - SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME); - svtChannels.setTableMetaData(tableMetaData); - - // Set the collection ID - collectionID = DatabaseConditionsManager.getInstance().getNextCollectionID( - SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME); - svtChannels.setCollectionId(collectionID); - logger.info("Using collection ID " + collectionID); - - svtChannels.insert(); - logger.info("A total of " + svtChannels.size() - + " SvtChannels were successfully loaded into the database."); - - // Create a conditions record associated with the set of - // conditions that were just loaded. - conditionsRecord = new ConditionsRecord( - svtChannels.getCollectionId(), - runNumber, - 99999, - SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME, - SvtConditionsLoader.SVT_CHANNELS_TABLE_NAME, - "Engineering run SVT channel IDs. Loaded using SvtConditionsLoader.", - "eng_run"); - conditionsRecord.insert(); - } catch (Exception e) { - throw new RuntimeException("Couldn't parse DAQ map file.", e); - } - } - } - - /** - * Method used to setup all command line options. - * - * @return a set of options - */ - private static Options setupCommandLineOptions() { - final Options options = new Options(); - options.addOption(new Option("r", true, "Run number")); - options.addOption(new Option("p", true, "Path to properties file")); - options.addOption(new Option("c", true, "Calibration file")); - options.addOption(new Option("d", true, "DAQ map file")); - return options; - } }