Author: [log in to unmask]
Date: Thu Jan 15 17:06:40 2015
New Revision: 1941
Log:
Inject the SvtSensorSetup Driver if it is not present in the job. This is a temporary fix while HPS-263 is unresolved.
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 Thu Jan 15 17:06:40 2015
@@ -25,9 +25,19 @@
*/
@Override
public boolean run() {
+
+ // Inject the SvtSensorSetup Driver required for most recon jobs.
+ addSvtSetupDriver();
+
+ // Setup the conditions if there is a ConditionsDriver present.
setupConditions();
+
+ // Run the job.
boolean result = super.run();
+
+ // Close the conditions database connection if it is open.
DatabaseConditionsManager.getInstance().closeConnection();
+
return result;
}
@@ -48,4 +58,33 @@
conditionsDriver.initialize();
}
}
+
+ static String driverClassName = "org.hps.recon.tracking.SvtSensorSetup";
+ private void addSvtSetupDriver() {
+ Class<?> driverClass = null;
+ try {
+ driverClass = Class.forName(driverClassName);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException("SvtSensorSetup class is not accessible.", e);
+ }
+
+ boolean hasSetupDriver = false;
+ for (Driver driver : this.getDriverAdapter().getDriver().drivers()) {
+ if (driver.getClass().getCanonicalName().equals(driverClassName)) {
+ hasSetupDriver = true;
+ break;
+ }
+ }
+
+ if (!hasSetupDriver) {
+ Driver setupDriver;
+ try {
+ setupDriver = (Driver) driverClass.newInstance();
+ } catch (InstantiationException | IllegalAccessException e) {
+ throw new RuntimeException("Error creating new SvtSensorSetup Driver.", e);
+ }
+ this.getDriverAdapter().getDriver().drivers().add(0, setupDriver);
+ logStream.println("added SvtSensorSetup to beginning of Driver list");
+ }
+ }
}
|