From c015330cf0e902395b53df798e5b8887970c90f9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 20 Apr 2022 08:07:18 -0600
Subject: [PATCH] add static helper method

---
 .../earthquake/nshmp/internal/AppVersion.java    | 16 ++++++++++++++++
 .../earthquake/nshmp/internal/LibVersion.java    | 15 +++++----------
 2 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/internal/AppVersion.java b/src/main/java/gov/usgs/earthquake/nshmp/internal/AppVersion.java
index d25662ad..0df51c57 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/internal/AppVersion.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/internal/AppVersion.java
@@ -1,9 +1,25 @@
 package gov.usgs.earthquake.nshmp.internal;
 
+import java.net.URL;
+
+import com.google.common.base.Charsets;
+import com.google.common.io.Resources;
+import com.google.gson.Gson;
+
 public interface AppVersion {
 
   public VersionInfo getVersionInfo();
 
+  static VersionInfo versionInfo(URL resource) {
+    try {
+      return new Gson().fromJson(
+          Resources.toString(resource, Charsets.UTF_8),
+          VersionInfo.class);
+    } catch (Exception e) {
+      throw new RuntimeException(e.getMessage());
+    }
+  }
+
   public static class VersionInfo {
     public String branchName;
     public int commitDistance;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/internal/LibVersion.java b/src/main/java/gov/usgs/earthquake/nshmp/internal/LibVersion.java
index 6fcd6f8d..901e4d1f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/internal/LibVersion.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/internal/LibVersion.java
@@ -1,19 +1,14 @@
 package gov.usgs.earthquake.nshmp.internal;
 
-import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
-import com.google.gson.Gson;
 
+/**
+ *
+ */
 public class LibVersion implements AppVersion {
 
   public VersionInfo getVersionInfo() {
-    try {
-      var resource = Resources.getResource("version.json");
-      return new Gson().fromJson(
-          Resources.toString(resource, Charsets.UTF_8),
-          VersionInfo.class);
-    } catch (Exception e) {
-      throw new RuntimeException(e.getMessage());
-    }
+    var resource = Resources.getResource(LibVersion.class, "version.json");
+    return AppVersion.versionInfo(resource);
   }
 }
-- 
GitLab