X-#
zu0nqO5;BE+b_v~ud~OLF3VD4A8w>ddmawUi-@Jq^Z&I)Wr#bGAjNL)yJ;-4fHe)xo
zV=qUAJ^~uxcnJG&hP--wAW9hLmxgCCK`mm;ztDwsq_5pUe)=Z1PTazSXYXJe=iBo;
zmhsS|%h-7fJ)Grt$>(kCW@as8PqO%MbMYN1}!O$#%bp
zj$!S)3zK9gCR6d1{q-JiwLb_bAXZsBw-!0i!$X#%{=#Jqxs*tmMxx0>LlQ*h65U%+kV
i%8Q(Jkb8u@0Sv6Q}7zpJZ!eFO?-%S|!6U
z{ZH*oC!Og-e?Wg!r{AvRON2ay2kmO5bI$jD=d%C&``6z@v`kiosx{>a}|Mwj*?Pl_%-
z5TR(gyzY6vw59O9kkKQ{587tf3xwA`4D2pH_Jg0zCbzxNJhWTV58j&gz`?9X(mxgf
zcM!I?COje68Rct>2aF0Ez5_02E#dL+qi&N2`!>)RON>o#)gSYw*%Y2LDtwRs67f*JvU@#b3a%4Jwi^MgXzE%pngUBr@kb#$JDZ9|
zOw+Z!w%L#>!>fxKL>T3Sqtc{BjaoCR#?j4p!ub{1I$g+JTNO<5;8aB)WL7jw)2=N$
z{jxw&*>)T)fYEF%gQqI;L?U)3<3Dl%HXR>Y9)2)~eqOaBNECKoH})B=d~AT{zVjCD
z)u`v#k|#2185PJNu7u@xe*kP1?SX_Q?iVuLm2Giz%i7xCVl;OsT%`XM=AavOE$+2t
zXWI{Ukb#?{zB``eZ62Wd@Aqw2c(Eg+nUN0YyD)nEA(6&4_(IY@Kv5J;S93Jq4N%cl
z=R!Y-J2&jNZolo+A4Zji9|bMGEz~rh*U1^q=RGCq<0dJTL-$pK&e10Z8FZ#ZFAcg#
za|V4!*9^Kzw+#A%?iutYePz(sv~18fG{z|E
z_i+{XGe%P}!#;&m5&K!}W$Yl0bs8rVJHtM)^e3_3@sgt%tjd@Wx^Y~WLD({|9F%7*8Nh=z9KDHc4tt3+6
zO^QTL=QK^iOi0A?&*TR3V=Cy*gi1OIr8JXuB;o0pBn*?D#=n0Ge(j~_PCTdfyJDG;u(~xoN|9|T~M)Frt#vH8;X6*^le`Q|(
AuK)l5
diff --git a/target/classes/hello/declaration/CustomPredicate.class b/target/classes/hello/declaration/CustomPredicate.class
deleted file mode 100644
index e35803f64936c9dac92044b2074162814cb240fe..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 248
zcmZXPu?~Vj5JYDYLD0fNKfn$fudz~NV`62Z2~>9Hals=eByjj~7Jh&qWjwLNVw0Vh
z$?WXw{dfXcV&o(AF(kM~)`l>R4mrPbrg@RE<0Y5EtmkJ!5UZ@;(I#2_
z+qeIS5XNOw3AtC=226HMZOYrJlBp8h$i??0VRn^Tmn@Y+^NJf)7OZ0=jJxeT0>QDr
W0OS&SaINlJ<-oJ^+k6aK5_|y1tUr+e
diff --git a/target/classes/hello/declaration/TimeClient.class b/target/classes/hello/declaration/TimeClient.class
deleted file mode 100644
index a077c3b314ee91fac7a75e48cd1d292b119702c1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1383
zcma)6YflqF6g|_H-L@%Al)A1LI*PW0fBdOc3!3FdX=bSyCF6(M)+l3>uxd_F(D7n;_%BvUsz)o$6fLQFzo
z>agBJAq!rSI|>oHN6hKMF+bs1NsQTZ&KyI60^WMA$Xg6kW(ah+dzjskzU?07+G9f;
z1;ti9i
z66kH0!O*oMdGXyQF9)ntVg{A0(quIl8D{?@g(h5OB9H6}!+7CHIF6UKMA6|sSE912
zdaI5tT&eW!cvZhBHf)t;Ps=r@l0krnj*M1BHXX-8?5~{&qxI+6+h$2F(nW=%D7Cs~T9kDlG
z(2>&4pl9ew#p!j1#2Jz`be>WiQK5sPq8OolicTQD4&u|uavftBCCeZoG)&NGJcu!I
z6=||xqelZ<*U85)N%&C73gMNK?#x#h3^O%!)zE!PmPqg&ilO~vlbevZfhn@7o#JNn
JyGf@A%-=-ZS;_za
diff --git a/target/classes/hello/model/Customer.class b/target/classes/hello/model/Customer.class
deleted file mode 100644
index 06e7307b01f2d26b0448a3cb8b12af11a1a0577c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1407
zcmaJ-=K;NhX@e
zNHp;W_@j*HY4<`#F->}(mwV51&bjx`-=Dt$tYJNcN(Kt1j%8V^X-r~8qE#K1Bo8Hd
zq~oz9Pb68(U(KW0?Y1jjrWSF=$vkjHiD&=#Y*Ft`(GOiQDHA}=M%M}^#o#=C=8O20guu=%g$(4FY=QCj;J1FG7u-b$1Ex^CQe=$b)Di7p^XJWSK;&R}hh_5hA7F4$A)kZ~E($
diff --git a/target/classes/hello/model/Greeting.class b/target/classes/hello/model/Greeting.class
deleted file mode 100644
index f875277914303b411d510e45ee094e441fbdc76c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 588
zcmZuu%SyvQ6g`tiV{7^_t@Vw%YXh2%JH<^wu>@UI3NF)hXs4tJ#MHkM6fA-ZKfsR?
z?0D}nny=iIsZ`u_L?aE5~tbZix&VOyFV1G@(H7!)yNU|j~okHUn934`TMyeH2I
zyl~|7l30YJbB4l&2t{(q&}?;A`|Uo1)`^Ckq3Vi|-_E839^ZR|fGU<7`CicXVj=Uq
zs3l|ZNNnzy2SMaa2^%=qG3QC9r;m7YL#wH+HZ518th3m!(Q2=5Kr_8)7W@24NX_zs
z>QuhPL<##Q3NTEpp~%qqPnDte_wc*Hg!^<1((mJ#E~e8N6sn
zK)FV~YQKZohjS?Q$sFn{l@yf8T4~!LE8#^{2wb815djHCUyZzsqzp?VIVoi}2%X6|
s#3p;X{RZWkf{eV710R
diff --git a/target/classes/hello/model/Quote.class b/target/classes/hello/model/Quote.class
deleted file mode 100644
index 3ec6c6c7d3ee5544ff04f2ad4753558e032a5fd4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1128
zcmZ`%?@!ZE6g_XWYgdbm!3OFO5OCf2Q5C)+e2~OXi^f1^{Mc>HC@JkSS`uUYpES{t
zXyPB>A7#Avt+LsbGLW4Yq(1eeAmerRIfm?byB(^z74U;03)y0rlGPW4c^up1Zyu+LvM1_3aiX
z=~j=zQKi75RnO{IPN+d(uIUBtoA|Qr4$hpmFWJJ5&
zZgeJS`KV^%8J?TCk2yZQAhA1Z(&Zx)Ma*+@-$V%u
z0`rr?C5Aw8O!c;X;dUaD>Gb<<(53&HWyh35i8ivdYMo5~wej_Ta3iwAyX&z|Z)}#{
zVvatVPM&BW+Vk}0Xdqe_DSA)$g7)2?5Fc)kE6og{G`>Nltymi(U(!YieTYKwGbM&F
zzDT%o0tOUNp|d#x!V;D#5_oV+VpGH}>2h@KX*oGIinRk8T5GR;+Hc>#d&NqAkt8#ZQb%-NV%80vbdzZiAbf}XF?Sb6Tf^xTwzyApT2@Gei~XilL#A4EaA
zpipehJW(hu#a&kHT?r!p(N=HWPu9HkkUL|#@QIfM5}VCZx*7Bp4zFzbVHmqT)`sqC
z(0joQ!Y_q^AEhL*`+k~9DYurFmo?F5yp<@ZWlHD;(N;>1a^LU7QJ3;NTS>xF(Wy|+
zlTXx&G_)44`e{y%X-}9llw#L=tzh-yDBWbAuYHg774gYH{3OkU4x7S(i4{?9#E)$F
z>2F3VOtfb5WEvSx8n32F5N#;z|Ctzi(T1DtvYF~C{pk4j12Mb4+rx7*z#8^q#Kz4U
z7BEx89t_*KRl{v8+PG8067I_5o;>c$_JbPQIIS@Gujwd^=*ywiJYIk9cj%_6==z<|
zOT09QBUc*9=BY6Lm+Qn!6veL;_T`+@@@GlhQ~#EoKThUy
z-K0;uv9oCv;%5qn^xfKlu191haBnB=V0Lr4*}2>XC!a*F7{&c>ZyFoZ{D}`ip~i1P
z#>@YJGS{3spQDTxxUcxGwLe3(w^8_r;(NvgjPW^)qMV_`+95{!bfojKA9Y3w2QY51
z-Y~n&y{YyG6t_{DElo^LZNr+i+Kp1f+D7>|@G-)IG!?>*5^j=!La>m57y`oKAR1ca
z6b^A!5DH9iRb;KyO%Z97G7qB(ifgs5S(W_PU^U6(8XO*?p!EXAL2_w
zw|Y7X&Zgr*kevI2P?~%3&<`*CM9V!dTIrRZDD3vGf-sD|F?&PrJigIG4lj*@^fQ$;
z+MOb8rOEtrv%UURl+@VXzb(JUhNVJtfmnJ{a{*kczb%-wK6||)YMg#NO@_fIExT~C
zC%%$}yQso-QAWkZh6D!{h5Fh)6t)-se926~Ax*StuL(m4crt_|%cNnhfF8nS+~n;w
zvtllFe?ooFU^PaEZD6Ct(-uzxCkWf9Gt)WjG75pmJSX@8;~NVGguu>^XiySz;Xw+e-rt3sNELhcm{F;|7`QOJWkgvfG5$o)bg
z)~b;GLLqy_LabFG;_lHMLd0DWQl-?nH6gcVak~xiHrsIb#SCWmCujCoiFXb8J^8;WJmk&5qkoNMrN96H
diff --git a/target/classes/hello/model/Value.class b/target/classes/hello/model/Value.class
deleted file mode 100644
index 862a68f17d303c4c370907d46f8531959e3c75f8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1111
zcmZ`%?@!ZU5PsgW{+dO`3QPrM0=jN6s=_yf50aReEE}@YKL1C#6$o%YBJ@^a$};#&e+Cd*F{P*H$}6^e`$gbMD^N$^I<
za)bAT*PwcA&R9hWQMr)l?o*AAZEku$3vQwf|nt1$5ipn}LHC`MKULUE=6Va!M
gtj;7-rMpO1H9K@9)jq+1Z0b|0o}wnfKoBzTWS>
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
diff --git a/target/classes/public/index.html b/target/classes/public/index.html
deleted file mode 100644
index 566549b..0000000
--- a/target/classes/public/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- Title
-
-
-
-
-
\ No newline at end of file
From 662d1424ededb2346bf7a90fff3cd4e281c90859 Mon Sep 17 00:00:00 2001
From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Date: Mon, 15 Jun 2026 21:55:59 +0000
Subject: [PATCH 2/5] feature(gradle): target Java 11 toolchain; wrapper 6.9.4;
jdbc/h2 parity
Co-Authored-By: derek.wu
---
build.gradle | 18 +++++++++++++-----
gradle/wrapper/gradle-wrapper.properties | 2 +-
gradlew | 0
3 files changed, 14 insertions(+), 6 deletions(-)
mode change 100644 => 100755 gradlew
diff --git a/build.gradle b/build.gradle
index 09f1083..c164da4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -22,11 +22,19 @@ repositories {
mavenCentral()
}
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
+java {
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(11)
+ }
+}
-dependencies {
- compile("org.springframework.boot:spring-boot-starter-web")
- testCompile("junit:junit")
+compileJava {
+ options.encoding = 'UTF-8'
}
+dependencies {
+ implementation("org.springframework.boot:spring-boot-starter-web")
+ implementation("org.springframework.boot:spring-boot-starter-jdbc")
+ runtimeOnly("com.h2database:h2")
+ testImplementation("junit:junit")
+}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a2ff3cc..ddfac6f 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-bin.zip
diff --git a/gradlew b/gradlew
old mode 100644
new mode 100755
From 4bd5b5f4410da97ee5e328ccfa4ea08edee2a5f1 Mon Sep 17 00:00:00 2001
From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Date: Mon, 15 Jun 2026 21:55:59 +0000
Subject: [PATCH 3/5] feature(ci): add JDK 11 (Temurin) GitHub Actions workflow
with Maven+Gradle cache
Co-Authored-By: derek.wu
---
.github/workflows/ci.yml | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 .github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..48005ce
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,40 @@
+name: CI (JDK 11)
+
+on:
+ push:
+ branches: [master]
+ pull_request:
+ branches: [master]
+
+jobs:
+ maven:
+ name: Maven build (Temurin 11)
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ distribution: temurin
+ java-version: '11'
+ cache: maven
+
+ - name: Build and verify
+ run: ./mvnw -B -e clean verify
+
+ gradle:
+ name: Gradle build (Temurin 11)
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ distribution: temurin
+ java-version: '11'
+ cache: gradle
+
+ - name: Build
+ run: ./gradlew --no-daemon clean build
From 66bf1ee842eecb6732070d2391c018b174b24475 Mon Sep 17 00:00:00 2001
From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Date: Mon, 15 Jun 2026 21:56:19 +0000
Subject: [PATCH 4/5] bug(build): ignore build output dirs (target/, build/,
.gradle/)
Co-Authored-By: derek.wu
---
.gitignore | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 57f1cb2..aef0a14 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
-/.idea/
\ No newline at end of file
+/.idea/
+target/
+build/
+.gradle/
+*.class
From e8215b7bff1ba30723680437c6c212d6eb742b25 Mon Sep 17 00:00:00 2001
From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Date: Mon, 15 Jun 2026 21:56:19 +0000
Subject: [PATCH 5/5] feature(docs): add MIGRATION_NOTES.md and require JDK 11
in README
Co-Authored-By: derek.wu
---
MIGRATION_NOTES.md | 110 +++++++++++++++++++++++++++++++++++++++++++++
README.md | 26 +++++++++--
2 files changed, 132 insertions(+), 4 deletions(-)
create mode 100644 MIGRATION_NOTES.md
diff --git a/MIGRATION_NOTES.md b/MIGRATION_NOTES.md
new file mode 100644
index 0000000..b48963e
--- /dev/null
+++ b/MIGRATION_NOTES.md
@@ -0,0 +1,110 @@
+# Java 8 → Java 11 Migration Notes
+
+This document summarizes the migration of `springboot-java8` from Java 8 to
+**Java 11 (LTS)**. The goal was a minimal, behavior-preserving migration: upgrade
+the build toolchain and CI to JDK 11, replace anything removed from the JDK, and
+keep the application code unchanged.
+
+## Summary
+
+| Area | Before | After |
+| --- | --- | --- |
+| Java language/runtime target | 8 (`java.version=1.8`) | 11 (`maven.compiler.release=11`) |
+| Maven packaging | `pom` (sources never compiled) | `jar` (sources compiled + repackaged) |
+| Maven wrapper | 3.3.9 | 3.9.9 |
+| maven-compiler-plugin | inherited 3.7.0 | 3.11.0, `11`, `-Xlint:all -Werror` |
+| maven-surefire-plugin | inherited 2.21.0 | 3.2.5 |
+| maven-failsafe-plugin | not configured | 3.2.5 |
+| maven-javadoc-plugin | not configured | 3.6.3, doclint disabled |
+| maven-enforcer-plugin | not configured | 3.5.0, `requireJavaVersion [11,)` |
+| Gradle wrapper | 4.6 (does not run on JDK 11) | 6.9.4 |
+| Gradle Java target | `sourceCompatibility = 1.8` | toolchain `languageVersion = 11` |
+| CI | none | GitHub Actions, Temurin 11, Maven + Gradle |
+
+## Baseline (Java 8)
+
+A Java 8 baseline was captured before any changes:
+
+- `JAVA_HOME` = Temurin/OpenJDK `1.8.0_492`
+- `./mvnw -B clean package` → `BUILD SUCCESS`
+
+Note: with the original `pom`, the Maven build never invoked
+the compiler, so the "baseline" Maven build did not actually compile the `hello.*`
+sources. The Gradle build was the only one that compiled code. This is called out
+because it changes what "parity" means here (see below).
+
+## Build tooling changes
+
+### Maven (`pom.xml`)
+
+- **`packaging` changed from `pom` to `jar`.** As a `pom` project the
+ `maven-compiler-plugin` and `maven-surefire-plugin` never ran, so the Java 11
+ `release` flag would have had no effect. Switching to `jar` makes Maven actually
+ compile the sources under `--release 11` and produce a runnable Spring Boot jar
+ via `spring-boot-maven-plugin:repackage`.
+- Replaced `1.8` with
+ `maven.compiler.release=11` plus UTF-8 source/reporting encoding.
+- Added explicit, JDK-11-compatible plugin versions:
+ `maven-compiler-plugin` 3.11.0 (`11`, `-Xlint:all`,
+ `-Werror`), `maven-surefire-plugin` 3.2.5, `maven-failsafe-plugin` 3.2.5,
+ `maven-javadoc-plugin` 3.6.3, `maven-enforcer-plugin` 3.5.0 enforcing
+ `requireJavaVersion [11,)`.
+- Added `spring-boot-starter-test` (test scope) so the project has a standard test
+ source set; surefire reports `No tests to run` (the project ships no tests).
+- Upgraded the Maven wrapper from 3.3.9 to 3.9.9 — the older plugin-aware tooling
+ (surefire/enforcer 3.x) requires Maven 3.6.3+.
+
+### Gradle (`build.gradle`)
+
+- Upgraded the Gradle wrapper from 4.6 to 6.9.4. Gradle 4.6 cannot run on JDK 11.
+- Replaced `sourceCompatibility/targetCompatibility = 1.8` with a Java
+ **toolchain** pinned to `JavaLanguageVersion.of(11)`. (Gradle rejects combining a
+ project-level toolchain with `source/targetCompatibility`, so the latter were
+ removed.)
+- Modernized the legacy `compile`/`testCompile` configurations to
+ `implementation`/`testImplementation`.
+- **Parity fix:** added `spring-boot-starter-jdbc` and `com.h2database:h2`. The
+ original Gradle build only declared `spring-boot-starter-web`, so it failed to
+ compile `hello.Application` (which uses `JdbcTemplate`). These deps already
+ existed in `pom.xml`; adding them brings the Gradle build to parity with Maven.
+
+## Removed JDK modules (Java EE / CORBA / JavaFX)
+
+A scan of the source (`javax.xml.bind`, `javax.activation`, `javax.xml.ws`,
+`com.sun.*`, `sun.misc.*`, Nashorn, `javafx.*`, CORBA / `org.omg.*`) found **no
+usages**. No external replacement dependencies (JAXB, JAX-WS, JavaFX, Activation)
+were required.
+
+## Encapsulation / illegal reflective access
+
+The application code triggers no illegal reflective access warnings when compiled
+or packaged on JDK 11, so **no `--add-opens` flags were added**. The only reflective
+access warning observed comes from Gradle 6.9.4's own Groovy runtime during the
+build (not from application code); it disappears with a newer Gradle and is out of
+scope for this behavior-preserving migration.
+
+## Security / TLS, GC, logging
+
+No code or configuration depends on TLS protocol/cipher pinning, keystore type, or
+GC/JVM tuning flags (the only runtime config is the optional `server.port` in
+`application.properties`). Java 11 defaults (TLS 1.3, PKCS12 keystores, G1 GC,
+unified logging) therefore apply with no changes needed.
+
+## Validation
+
+- `./mvnw -B clean verify` on **JDK 11** → `BUILD SUCCESS` (compiles with
+ `-Xlint:all -Werror`, enforcer confirms Java 11, jar repackaged).
+- `./gradlew --no-daemon clean build` on **JDK 11** → `BUILD SUCCESSFUL`.
+- No compiler warnings under `-Xlint:all`.
+- Coverage is unchanged (the project ships no tests, so coverage is 0% before and
+ after; CI is green on the build).
+
+## Follow-ups (out of scope)
+
+- Spring Boot 2.0.2 / Spring 5.0 predate official Java 11 support. Compilation and
+ packaging are clean on JDK 11, but a future PR should upgrade to Spring Boot
+ 2.1+ (ideally 2.7.x) for fully supported Java 11 runtime behavior.
+- Add an actual test suite (e.g. `@SpringBootTest`) so CI verifies runtime
+ behavior, not just compilation.
+- Resolve Gradle deprecation warnings by moving to Gradle 7/8 (requires the Spring
+ Boot upgrade above, since the 2.0.2 Gradle plugin is incompatible with Gradle 7+).
diff --git a/README.md b/README.md
index 2b09400..85897f3 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
# springboot-java8
+
+> **Now builds and runs on Java 11 (LTS).** The build toolchain and CI target
+> JDK 11. See [`MIGRATION_NOTES.md`](MIGRATION_NOTES.md) for migration details.
+
The project is made on spring boot. The project summarize the new features present in Java 8.
It contain list of harcoded topics list. You can call the apis's with POSTMAN to add,delete,update Topic list
In addition, it uses
@@ -76,20 +80,34 @@ GET /datetime
### Prerequisites
-1) Java sdk
+1) JDK 11 (e.g. Eclipse Temurin 11)
2) POSTMAN
### Installing
-
-
```
1) Download or clone
2) Import the project
-3) Run on location machine
+3) Run on local machine
4) Open Postman, to call API's ( localhost:8080 )
```
+### Building & Running (JDK 11)
+
+This project can be built with either Maven or Gradle. Both target Java 11.
+
+Maven:
+```
+./mvnw clean verify # compile, run tests, build the jar
+java -jar target/gs-spring-boot-0.1.0.jar
+```
+
+Gradle:
+```
+./gradlew clean build # compile, run tests, build the jar
+java -jar build/libs/gs-spring-boot-0.1.0.jar
+```
+
## Helpful Links
Spring: