From 98d7a343d34fa1088986c6463e85be7e55ebd4c5 Mon Sep 17 00:00:00 2001
From: bclayton-usgs <bclayton@usgs.gov>
Date: Fri, 28 Feb 2020 14:30:16 -0700
Subject: [PATCH] add micronaut and swagger

---
 build.gradle | 63 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 57 insertions(+), 6 deletions(-)

diff --git a/build.gradle b/build.gradle
index d55d9f3..5619997 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,10 @@
 plugins {
+  id "application"
   id "eclipse-wtp"
   id "java"
   id "jacoco"
+  id "com.github.johnrengelman.shadow" version "5.2.0"
+  id "net.ltgt.apt-eclipse" version "0.21"
   id "com.star-zero.gradle.githook" version "1.2.0"
   id "com.github.spotbugs" version "3.0.0"
   id "com.diffplug.gradle.spotless" version "3.27.1"
@@ -14,9 +17,7 @@ apply from: project(":nshmp-lib").file("gradle/spotless.gradle")
 sourceCompatibility = JavaVersion.VERSION_11
 compileJava.options.encoding = "UTF-8"
 
-jacoco {
-  toolVersion = "0.8.4"
-}
+mainClassName = "gov.usgs.earthquake.nshmp.netcdf.www.Application"
 
 repositories {
   jcenter()
@@ -28,15 +29,48 @@ repositories {
 
 dependencies {
   implementation project(":nshmp-lib")
-  implementation "edu.ucar:cdm:5.1.0"
-  implementation "edu.ucar:netcdf4:5.1.0"
-  implementation "org.slf4j:slf4j-jdk14:1.7.30"
+
+  // NetCDF
+  implementation "edu.ucar:cdm:${cdmVersion}"
+  implementation "edu.ucar:netcdf4:${netcdfVersion}"
+  implementation "org.slf4j:slf4j-jdk14:${slfVersion}"
+
+  // micronaut
+  annotationProcessor platform("io.micronaut:micronaut-bom:${mnVersion}")
+  annotationProcessor "io.micronaut:micronaut-inject-java"
+  annotationProcessor "io.micronaut:micronaut-validation"
+  implementation platform("io.micronaut:micronaut-bom:${mnVersion}")
+  implementation "io.micronaut:micronaut-http-client"
+  implementation "io.micronaut:micronaut-inject"
+  implementation "io.micronaut:micronaut-validation"
+  implementation "io.micronaut:micronaut-runtime"
+  implementation "io.micronaut:micronaut-http-server-netty"
+  implementation "com.fasterxml.jackson.module:jackson-module-parameter-names:${jacksonVersion}"
+  runtimeOnly "io.micronaut:micronaut-runtime-osx"
+  runtimeOnly "ch.qos.logback:logback-classic:${logbackVersion}"
+
+  // Swagger
+  annotationProcessor("io.micronaut.configuration:micronaut-openapi:${swaggerVersion}")
+  implementation("io.swagger.core.v3:swagger-annotations:${swaggerVersion}")
+
+  // junit
+  testAnnotationProcessor "io.micronaut:micronaut-inject-java:${mnVersion}"
+  testImplementation platform("io.micronaut:micronaut-bom:${mnVersion}")
+  testImplementation "org.junit.jupiter:junit-jupiter:${junitVersion}"
+  testImplementation "org.junit.jupiter:junit-jupiter-api"
+  testImplementation "io.micronaut.test:micronaut-test-junit5"
+  testImplementation "io.micronaut.test:micronaut-test-spock"
+  testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
 }
 
 test {
   useJUnitPlatform()
 }
 
+jacoco {
+  toolVersion = "0.8.4"
+}
+
 jacocoTestReport {
   reports {
     xml.enabled true
@@ -45,6 +79,23 @@ jacocoTestReport {
 }
 check.dependsOn jacocoTestReport
 
+shadowJar {
+  mergeServiceFiles()
+}
+
+tasks.withType(JavaCompile) {
+  options.fork = true
+  options.forkOptions.jvmArgs << "-Dmicronaut.openapi.views.spec=" +
+      "swagger-ui.enabled=true," +
+      "swagger-ui.layout=BaseLayout"
+  options.encoding = "UTF-8"
+  options.compilerArgs.add("-parameters")
+}
+
+tasks.withType(JavaExec) {
+  jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
+}
+
 /* Add HTML reports to SpotBugs */
 tasks.withType(com.github.spotbugs.SpotBugsTask) {
   ignoreFailures = false // TODO remove when nshmp-lib is updated
-- 
GitLab