Author: [log in to unmask]
Date: Tue Oct 6 11:30:01 2015
New Revision: 3765
Log:
Give JobManager its own package for dependency reasons.
Added:
java/trunk/job/
java/trunk/job/pom.xml
java/trunk/job/src/
java/trunk/job/src/main/
java/trunk/job/src/main/java/
java/trunk/job/src/main/java/org/
java/trunk/job/src/main/java/org/hps/
java/trunk/job/src/main/java/org/hps/job/
java/trunk/job/src/main/java/org/hps/job/JobManager.java
java/trunk/job/src/main/java/org/hps/job/package-info.java
Removed:
java/trunk/record-util/src/main/java/org/hps/job/JobManager.java
java/trunk/record-util/src/main/java/org/hps/job/package-info.java
Modified:
java/trunk/distribution/pom.xml
java/trunk/parent/pom.xml
java/trunk/pom.xml
Modified: java/trunk/distribution/pom.xml
=============================================================================
--- java/trunk/distribution/pom.xml (original)
+++ java/trunk/distribution/pom.xml Tue Oct 6 11:30:01 2015
@@ -137,5 +137,9 @@
<groupId>org.hps</groupId>
<artifactId>hps-crawler</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-job</artifactId>
+ </dependency>
</dependencies>
</project>
Added: java/trunk/job/pom.xml
=============================================================================
--- java/trunk/job/pom.xml (added)
+++ java/trunk/job/pom.xml Tue Oct 6 11:30:01 2015
@@ -0,0 +1,23 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>hps-job</artifactId>
+ <name>job</name>
+ <description>job processing</description>
+ <parent>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-parent</artifactId>
+ <relativePath>../parent/pom.xml</relativePath>
+ <version>3.4.1-SNAPSHOT</version>
+ </parent>
+ <scm>
+ <url>http://java.freehep.org/svn/repos/hps/list/java/trunk/job/</url>
+ <connection>scm:svn:svn://svn.freehep.org/hps/java/trunk/job/</connection>
+ <developerConnection>scm:svn:svn://svn.freehep.org/hps/java/trunk/job/</developerConnection>
+ </scm>
+ <dependencies>
+ <dependency>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-detector-model</artifactId>
+ </dependency>
+ </dependencies>
+</project>
Added: java/trunk/job/src/main/java/org/hps/job/JobManager.java
=============================================================================
--- java/trunk/job/src/main/java/org/hps/job/JobManager.java (added)
+++ java/trunk/job/src/main/java/org/hps/job/JobManager.java Tue Oct 6 11:30:01 2015
@@ -0,0 +1,96 @@
+package org.hps.job;
+
+import java.io.InputStream;
+
+import org.hps.conditions.ConditionsDriver;
+import org.hps.conditions.database.DatabaseConditionsManager;
+import org.hps.detector.svt.SvtDetectorSetup;
+import org.lcsim.job.JobControlManager;
+import org.lcsim.util.Driver;
+
+/**
+ * Extension of standard LCSim job manager which does some HPS-specific management of the conditions system.
+ *
+ * @author Jeremy McCormick, SLAC
+ */
+public class JobManager extends JobControlManager {
+
+ /**
+ * Run the job manager from the command line.
+ *
+ * @param args the command line arguments
+ */
+ public static void main(final String args[]) {
+ // Run the job.
+ final JobManager job = new JobManager();
+ job.run(args);
+ }
+
+ /**
+ * 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?).
+ }
+ }
+
+ /**
+ * Override setup so the conditions system can be reset.
+ *
+ * @param is the input stream containing config information
+ */
+ public void setup(InputStream is) {
+
+ // Always want to reset the conditions system before initialization.
+ DatabaseConditionsManager.resetInstance();
+
+ super.setup(is);
+ }
+
+ /**
+ * Override the parent classes method that runs the job in order to perform conditions system initialization.
+ *
+ * @return <code>true</code> if job was successful
+ */
+ @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();
+
+ // Close the conditions database connection if it is open.
+ 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 then execute its initialization method, which may override the default behavior of the conditions
+ * system.
+ */
+ private void setupConditions() {
+ ConditionsDriver conditionsDriver = null;
+ for (final Driver driver : this.getDriverAdapter().getDriver().drivers()) {
+ if (driver instanceof ConditionsDriver) {
+ conditionsDriver = (ConditionsDriver) driver;
+ break;
+ }
+ }
+ if (conditionsDriver != null) {
+ conditionsDriver.initialize();
+ }
+ }
+}
Added: java/trunk/job/src/main/java/org/hps/job/package-info.java
=============================================================================
--- java/trunk/job/src/main/java/org/hps/job/package-info.java (added)
+++ java/trunk/job/src/main/java/org/hps/job/package-info.java Tue Oct 6 11:30:01 2015
@@ -0,0 +1,6 @@
+/**
+ * This package currently contains only a simple extension to the LCSim {@link org.lcsim.job.JobControlManager} class.
+ *
+ * @author <a href="mailto:[log in to unmask]">Jeremy McCormick</a>
+ */
+package org.hps.job;
Modified: java/trunk/parent/pom.xml
=============================================================================
--- java/trunk/parent/pom.xml (original)
+++ java/trunk/parent/pom.xml Tue Oct 6 11:30:01 2015
@@ -137,107 +137,112 @@
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-util</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-detector-data</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-detector-model</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-conditions</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-ecal-recon</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-ecal-readout-sim</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-tracking</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-evio</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-recon</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-analysis</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-monitoring-drivers</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-monitoring-app</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-users</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-steering-files</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-distribution</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-ecal-event-display</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-record-util</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-monitoring-util</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-run-database</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-crawler</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.hps</groupId>
<artifactId>hps-datacat-client</artifactId>
- <version>3.4.1-SNAPSHOT</version>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hps</groupId>
+ <artifactId>hps-job</artifactId>
+ <version>${project.version}</version>
</dependency>
<!-- Next are external dependencies used in multiple modules. -->
<dependency>
Modified: java/trunk/pom.xml
=============================================================================
--- java/trunk/pom.xml (original)
+++ java/trunk/pom.xml Tue Oct 6 11:30:01 2015
@@ -136,8 +136,9 @@
<module>ecal-event-display</module>
<module>ecal-readout-sim</module>
<module>ecal-recon</module>
- <module>evio</module>
+ <module>evio</module>
<module>integration-tests</module>
+ <module>job</module>
<module>monitoring-util</module>
<module>monitoring-drivers</module>
<module>monitoring-app</module>
|