Author: [log in to unmask]
Date: Tue Oct 27 19:02:02 2015
New Revision: 3898
Log:
[HPSJAVA-626] Rearrange some conditions initialization to un-break monitoring app.
Modified:
java/trunk/evio/src/main/java/org/hps/evio/EvioToLcio.java
java/trunk/job/src/main/java/org/hps/job/JobManager.java
java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java
Modified: java/trunk/evio/src/main/java/org/hps/evio/EvioToLcio.java
=============================================================================
--- java/trunk/evio/src/main/java/org/hps/evio/EvioToLcio.java (original)
+++ java/trunk/evio/src/main/java/org/hps/evio/EvioToLcio.java Tue Oct 27 19:02:02 2015
@@ -24,7 +24,6 @@
import org.apache.commons.cli.PosixParser;
import org.freehep.record.source.NoSuchRecordException;
import org.hps.conditions.database.DatabaseConditionsManager;
-import org.hps.detector.svt.SvtDetectorSetup;
import org.hps.job.JobManager;
import org.hps.logging.config.DefaultLoggingConfig;
import org.hps.record.LCSimEventBuilder;
@@ -454,9 +453,6 @@
*/
public void run() {
- // Register class for setting up SVT detector state from conditions data.
- DatabaseConditionsManager.getInstance().addConditionsListener(new SvtDetectorSetup());
-
// Is there a run number from the command line options?
if (runNumber != null) {
// Initialize the conditions system before the job starts and freeze it.
Modified: java/trunk/job/src/main/java/org/hps/job/JobManager.java
=============================================================================
--- java/trunk/job/src/main/java/org/hps/job/JobManager.java (original)
+++ java/trunk/job/src/main/java/org/hps/job/JobManager.java Tue Oct 27 19:02:02 2015
@@ -30,14 +30,6 @@
* Class constructor.
*/
public JobManager() {
-
- try {
- // Since this is packaged with the distribution, the class is not directly accessible.
- final Object hpsJavaProperties = Class.forName("org.hps.HPSJavaProperties").newInstance();
- logger.info(hpsJavaProperties.toString());
- } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
- // Just don't print info if not accessible (running in test case?).
- }
}
/**
@@ -47,10 +39,13 @@
*/
public void setup(InputStream is) {
- // Always want to reset the conditions system before initialization.
- DatabaseConditionsManager.resetInstance();
-
+ // Add class that will setup SVT detector with conditions data (this is awkward but has to be done someplace).
+ DatabaseConditionsManager.getInstance().addConditionsListener(new SvtDetectorSetup());
+
super.setup(is);
+
+ // Setup the conditions system if there is a ConditionsDriver present.
+ this.setupConditions();
}
/**
@@ -61,12 +56,6 @@
@Override
public final boolean run() {
- // Add class that will setup SVT detector with conditions data (this is awkward but has to be done someplace).
- DatabaseConditionsManager.getInstance().addConditionsListener(new SvtDetectorSetup());
-
- // Setup the conditions system if there is a ConditionsDriver present.
- this.setupConditions();
-
// Run the job.
final boolean result = super.run();
Modified: java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java
=============================================================================
--- java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java (original)
+++ java/trunk/monitoring-app/src/main/java/org/hps/monitoring/application/EventProcessing.java Tue Oct 27 19:02:02 2015
@@ -33,7 +33,6 @@
import org.jlab.coda.et.exception.EtClosedException;
import org.jlab.coda.et.exception.EtException;
import org.lcsim.conditions.ConditionsListener;
-import org.lcsim.conditions.ConditionsManager;
import org.lcsim.conditions.ConditionsReader;
import org.lcsim.util.Driver;
@@ -192,6 +191,11 @@
* The current {@link EventProcessing.SessionState} object which has all of the session state for event processing.
*/
private SessionState sessionState;
+
+ /**
+ * The current conditions manager.
+ */
+ private DatabaseConditionsManager conditionsManager;
/**
* Class constructor, which will initialize with reference to the current monitoring application and lists of extra
@@ -315,7 +319,7 @@
}
// Add the builder as a listener so it is notified when conditions change.
- ConditionsManager.defaultInstance().addConditionsListener(this.sessionState.eventBuilder);
+ this.conditionsManager.addConditionsListener(this.sessionState.eventBuilder);
}
/**
@@ -409,12 +413,12 @@
* Notify the loop to pause the event processing.
*/
synchronized void pause() {
- this.logger.finest("pausing");
if (!this.connectionModel.getPaused()) {
+ this.logger.finest("pausing");
this.sessionState.loop.pause();
this.connectionModel.setPaused(true);
- }
- this.logger.finest("paused");
+ this.logger.finest("paused");
+ }
}
/**
@@ -435,7 +439,7 @@
*
* @param configurationModel the global @link org.hps.monitoring.model.ConfigurationModel} object
*/
- void setup(final ConfigurationModel configurationModel) {
+ synchronized void setup(final ConfigurationModel configurationModel) {
// Setup LCSim from the configuration.
this.setupLcsim(configurationModel);
@@ -468,11 +472,13 @@
// Create the job manager. A new conditions manager is instantiated from this call but not configured.
this.sessionState.jobManager = new JobManager();
+ // Set ref to current conditions manager.
+ this.conditionsManager = DatabaseConditionsManager.getInstance();
+
// Add conditions listeners after new database conditions manager is initialized from the job manager.
- final DatabaseConditionsManager conditionsManager = DatabaseConditionsManager.getInstance();
for (final ConditionsListener conditionsListener : this.sessionState.conditionsListeners) {
this.logger.config("adding conditions listener " + conditionsListener.getClass().getName());
- conditionsManager.addConditionsListener(conditionsListener);
+ this.conditionsManager.addConditionsListener(conditionsListener);
}
if (configurationModel.hasValidProperty(ConfigurationModel.DETECTOR_ALIAS_PROPERTY)) {
@@ -507,15 +513,15 @@
final int userRunNumber = configurationModel.getUserRunNumber();
final String detectorName = configurationModel.getDetectorName();
this.logger.config("setting user run number " + userRunNumber + " with detector " + detectorName);
- conditionsManager.setDetector(configurationModel.getDetectorName(), userRunNumber);
+ conditionsManager.setDetector(detectorName, userRunNumber);
if (configurationModel.hasPropertyKey(ConfigurationModel.FREEZE_CONDITIONS_PROPERTY)) {
// Freeze the conditions system to ignore run numbers from the events.
this.logger.config("user configured to freeze conditions system");
- conditionsManager.freeze();
+ this.conditionsManager.freeze();
} else {
// Allow run numbers to be picked up from the events.
this.logger.config("user run number provided but conditions system is NOT frozen");
- conditionsManager.unfreeze();
+ this.conditionsManager.unfreeze();
}
}
@@ -545,8 +551,7 @@
.setEtConnection(this.sessionState.connection).setFilePath(configurationModel.getDataSourcePath())
.setLCSimEventBuilder(this.sessionState.eventBuilder);
- this.logger.config("data source path is " + configurationModel.getDataSourcePath());
- this.logger.config("data source type is " + configurationModel.getDataSourceType());
+ this.logger.config("data src path " + configurationModel.getDataSourcePath() + " and type " + configurationModel.getDataSourceType());
// Set the max events.
if (configurationModel.hasValidProperty(ConfigurationModel.MAX_EVENTS_PROPERTY)) {
|