From 836c82d790a271e6c986966c48d02f76063ae854 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Mon, 14 Nov 2022 14:24:24 -0700
Subject: [PATCH 01/17] increment lib

---
 gradle.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle.properties b/gradle.properties
index 935b741d..c2233801 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -11,7 +11,7 @@ micronautVersion = 3.2.3
 micronautRxVersion = 2.1.1
 nodePluginVersion = 3.0.1
 nodeVersion = 16.3.0
-nshmpLibVersion = 1.2.2
+nshmpLibVersion = 1.2.6
 nshmpWsUtilsVersion = 0.3.11
 openApiVersion = 4.0.0
 shadowVersion = 7.1.2
-- 
GitLab


From 3a1667b308b91b187d17c038993d13bfd8346c92 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Mon, 14 Nov 2022 14:25:59 -0700
Subject: [PATCH 02/17] matlab and doc edits

---
 docs/pages/Site-Specification.md              |  5 ++---
 etc/matlab/gmmExample.m                       |  1 -
 etc/matlab/response_spectra.m                 |  8 +++-----
 .../gov/usgs/earthquake/nshmp/DisaggCalc.java | 19 +++++++++----------
 .../earthquake/nshmp/www/meta/MetaUtil.java   |  1 -
 5 files changed, 14 insertions(+), 20 deletions(-)

diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index 2032f237..544130a5 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -15,9 +15,9 @@ defaults are used:
 ```text
     name: Unnamed
     vs30: 760.0
-   vsInf: true
     z1p0: null (GMM will use default basin depth model)
     z2p5: null (GMM will use default basin depth model)
+    zSed: null
 ```
 
 For basin depth parameters `z1p0` and `z2p5`, a `null` value indicates that a GMM should use
@@ -27,7 +27,7 @@ it's 'default' basin depth scale factor, which is usually included in it's Vs30
 
 * Header row must identify columns.
 * Valid and [optional] column names are:
-  `[name,] lon, lat [, vs30] [, vsInf] [, z1p0] [, z2p5]`  
+  `[name,] lon, lat [, vs30] [, z1p0] [, z2p5]`  
 * At a minimum, `lon` and `lat` must be defined.
 * Columns can be in any order and any missing fields will be populated with the default values
   listed above.
@@ -57,7 +57,6 @@ A site list is expected as a `FeatureCollection` of `Point` features. For exampl
       "properties": {
         "title": "Oakland CA",
         "vs30": 760.0,
-        "vsInf": true,
         "z1p0": 0.048,
         "z2p5": 0.607
       }
diff --git a/etc/matlab/gmmExample.m b/etc/matlab/gmmExample.m
index 22cbd363..ef643803 100644
--- a/etc/matlab/gmmExample.m
+++ b/etc/matlab/gmmExample.m
@@ -49,7 +49,6 @@ input.zTop  =   1.0; % in km
 input.zHyp  =   6.0; % in km
 input.rake  =   0.0; % in degrees
 input.vs30  = 760.0; % in m/s
-input.vsInf =  true; % boolean
 input.z2p5  =   NaN; % in km; NaN triggers default basin depth model
 input.z1p0  =   NaN; % in km; NaN triggers default basin depth model
 
diff --git a/etc/matlab/response_spectra.m b/etc/matlab/response_spectra.m
index a0943694..bb9bc73c 100644
--- a/etc/matlab/response_spectra.m
+++ b/etc/matlab/response_spectra.m
@@ -31,13 +31,12 @@ rJB = 10;
 rRup = 10.012;
 rX = 10;
 vs30 = 760;
-vsInf = true;
 zHyp = 7.5;
 zTop = 0.5;
 
 url = createUrl( ...
     urlbase, gmms, ...
-    Mw, dip, rake, width, rJB, rRup, rX, vs30, vsInf, zHyp, zTop);
+    Mw, dip, rake, width, rJB, rRup, rX, vs30, zHyp, zTop);
 %% Call web service
 
 % Open a browser window with the web service URL to show the JSON response
@@ -116,7 +115,7 @@ set(l, 'Interpreter', 'none')
 
 function url = createUrl( ...
     urlbase, gmms, ...
-    Mw, dip, rake, width, rJB, rRup, rX, vs30, vsInf, zHyp, zTop)
+    Mw, dip, rake, width, rJB, rRup, rX, vs30, zHyp, zTop)
 
     url = urlbase;
     for i = 1:size(gmms, 2)
@@ -135,7 +134,6 @@ function url = createUrl( ...
         "&rRup=" + num2str(rRup) + ...
         "&rX=" + num2str(rX) + ...
         "&vs30=" + num2str(vs30) + ...
-        "&vsInf=" + string(vsInf) + ...
         "&zHyp=" + num2str(zHyp) + ...
         "&zTop=" + num2str(zTop);
-end
\ No newline at end of file
+end
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
index c98ce870..0c726e19 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
@@ -70,34 +70,34 @@ public class DisaggCalc {
   /**
    * Entry point for the disaggregation of probabilisitic seismic hazard.
    *
-   * <p>Two approaches to disaggregation of seimic hazard are possible with this
-   * application. In the first approach, the 'sites' file is the same as it
+   * <p> Two approaches to disaggregation of seimic hazard are possible with
+   * this application. In the first approach, the 'sites' file is the same as it
    * would be for a hazard calculation, and disaggregation is performed for all
    * configured intensity measures at the 'returnPeriod' (in years) of interest
    * specified in the config file (default = 2475 years, equivalent to 2% in 50
    * years).
    *
-   * <p>In the second approach, the sites file includes columns for each
+   * <p> In the second approach, the sites file includes columns for each
    * spectral period or other intensity measure and the target ground motion
    * level to disaggregate for each. For example, the target values could be a
    * risk-targeted spectral accelerations, or they could be ground motion levels
    * precomputed for a specific return period.
    *
-   * <p>Note that the first approach will do the full hazard calculation and
+   * <p> Note that the first approach will do the full hazard calculation and
    * compute hazard curves from which the target disaggregation ground motion
    * level will be determined. In the second approach, the ground motion targets
    * are known and the time consuming hazard curve calculation can be avoided.
    *
-   * <p>Please refer to the nshmp-haz <a
+   * <p> Please refer to the nshmp-haz <a
    * href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs">
    * docs</a> for comprehensive descriptions of source models, configuration
    * files, site files, and hazard calculations.
    *
-   * @see <a
-   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md">
+   * @see <a href=
+   *      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md">
    *      nshmp-haz Building & Running</a>
-   * @see <a
-   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples">
+   * @see <a href=
+   *      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples">
    *      example calculations</a>
    */
   public static void main(String[] args) {
@@ -224,7 +224,6 @@ public class DisaggCalc {
       Site.Key.LAT,
       Site.Key.LON,
       Site.Key.VS30,
-      Site.Key.VS_INF,
       Site.Key.Z1P0,
       Site.Key.Z2P5);
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java
index a1a2c068..9c653fbe 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java
@@ -39,7 +39,6 @@ public final class MetaUtil {
       JsonObject json = new JsonObject();
       json.add("location", loc);
       json.addProperty("vs30", site.vs30());
-      json.addProperty("vsInferred", site.vsInferred());
       json.addProperty("z1p0", Double.isNaN(site.z1p0()) ? null : site.z1p0());
       json.addProperty("z2p5", Double.isNaN(site.z2p5()) ? null : site.z2p5());
 
-- 
GitLab


From 2f8f9cb7cf60b9b0fd819fea5e61bafabf4dc9a0 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Mon, 14 Nov 2022 15:26:17 -0700
Subject: [PATCH 03/17] updated peer test site files and gmm trees

---
 .../Set2-Case2a-fast/active-crust/gmm-tree.json    |  2 +-
 etc/peer/models/Set2-Case2a-fast/sites.csv         | 14 +++++++-------
 .../models/Set2-Case2a/active-crust/gmm-tree.json  |  2 +-
 etc/peer/models/Set2-Case2a/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case2b-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case2b/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case2c-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case2c/sites.csv              | 14 +++++++-------
 .../Set2-Case2d-fast/active-crust/gmm-tree.json    |  2 +-
 etc/peer/models/Set2-Case2d-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case2d/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case3a-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case3a/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case3b-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case3b/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case3c-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case3c/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case3d-fast/sites.csv         | 14 +++++++-------
 etc/peer/models/Set2-Case3d/sites.csv              | 14 +++++++-------
 etc/peer/models/Set2-Case4a-fast/sites.csv         |  4 ++--
 etc/peer/models/Set2-Case4a/sites.csv              |  4 ++--
 etc/peer/models/Set2-Case4b-fast/sites.csv         |  4 ++--
 etc/peer/models/Set2-Case4b/sites.csv              |  4 ++--
 etc/peer/models/Set2-Case5a/sites.csv              |  4 ++--
 etc/peer/models/Set2-Case5b/sites.csv              |  4 ++--
 25 files changed, 127 insertions(+), 127 deletions(-)

diff --git a/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json
index 3425f0a5..f04c7190 100644
--- a/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json
+++ b/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json
@@ -1,3 +1,3 @@
 [
-  { "id": "ASK_14_BASE", "weight": 1.0 }
+  { "id": "ASK_14_VS30_MEASURED", "weight": 1.0 }
 ]
diff --git a/etc/peer/models/Set2-Case2a-fast/sites.csv b/etc/peer/models/Set2-Case2a-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2a-fast/sites.csv
+++ b/etc/peer/models/Set2-Case2a-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json
index 3425f0a5..f04c7190 100644
--- a/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json
+++ b/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json
@@ -1,3 +1,3 @@
 [
-  { "id": "ASK_14_BASE", "weight": 1.0 }
+  { "id": "ASK_14_VS30_MEASURED", "weight": 1.0 }
 ]
diff --git a/etc/peer/models/Set2-Case2a/sites.csv b/etc/peer/models/Set2-Case2a/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2a/sites.csv
+++ b/etc/peer/models/Set2-Case2a/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2b-fast/sites.csv b/etc/peer/models/Set2-Case2b-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2b-fast/sites.csv
+++ b/etc/peer/models/Set2-Case2b-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2b/sites.csv b/etc/peer/models/Set2-Case2b/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2b/sites.csv
+++ b/etc/peer/models/Set2-Case2b/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2c-fast/sites.csv b/etc/peer/models/Set2-Case2c-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2c-fast/sites.csv
+++ b/etc/peer/models/Set2-Case2c-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2c/sites.csv b/etc/peer/models/Set2-Case2c/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2c/sites.csv
+++ b/etc/peer/models/Set2-Case2c/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json
index 621c1ab1..b6df2556 100644
--- a/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json
+++ b/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json
@@ -1,3 +1,3 @@
 [
-  { "id": "CY_14_BASE", "weight": 1.0 }
+  { "id": "CY_14_VS30_MEASURED", "weight": 1.0 }
 ]
diff --git a/etc/peer/models/Set2-Case2d-fast/sites.csv b/etc/peer/models/Set2-Case2d-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2d-fast/sites.csv
+++ b/etc/peer/models/Set2-Case2d-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case2d/sites.csv b/etc/peer/models/Set2-Case2d/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case2d/sites.csv
+++ b/etc/peer/models/Set2-Case2d/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3a-fast/sites.csv b/etc/peer/models/Set2-Case3a-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3a-fast/sites.csv
+++ b/etc/peer/models/Set2-Case3a-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3a/sites.csv b/etc/peer/models/Set2-Case3a/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3a/sites.csv
+++ b/etc/peer/models/Set2-Case3a/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3b-fast/sites.csv b/etc/peer/models/Set2-Case3b-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3b-fast/sites.csv
+++ b/etc/peer/models/Set2-Case3b-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3b/sites.csv b/etc/peer/models/Set2-Case3b/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3b/sites.csv
+++ b/etc/peer/models/Set2-Case3b/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3c-fast/sites.csv b/etc/peer/models/Set2-Case3c-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3c-fast/sites.csv
+++ b/etc/peer/models/Set2-Case3c-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3c/sites.csv b/etc/peer/models/Set2-Case3c/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3c/sites.csv
+++ b/etc/peer/models/Set2-Case3c/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3d-fast/sites.csv b/etc/peer/models/Set2-Case3d-fast/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3d-fast/sites.csv
+++ b/etc/peer/models/Set2-Case3d-fast/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case3d/sites.csv b/etc/peer/models/Set2-Case3d/sites.csv
index f87b4f6c..4fec5398 100644
--- a/etc/peer/models/Set2-Case3d/sites.csv
+++ b/etc/peer/models/Set2-Case3d/sites.csv
@@ -1,7 +1,7 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607
-PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607
+PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case4a-fast/sites.csv b/etc/peer/models/Set2-Case4a-fast/sites.csv
index 37f17e66..82ec41bb 100644
--- a/etc/peer/models/Set2-Case4a-fast/sites.csv
+++ b/etc/peer/models/Set2-Case4a-fast/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case4a/sites.csv b/etc/peer/models/Set2-Case4a/sites.csv
index 37f17e66..82ec41bb 100644
--- a/etc/peer/models/Set2-Case4a/sites.csv
+++ b/etc/peer/models/Set2-Case4a/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case4b-fast/sites.csv b/etc/peer/models/Set2-Case4b-fast/sites.csv
index 37f17e66..82ec41bb 100644
--- a/etc/peer/models/Set2-Case4b-fast/sites.csv
+++ b/etc/peer/models/Set2-Case4b-fast/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case4b/sites.csv b/etc/peer/models/Set2-Case4b/sites.csv
index 37f17e66..82ec41bb 100644
--- a/etc/peer/models/Set2-Case4b/sites.csv
+++ b/etc/peer/models/Set2-Case4b/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case5a/sites.csv b/etc/peer/models/Set2-Case5a/sites.csv
index a89656bc..6d1f6f18 100644
--- a/etc/peer/models/Set2-Case5a/sites.csv
+++ b/etc/peer/models/Set2-Case5a/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault6-Site1,-65.13490, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault6-Site1,-65.13490, 0.00000,760,0.048,0.607
diff --git a/etc/peer/models/Set2-Case5b/sites.csv b/etc/peer/models/Set2-Case5b/sites.csv
index a89656bc..6d1f6f18 100644
--- a/etc/peer/models/Set2-Case5b/sites.csv
+++ b/etc/peer/models/Set2-Case5b/sites.csv
@@ -1,2 +1,2 @@
-name,lon,lat,vs30,vsInf,z1p0,z2p5
-PEER S2-Fault6-Site1,-65.13490, 0.00000,760,false,0.048,0.607
+name,lon,lat,vs30,z1p0,z2p5
+PEER S2-Fault6-Site1,-65.13490, 0.00000,760,0.048,0.607
-- 
GitLab


From 17046ff279912dcffc732e196f977af1a39accac Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Mon, 21 Nov 2022 10:24:20 -0700
Subject: [PATCH 04/17] add new test sites service and controller

---
 .../nshmp/www/source/TestSitesController.java | 87 +++++++++++++++++++
 .../nshmp/www/source/TestSitesService.java    | 53 +++++++++++
 2 files changed, 140 insertions(+)
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
new file mode 100644
index 00000000..120cc13f
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
@@ -0,0 +1,87 @@
+package gov.usgs.earthquake.nshmp.www.source;
+
+import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
+import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
+import gov.usgs.earthquake.nshmp.www.ResponseBody;
+import gov.usgs.earthquake.nshmp.www.ServletUtil;
+import gov.usgs.earthquake.nshmp.www.source.TestSitesService.RequestData;
+
+import io.micronaut.core.annotation.Nullable;
+import io.micronaut.http.HttpRequest;
+import io.micronaut.http.HttpResponse;
+import io.micronaut.http.MediaType;
+import io.micronaut.http.annotation.Controller;
+import io.micronaut.http.annotation.Get;
+import io.micronaut.http.annotation.PathVariable;
+import io.micronaut.http.annotation.QueryValue;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.inject.Inject;
+
+/**
+ * Micronaut web service controller for the GeoJSON test sites associated with
+ * the current installed model.
+ *
+ * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed
+ * model.
+ *
+ * <p>To run the Micronaut jar file with a model: java -jar
+ * path/to/nshmp-haz.jar --model=<path/to/model>
+ *
+ * @author U.S. Geological Survey
+ */
+@Tag(
+    name = TestSitesService.NAME,
+    description = "NSHM test sites")
+@Controller("/sites")
+public class TestSitesController {
+
+  @Inject
+  private NshmpMicronautServlet servlet;
+
+  @Operation(
+      summary = "Get the GeoJSON Feature Collection of test sites",
+      description = "Returns the feature collection of test sites",
+      operationId = "test-sites")
+  @ApiResponse(
+      description = "NSHM test sites",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = Response.class)))
+  @Get(uri = "{?raw}", produces = MediaType.APPLICATION_JSON)
+  public HttpResponse<String> doGet(
+      HttpRequest<?> http,
+      @QueryValue(defaultValue = "false") @Nullable Boolean raw) {
+    try {
+      return HttpResponse.ok(TestSitesService.handleSites(http, raw));
+    } catch (Exception e) {
+      return ServletUtil.error(
+          TestSitesService.LOG,
+          e,
+          TestSitesService.NAME,
+          http.getUri().toString());
+    }
+  }
+
+  @Operation(
+      summary = "Get the GeoJSON Feature Collection of test sites",
+      description = "Returns the feature collection of test sites",
+      operationId = "test-sites-slash")
+  @ApiResponse(
+      description = "NSHM test sites",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = Response.class)))
+  @Get(uri = "/{raw}", produces = MediaType.APPLICATION_JSON)
+  public HttpResponse<String> doGetSlash(
+      HttpRequest<?> http,
+      @PathVariable(defaultValue = "false") @Nullable Boolean raw) {
+    return doGet(http, raw);
+  }
+
+  // Swagger schema
+  private static class Response extends ResponseBody<RequestData, FeatureCollection> {};
+}
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java
new file mode 100644
index 00000000..643a2b89
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java
@@ -0,0 +1,53 @@
+package gov.usgs.earthquake.nshmp.www.source;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.gson.JsonElement;
+
+import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
+import gov.usgs.earthquake.nshmp.www.HazVersion;
+import gov.usgs.earthquake.nshmp.www.ResponseBody;
+import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
+import gov.usgs.earthquake.nshmp.www.ServletUtil;
+
+import io.micronaut.http.HttpRequest;
+import jakarta.inject.Singleton;
+
+/**
+ * Test sites handler for {@link TestSitesController}.
+ *
+ * @author U.S. Geological Survey
+ */
+@Singleton
+public class TestSitesService {
+  static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class);
+  static final String NAME = "Test Sites";
+
+  static String handleSites(HttpRequest<?> http, Boolean raw) {
+    RequestData requestData = new RequestData(raw);
+    FeatureCollection sites = ServletUtil.model().sites().orElseThrow();
+
+    if (requestData.raw) {
+      return sites.toJson();
+    } else {
+      var response = ResponseBody.<RequestData, JsonElement> success()
+          .name(NAME)
+          .url(http.getUri().toString())
+          .metadata(new ResponseMetadata(HazVersion.appVersions()))
+          .request(requestData)
+          .response(sites.toJsonTree())
+          .build();
+
+      return ServletUtil.GSON2.toJson(response);
+    }
+  }
+
+  static class RequestData {
+    public boolean raw;
+
+    RequestData(Boolean raw) {
+      this.raw = raw == null ? false : raw;
+    }
+  }
+}
-- 
GitLab


From 7f4f9e45003e63ae4a904c875fb1328e9cd92930 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Mon, 21 Nov 2022 10:29:20 -0700
Subject: [PATCH 05/17] remove sites from usage

---
 .../gov/usgs/earthquake/nshmp/www/source/SourceService.java     | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
index dff84118..1be96725 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
@@ -75,7 +75,6 @@ public class SourceService {
     final List<Parameter> imts;
     final List<Double> bounds;
     final FeatureCollection map;
-    final FeatureCollection sites;
 
     public SourceModel(HazardModel model) {
       name = model.name();
@@ -90,7 +89,6 @@ public class SourceService {
           .collect(toList());
       bounds = DoubleStream.of(model.bounds().toArray()).boxed().collect(toList());
       map = model.map().orElseThrow();
-      sites = model.sites().orElseThrow();
     }
 
     public String getName() {
-- 
GitLab


From dbba2bbc1c661da129eaf0d3a2501f6b1d3d3a12 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Tue, 22 Nov 2022 14:33:32 -0700
Subject: [PATCH 06/17] updated lib with ability to get model features

---
 gradle.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle.properties b/gradle.properties
index c2233801..04aad5c2 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -11,7 +11,7 @@ micronautVersion = 3.2.3
 micronautRxVersion = 2.1.1
 nodePluginVersion = 3.0.1
 nodeVersion = 16.3.0
-nshmpLibVersion = 1.2.6
+nshmpLibVersion = 1.2.7
 nshmpWsUtilsVersion = 0.3.11
 openApiVersion = 4.0.0
 shadowVersion = 7.1.2
-- 
GitLab


From 7fc08f59e10a81300f17b31e122eaa0a0fd19950 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Tue, 22 Nov 2022 14:33:58 -0700
Subject: [PATCH 07/17] vsInf removal fix for skipped test

---
 etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json
index 621c1ab1..d0c44e6e 100644
--- a/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json
+++ b/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json
@@ -1,3 +1,3 @@
 [
-  { "id": "CY_14_BASE", "weight": 1.0 }
+  { "id": "CY_14_BASE_VS30_MEASURED", "weight": 1.0 }
 ]
-- 
GitLab


From d8bcb2896d8da153ed52c635c7c9e6c2cbcdddbf Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 15:36:52 -0700
Subject: [PATCH 08/17] Remove service

---
 .../nshmp/www/source/TestSitesService.java    | 53 -------------------
 1 file changed, 53 deletions(-)
 delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java
deleted file mode 100644
index 643a2b89..00000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package gov.usgs.earthquake.nshmp.www.source;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.JsonElement;
-
-import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
-import gov.usgs.earthquake.nshmp.www.HazVersion;
-import gov.usgs.earthquake.nshmp.www.ResponseBody;
-import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
-import gov.usgs.earthquake.nshmp.www.ServletUtil;
-
-import io.micronaut.http.HttpRequest;
-import jakarta.inject.Singleton;
-
-/**
- * Test sites handler for {@link TestSitesController}.
- *
- * @author U.S. Geological Survey
- */
-@Singleton
-public class TestSitesService {
-  static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class);
-  static final String NAME = "Test Sites";
-
-  static String handleSites(HttpRequest<?> http, Boolean raw) {
-    RequestData requestData = new RequestData(raw);
-    FeatureCollection sites = ServletUtil.model().sites().orElseThrow();
-
-    if (requestData.raw) {
-      return sites.toJson();
-    } else {
-      var response = ResponseBody.<RequestData, JsonElement> success()
-          .name(NAME)
-          .url(http.getUri().toString())
-          .metadata(new ResponseMetadata(HazVersion.appVersions()))
-          .request(requestData)
-          .response(sites.toJsonTree())
-          .build();
-
-      return ServletUtil.GSON2.toJson(response);
-    }
-  }
-
-  static class RequestData {
-    public boolean raw;
-
-    RequestData(Boolean raw) {
-      this.raw = raw == null ? false : raw;
-    }
-  }
-}
-- 
GitLab


From 2c9634fa014ed9f87cb57369aa5ecbc10d0387f9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 15:37:01 -0700
Subject: [PATCH 09/17] add common service

---
 .../www/source/FeatureCollectionService.java  | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java
new file mode 100644
index 00000000..eb7bf05e
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java
@@ -0,0 +1,51 @@
+package gov.usgs.earthquake.nshmp.www.source;
+
+import com.google.gson.JsonElement;
+
+import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
+import gov.usgs.earthquake.nshmp.www.HazVersion;
+import gov.usgs.earthquake.nshmp.www.ResponseBody;
+import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
+import gov.usgs.earthquake.nshmp.www.ServletUtil;
+
+import io.micronaut.http.HttpRequest;
+import jakarta.inject.Singleton;
+
+/**
+ * Handle feature collection services.
+ *
+ * @author U.S. Geological Survey
+ */
+@Singleton
+public class FeatureCollectionService {
+
+  static String handleFeatureCollection(
+      HttpRequest<?> http,
+      String name,
+      FeatureCollection fc,
+      Boolean raw) {
+    RequestData requestData = new RequestData(raw);
+
+    if (requestData.raw) {
+      return fc.toJson();
+    } else {
+      var response = ResponseBody.<RequestData, JsonElement> success()
+          .name(name)
+          .url(http.getUri().toString())
+          .metadata(new ResponseMetadata(HazVersion.appVersions()))
+          .request(requestData)
+          .response(fc.toJsonTree())
+          .build();
+
+      return ServletUtil.GSON2.toJson(response);
+    }
+  }
+
+  static class RequestData {
+    public boolean raw;
+
+    RequestData(Boolean raw) {
+      this.raw = raw == null ? false : raw;
+    }
+  }
+}
-- 
GitLab


From 2ffbfd8efa73a92f1f6efc1ea726a290e97b9827 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 15:37:09 -0700
Subject: [PATCH 10/17] add map controller

---
 .../nshmp/www/source/MapController.java       | 94 +++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java
new file mode 100644
index 00000000..2538b89a
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java
@@ -0,0 +1,94 @@
+package gov.usgs.earthquake.nshmp.www.source;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
+import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
+import gov.usgs.earthquake.nshmp.www.ResponseBody;
+import gov.usgs.earthquake.nshmp.www.ServletUtil;
+import gov.usgs.earthquake.nshmp.www.source.FeatureCollectionService.RequestData;
+
+import io.micronaut.core.annotation.Nullable;
+import io.micronaut.http.HttpRequest;
+import io.micronaut.http.HttpResponse;
+import io.micronaut.http.MediaType;
+import io.micronaut.http.annotation.Controller;
+import io.micronaut.http.annotation.Get;
+import io.micronaut.http.annotation.PathVariable;
+import io.micronaut.http.annotation.QueryValue;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.inject.Inject;
+
+/**
+ * Micronaut web service controller for the GeoJSON map boundary associated with
+ * the current installed model.
+ *
+ * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed
+ * model.
+ *
+ * <p>To run the Micronaut jar file with a model: java -jar
+ * path/to/nshmp-haz.jar --model=<path/to/model>
+ *
+ * @author U.S. Geological Survey
+ */
+@Tag(
+    name = MapController.NAME,
+    description = "NSHM map boundary")
+@Controller("/map")
+public class MapController {
+  static final Logger LOG = LoggerFactory.getLogger(MapController.class);
+  static final String NAME = "Map boundary";
+
+  @Inject
+  private NshmpMicronautServlet servlet;
+
+  @Operation(
+      summary = "Get the GeoJSON map boundary",
+      description = "Returns the feature collection of NSHM map boundary",
+      operationId = "map")
+  @ApiResponse(
+      description = "NSHM map boundary",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = Response.class)))
+  @Get(uri = "{?raw}", produces = MediaType.APPLICATION_JSON)
+  public HttpResponse<String> doGet(
+      HttpRequest<?> http,
+      @QueryValue(defaultValue = "false") @Nullable Boolean raw) {
+    try {
+      FeatureCollection map = ServletUtil.model().map().orElseThrow();
+      return HttpResponse
+          .ok(FeatureCollectionService.handleFeatureCollection(http, NAME, map, raw));
+    } catch (Exception e) {
+      return ServletUtil.error(
+          LOG,
+          e,
+          NAME,
+          http.getUri().toString());
+    }
+  }
+
+  @Operation(
+      summary = "Get the GeoJSON map boundary",
+      description = "Returns the feature collection of NSHM map boundary",
+      operationId = "map-slash")
+  @ApiResponse(
+      description = "NSHM map boundary",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = Response.class)))
+  @Get(uri = "/{raw}", produces = MediaType.APPLICATION_JSON)
+  public HttpResponse<String> doGetSlash(
+      HttpRequest<?> http,
+      @PathVariable(defaultValue = "false") @Nullable Boolean raw) {
+    return doGet(http, raw);
+  }
+
+  // Swagger schema
+  private static class Response extends ResponseBody<RequestData, FeatureCollection> {};
+}
-- 
GitLab


From 69200c7d9da7d67376478d321ce52562b4e4185b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 15:37:34 -0700
Subject: [PATCH 11/17] Use feature collection service

---
 .../nshmp/www/source/TestSitesController.java   | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
index 120cc13f..45fa30f2 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java
@@ -1,10 +1,13 @@
 package gov.usgs.earthquake.nshmp.www.source;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.TestSitesService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.FeatureCollectionService.RequestData;
 
 import io.micronaut.core.annotation.Nullable;
 import io.micronaut.http.HttpRequest;
@@ -34,10 +37,12 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = TestSitesService.NAME,
+    name = TestSitesController.NAME,
     description = "NSHM test sites")
 @Controller("/sites")
 public class TestSitesController {
+  static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class);
+  static final String NAME = "Test Sites";
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -56,12 +61,14 @@ public class TestSitesController {
       HttpRequest<?> http,
       @QueryValue(defaultValue = "false") @Nullable Boolean raw) {
     try {
-      return HttpResponse.ok(TestSitesService.handleSites(http, raw));
+      FeatureCollection sites = ServletUtil.model().sites().orElseThrow();
+      return HttpResponse
+          .ok(FeatureCollectionService.handleFeatureCollection(http, NAME, sites, raw));
     } catch (Exception e) {
       return ServletUtil.error(
-          TestSitesService.LOG,
+          LOG,
           e,
-          TestSitesService.NAME,
+          NAME,
           http.getUri().toString());
     }
   }
-- 
GitLab


From be85c9a662296553e59db4f3f4c3e3ff3e67b860 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 15:58:27 -0700
Subject: [PATCH 12/17] Remove map

---
 .../gov/usgs/earthquake/nshmp/www/source/SourceService.java    | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
index 1be96725..6cedce84 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java
@@ -10,7 +10,6 @@ import java.util.stream.DoubleStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection;
 import gov.usgs.earthquake.nshmp.gmm.Gmm;
 import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
 import gov.usgs.earthquake.nshmp.model.HazardModel;
@@ -74,7 +73,6 @@ public class SourceService {
     final Map<NehrpSiteClass, Double> siteClasses;
     final List<Parameter> imts;
     final List<Double> bounds;
-    final FeatureCollection map;
 
     public SourceModel(HazardModel model) {
       name = model.name();
@@ -88,7 +86,6 @@ public class SourceService {
           .map(imt -> new Parameter(ServletUtil.imtShortLabel(imt), imt.name()))
           .collect(toList());
       bounds = DoubleStream.of(model.bounds().toArray()).boxed().collect(toList());
-      map = model.map().orElseThrow();
     }
 
     public String getName() {
-- 
GitLab


From 0cbd832a85080141a8981a7297009563054bb1df Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 22 Nov 2022 16:36:45 -0700
Subject: [PATCH 13/17] update name

---
 .../gov/usgs/earthquake/nshmp/www/source/MapController.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java
index 2538b89a..dffe6979 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java
@@ -42,7 +42,7 @@ import jakarta.inject.Inject;
 @Controller("/map")
 public class MapController {
   static final Logger LOG = LoggerFactory.getLogger(MapController.class);
-  static final String NAME = "Map boundary";
+  static final String NAME = "Map Boundary";
 
   @Inject
   private NshmpMicronautServlet servlet;
-- 
GitLab


From f59bc25cdedf82c31da2f128a884d7e58f8511ef Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Wed, 23 Nov 2022 07:52:17 -0700
Subject: [PATCH 14/17] class renaming

---
 ...Controller.java => FeatureController.java} | 20 +++++++++----------
 ...aturesService.java => FeatureService.java} |  6 +++---
 ...ntroller.java => LogicTreeController.java} | 20 +++++++++----------
 ...reesService.java => LogicTreeService.java} |  6 +++---
 4 files changed, 26 insertions(+), 26 deletions(-)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeaturesController.java => FeatureController.java} (85%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeaturesService.java => FeatureService.java} (92%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{SourceLogicTreesController.java => LogicTreeController.java} (83%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{SourceLogicTreesService.java => LogicTreeService.java} (91%)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
similarity index 85%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
index 9c854547..a473ab1b 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.FeatureService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.FeatureService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = FeaturesService.NAME,
+    name = FeatureService.NAME,
     description = "USGS NSHM source model features service")
 @Controller("/features")
-public class FeaturesController {
+public class FeatureController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class FeaturesController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return FeaturesService.getMetadata(http);
+      return FeatureService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeaturesService.LOG, e,
-          FeaturesService.NAME,
+          FeatureService.LOG, e,
+          FeatureService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class FeaturesController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return FeaturesService.getTree(http, id);
+      return FeatureService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeaturesService.LOG, e,
-          FeaturesService.NAME,
+          FeatureService.LOG, e,
+          FeatureService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
similarity index 92%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
index 786bafca..8b9433d9 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree feature handler for {@link FeaturesController}
+ * Source model tree feature handler for {@link FeatureController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class FeaturesService {
+public class FeatureService {
 
   static final String NAME = "Model Features";
-  static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class);
+  static final Logger LOG = LoggerFactory.getLogger(FeatureService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
similarity index 83%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
index 971c66e8..ef531443 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = SourceLogicTreesService.NAME,
+    name = LogicTreeService.NAME,
     description = "USGS NSHM source model logic tree service")
 @Controller("/trees")
-public class SourceLogicTreesController {
+public class LogicTreeController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class SourceLogicTreesController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return SourceLogicTreesService.getMetadata(http);
+      return LogicTreeService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          SourceLogicTreesService.LOG, e,
-          SourceLogicTreesService.NAME,
+          LogicTreeService.LOG, e,
+          LogicTreeService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class SourceLogicTreesController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return SourceLogicTreesService.getTree(http, id);
+      return LogicTreeService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          SourceLogicTreesService.LOG, e,
-          SourceLogicTreesService.NAME,
+          LogicTreeService.LOG, e,
+          LogicTreeService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
similarity index 91%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
index 3f0fe654..7de2b5f5 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree handler for {@link SourceLogicTreesController}
+ * Source model tree handler for {@link LogicTreeController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class SourceLogicTreesService {
+public class LogicTreeService {
 
   static final String NAME = "Model Logic Trees";
-  static final Logger LOG = LoggerFactory.getLogger(SourceLogicTreesService.class);
+  static final Logger LOG = LoggerFactory.getLogger(LogicTreeService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
-- 
GitLab


From 07000451f8b9b184b0c92b58134f3f1a7c6ebe9b Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Wed, 23 Nov 2022 07:54:12 -0700
Subject: [PATCH 15/17] class renaming

---
 ...ontroller.java => FeaturesController.java} | 20 +++++++++----------
 ...atureService.java => FeaturesService.java} |  6 +++---
 ...troller.java => LogicTreesController.java} | 20 +++++++++----------
 ...reeService.java => LogicTreesService.java} |  6 +++---
 4 files changed, 26 insertions(+), 26 deletions(-)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeatureController.java => FeaturesController.java} (85%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeatureService.java => FeaturesService.java} (92%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{LogicTreeController.java => LogicTreesController.java} (85%)
 rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{LogicTreeService.java => LogicTreesService.java} (92%)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
similarity index 85%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
index a473ab1b..9c854547 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.FeatureService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.FeatureService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = FeatureService.NAME,
+    name = FeaturesService.NAME,
     description = "USGS NSHM source model features service")
 @Controller("/features")
-public class FeatureController {
+public class FeaturesController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class FeatureController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return FeatureService.getMetadata(http);
+      return FeaturesService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeatureService.LOG, e,
-          FeatureService.NAME,
+          FeaturesService.LOG, e,
+          FeaturesService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class FeatureController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return FeatureService.getTree(http, id);
+      return FeaturesService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          FeatureService.LOG, e,
-          FeatureService.NAME,
+          FeaturesService.LOG, e,
+          FeaturesService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
similarity index 92%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
index 8b9433d9..786bafca 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree feature handler for {@link FeatureController}
+ * Source model tree feature handler for {@link FeaturesController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class FeatureService {
+public class FeaturesService {
 
   static final String NAME = "Model Features";
-  static final Logger LOG = LoggerFactory.getLogger(FeatureService.class);
+  static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
similarity index 85%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
index ef531443..6e7c98b5 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
@@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source;
 import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet;
 import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
-import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.Metadata;
-import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.RequestData;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata;
+import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData;
 
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
@@ -31,10 +31,10 @@ import jakarta.inject.Inject;
  * @author U.S. Geological Survey
  */
 @Tag(
-    name = LogicTreeService.NAME,
+    name = LogicTreesService.NAME,
     description = "USGS NSHM source model logic tree service")
 @Controller("/trees")
-public class LogicTreeController {
+public class LogicTreesController {
 
   @Inject
   private NshmpMicronautServlet servlet;
@@ -52,11 +52,11 @@ public class LogicTreeController {
   @Get
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
-      return LogicTreeService.getMetadata(http);
+      return LogicTreesService.getMetadata(http);
     } catch (Exception e) {
       return ServletUtil.error(
-          LogicTreeService.LOG, e,
-          LogicTreeService.NAME,
+          LogicTreesService.LOG, e,
+          LogicTreesService.NAME,
           http.getUri().toString());
     }
   }
@@ -76,11 +76,11 @@ public class LogicTreeController {
   @Get(uri = "/{id}")
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return LogicTreeService.getTree(http, id);
+      return LogicTreesService.getTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
-          LogicTreeService.LOG, e,
-          LogicTreeService.NAME,
+          LogicTreesService.LOG, e,
+          LogicTreesService.NAME,
           http.getUri().toString());
     }
   }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
similarity index 92%
rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
index 7de2b5f5..696420b0 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
@@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
 
 /**
- * Source model tree handler for {@link LogicTreeController}
+ * Source model tree handler for {@link LogicTreesController}
  *
  * @author U.S. Geological Survey
  */
 @Singleton
-public class LogicTreeService {
+public class LogicTreesService {
 
   static final String NAME = "Model Logic Trees";
-  static final Logger LOG = LoggerFactory.getLogger(LogicTreeService.class);
+  static final Logger LOG = LoggerFactory.getLogger(LogicTreesService.class);
 
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
-- 
GitLab


From b40ffb6542a7025322050da18e7e5b6da634798e Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Wed, 23 Nov 2022 09:36:05 -0700
Subject: [PATCH 16/17] merged mfd and feature logic tree services

---
 .../nshmp/www/source/FeaturesController.java  | 14 ++++-
 .../nshmp/www/source/FeaturesService.java     |  3 +-
 .../www/source/LogicTreesController.java      | 61 +++++++++++++++++--
 .../nshmp/www/source/LogicTreesService.java   | 21 +++++--
 4 files changed, 85 insertions(+), 14 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
index 9c854547..a15a3262 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
@@ -5,7 +5,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata;
 import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import io.micronaut.http.annotation.Controller;
@@ -19,8 +18,8 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.inject.Inject;
 
 /**
- * Micronaut web service controller for the GeoJSON features in the current
- * installed model.
+ * Micronaut web service controller for the GeoJSON features in the installed
+ * model.
  *
  * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed
  * model.
@@ -39,6 +38,13 @@ public class FeaturesController {
   @Inject
   private NshmpMicronautServlet servlet;
 
+  /*
+   * Not sure we need metadata for this. Issue #542 describes the various groups
+   * that could be supported. However instead of 'all' one could consider just
+   * having no argument such that the root endpoint path would just return all
+   * features.
+   */
+
   @Operation(
       summary = "Source model logic tree listing",
       description = "Returns the ID's of logic trees in the model",
@@ -50,6 +56,7 @@ public class FeaturesController {
           schema = @Schema(
               implementation = MetadataResponse.class)))
   @Get
+  @Deprecated
   public HttpResponse<String> doGetMetadata(HttpRequest<?> http) {
     try {
       return FeaturesService.getMetadata(http);
@@ -74,6 +81,7 @@ public class FeaturesController {
       content = @Content(
           schema = @Schema(implementation = TreeResponse.class)))
   @Get(uri = "/{id}")
+  @Deprecated
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
       return FeaturesService.getTree(http, id);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
index 786bafca..258c8b0a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
@@ -10,7 +10,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
@@ -26,6 +25,7 @@ public class FeaturesService {
   static final String NAME = "Model Features";
   static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class);
 
+  @Deprecated
   public static HttpResponse<String> getMetadata(HttpRequest<?> request) {
     var url = request.getUri().toString();
     var metadata = new Metadata(ServletUtil.model());
@@ -39,6 +39,7 @@ public class FeaturesService {
     return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
   }
 
+  @Deprecated
   public static HttpResponse<String> getTree(HttpRequest<?> request, Integer id) {
     var url = request.getUri().toString();
     var features = Models.features(ServletUtil.model(), id);
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
index 6e7c98b5..dba2f819 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
@@ -5,7 +5,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata;
 import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import io.micronaut.http.annotation.Controller;
@@ -19,8 +18,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.inject.Inject;
 
 /**
- * Micronaut web service controller for the source logic trees in the current
- * installed model.
+ * Micronaut web service controller for the source logic trees in the installed
+ * model. These endpoints return the GeoJSON features and Magnitude frequency
+ * distributions associated with the branches in a source logic tree.
  *
  * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed
  * model.
@@ -41,7 +41,7 @@ public class LogicTreesController {
 
   @Operation(
       summary = "Source model logic tree listing",
-      description = "Returns the ID's of logic trees in the model",
+      description = "Returns the IDs of logic trees in the model",
       operationId = "source-tree-metadata")
   @ApiResponse(
       description = "Source logic tree metadata",
@@ -67,16 +67,65 @@ public class LogicTreesController {
   @Operation(
       summary = "Get a source model MFD logic tree",
       description = "Returns the logic tree of MFDs for the supplied ID",
-      operationId = "source-tree-mfds")
+      operationId = "source-tree-mfds-old")
   @ApiResponse(
       description = "NSHM source logic tree",
       responseCode = "200",
       content = @Content(
           schema = @Schema(implementation = TreeResponse.class)))
   @Get(uri = "/{id}")
+  @Deprecated
   public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) {
     try {
-      return LogicTreesService.getTree(http, id);
+      return LogicTreesService.getMfdTree(http, id);
+    } catch (Exception e) {
+      return ServletUtil.error(
+          LogicTreesService.LOG, e,
+          LogicTreesService.NAME,
+          http.getUri().toString());
+    }
+  }
+
+  /**
+   * @param id Source logic tree id
+   */
+  @Operation(
+      summary = "Get a source model feature logic tree",
+      description = "Returns the logic tree of features for the supplied ID",
+      operationId = "source-tree-features")
+  @ApiResponse(
+      description = "NSHM source logic tree",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = TreeResponse.class)))
+  @Get(uri = "/features/{id}")
+  public HttpResponse<String> doGetFeatureTree(HttpRequest<?> http, @PathVariable int id) {
+    try {
+      return LogicTreesService.getFeatureTree(http, id);
+    } catch (Exception e) {
+      return ServletUtil.error(
+          LogicTreesService.LOG, e,
+          LogicTreesService.NAME,
+          http.getUri().toString());
+    }
+  }
+
+  /**
+   * @param id Source logic tree id
+   */
+  @Operation(
+      summary = "Get a source model MFD logic tree",
+      description = "Returns the logic tree of MFDs for the supplied ID",
+      operationId = "source-tree-mfds")
+  @ApiResponse(
+      description = "NSHM source logic tree",
+      responseCode = "200",
+      content = @Content(
+          schema = @Schema(implementation = TreeResponse.class)))
+  @Get(uri = "/mfds/{id}")
+  public HttpResponse<String> doGetMfdTree(HttpRequest<?> http, @PathVariable int id) {
+    try {
+      return LogicTreesService.getMfdTree(http, id);
     } catch (Exception e) {
       return ServletUtil.error(
           LogicTreesService.LOG, e,
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
index 696420b0..0065c82b 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
@@ -10,7 +10,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
@@ -39,16 +38,30 @@ public class LogicTreesService {
     return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
   }
 
-  public static HttpResponse<String> getTree(HttpRequest<?> request, Integer id) {
+  public static HttpResponse<String> getFeatureTree(HttpRequest<?> request, Integer id) {
+    var url = request.getUri().toString();
+    var featureTree = Models.features(ServletUtil.model(), id);
+    var requestData = new RequestData(id);
+    var response = ResponseBody.success()
+        .name(NAME)
+        .url(url)
+        .metadata(new ResponseMetadata(HazVersion.appVersions()))
+        .request(requestData)
+        .response(featureTree)
+        .build();
+    return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
+  }
+
+  public static HttpResponse<String> getMfdTree(HttpRequest<?> request, Integer id) {
     var url = request.getUri().toString();
-    var tree = Models.tree(ServletUtil.model(), id);
+    var mfdTree = Models.tree(ServletUtil.model(), id);
     var requestData = new RequestData(id);
     var response = ResponseBody.success()
         .name(NAME)
         .url(url)
         .metadata(new ResponseMetadata(HazVersion.appVersions()))
         .request(requestData)
-        .response(tree)
+        .response(mfdTree)
         .build();
     return HttpResponse.ok(ServletUtil.GSON2.toJson(response));
   }
-- 
GitLab


From 74becf87978218511d6bec0171fbce389c6fd2ef Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Wed, 23 Nov 2022 09:38:46 -0700
Subject: [PATCH 17/17] spotless edits

---
 package-lock.json                                                | 1 -
 .../gov/usgs/earthquake/nshmp/www/source/FeaturesController.java | 1 +
 .../gov/usgs/earthquake/nshmp/www/source/FeaturesService.java    | 1 +
 .../usgs/earthquake/nshmp/www/source/LogicTreesController.java   | 1 +
 .../gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java  | 1 +
 5 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/package-lock.json b/package-lock.json
index dc72624b..fd03b78e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,7 +5,6 @@
   "requires": true,
   "packages": {
     "": {
-      "name": "nshmp-haz",
       "version": "2.0.0",
       "devDependencies": {
         "markdownlint-cli": "^0.31.1",
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
index a15a3262..3ff3662e 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java
@@ -5,6 +5,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata;
 import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData;
+
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import io.micronaut.http.annotation.Controller;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
index 258c8b0a..f21bf57d 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java
@@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel;
+
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
index dba2f819..6fd72aaf 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java
@@ -5,6 +5,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata;
 import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData;
+
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import io.micronaut.http.annotation.Controller;
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
index 0065c82b..1a679b0d 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java
@@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody;
 import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel;
+
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 import jakarta.inject.Singleton;
-- 
GitLab