Author: [log in to unmask]
Date: Tue Nov 18 12:30:46 2014
New Revision: 1567
Log:
Update the HPS job manager so that it initializes the condition system based on any custom settings in the ConditionsDriver, if it exists in the user configuration.
Modified:
java/trunk/record-util/src/main/java/org/hps/job/JobManager.java
Modified: java/trunk/record-util/src/main/java/org/hps/job/JobManager.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/job/JobManager.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/job/JobManager.java Tue Nov 18 12:30:46 2014
@@ -1,13 +1,16 @@
package org.hps.job;
+import org.hps.conditions.ConditionsDriver;
import org.hps.conditions.database.DatabaseConditionsManager;
import org.lcsim.job.JobControlManager;
+import org.lcsim.util.Driver;
public class JobManager extends JobControlManager {
+
+ // Override the basic LCSim conditions system with the HPS conditions manager.
+ DatabaseConditionsManager conditionsManager = new DatabaseConditionsManager();
- public JobManager() {
- // Override the basic LCSim conditions system with the HPS conditions manager.
- new DatabaseConditionsManager();
+ public JobManager() {
}
public static void main(String args[]) {
@@ -15,9 +18,34 @@
job.run(args);
}
+ /**
+ * Override the parent classes method that runs the job in order to do
+ * conditions system initialization, if required.
+ * @return True if job was successful.
+ */
+ @Override
public boolean run() {
+ setupConditions();
boolean result = super.run();
DatabaseConditionsManager.getInstance().closeConnection();
return result;
}
+
+ /**
+ * This method will find the {@link org.hps.conditions.ConditionsDriver} in the
+ * list of Drivers registered with the manager and execute its initialization
+ * method, which can override the default behavior of the conditions system.
+ */
+ private void setupConditions() {
+ ConditionsDriver conditionsDriver = null;
+ for (Driver driver : this.getDriverAdapter().getDriver().drivers()) {
+ if (driver instanceof ConditionsDriver) {
+ conditionsDriver = (ConditionsDriver) driver;
+ break;
+ }
+ }
+ if (conditionsDriver != null) {
+ conditionsDriver.initialize();
+ }
+ }
}
|