Repository: nanotaboada/java.samples.spring.boot
Pull request #179: chore(ci): switch to default setup for CodeQL scanning
Author: login: nanotaboada
Created: 2025-04-18T18:59:03Z | Merged: 2025-04-18T19:03:19Z



<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/nanotaboada/java.samples.spring.boot/179)
<!-- Reviewable:end -->


<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **Chores**
  - Removed the Codacy security scanning workflow from the repository.
  - Updated Java CI workflow to explicitly set repository permissions for improved security.

- **Documentation**
  - Enhanced the README with improved image embedding, clearer captions, and a sourced quote for better clarity and presentation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->


Diff:
diff --git a/.github/workflows/codacy.yml b/.github/workflows/codacy.yml
deleted file mode 100644
index 87b61ea..0000000
--- a/.github/workflows/codacy.yml
+++ /dev/null
@@ -1,49 +0,0 @@
-# This workflow uses actions not certified by GitHub. They are provided by a
-# third-party and governed by separate terms of service, privacy policy, and
-# support documentation. This workflow checks out code, performs a Codacy
-# security scan, and integrates the results with GitHub Advanced Security code
-# scanning feature. For more info on the Codacy Security Scan action usage and
-# parameters, see: https://github.com/codacy/codacy-analysis-cli-action.
-# For more info on Codacy Analysis CLI in general, see:
-# https://github.com/codacy/codacy-analysis-cli.
-
-name: Codacy Security Scan
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-  schedule:
-    - cron: '0 21 * * 5' # Runs at 21:00, only on Friday
-
-permissions:
-  contents: read
-
-jobs:
-  codacy-security-scan:
-    permissions:
-      contents: read
-      security-events: write
-      actions: read
-    name: Codacy Security Scan
-    runs-on: ubuntu-latest
-    steps:
-      - name: Checkout code
-        uses: actions/checkout@v4
-      # Execute Codacy Analysis CLI and generate a SARIF output with the security
-      # issues identified during the analysis
-      - name: Run Codacy Analysis CLI
-        uses: codacy/codacy-analysis-cli-action@master
-        with:
-          project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
-          verbose: true
-          output: results.sarif
-          format: sarif
-          gh-code-scanning-compat: true
-          max-allowed-issues: 2147483647
-      # Upload the SARIF file generated in the previous step
-      - name: Upload SARIF results file
-        uses: github/codeql-action/upload-sarif@v3
-        with:
-          sarif_file: results.sarif
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 85c934d..f67cca5 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -3,6 +3,9 @@
 
 name: Java CI
 
+permissions:
+  contents: read
+
 on:
   push:
     branches: [ master ]
diff --git a/README.md b/README.md
index b4fa546..e12e777 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
 
 ## Manifesto
 
-> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — Linus Torvalds
+> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — [Linus Torvalds](https://web.archive.org/web/20050404020308/http://www.linuxtimes.net/modules.php?name=News&file=article&sid=145)
 
 ## About
 
@@ -19,9 +19,9 @@ Proof of Concept for a RESTful Web Service made with [Spring Boot 3](https://spr
 
 ## Structure
 
-The following is a simplified dependency diagram of modules and main libraries:
+![Simplified, conceptual project structure and main application flow](assets/images/structure.svg)
 
-![Dependency Diagram](java.samples.spring.boot.svg)
+_Figure: Simplified, conceptual project structure and main application flow. Not all dependencies are shown._
 
 ## Documentation
 
@@ -29,7 +29,7 @@ The following is a simplified dependency diagram of modules and main libraries:
 http://localhost:9000/swagger/index.html
 ```
 
-![API Documentation](java.samples.spring.boot-swagger.png)
+![API Documentation](assets/images/swagger.png)
 
 ## Credits
 
diff --git a/assets/images/structure.svg b/assets/images/structure.svg
new file mode 100644
index 0000000..ebac742
--- /dev/null
+++ b/assets/images/structure.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="962" height="722"><g transform="translate(2241 481)" lucid:page-tab-id="0_0"><path d="M-1600-474a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#6db1ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#a" transform="matrix(1,0,0,1,-1588,-467.9999999999999) translate(49.32378472222223 32.29166666666667)"/><path d="M-1600-314a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#6db1ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#b" transform="matrix(1,0,0,1,-1588,-307.9999999999999) translate(65.32638888888889 32.29166666666667)"/><path d="M-1600-154a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#6db1ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#c" transform="matrix(1,0,0,1,-1588,-147.9999999999999) translate(43.98958333333334 32.29166666666667)"/><path d="M-1920-154a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#6db1ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#d" transform="matrix(1,0,0,1,-1908,-147.9999999999999) translate(49.32378472222223 32.29166666666667)"/><path d="M-2240-154a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#fcce14" stroke-width="2" fill="#fcfcca"/><use xlink:href="#e" transform="matrix(1,0,0,1,-2228,-147.9999999999999) translate(49.323784722222214 32.29166666666667)"/><use xlink:href="#f" transform="matrix(1,0,0,1,-2228,-147.9999999999999) translate(124.00260416666667 32.29166666666667)"/><path d="M-1480-162v-58.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1479.03-161h-1.94v-1.03h1.94z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1480-235.76l4.63 14.26h-9.27z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1480-322v-58.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1479.03-321h-1.94v-1.03h1.94z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1480-395.76l4.63 14.26h-9.27z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-2240-314a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#54c45e" stroke-width="2" fill="#c3f7c8"/><use xlink:href="#g" transform="matrix(1,0,0,1,-2228,-307.99999999999994) translate(86.66319444444444 32.60416666666667)"/><path d="M-1602-120h-58.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1601-119.03h-1.03v-1.94h1.03z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1675.76-120l14.26-4.64v9.28z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1998-120h58.5" stroke="#ffe342" stroke-width="2" fill="none"/><path d="M-1997.97-119.03h-1.03v-1.94h1.03z" stroke="#ffe342" stroke-width=".05" fill="#ffe342"/><path d="M-1924.24-120l-14.26 4.64v-9.28z" stroke="#ffe342" stroke-width="2" fill="#ffe342"/><path d="M-1600 6a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#6db1ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#h" transform="matrix(1,0,0,1,-1588,12) translate(75.99479166666666 32.29166666666667)"/><path d="M-1480-2v-58.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1479.03-1h-1.94v-1.03h1.94z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1480-75.76l4.63 14.26h-9.27z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1602 40h-192a6 6 0 0 1-6-6v-94.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1601 40.98h-1.03v-1.95h1.03z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1800-75.76l4.63 14.26h-9.27z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1358 40h72a6 6 0 0 0 6-6v-148a6 6 0 0 0-6-6h-54.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1357.97 40.98h-1.03v-1.95h1.03z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1355.76-120l14.26-4.64v9.28z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1358 40h72a6 6 0 0 0 6-6v-308a6 6 0 0 0-6-6h-54.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1357.97 40.98h-1.03v-1.95h1.03z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1355.76-280l14.26-4.63v9.26z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1358 40h72a6 6 0 0 0 6-6v-468a6 6 0 0 0-6-6h-54.5" stroke="#6db1ff" stroke-width="2" fill="none"/><path d="M-1357.97 40.98h-1.03v-1.95h1.03z" stroke="#6db1ff" stroke-width=".05" fill="#6db1ff"/><path d="M-1355.76-440l14.26-4.63v9.26z" stroke="#6db1ff" stroke-width="2" fill="#6db1ff"/><path d="M-1600 166a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#fe7070" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#i" transform="matrix(1,0,0,1,-1588,171.99999999999994) translate(6.650173611111114 32.60416666666667)"/><use xlink:href="#j" transform="matrix(1,0,0,1,-1588,171.99999999999994) translate(91.99739583333334 32.60416666666667)"/><path d="M-1920-314a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#fe7070" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#i" transform="matrix(1,0,0,1,-1908,-307.9999999999999) translate(11.984375 32.60416666666667)"/><use xlink:href="#k" transform="matrix(1,0,0,1,-1908,-307.9999999999999) translate(97.33159722222223 32.60416666666667)"/><path d="M-1678-280h58.5" stroke="#fe7070" stroke-width="2" fill="none"/><path d="M-1677.97-279.02h-1.03v-1.96h1.03z" stroke="#fe7070" stroke-width=".05" fill="#fe7070"/><path d="M-1604.24-280l-14.26 4.63v-9.26z" stroke="#fe7070" stroke-width="2" fill="#fe7070"/><path d="M-1480 158V99.5" stroke="#fe7070" stroke-width="2" fill="none"/><path d="M-1479.03 159h-1.94v-1.03h1.94z" stroke="#fe7070" stroke-width=".05" fill="#fe7070"/><path d="M-1480 84.24l4.63 14.26h-9.27z" stroke="#fe7070" stroke-width="2" fill="#fe7070"/><path d="M-1920 166a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#fe7070" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#l" transform="matrix(1,0,0,1,-1908,171.99999999999994) translate(33.32118055555554 32.60416666666667)"/><use xlink:href="#m" transform="matrix(1,0,0,1,-1908,171.99999999999994) translate(118.66840277777777 32.60416666666667)"/><path d="M-1800 158v-32a6 6 0 0 1 6-6h308a6 6 0 0 0 6-6V99.5" stroke="#fe7070" stroke-width="2" fill="none"/><path d="M-1799.03 159h-1.94v-1.03h1.94z" stroke="#fe7070" stroke-width=".05" fill="#fe7070"/><path d="M-1480 84.24l4.63 14.26h-9.27z" stroke="#fe7070" stroke-width="2" fill="#fe7070"/><path d="M-1920-474a6 6 0 0 1 6-6h228a6 6 0 0 1 6 6v68a6 6 0 0 1-6 6h-228a6 6 0 0 1-6-6z" stroke="#fcce14" stroke-width="2" fill="#fcfcca"/><use xlink:href="#n" transform="matrix(1,0,0,1,-1908,-468) translate(59.9921875 32.29166666666667)"/><path d="M-1678-440h58.5" stroke="#ffe342" stroke-width="2" fill="none"/><path d="M-1677.97-439.02h-1.03v-1.96h1.03z" stroke="#ffe342" stroke-width=".05" fill="#ffe342"/><path d="M-1604.24-440l-14.26 4.63v-9.26z" stroke="#ffe342" stroke-width="2" fill="#ffe342"/><path d="M-2120-162v-9.75m0-9.75V-201m0-9.75v-9.75" stroke="#ffe342" stroke-width="2" fill="none"/><path d="M-2119.03-161h-1.94v-1.03h1.94z" stroke="#ffe342" stroke-width=".05" fill="#ffe342"/><path d="M-2120-235.76l4.64 14.26h-9.28z" stroke="#ffe342" stroke-width="2" fill="#ffe342"/><defs><path d="M631 20c-350 0-501-215-501-562 0-355 162-560 502-560 250 0 399 118 446 323l-192 14c-23-124-109-196-262-196-242 0-305 171-305 415 1 245 61 427 304 427 151 0 248-77 267-215l190 12C1039-107 883 20 631 20" id="o"/><path d="M615-1102c343 0 484 203 482 560-1 347-147 562-488 562-336 0-475-219-479-562-4-349 156-560 485-560zm-8 989c240 0 301-180 301-429 0-245-55-427-290-427-236 0-299 181-299 427 0 243 61 429 288 429" id="p"/><path d="M706-1102c241 0 344 136 343 381V0H868v-695c1-168-57-273-220-268-190 6-283 138-283 336V0H185c-3-360 6-732-6-1082h170c4 54 7 126 8 185h3c63-121 164-204 346-205" id="q"/><path d="M682 16c-209 0-323-80-324-285v-671H190v-142h170l58-282h120v282h432v142H538v652c2 114 60 155 182 155 106 0 209-16 297-34v137C921-4 806 16 682 16" id="r"/><path d="M839-1102c70 0 148 7 206 17v167c-112-18-268-36-363 15-129 69-208 203-208 395V0H294c-10-367 32-789-52-1082h171c21 75 41 161 48 250h5c67-152 152-270 373-270" id="s"/><path d="M736-142h380V0H134v-142h422v-1200H267v-142h469v1342" id="t"/><path d="M617-1102c355 0 481 238 477 599H322c5 222 84 388 301 388 144 0 244-59 284-166l158 45C1002-72 854 20 623 20c-342 0-490-220-490-568 0-346 151-554 484-554zm291 461c-18-192-90-328-289-328-194 0-287 128-295 328h584" id="u"/><path d="M873-819c-18-114-119-146-250-146-163 0-245 50-245 151 0 151 170 148 294 185 182 54 388 94 388 320 0 240-189 325-439 329-245 4-410-69-454-268l159-31c24 133 136 168 295 165 144-2 270-31 270-171 0-164-195-160-331-202-167-52-350-87-350-299 0-218 173-315 413-313 220 2 373 77 412 260" id="v"/><g id="a"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#o"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#q"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#t"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#t"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,96.015625,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,106.68402777777777,0)" xlink:href="#v"/></g><path d="M715 0H502L69-1082h202c94 253 197 500 285 758 19 57 36 126 52 183 96-335 234-626 350-941h201" id="w"/><path d="M745-142h380V0H143v-142h422v-798H246v-142h499v940zM545-1292v-192h200v192H545" id="x"/><g id="b"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#v"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#w"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#o"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#v"/></g><path d="M698-1104c312 3 392 244 392 558 0 315-82 566-392 566-169 0-277-65-331-184h-5c8 188 2 394 4 589H185V-858c0-76-1-156-6-224h175c6 52 9 120 10 178h4c58-122 150-202 330-200zm-49 991c225 0 255-203 255-433 0-225-32-419-253-419-236 0-285 192-285 441 0 237 53 411 283 411" id="y"/><g id="c"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#y"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#v"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,96.015625,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,106.68402777777777,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,117.35243055555554,0)" xlink:href="#v"/></g><path d="M1034 0L896-382H333L196 0H0l510-1349h217L1228 0h-194zM847-531c-77-225-157-447-231-674-69 231-154 451-232 674h463" id="z"/><path d="M1000-272c3 95 12 159 101 161 21 0 41-3 59-7V-6c-44 10-86 16-139 16-141 2-191-84-197-217h-6C748-76 648 20 446 20c-207 0-318-120-318-322 0-266 194-348 454-354l236-4c12-191-40-305-222-305-140 0-220 47-232 172l-188-17c33-204 181-292 423-292 255 0 401 118 401 364v466zm-683-27c0 109 63 184 175 182 166-3 259-96 306-217 24-65 20-120 20-200-232 7-501-28-501 235" id="A"/><g id="d"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#z"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#y"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#y"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#t"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#o"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#A"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,96.015625,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,106.68402777777777,0)" xlink:href="#q"/></g><path d="M614-1226c-167 1-283 53-283 213 0 183 186 193 334 234 230 63 463 120 463 409 0 286-219 387-518 390C309 23 131-98 79-338l185-37c34 165 149 248 351 246 184-2 324-58 324-238 0-203-207-221-372-266-210-57-422-111-422-377 0-267 201-356 470-360 279-5 430 101 480 324l-188 33c-28-141-121-215-293-213" id="B"/><path d="M1048-32c-2 300-135 456-433 456-222-1-358-88-400-267l184-25c22 99 100 157 222 156 184-2 248-125 248-315 0-64 3-133-2-194C807-100 706-13 524-12c-306 0-381-228-381-537 0-318 85-550 400-550 164 0 271 83 325 202h3c1-60 3-134 12-185h171c-13 339-4 702-6 1050zM585-145c210-8 284-178 284-406 0-192-52-331-177-392-33-16-69-22-104-22-223 2-259 184-259 414 0 229 31 415 256 406" id="C"/><g id="e"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#B"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#y"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#q"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#C"/></g><path d="M802-711c201 25 350 118 350 331C1152-95 921 0 634 0H162v-1349c401 9 908-74 908 327 0 184-111 275-268 311zm-224-69c174-2 300-51 300-218 0-163-124-198-302-198H353v416h225zM353-153c281-2 612 44 606-244-5-271-329-233-606-234v478" id="D"/><g id="f"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#D"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#r"/></g><g id="g"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#v"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#r"/></g><path d="M904-1102c199 0 220 177 220 381V0H956v-686c-3-114 0-215-60-264-70-33-125-4-158 71-26 56-39 140-39 252V0H531v-686c-3-114-1-215-61-264-78-41-136 24-157 84-24 69-39 159-39 259V0H105c-3-360 6-732-6-1082h149c6 50 3 123 8 175 36-100 83-195 216-195 135 0 166 79 196 196 42-105 93-196 236-196" id="E"/><path d="M865-914c-3-187-2-380-2-570h180v1261c0 76 1 155 6 223H877c-8-49-9-116-10-174h-5C801-44 708 26 530 26c-135 0-234-46-297-139s-95-232-95-419c0-377 131-566 392-566 176 0 271 63 335 184zm-286-51c-222 0-255 197-255 427 0 229 31 425 253 425 237 0 286-195 286-441 0-238-52-411-284-411" id="F"/><g id="h"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#E"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#F"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#t"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#v"/></g><path d="M587-135c154 0 209-115 209-281v-777H485v-156h501v929C982-148 857 20 586 20c-254 0-368-136-410-370l187-31c24 134 77 246 224 246" id="G"/><path d="M914 0L548-499l-132 98V0H236v-1484h180v927l475-525h211L663-617 1125 0H914" id="H"/><g id="i"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#G"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#A"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#H"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#A"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#A"/></g><path d="M622-1349c296 4 497 117 497 404 0 282-193 424-485 431H353V0H162v-1349h460zm-15 684c195-3 320-88 320-277 0-184-129-255-328-254H353v531h254" id="I"/><g id="j"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#I"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#v"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#v"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#q"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,96.015625,0)" xlink:href="#o"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,106.68402777777777,0)" xlink:href="#u"/></g><path d="M713 0H515L10-1349h201C345-955 498-579 615-168c116-411 269-787 402-1181h201" id="J"/><g id="k"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#J"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#A"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#t"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#F"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#A"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#r"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,96.015625,0)" xlink:href="#q"/></g><path d="M390 276c167 0 266-82 266-251v-965H249v-142h587V28c-4 270-165 397-431 397-107 0-208-16-288-43V242c80 18 173 34 273 34zm246-1568v-192h200v192H636" id="K"/><g id="l"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#I"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#K"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#u"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#o"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#r"/></g><path d="M237 0v-1349h191v1193h672V0H237" id="L"/><path d="M365-904c58-129 161-200 334-200 130 0 228 46 293 138s98 233 98 420c0 189-34 331-102 425S824 20 698 20c-170 0-275-64-336-184 0 55-3 116-9 164H179c5-68 6-147 6-223v-1261h180c-2 193 4 394-4 580h4zm283 791c221 0 256-197 256-427 0-229-34-425-254-425-236 0-285 195-285 441 0 237 53 411 283 411" id="M"/><g id="m"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#L"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#E"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#M"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#H"/></g><path d="M473-1349c438-1 655 221 652 661C1122-268 945-8 532 0H162v-1349h311zm42 1193c308-4 416-205 418-532 2-330-131-509-459-505H353v1037h162" id="N"/><g id="n"><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,0,0)" xlink:href="#B"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,10.668402777777779,0)" xlink:href="#y"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,21.336805555555557,0)" xlink:href="#s"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,32.005208333333336,0)" xlink:href="#x"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,42.673611111111114,0)" xlink:href="#q"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,53.34201388888889,0)" xlink:href="#C"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,64.01041666666667,0)" xlink:href="#N"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,74.67881944444446,0)" xlink:href="#p"/><use transform="matrix(0.008680555555555556,0,0,0.008680555555555556,85.34722222222223,0)" xlink:href="#o"/></g></defs></g></svg>
\ No newline at end of file
diff --git a/java.samples.spring.boot-swagger.png b/assets/images/swagger.png
similarity index 100%
rename from java.samples.spring.boot-swagger.png
rename to assets/images/swagger.png
diff --git a/java.samples.spring.boot.svg b/java.samples.spring.boot.svg
deleted file mode 100644
index 64b8746..0000000
--- a/java.samples.spring.boot.svg
+++ /dev/null
@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:lucid="lucid" width="862" height="538"><g transform="translate(261 221)" lucid:page-tab-id="0_0"><path d="M60 86a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H66a6 6 0 0 1-6-6z" stroke="#b5d6ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#a" transform="matrix(1,0,0,1,68,88) translate(29.988281250000014 35.322265625)"/><path d="M360 86a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H366a6 6 0 0 1-6-6z" stroke="#b5d6ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#b" transform="matrix(1,0,0,1,368,88) translate(65.994140625 35.322265625)"/><path d="M60-194a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H66a6 6 0 0 1-6-6z" stroke="#b5d6ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#c" transform="matrix(1,0,0,1,68,-192) translate(35.989257812500014 35.322265625)"/><path d="M60 226a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H66a6 6 0 0 1-6-6z" stroke="#b5d6ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#d" transform="matrix(1,0,0,1,68,228) translate(35.989257812500014 35.322265625)"/><path d="M60-54a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H66a6 6 0 0 1-6-6z" stroke="#b5d6ff" stroke-width="2" fill="#cfe4ff"/><use xlink:href="#e" transform="matrix(1,0,0,1,68,-52) translate(53.99218750000001 35.322265625)"/><path d="M-240-54a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6h-208a6 6 0 0 1-6-6z" stroke="#ff8f8f" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#f" transform="matrix(1,0,0,1,-232,-52) translate(35.989257812500014 35.322265625)"/><path d="M360-54a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H366a6 6 0 0 1-6-6z" stroke="#ff8f8f" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#g" transform="matrix(1,0,0,1,368,-52) translate(29.988281250000014 23.994140625)"/><use xlink:href="#h" transform="matrix(1,0,0,1,368,-52) translate(126.00390625 23.994140625)"/><use xlink:href="#i" transform="matrix(1,0,0,1,368,-52) translate(41.99023437500001 46.65039062499999)"/><path d="M170-62v-42.5" stroke="#1071e5" stroke-width="2" fill="none"/><path d="M170.97-61h-1.94v-1.03h1.94z" stroke="#1071e5" stroke-width=".05" fill="#1071e5"/><path d="M170-119.76l4.63 14.26h-9.26z" stroke="#1071e5" stroke-width="2" fill="#1071e5"/><path d="M170 78V35.5" stroke="#1071e5" stroke-width="2" fill="none"/><path d="M170.97 79h-1.94v-1.03h1.94z" stroke="#1071e5" stroke-width=".05" fill="#1071e5"/><path d="M170 20.24l4.63 14.26h-9.26z" stroke="#1071e5" stroke-width="2" fill="#1071e5"/><path d="M360 226a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6H366a6 6 0 0 1-6-6z" stroke="#ff8f8f" stroke-width="2" fill="#ffd9d9"/><use xlink:href="#j" transform="matrix(1,0,0,1,368,228) translate(59.99316406250001 23.994140625)"/><use xlink:href="#k" transform="matrix(1,0,0,1,368,228) translate(35.989257812500014 46.650390625)"/><path d="M-18 258h58.5" stroke="#008a0e" stroke-width="2" fill="none"/><path d="M-17.97 258.98H-19v-1.96h1.03z" stroke="#008a0e" stroke-width=".05" fill="#008a0e"/><path d="M55.76 258l-14.26 4.63v-9.26z" stroke="#008a0e" stroke-width="2" fill="#008a0e"/><path d="M-18-22h58.5" stroke="#e81313" stroke-width="2" fill="none"/><path d="M-17.97-21.02H-19v-1.96h1.03z" stroke="#e81313" stroke-width=".05" fill="#e81313"/><path d="M55.76-22L41.5-17.36v-9.28z" stroke="#e81313" stroke-width="2" fill="#e81313"/><path d="M358 118h-58.5" stroke="#1071e5" stroke-width="2" fill="none"/><path d="M359 118.97h-1.03v-1.94H359z" stroke="#1071e5" stroke-width=".05" fill="#1071e5"/><path d="M284.24 118l14.26-4.64v9.28z" stroke="#1071e5" stroke-width="2" fill="#1071e5"/><path d="M358-22h-58.5" stroke="#e81313" stroke-width="2" fill="none"/><path d="M359-21.02h-1.03v-1.96H359z" stroke="#e81313" stroke-width=".05" fill="#e81313"/><path d="M284.24-22l14.26-4.64v9.28z" stroke="#e81313" stroke-width="2" fill="#e81313"/><path d="M470 218v-42.5" stroke="#e81313" stroke-width="2" fill="none"/><path d="M470.98 219h-1.96v-1.03h1.96z" stroke="#e81313" stroke-width=".05" fill="#e81313"/><path d="M470 160.24l4.63 14.26h-9.26z" stroke="#e81313" stroke-width="2" fill="#e81313"/><path d="M470 18v42.5" stroke="#e81313" stroke-width="2" fill="none"/><path d="M470.98 18.03h-1.96V17h1.96z" stroke="#e81313" stroke-width=".05" fill="#e81313"/><path d="M470 75.76l-4.63-14.26h9.26z" stroke="#e81313" stroke-width="2" fill="#e81313"/><path d="M-240 226a6 6 0 0 1 6-6h208a6 6 0 0 1 6 6v64a6 6 0 0 1-6 6h-208a6 6 0 0 1-6-6z" stroke="#8ee895" stroke-width="2" fill="#c3f7c8"/><use xlink:href="#l" transform="matrix(1,0,0,1,-231.99999999999997,228) translate(35.989257812500014 35.322265625)"/><use xlink:href="#m" transform="matrix(1,0,0,1,-231.99999999999997,228) translate(120.0029296875 35.322265625)"/><path d="M170 158v42.5" stroke="#1071e5" stroke-width="2" fill="none"/><path d="M170.97 158.03h-1.94V157h1.94z" stroke="#1071e5" stroke-width=".05" fill="#1071e5"/><path d="M170 215.76l-4.63-14.26h9.26z" stroke="#1071e5" stroke-width="2" fill="#1071e5"/><defs><path fill="#282c33" d="M839-1102c70 0 148 7 206 17v167c-112-18-268-36-363 15-129 69-208 203-208 395V0H294c-10-367 32-789-52-1082h171c21 75 41 161 48 250h5c67-152 152-270 373-270" id="n"/><path fill="#282c33" d="M617-1102c355 0 481 238 477 599H322c5 222 84 388 301 388 144 0 244-59 284-166l158 45C1002-72 854 20 623 20c-342 0-490-220-490-568 0-346 151-554 484-554zm291 461c-18-192-90-328-289-328-194 0-287 128-295 328h584" id="o"/><path fill="#282c33" d="M698-1104c312 3 392 244 392 558 0 315-82 566-392 566-169 0-277-65-331-184h-5c8 188 2 394 4 589H185V-858c0-76-1-156-6-224h175c6 52 9 120 10 178h4c58-122 150-202 330-200zm-49 991c225 0 255-203 255-433 0-225-32-419-253-419-236 0-285 192-285 441 0 237 53 411 283 411" id="p"/><path fill="#282c33" d="M615-1102c343 0 484 203 482 560-1 347-147 562-488 562-336 0-475-219-479-562-4-349 156-560 485-560zm-8 989c240 0 301-180 301-429 0-245-55-427-290-427-236 0-299 181-299 427 0 243 61 429 288 429" id="q"/><path fill="#282c33" d="M873-819c-18-114-119-146-250-146-163 0-245 50-245 151 0 151 170 148 294 185 182 54 388 94 388 320 0 240-189 325-439 329-245 4-410-69-454-268l159-31c24 133 136 168 295 165 144-2 270-31 270-171 0-164-195-160-331-202-167-52-350-87-350-299 0-218 173-315 413-313 220 2 373 77 412 260" id="r"/><path fill="#282c33" d="M745-142h380V0H143v-142h422v-798H246v-142h499v940zM545-1292v-192h200v192H545" id="s"/><path fill="#282c33" d="M682 16c-209 0-323-80-324-285v-671H190v-142h170l58-282h120v282h432v142H538v652c2 114 60 155 182 155 106 0 209-16 297-34v137C921-4 806 16 682 16" id="t"/><g id="a"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#r"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,96.01562499999999,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,108.01757812499999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,120.01953124999997,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,132.02148437499997,0)" xlink:href="#r"/></g><path fill="#282c33" d="M904-1102c199 0 220 177 220 381V0H956v-686c-3-114 0-215-60-264-70-33-125-4-158 71-26 56-39 140-39 252V0H531v-686c-3-114-1-215-61-264-78-41-136 24-157 84-24 69-39 159-39 259V0H105c-3-360 6-732-6-1082h149c6 50 3 123 8 175 36-100 83-195 216-195 135 0 166 79 196 196 42-105 93-196 236-196" id="u"/><path fill="#282c33" d="M865-914c-3-187-2-380-2-570h180v1261c0 76 1 155 6 223H877c-8-49-9-116-10-174h-5C801-44 708 26 530 26c-135 0-234-46-297-139s-95-232-95-419c0-377 131-566 392-566 176 0 271 63 335 184zm-286-51c-222 0-255 197-255 427 0 229 31 425 253 425 237 0 286-195 286-441 0-238-52-411-284-411" id="v"/><path fill="#282c33" d="M736-142h380V0H134v-142h422v-1200H267v-142h469v1342" id="w"/><g id="b"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#u"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#v"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#r"/></g><path fill="#282c33" d="M631 20c-350 0-501-215-501-562 0-355 162-560 502-560 250 0 399 118 446 323l-192 14c-23-124-109-196-262-196-242 0-305 171-305 415 1 245 61 427 304 427 151 0 248-77 267-215l190 12C1039-107 883 20 631 20" id="x"/><path fill="#282c33" d="M706-1102c241 0 344 136 343 381V0H868v-695c1-168-57-273-220-268-190 6-283 138-283 336V0H185c-3-360 6-732-6-1082h170c4 54 7 126 8 185h3c63-121 164-204 346-205" id="y"/><g id="c"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#x"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#y"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,96.01562499999999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,108.01757812499999,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,120.01953124999997,0)" xlink:href="#r"/></g><path fill="#282c33" d="M1034 0L896-382H333L196 0H0l510-1349h217L1228 0h-194zM847-531c-77-225-157-447-231-674-69 231-154 451-232 674h463" id="z"/><path fill="#282c33" d="M1000-272c3 95 12 159 101 161 21 0 41-3 59-7V-6c-44 10-86 16-139 16-141 2-191-84-197-217h-6C748-76 648 20 446 20c-207 0-318-120-318-322 0-266 194-348 454-354l236-4c12-191-40-305-222-305-140 0-220 47-232 172l-188-17c33-204 181-292 423-292 255 0 401 118 401 364v466zm-683-27c0 109 63 184 175 182 166-3 259-96 306-217 24-65 20-120 20-200-232 7-501-28-501 235" id="A"/><g id="d"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#z"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#x"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,96.01562499999999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,108.01757812499999,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,120.01953124999997,0)" xlink:href="#y"/></g><path fill="#282c33" d="M715 0H502L69-1082h202c94 253 197 500 285 758 19 57 36 126 52 183 96-335 234-626 350-941h201" id="B"/><g id="e"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#r"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#B"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#x"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#r"/></g><path fill="#282c33" d="M285-1169c8 382 2 780 4 1169H129v-1349h237c86 239 188 461 253 720 69-258 169-481 255-720h225V0H937c2-390-5-788 6-1169-75 255-170 488-259 729H547c-90-240-185-475-262-729" id="C"/><g id="f"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#C"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#v"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#C"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,96.01562499999999,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,108.01757812499999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,120.01953124999997,0)" xlink:href="#n"/></g><path fill="#282c33" d="M587-135c154 0 209-115 209-281v-777H485v-156h501v929C982-148 857 20 586 20c-254 0-368-136-410-370l187-31c24 134 77 246 224 246" id="D"/><path fill="#282c33" d="M914 0L548-499l-132 98V0H236v-1484h180v927l475-525h211L663-617 1125 0H914" id="E"/><g id="g"><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,0,0)" xlink:href="#D"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,12.001953124999996,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,24.003906249999993,0)" xlink:href="#E"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,36.005859374999986,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,48.007812499999986,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,60.009765624999986,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,72.01171874999999,0)" xlink:href="#A"/></g><path fill="#282c33" d="M802-711c201 25 350 118 350 331C1152-95 921 0 634 0H162v-1349c401 9 908-74 908 327 0 184-111 275-268 311zm-224-69c174-2 300-51 300-218 0-163-124-198-302-198H353v416h225zM353-153c281-2 612 44 606-244-5-271-329-233-606-234v478" id="F"/><g id="h"><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,0,0)" xlink:href="#F"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,12.001953124999996,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,24.003906249999993,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,36.005859374999986,0)" xlink:href="#y"/></g><path fill="#282c33" d="M713 0H515L10-1349h201C345-955 498-579 615-168c116-411 269-787 402-1181h201" id="G"/><g id="i"><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,0,0)" xlink:href="#G"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,12.001953124999996,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,24.003906249999993,0)" xlink:href="#w"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,36.005859374999986,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,48.007812499999986,0)" xlink:href="#v"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,60.009765624999986,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,72.01171874999999,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,84.01367187499999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,96.01562499999999,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999997,0,0,0.009765624999999997,108.01757812499999,0)" xlink:href="#y"/></g><g id="j"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#D"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#E"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#A"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#A"/></g><path fill="#282c33" d="M622-1349c296 4 497 117 497 404 0 282-193 424-485 431H353V0H162v-1349h460zm-15 684c195-3 320-88 320-277 0-184-129-255-328-254H353v531h254" id="H"/><g id="k"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#H"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#r"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#r"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,72.01171874999999,0)" xlink:href="#t"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,84.01367187499999,0)" xlink:href="#o"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,96.01562499999999,0)" xlink:href="#y"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,108.01757812499999,0)" xlink:href="#x"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,120.01953124999997,0)" xlink:href="#o"/></g><path fill="#282c33" d="M614-1226c-167 1-283 53-283 213 0 183 186 193 334 234 230 63 463 120 463 409 0 286-219 387-518 390C309 23 131-98 79-338l185-37c34 165 149 248 351 246 184-2 324-58 324-238 0-203-207-221-372-266-210-57-422-111-422-377 0-267 201-356 470-360 279-5 430 101 480 324l-188 33c-28-141-121-215-293-213" id="I"/><path fill="#282c33" d="M1048-32c-2 300-135 456-433 456-222-1-358-88-400-267l184-25c22 99 100 157 222 156 184-2 248-125 248-315 0-64 3-133-2-194C807-100 706-13 524-12c-306 0-381-228-381-537 0-318 85-550 400-550 164 0 271 83 325 202h3c1-60 3-134 12-185h171c-13 339-4 702-6 1050zM585-145c210-8 284-178 284-406 0-192-52-331-177-392-33-16-69-22-104-22-223 2-259 184-259 414 0 229 31 415 256 406" id="J"/><g id="l"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#I"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#p"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#n"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#s"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,48.00781249999999,0)" xlink:href="#y"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,60.009765624999986,0)" xlink:href="#J"/></g><g id="m"><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,0,0)" xlink:href="#F"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,12.001953124999998,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,24.003906249999996,0)" xlink:href="#q"/><use transform="matrix(0.009765624999999998,0,0,0.009765624999999998,36.00585937499999,0)" xlink:href="#t"/></g></defs></g></svg>
\ No newline at end of file


Reviews:
user: login: qlty-cloud-legacy[bot]
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-18T18:59:24Z
user: login: coderabbitai[bot]
body: **Actionable comments posted: 1**

<details>
<summary>📜 Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**
**Plan: Pro**

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between a8f5839925fbf410583e810166857846ed7b1f07 and b9bde07c9aadc23e91dbdc9b24f85c5d9d06af1f.

</details>

<details>
<summary>⛔ Files ignored due to path filters (3)</summary>

* `assets/images/structure.svg` is excluded by `!**/*.svg`
* `assets/images/swagger.png` is excluded by `!**/*.png`
* `java.samples.spring.boot.svg` is excluded by `!**/*.svg`

</details>

<details>
<summary>📒 Files selected for processing (3)</summary>

* `.github/workflows/codacy.yml` (0 hunks)
* `.github/workflows/maven.yml` (1 hunks)
* `README.md` (1 hunks)

</details>

<details>
<summary>💤 Files with no reviewable changes (1)</summary>

* .github/workflows/codacy.yml

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (1)</summary>

* GitHub Check: Codacy Static Code Analysis

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>README.md (3)</summary>

`14-14`: **Use Markdown link for quote source**  
Good enhancement: converting Linus Torvalds’s attribution into a markdown link improves both credibility and readability of the Manifesto section.

---

`22-25`: **Embed visual diagram with caption**  
Embedding the SVG for project structure and adding a concise caption greatly enhances documentation clarity. The alt text provided is suitably descriptive for accessibility.

---

`32-32`: **Verify image path exists**  
Please confirm that `assets/images/swagger.png` is present at this location so the API documentation screenshot renders correctly in the README.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->
state: COMMENTED
author_association: NONE
submitted_at: 2025-04-18T19:02:20Z

Review comments:
diff_hunk: @@ -11,25 +11,25 @@
 
 ## Manifesto
 
-> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — Linus Torvalds
+> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — [Linus Torvalds](https://web.archive.org/web/20050404020308/http://www.linuxtimes.net/modules.php?name=News&file=article&sid=145)
path: README.md
user: login: qlty-cloud-legacy[bot]
body: Line length
created_at: 2025-04-18T18:59:24Z
author_association: NONE
diff_hunk: @@ -11,25 +11,25 @@
 
 ## Manifesto
 
-> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — Linus Torvalds
+> "Nobody should start to undertake a large project. You start with a small _trivial_ project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way _useful_ first, and then others will say "hey, that _almost_ works for me", and they'll get involved in the project." — [Linus Torvalds](https://web.archive.org/web/20050404020308/http://www.linuxtimes.net/modules.php?name=News&file=article&sid=145)
 
 ## About
 
 Proof of Concept for a RESTful Web Service made with [Spring Boot 3](https://spring.io/blog/2024/02/22/spring-boot-3-2-3-available-now) targeting [JDK 21](https://openjdk.org/projects/jdk/21/)
 
 ## Structure
 
-The following is a simplified dependency diagram of modules and main libraries:
+![Simplified, conceptual project structure and main application flow](assets/images/structure.svg)
 
-![Dependency Diagram](java.samples.spring.boot.svg)
+_Figure: Simplified, conceptual project structure and main application flow. Not all dependencies are shown._
path: README.md
user: login: qlty-cloud-legacy[bot]
body: Line length
created_at: 2025-04-18T18:59:24Z
author_association: NONE
diff_hunk: @@ -3,6 +3,9 @@
 
 name: Java CI
 
+permissions:
+  contents: read
+
path: .github/workflows/maven.yml
user: login: coderabbitai[bot]
body: _⚠️ Potential issue_

**Missing permissions for artifact steps**  
By restricting the GITHUB_TOKEN to only `contents: read`, the `actions/upload-artifact` and `actions/download-artifact` steps will lack the `actions` scope (read/write) required to function and will fail at runtime.  
  
Please include the `actions: read` and `actions: write` permissions in your top-level `permissions` block. For example:

```diff
 permissions:
-  contents: read
+  contents: read
+  actions: read
+  actions: write
```


<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

`````suggestion
permissions:
  contents: read
  actions: read
  actions: write
`````

</details>

<!-- suggestion_end -->

<!-- This is an auto-generated comment by CodeRabbit -->
created_at: 2025-04-18T19:02:19Z
author_association: NONE

PR comments:
user: login: coderabbitai[bot]
created_at: 2025-04-18T18:59:10Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- walkthrough_start -->

## Walkthrough

The changes involve the removal of the Codacy security scanning workflow, an update to the Java CI workflow to explicitly set repository content permissions, and improvements to the README.md for better clarity and visual presentation. No modifications were made to code logic, exported entities, or functional aspects of the project. The updates are limited to workflow configurations and documentation.

## Changes

| File(s)                                      | Change Summary                                                                                                      |
|-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------|
| .github/workflows/codacy.yml                  | Deleted the Codacy security scanning workflow configuration file.                                                    |
| .github/workflows/maven.yml                   | Added a `permissions` section with `contents: read` to the Java CI workflow configuration.                          |
| README.md                                     | Improved clarity and visuals: updated quote formatting, embedded images, added captions, and updated image paths.    |


<!-- walkthrough_end -->
<!-- internal state start -->


<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEejqANiS4NY+CiQAUDeAEouiAO7rbkApCUAMzRsC1xIRBJcbG5IQPtIAGFFEgBFABkIhkwMeAwiAwA5bGYBSi4ARgB2AE4DAFVIii4MTHxcFXw0WjQjfWNwKDJ6fECcAmIyZRp6JlZ2Ll5+YVFxKRl5JiUqVXUtHX6TKDhUVExxwlJyKhmFeYxOSCpPCJLmNAp5OQVtlTVNbS6MCGAamAwaIjqWDYAQAek89gA1oELPhPIhYVs0AxZBpZMwLBwDAAiUkGADE5MgAEEAJKTa7UOivVgfeSjRiwTCkRBmWAkAIkKy3QLwKyQTxoZBoSAAcXUAAkYTSxPB8BhkAiKMjUS8mBhRURsDc1VhWmx6AADLE4vEEy2CxDwIjkej+CjYLDJHo4iKiY3qeSIbIa/hYXD8p4kbj4J0ET4aSC08K4CjO0gOEZYbjYRD86UYeg5iwWKMAR2w0lwyH8EYF70QND4AioGFsABp0JqhaWpWH0Fl+bRQszPCQSIiLPIPVgSFJPpAAGJpnryaiQABMFQ4AAYd4m4AKtTq0ZAufQHN0eJRmEgnerkPE+A4Y3H7Jt1TQHgX6N1aOpTTQUtuBvO9TUfBJIgYANcHkOd2B/dBVQfA9IyEQROVERFmXwPA/EjLYSE7OssFbfCBW9bF5GpVopydZBEnSWkkPEdUJShHgPjQNgmxrfBICuaYBRlABlakACVaUXMAn3eXBbigmDp2jexcE7MgVAsPIiEgecBFjAVcNwHNwkweh5VwJUBB+AVgxybS7m4ah4DULTYM7bwI0gDB+K029wjYutvJKMo+A5F9VOZO9K0QRNFzyICp07dRIBiVFumZILBJuZkxMkxco0QUJqziMUBX8CyrMATAJkEIrJ7PyFAHkoYIGBIVCjyRFFTzyGgiBy+hKN9RS01g+qMFyRqHCKsJkH/BwxCnJqKsVZVqVoCRMDa+gRP9UaPyUcbJqIDQjCMSkaTCaZwL8figqUBgLC41jQw5EgAA8YwoW4EhzAQtIYSB2AA6QjEKdV2pgSNgYcCUut1UrxUlOahSiOgAG5vP4j6vp+vg/oBoGHhB7tYYep7M34PhmEUeBRToU7SWJPowQhKEYXheG0Qxd4pAwO1CRJMkLrpBkhPoIrWQXDlbG5UGDEPOVVus6lkNDY9ur1dVDWNZy2KfcjIAAKTQTakmY7h4BArTyAlPsaf/em3Wxz6AcsIMoijV91Hfa8KFvRB7w1RNqW8kgXktED/bAh8HSgl67elWglF/FNIwIWIrCkUtPNgSBrU/BCuEvWhLQ8hBfH6zASqCjWEZLpC2sD26vdjH2F31L9q0TcH+DrPhZfyaQW9rrmXlRSEGE7dDrKCPIAIfTtIJobhSfrDLTrOkWrpNB8R8jcnnput7PsikZ8ZhQngfEeXwfIRmyQMCAwCMcSAFFqQAEQAWTfjRmFoESJmFIqSi2ykyCWbw2T8DGIPHkfIBTvy/r/f+9BkapW4D0W4/gyBcjbAKR6HxAzoELDwaa7A9b8yhgKdIeRcwwHsJtCwtBkAVnaAKPIhtv6YDplWfi8dTSJ05HLeggQKAsB4E9ThNB3opn4jKd42paBoiwDbREUZAiUDIC4RqQV7DOgSqWRAuEKBtQ6pAESqZsBiGNLZVYgiXxPW2gOGR0QgKOgYGmbgCczIkKBrIygtELEADVZQoHeKQDRWj8HsS8ucEgpQ6Ap3CWgSJvjzh/mZNkbxgjCFpkCLIByQUdYOAAOS1XVG1bx2B3GtGiLDXxTlvrwHcUoEChZtHyH/IgbgT1cQWPgLeCmSVDaf3wNBNgDxKF+jVhgrBmVIzUgAArMWURMihCdBmpIFE5Ly/gZTkHHuM6ZnptiGylJEassItk8gCPABa8Z+mHkiMIoeyBBm8HwFIQ2aySgbNNOU3SSAam9lIXkWSlD3EViAsQ3ORl0A7wcpgeQgRPRq3cZ3dgm9zqgJ3pQviPzRAU3xTA/xuMcIX3+vAQG194C3whkLZmT9gSgiGKQjkIQJjgNuHMSZjxngskUV8A6yhdgAgOCyo4dx/IAH14AsJlQ4CQdKxy0BlY2D44R+gGClQIGoAglA7iqAwGoaBugMA3AAZhIDUCotADUmoEBuAALIEAAHAAVgYB62gNRaA7gAGxoECBUMY2qpW8vUHKhVSqVV0BlcMIEeggA=== -->

<!-- internal state end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=nanotaboada/java.samples.spring.boot&utm_content=179):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: NONE
user: login: qlty-cloud-legacy[bot]
created_at: 2025-04-18T18:59:25Z
body: Code Climate has analyzed commit b9bde07c and detected **2 issues** on this pull request.

Here's the issue category breakdown:

| Category | Count |
|:---:|:---:|
| Style | 2 |


View more on [Code Climate](https://codeclimate.com/github/nanotaboada/java.samples.spring.boot/pull/179).

author_association: NONE
user: login: sonarqubecloud[bot]
created_at: 2025-04-18T18:59:26Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=nanotaboada_java.samples.spring.boot&pullRequest=179) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=nanotaboada_java.samples.spring.boot&pullRequest=179&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=nanotaboada_java.samples.spring.boot&pullRequest=179&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=nanotaboada_java.samples.spring.boot&pullRequest=179&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=nanotaboada_java.samples.spring.boot&pullRequest=179&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=nanotaboada_java.samples.spring.boot&pullRequest=179&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=nanotaboada_java.samples.spring.boot&pullRequest=179)


author_association: NONE
user: login: codacy-production[bot]
created_at: 2025-04-18T18:59:56Z
body: ## Coverage summary from Codacy
### [See diff coverage on Codacy](https://app.codacy.com/gh/nanotaboada/java.samples.spring.boot/pull-requests/179/coverage?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummaryPullRequest)

 | Coverage variation | Diff coverage | 
 | ------------- | ------------- |
 | :white_check_mark: **+0.00%** (target: -1.00%) | :white_check_mark: **∅** |

<details>
<summary>Coverage variation details</summary>

| | Coverable lines | Covered lines | Coverage |
| ------------- | ------------- | ------------- | ------------- |
| Common ancestor commit (a8f5839925fbf410583e810166857846ed7b1f07) | 57 | 57 | 100.00% | |
| Head commit (b9bde07c9aadc23e91dbdc9b24f85c5d9d06af1f) | 57 (+0) | 57 (+0) | 100.00% (**+0.00%**) |

**Coverage variation** is the difference between the coverage for the head and common ancestor commits of the pull request branch: `<coverage of head commit> - <coverage of common ancestor commit>`
</details>

<details>
<summary>Diff coverage details</summary>

| | Coverable lines | Covered lines | Diff coverage |
| ------------- | ------------- | ------------- | ------------- |
| Pull request (#179) | 0 | 0 | **∅ (not applicable)** |

**Diff coverage** is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: `<covered lines added or modified>/<coverable lines added or modified> * 100%`
</details>

#### [See your quality gate settings](https://app.codacy.com/gh/nanotaboada/java.samples.spring.boot/settings/quality?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummaryGates)&nbsp;&nbsp;&nbsp;&nbsp;[Change summary preferences](https://app.codacy.com/gh/nanotaboada/java.samples.spring.boot/settings/integrations?utm_source=github.com&utm_medium=coverageSummary&utm_campaign=coverageSummarySettings)

<!-- 108f945d-e553-4918-8ccf-027c6d4acc2c -->
author_association: NONE
user: login: codecov[bot]
created_at: 2025-04-18T19:00:03Z
body: ## [Codecov](https://app.codecov.io/gh/nanotaboada/java.samples.spring.boot/pull/179?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Nano+Taboada) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 96.49%. Comparing base [(`a8f5839`)](https://app.codecov.io/gh/nanotaboada/java.samples.spring.boot/commit/a8f5839925fbf410583e810166857846ed7b1f07?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Nano+Taboada) to head [(`b9bde07`)](https://app.codecov.io/gh/nanotaboada/java.samples.spring.boot/commit/b9bde07c9aadc23e91dbdc9b24f85c5d9d06af1f?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Nano+Taboada).
> Report is 4 commits behind head on master.

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##             master     #179   +/-   ##
=========================================
  Coverage     96.49%   96.49%           
  Complexity       24       24           
=========================================
  Files             2        2           
  Lines            57       57           
  Branches          6        6           
=========================================
  Hits             55       55           
  Partials          2        2           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/nanotaboada/java.samples.spring.boot/pull/179?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Nano+Taboada).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=Nano+Taboada).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>
author_association: NONE