From b109f1c54d8d0ca10984daa7e81f884fed9a481d Mon Sep 17 00:00:00 2001 From: Peter Powers Date: Mon, 27 Mar 2017 11:33:57 -0600 Subject: [PATCH 1/2] added version writing and reading --- build.xml | 32 ++++++++++++++- src/org/opensha2/DeaggCalc.java | 3 +- src/org/opensha2/HazardCalc.java | 3 +- src/org/opensha2/internal/Version.java | 55 ++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 4 deletions(-) create mode 100644 src/org/opensha2/internal/Version.java diff --git a/build.xml b/build.xml index cd64b37d1..e73c69092 100644 --- a/build.xml +++ b/build.xml @@ -5,7 +5,6 @@ nshmp-haz is a platform for conducting seismic hazard calculations - @@ -14,6 +13,9 @@ + + + @@ -56,14 +58,40 @@ and internal package; need to check dependencies --> - + + + + + + + + build.date=${build.date} + build.date=${build.date} + ${line.separator} + + + + app.version=${app.version} + app.version=${app.version} + + + + + + + + + + run(String[] args) { fh.setFormatter(new Logging.ConsoleFormatter()); log.getParent().addHandler(fh); - log.info(PROGRAM + ": initializing..."); + log.info(PROGRAM + ": " + Version.APP_VERSION); Path modelPath = Paths.get(args[0]); HazardModel model = HazardModel.load(modelPath); diff --git a/src/org/opensha2/HazardCalc.java b/src/org/opensha2/HazardCalc.java index ea5386518..a4976a1f3 100644 --- a/src/org/opensha2/HazardCalc.java +++ b/src/org/opensha2/HazardCalc.java @@ -14,6 +14,7 @@ import org.opensha2.calc.ThreadCount; import org.opensha2.eq.model.HazardModel; import org.opensha2.internal.Logging; +import org.opensha2.internal.Version; import com.google.common.base.Optional; import com.google.common.base.Throwables; @@ -89,7 +90,7 @@ static Optional run(String[] args) { fh.setFormatter(new Logging.ConsoleFormatter()); log.getParent().addHandler(fh); - log.info(PROGRAM + ": initializing..."); + log.info(PROGRAM + ": " + Version.APP_VERSION); Path modelPath = Paths.get(args[0]); HazardModel model = HazardModel.load(modelPath); diff --git a/src/org/opensha2/internal/Version.java b/src/org/opensha2/internal/Version.java new file mode 100644 index 000000000..ff4926bdc --- /dev/null +++ b/src/org/opensha2/internal/Version.java @@ -0,0 +1,55 @@ +package org.opensha2.internal; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Properties; + +/** + * Application version tracking. + * + * @author Peter Powers + */ +public class Version { + + /** Application version. */ + public static final String APP_VERSION; + + /** Build date. */ + public static final String BUILD_DATE; + + static { + + String appVersion = "unknown"; + String buildDate = "now"; + + /* Assume we're running from a jar. */ + try { + InputStream is = Version.class.getResourceAsStream("/app.properties"); + Properties props = new Properties(); + props.load(is); + is.close(); + appVersion = props.getProperty("app.version"); + buildDate = props.getProperty("build.date"); + } catch (Exception e1) { + /* Otherwise check for a repository. */ + Path gitDir = Paths.get(".git"); + if (Files.exists(gitDir)) { + try { + Process pr = Runtime.getRuntime().exec("git describe --tags"); + BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream())); + appVersion = br.readLine(); + br.close(); + /* Detached from repository. */ + } catch (Exception e2) {} + } + } + + APP_VERSION = appVersion; + BUILD_DATE = buildDate; + } + +} From 7df0b78a9f4d68206f76f2f178b2c415d47934aa Mon Sep 17 00:00:00 2001 From: Peter Powers Date: Mon, 27 Mar 2017 12:59:30 -0600 Subject: [PATCH 2/2] hazardCalc now supplies version --- build.xml | 10 +---- src/org/opensha2/DeaggCalc.java | 7 ++-- src/org/opensha2/HazardCalc.java | 43 ++++++++++++++++++-- src/org/opensha2/internal/Version.java | 55 -------------------------- 4 files changed, 45 insertions(+), 70 deletions(-) delete mode 100644 src/org/opensha2/internal/Version.java diff --git a/build.xml b/build.xml index e73c69092..fd000731d 100644 --- a/build.xml +++ b/build.xml @@ -14,7 +14,6 @@ - @@ -69,17 +68,12 @@ - - - - build.date=${build.date} - build.date=${build.date} - ${line.separator} app.version=${app.version} - app.version=${app.version} + app.version=${app.version} + ${line.separator} diff --git a/src/org/opensha2/DeaggCalc.java b/src/org/opensha2/DeaggCalc.java index c8ae94c4b..dbf87e9c5 100644 --- a/src/org/opensha2/DeaggCalc.java +++ b/src/org/opensha2/DeaggCalc.java @@ -14,7 +14,6 @@ import org.opensha2.calc.ThreadCount; import org.opensha2.eq.model.HazardModel; import org.opensha2.internal.Logging; -import org.opensha2.internal.Version; import com.google.common.base.Optional; import com.google.common.base.Throwables; @@ -83,7 +82,7 @@ static Optional run(String[] args) { fh.setFormatter(new Logging.ConsoleFormatter()); log.getParent().addHandler(fh); - log.info(PROGRAM + ": " + Version.APP_VERSION); + log.info(PROGRAM + ": " + HazardCalc.VERSION); Path modelPath = Paths.get(args[0]); HazardModel model = HazardModel.load(modelPath); @@ -200,7 +199,9 @@ public static Deaggregation calc( private static final String USAGE = new StringBuilder() .append(NEWLINE) - .append(PROGRAM).append(" usage:").append(NEWLINE) + .append(PROGRAM).append(" [").append(HazardCalc.VERSION).append("]").append(NEWLINE) + .append(NEWLINE) + .append("Usage:").append(NEWLINE) .append(" ").append(USAGE_COMMAND).append(NEWLINE) .append(NEWLINE) .append("Where:").append(NEWLINE) diff --git a/src/org/opensha2/HazardCalc.java b/src/org/opensha2/HazardCalc.java index a4976a1f3..85734df9b 100644 --- a/src/org/opensha2/HazardCalc.java +++ b/src/org/opensha2/HazardCalc.java @@ -14,16 +14,19 @@ import org.opensha2.calc.ThreadCount; import org.opensha2.eq.model.HazardModel; import org.opensha2.internal.Logging; -import org.opensha2.internal.Version; import com.google.common.base.Optional; import com.google.common.base.Throwables; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; +import java.util.Properties; import java.util.concurrent.ExecutionException; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; @@ -90,7 +93,7 @@ static Optional run(String[] args) { fh.setFormatter(new Logging.ConsoleFormatter()); log.getParent().addHandler(fh); - log.info(PROGRAM + ": " + Version.APP_VERSION); + log.info(PROGRAM + ": " + VERSION); Path modelPath = Paths.get(args[0]); HazardModel model = HazardModel.load(modelPath); @@ -230,7 +233,12 @@ public static Hazard calc( throw new RuntimeException(e); } } - + + /** + * The Git application version. This version string applies to all other + * nshnmp-haz applications. + */ + public static final String VERSION = version(); private static final String PROGRAM = HazardCalc.class.getSimpleName(); private static final String USAGE_COMMAND = @@ -239,9 +247,36 @@ public static Hazard calc( private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc"; private static final String SITE_STRING = "name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]"; + private static String version() { + String version = "unknown"; + /* Assume we're running from a jar. */ + try { + InputStream is = HazardCalc.class.getResourceAsStream("/app.properties"); + Properties props = new Properties(); + props.load(is); + is.close(); + version = props.getProperty("app.version"); + } catch (Exception e1) { + /* Otherwise check for a repository. */ + Path gitDir = Paths.get(".git"); + if (Files.exists(gitDir)) { + try { + Process pr = Runtime.getRuntime().exec("git describe --tags"); + BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream())); + version = br.readLine(); + br.close(); + /* Detached from repository. */ + } catch (Exception e2) {} + } + } + return version; + } + private static final String USAGE = new StringBuilder() .append(NEWLINE) - .append(PROGRAM).append(" usage:").append(NEWLINE) + .append(PROGRAM).append(" [").append(VERSION).append("]").append(NEWLINE) + .append(NEWLINE) + .append("Usage:").append(NEWLINE) .append(" ").append(USAGE_COMMAND).append(NEWLINE) .append(NEWLINE) .append("Where:").append(NEWLINE) diff --git a/src/org/opensha2/internal/Version.java b/src/org/opensha2/internal/Version.java deleted file mode 100644 index ff4926bdc..000000000 --- a/src/org/opensha2/internal/Version.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.opensha2.internal; - -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Properties; - -/** - * Application version tracking. - * - * @author Peter Powers - */ -public class Version { - - /** Application version. */ - public static final String APP_VERSION; - - /** Build date. */ - public static final String BUILD_DATE; - - static { - - String appVersion = "unknown"; - String buildDate = "now"; - - /* Assume we're running from a jar. */ - try { - InputStream is = Version.class.getResourceAsStream("/app.properties"); - Properties props = new Properties(); - props.load(is); - is.close(); - appVersion = props.getProperty("app.version"); - buildDate = props.getProperty("build.date"); - } catch (Exception e1) { - /* Otherwise check for a repository. */ - Path gitDir = Paths.get(".git"); - if (Files.exists(gitDir)) { - try { - Process pr = Runtime.getRuntime().exec("git describe --tags"); - BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream())); - appVersion = br.readLine(); - br.close(); - /* Detached from repository. */ - } catch (Exception e2) {} - } - } - - APP_VERSION = appVersion; - BUILD_DATE = buildDate; - } - -}