From 307e8183d1a315306d2ec692175621a2da4639dc Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 21 May 2025 15:33:45 +0200 Subject: [PATCH 001/141] Improve bug report template --- .github/ISSUE_TEMPLATE/bug_report.yml | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index a61d834c..033bcdb0 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,15 @@ body: validations: required: true + - type: textarea + id: description + attributes: + label: Description of the problem + description: | + Describe as exactly as possible what is not working. + validations: + required: true + - type: textarea id: steps-to-reproduce attributes: @@ -47,20 +56,6 @@ body: validations: required: true - - type: textarea - id: expected-behavior - attributes: - label: Expected behavior - description: | - Tell us what you expect to happen. - - - type: textarea - id: actual-behavior - attributes: - label: Actual behavior - description: | - Tell us what happens with the steps given above. - - type: textarea id: additional-information attributes: From 0f72ad300d4e3d5e96789ad1ea4cedbd4615a863 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 22 May 2025 04:16:33 +0000 Subject: [PATCH 002/141] Update dependency com.puppycrawl.tools:checkstyle to v10.24.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d386c6fe..2f769c66 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.23.1 + 10.24.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 5a67e474..05eb480c 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -209,7 +209,7 @@ com.puppycrawl.tools checkstyle - 10.23.1 + 10.24.0 From 709995c578523840db6df7ee79795e2f017b346f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 31 May 2025 04:14:57 +0000 Subject: [PATCH 003/141] Update net.sourceforge.pmd to v7.14.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 2f769c66..5bffd117 100644 --- a/pom.xml +++ b/pom.xml @@ -82,12 +82,12 @@ net.sourceforge.pmd pmd-core - 7.13.0 + 7.14.0 net.sourceforge.pmd pmd-java - 7.13.0 + 7.14.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 05eb480c..83ac0285 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -246,12 +246,12 @@ net.sourceforge.pmd pmd-core - 7.13.0 + 7.14.0 net.sourceforge.pmd pmd-java - 7.13.0 + 7.14.0 From 4a35b838f7be1dbe648a1bda16b1b3945ebb3285 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 1 Jun 2025 04:24:06 +0000 Subject: [PATCH 004/141] Update dependency com.puppycrawl.tools:checkstyle to v10.25.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2f769c66..9552734b 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.24.0 + 10.25.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 05eb480c..951e3020 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -209,7 +209,7 @@ com.puppycrawl.tools checkstyle - 10.24.0 + 10.25.0 From 7b2210a0e9a044fd194eeaac4761353c3b2fc357 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 3 Jun 2025 08:37:03 +0200 Subject: [PATCH 005/141] Move PMD to java subfolder https://github.com/xdev-software/java-template/issues/19 --- .config/pmd/{ => java}/ruleset.xml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .config/pmd/{ => java}/ruleset.xml (100%) diff --git a/.config/pmd/ruleset.xml b/.config/pmd/java/ruleset.xml similarity index 100% rename from .config/pmd/ruleset.xml rename to .config/pmd/java/ruleset.xml From 9c3732adbeca22563a07683980761b404d60760c Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 3 Jun 2025 08:38:27 +0200 Subject: [PATCH 006/141] Update pmd location https://github.com/xdev-software/java-template/issues/19 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index f6ad2768..98aae88f 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -239,7 +239,7 @@ true true - ../.config/pmd/ruleset.xml + ../.config/pmd/java/ruleset.xml From ff7d9184c194012c44fd7c2819b8ec1d8fa7e1fd Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 5 Jun 2025 09:52:46 +0200 Subject: [PATCH 007/141] Fix maven wrapper not working correctly on Windows Docker in non root (/) Properties files in subdirectory e.g. /submodule/.mvn/wrapper/maven-wrapper.properties is not formatted correctly! --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 9c74e428..8ac80271 100644 --- a/.gitattributes +++ b/.gitattributes @@ -6,4 +6,4 @@ # Force MVN Wrapper Linux files LF mvnw text eol=lf -.mvn/wrapper/maven-wrapper.properties text eol=lf +maven-wrapper.properties text eol=lf From c5ee7c773b9c2feff77cbb57185664d3e0596263 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 6 Jun 2025 04:20:27 +0000 Subject: [PATCH 008/141] Update dependency maven to v3.9.10 --- .mvn/wrapper/maven-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 4d624fa9..3112b8ec 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -14,4 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.10/apache-maven-3.9.10-bin.zip From 1038c7877757adbe9d59c35fed4d93faabbbbd09 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 10 Jun 2025 09:37:48 +0200 Subject: [PATCH 009/141] Correct pmd ruleset location --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 10a63219..a0d8268c 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ true true - .config/pmd/ruleset.xml + .config/pmd/java/ruleset.xml From a830f314468281d45b85a281d01428db6393cf5b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 12 Jun 2025 04:17:46 +0000 Subject: [PATCH 010/141] Update shogo82148/actions-create-release digest to 4661dc5 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2cb33930..2e93568f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -89,7 +89,7 @@ jobs: - name: Create Release id: create_release - uses: shogo82148/actions-create-release@e5f206451d4ace2da9916d01f1aef279997f8659 # v1 + uses: shogo82148/actions-create-release@4661dc54f7b4b564074e9fbf73884d960de569a3 # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From baf514080ced8c425a70e2438172eb58047b1f33 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 13 Jun 2025 04:16:27 +0000 Subject: [PATCH 011/141] Update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.6.1 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 445c33fb..9fac300d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -198,7 +198,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.6.0 + 3.6.1 generate-sources From 4d937a99309804d38d86ae037346ff407abe7c55 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 13 Jun 2025 04:16:28 +0000 Subject: [PATCH 012/141] Update dependency software.xdev:find-and-replace-maven-plugin to v1.0.4 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 445c33fb..66209fa4 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -376,7 +376,7 @@ software.xdev find-and-replace-maven-plugin - 1.0.3 + 1.0.4 From 2bc9bf4c97e9eec35136e5753678262f7d898016 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 13 Jun 2025 04:16:29 +0000 Subject: [PATCH 013/141] Update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 445c33fb..8f2dd23b 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -73,7 +73,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.4.4 + 5.5 From d403f3e12db74c5472832b07b28a674427ade46b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 13 Jun 2025 04:16:30 +0000 Subject: [PATCH 014/141] Update dependency org.apache.maven.plugins:maven-clean-plugin to v3.5.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 445c33fb..178e0947 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -289,7 +289,7 @@ org.apache.maven.plugins maven-clean-plugin - 3.4.1 + 3.5.0 pre-generation-clean From 09b005d905d0d655fd9cc191a0fdbbe43be5228d Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 14 Jun 2025 04:12:52 +0000 Subject: [PATCH 015/141] Update dependency com.fasterxml.jackson:jackson-bom to v2.19.1 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index a2fe140d..d8fe9d9a 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -61,7 +61,7 @@ com.fasterxml.jackson jackson-bom - 2.19.0 + 2.19.1 pom import From fcfe69a5f46a0156f542bce14b9b233988db21cc Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 17 Jun 2025 04:16:46 +0000 Subject: [PATCH 016/141] Update log4j2-version to v2.25.0 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index 62ebc591..df808177 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -28,7 +28,7 @@ software.xdev.Application - 2.24.3 + 2.25.0 From 762cb368e6a4cd493d93079910a72391a6003225 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 18 Jun 2025 04:18:13 +0000 Subject: [PATCH 017/141] Update dependency org.sonatype.central:central-publishing-maven-plugin to v0.8.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 98aae88f..91e371fb 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -187,7 +187,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.7.0 + 0.8.0 true sonatype-central-portal From 88bc24fe20695d41424cf425b97fd665e578b2f2 Mon Sep 17 00:00:00 2001 From: Alex B <45384811+AB-xdev@users.noreply.github.com> Date: Wed, 18 Jun 2025 13:12:11 +0200 Subject: [PATCH 018/141] Cleanup .gitignore --- .gitignore | 46 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index 5c850540..ba573471 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,12 @@ # Maven target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -# https://github.com/takari/maven-wrapper#usage-without-binary-jar + +# Maven Wrapper .mvn/wrapper/maven-wrapper.jar +# Maven Flatten Plugin +.flattened-pom.xml # Compiled class file *.class @@ -18,20 +14,12 @@ buildNumber.properties # Log file *.log -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - # Package/Binary Files don't belong into a git repo *.jar *.war -*.nar *.ear *.zip *.tar.gz -*.rar *.dll *.exe *.bin @@ -39,27 +27,11 @@ buildNumber.properties # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -# JRebel -**/resources/rebel.xml -**/resources/rebel-remote.xml - -# eclispe stuff for root -/.settings/ -/.classpath -/.project - - -# eclispe stuff for modules -/*/.metadata/ -/*/.apt_generated_tests/ -/*/.settings/ -/*/.classpath -/*/.project -/*/RemoteSystemsTempFiles/ - -#custom -.flattened-pom.xml -.tern-project +# Eclispe +.metadata +.settings +.classpath +.project # == IntelliJ == *.iml From 015131b92ffccbce5e8fac274d0ddf3d068d0e4a Mon Sep 17 00:00:00 2001 From: Alex B <45384811+AB-xdev@users.noreply.github.com> Date: Wed, 18 Jun 2025 13:38:22 +0200 Subject: [PATCH 019/141] Update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ba573471..14a1fb4d 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ dependency-reduced-pom.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -# Eclispe +# Eclipse .metadata .settings .classpath From 67c281643f52336b68965e2216511059c19a2244 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 22 Jun 2025 04:20:31 +0000 Subject: [PATCH 020/141] Update dependency com.puppycrawl.tools:checkstyle to v10.25.1 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a0d8268c..38d092c1 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.25.0 + 10.25.1 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 91e371fb..65e291a6 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -209,7 +209,7 @@ com.puppycrawl.tools checkstyle - 10.25.0 + 10.25.1 From 861794f26b184ae23915613ade8320f2cdc39269 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 22 Jun 2025 04:20:34 +0000 Subject: [PATCH 021/141] Update dependency org.codehaus.mojo:flatten-maven-plugin to v1.7.1 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 91e371fb..1f1712f7 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -147,7 +147,7 @@ org.codehaus.mojo flatten-maven-plugin - 1.7.0 + 1.7.1 ossrh From f7426d2bdb63d4954973400f12417933e00b76a3 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 25 Jun 2025 04:21:42 +0000 Subject: [PATCH 022/141] Update dependency com.puppycrawl.tools:checkstyle to v10.26.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38d092c1..1d1131dd 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.25.1 + 10.26.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index be3875e7..e0a79aa0 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -209,7 +209,7 @@ com.puppycrawl.tools checkstyle - 10.25.1 + 10.26.0 From 2738696da4f2f57aaf330b2a130ed9f6ab3edb04 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 26 Jun 2025 04:17:34 +0000 Subject: [PATCH 023/141] Update dependency org.openapitools:openapi-generator-maven-plugin to v7.14.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index c3e37d02..74b23882 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -318,7 +318,7 @@ org.openapitools openapi-generator-maven-plugin - 7.13.0 + 7.14.0 From 9d8d2deb86e1db67799d735fc541e56d9af9e5b4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 26 Jun 2025 04:18:46 +0000 Subject: [PATCH 024/141] Update dependency org.apache.maven.plugins:maven-pmd-plugin to v3.27.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 38d092c1..9023c63d 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ org.apache.maven.plugins maven-pmd-plugin - 3.26.0 + 3.27.0 true true diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index be3875e7..98795f19 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -234,7 +234,7 @@ org.apache.maven.plugins maven-pmd-plugin - 3.26.0 + 3.27.0 true true From d38b73d81d914b35ae46b9b36c3afea39ee0d065 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 26 Jun 2025 11:15:18 +0200 Subject: [PATCH 025/141] Sync naming --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2e93568f..c28f9498 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,7 +51,7 @@ jobs: needs: [check-code] timeout-minutes: 10 outputs: - upload_url: ${{ steps.create_release.outputs.upload_url }} + upload_url: ${{ steps.create-release.outputs.upload_url }} steps: - uses: actions/checkout@v4 @@ -88,7 +88,7 @@ jobs: git push origin --tags - name: Create Release - id: create_release + id: create-release uses: shogo82148/actions-create-release@4661dc54f7b4b564074e9fbf73884d960de569a3 # v1 with: tag_name: v${{ steps.version.outputs.release }} From 08be521289fd77bdcac3f8c4d20756331f4f941c Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 28 Jun 2025 04:14:51 +0000 Subject: [PATCH 026/141] Update net.sourceforge.pmd to v7.15.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 426a8520..f4358f30 100644 --- a/pom.xml +++ b/pom.xml @@ -82,12 +82,12 @@ net.sourceforge.pmd pmd-core - 7.14.0 + 7.15.0 net.sourceforge.pmd pmd-java - 7.14.0 + 7.15.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 876b7a7a..d16c3278 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -246,12 +246,12 @@ net.sourceforge.pmd pmd-core - 7.14.0 + 7.15.0 net.sourceforge.pmd pmd-java - 7.14.0 + 7.15.0 From a166186c6a877be931658117fda66ae7bf34a76b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 30 Jun 2025 04:24:59 +0000 Subject: [PATCH 027/141] Update dependency com.puppycrawl.tools:checkstyle to v10.26.1 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 426a8520..862831e9 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.26.0 + 10.26.1 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 876b7a7a..adf5e1ed 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -209,7 +209,7 @@ com.puppycrawl.tools checkstyle - 10.26.0 + 10.26.1 From c6e807f728ad34a6e531a43be9423092f72a9398 Mon Sep 17 00:00:00 2001 From: Alex B <45384811+AB-xdev@users.noreply.github.com> Date: Tue, 1 Jul 2025 10:50:39 +0200 Subject: [PATCH 028/141] Simplify: Use ``processAllModules`` flag --- .github/workflows/release.yml | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c28f9498..89712fa2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -61,15 +61,7 @@ jobs: git config --global user.name "GitHub Actions" - name: Un-SNAP - run: | - mvnwPath=$(readlink -f ./mvnw) - modules=("") # root - modules+=($(grep -oP '(?<=)[^<]+' 'pom.xml')) - for i in "${modules[@]}" - do - echo "Processing $i/pom.xml" - (cd "$i" && $mvnwPath -B versions:set -DremoveSnapshot -DgenerateBackupPoms=false) - done + run: ./mvnw -B versions:set -DremoveSnapshot -DprocessAllModules -DgenerateBackupPoms=false - name: Get version id: version @@ -185,15 +177,7 @@ jobs: git pull - name: Inc Version and SNAP - run: | - mvnwPath=$(readlink -f ./mvnw) - modules=("") # root - modules+=($(grep -oP '(?<=)[^<]+' 'pom.xml')) - for i in "${modules[@]}" - do - echo "Processing $i/pom.xml" - (cd "$i" && $mvnwPath -B build-helper:parse-version versions:set -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.nextIncrementalVersion} -DgenerateBackupPoms=false -DnextSnapshot=true -DupdateMatchingVersions=false) - done + run: ./mvnw -B versions:set -DnextSnapshot -DprocessAllModules -DgenerateBackupPoms=false - name: Git Commit and Push run: | From 48f59e6a5c4582e03d57cc9f523785ba23995cd4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 3 Jul 2025 04:20:04 +0000 Subject: [PATCH 029/141] Update dependency org.apache.maven.plugins:maven-gpg-plugin to v3.2.8 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index adb902d9..85837b2e 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -164,7 +164,7 @@ org.apache.maven.plugins maven-gpg-plugin - 3.2.7 + 3.2.8 sign-artifacts From 23eab491b4740bba9fc3f3a329958d6ef84c5389 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 3 Jul 2025 09:21:28 +0200 Subject: [PATCH 030/141] Implement dual publishing to GitHub packages --- .github/workflows/release.yml | 23 ++++++++++++++++++++--- .github/workflows/test-deploy.yml | 21 +++++++++++++++++++-- template-placeholder/pom.xml | 10 ++++++++-- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 89712fa2..210ef8cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -104,6 +104,9 @@ jobs: runs-on: ubuntu-latest needs: [prepare-release] timeout-minutes: 60 + permissions: + contents: read + packages: write steps: - uses: actions/checkout@v4 @@ -112,20 +115,34 @@ jobs: git config --global user.email "actions@github.com" git config --global user.name "GitHub Actions" git pull + + - name: Set up JDK + uses: actions/setup-java@v4 + with: # running setup-java overwrites the settings.xml + distribution: 'temurin' + java-version: '17' + gpg-passphrase: MAVEN_GPG_PASSPHRASE + gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once + - name: Publish to Central Portal + run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github::https://maven.pkg.github.com/${{ github.repository }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} + working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} + - name: Set up JDK uses: actions/setup-java@v4 with: # running setup-java again overwrites the settings.xml - java-version: '17' distribution: 'temurin' + java-version: '17' server-id: sonatype-central-portal server-username: MAVEN_CENTRAL_USERNAME server-password: MAVEN_CENTRAL_TOKEN gpg-passphrase: MAVEN_GPG_PASSPHRASE - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - name: Publish to Central Portal - run: ../mvnw -B deploy -P publish-sonatype-central-portal -DskipTests + run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests env: MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }} diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 8a858912..922eda0d 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -10,8 +10,26 @@ jobs: publish-maven: runs-on: ubuntu-latest timeout-minutes: 60 + permissions: + contents: read + packages: write steps: - uses: actions/checkout@v4 + + - name: Set up JDK + uses: actions/setup-java@v4 + with: # running setup-java overwrites the settings.xml + distribution: 'temurin' + java-version: '17' + gpg-passphrase: MAVEN_GPG_PASSPHRASE + gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once + + - name: Publish to GitHub Packages + run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github::https://maven.pkg.github.com/${{ github.repository }} + working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Set up JDK uses: actions/setup-java@v4 @@ -22,10 +40,9 @@ jobs: server-username: MAVEN_CENTRAL_USERNAME server-password: MAVEN_CENTRAL_TOKEN gpg-passphrase: MAVEN_GPG_PASSPHRASE - gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} - name: Publish to Central Portal - run: ../mvnw -B deploy -P publish-sonatype-central-portal -DskipTests + run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} env: MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }} diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index adb902d9..d51a7a16 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -141,7 +141,7 @@ - publish-sonatype-central-portal + publish @@ -183,7 +183,13 @@ - + + + + + publish-sonatype-central-portal + + org.sonatype.central central-publishing-maven-plugin From 05805ad560ad7c70f408f7b9799ac07f2584a4b0 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 12 Jul 2025 04:18:18 +0000 Subject: [PATCH 031/141] Update log4j2-version to v2.25.1 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index df808177..74e6d0bf 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -28,7 +28,7 @@ software.xdev.Application - 2.25.0 + 2.25.1 From 7da11aba3b95b8dfcb61c010539461a2f0f4e911 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 16 Jul 2025 04:24:46 +0000 Subject: [PATCH 032/141] Update dependency maven to v3.9.11 --- .mvn/wrapper/maven-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 3112b8ec..6a6b8b2c 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -14,4 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.10/apache-maven-3.9.10-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip From a65a863f2006483444c099b91a54a73d865c5a8b Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Jul 2025 09:38:29 +0200 Subject: [PATCH 033/141] Remove Sonar https://github.com/xdev-software/github/issues/34 --- .github/workflows/sonar.yml | 79 ------------------------------------- README.md | 1 - 2 files changed, 80 deletions(-) delete mode 100644 .github/workflows/sonar.yml diff --git a/.github/workflows/sonar.yml b/.github/workflows/sonar.yml deleted file mode 100644 index df6dbb7e..00000000 --- a/.github/workflows/sonar.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Sonar - -on: - workflow_dispatch: - push: - branches: [ develop ] - paths-ignore: - - '**.md' - - '.config/**' - - '.github/**' - - '.idea/**' - - 'assets/**' - pull_request: - branches: [ develop ] - paths-ignore: - - '**.md' - - '.config/**' - - '.github/**' - - '.idea/**' - - 'assets/**' - -env: - SONARCLOUD_ORG: ${{ github.event.organization.login }} - SONARCLOUD_HOST: https://sonarcloud.io - -jobs: - token-check: - runs-on: ubuntu-latest - if: ${{ !(github.event_name == 'pull_request' && startsWith(github.head_ref, 'renovate/')) }} - timeout-minutes: 5 - outputs: - hasToken: ${{ steps.check-token.outputs.has }} - steps: - - id: check-token - run: | - [ -z $SONAR_TOKEN ] && echo "has=false" || echo "has=true" >> "$GITHUB_OUTPUT" - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - sonar-scan: - runs-on: ubuntu-latest - needs: token-check - if: ${{ needs.token-check.outputs.hasToken }} - timeout-minutes: 30 - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - - name: Set up JDK - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 17 - - - name: Cache SonarCloud packages - uses: actions/cache@v4 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - - name: Cache Maven packages - uses: actions/cache@v4 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} - restore-keys: ${{ runner.os }}-m2 - - - name: Build with Maven - run: | - ./mvnw -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ - -DskipTests \ - -Dsonar.projectKey=${{ env.SONARCLOUD_ORG }}_${{ github.event.repository.name }} \ - -Dsonar.organization=${{ env.SONARCLOUD_ORG }} \ - -Dsonar.host.url=${{ env.SONARCLOUD_HOST }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/README.md b/README.md index eccf80b7..3b979013 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ [![Latest version](https://img.shields.io/maven-central/v/software.xdev/template-placeholder?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/template-placeholder) [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/check-build.yml?branch=develop)](https://github.com/xdev-software/template-placeholder/actions/workflows/check-build.yml?query=branch%3Adevelop) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xdev-software_template-placeholder&metric=alert_status)](https://sonarcloud.io/dashboard?id=xdev-software_template-placeholder) # template-placeholder From b5ca8b50fab4331c039bf2820803445e75932133 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 17 Jul 2025 11:24:42 +0200 Subject: [PATCH 034/141] Publish to our GitHub Central "repo" https://github.com/xdev-software/standard-maven-template/issues/171 --- .github/workflows/release.yml | 10 ++++++---- .github/workflows/test-deploy.yml | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 210ef8cf..2b905acc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -121,15 +121,17 @@ jobs: with: # running setup-java overwrites the settings.xml distribution: 'temurin' java-version: '17' + server-id: github-central + server-password: PACKAGES_CENTRAL_TOKEN gpg-passphrase: MAVEN_GPG_PASSPHRASE gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - - name: Publish to Central Portal - run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github::https://maven.pkg.github.com/${{ github.repository }} + - name: Publish to GitHub Packages Central + run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central + working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} - name: Set up JDK uses: actions/setup-java@v4 diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 922eda0d..ae28e35f 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -21,14 +21,16 @@ jobs: with: # running setup-java overwrites the settings.xml distribution: 'temurin' java-version: '17' + server-id: github-central + server-password: PACKAGES_CENTRAL_TOKEN gpg-passphrase: MAVEN_GPG_PASSPHRASE gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - - name: Publish to GitHub Packages - run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github::https://maven.pkg.github.com/${{ github.repository }} + - name: Publish to GitHub Packages Central + run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Set up JDK From 02651ce38abf0596c1f786190e1120de62b404ca Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 17 Jul 2025 11:36:33 +0200 Subject: [PATCH 035/141] Remove not needed permissions --- .github/workflows/release.yml | 3 --- .github/workflows/test-deploy.yml | 3 --- 2 files changed, 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2b905acc..5f8fb83e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -104,9 +104,6 @@ jobs: runs-on: ubuntu-latest needs: [prepare-release] timeout-minutes: 60 - permissions: - contents: read - packages: write steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index ae28e35f..046be633 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -10,9 +10,6 @@ jobs: publish-maven: runs-on: ubuntu-latest timeout-minutes: 60 - permissions: - contents: read - packages: write steps: - uses: actions/checkout@v4 From d6280496478c83214cd695e09aa916b39bf7e873 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 17 Jul 2025 13:53:02 +0200 Subject: [PATCH 036/141] Fix link checker not creating issues Due to hidden change of how exit code is handled in https://github.com/lycheeverse/lychee-action/releases/tag/v2.0.0 Don't write 3 sentences about what has changed in the context of X; simply write: * Replace ``env.lychee_exit_code`` with ``steps.lychee.outputs.exit_code`` like you somehow did on the Readme? --- .github/workflows/broken-links.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 0d8c9606..e97096ad 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -30,13 +30,13 @@ jobs: GH_TOKEN: ${{ github.token }} - name: Close issue if everything is fine - if: env.lychee_exit_code == 0 && steps.find-issue.outputs.number != '' + if: steps.lychee.outputs.exit_code == 0 == 0 && steps.find-issue.outputs.number != '' run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }} env: GH_TOKEN: ${{ github.token }} - name: Create Issue From File - if: env.lychee_exit_code != 0 + if: steps.lychee.outputs.exit_code == 0 != 0 uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5 with: issue-number: ${{ steps.find-issue.outputs.number }} From 45e3f514b2141396212ad5cbc8399ed8258eaecd Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 17 Jul 2025 13:57:22 +0200 Subject: [PATCH 037/141] Fix typo --- .github/workflows/broken-links.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index e97096ad..1d9d96b2 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -30,13 +30,13 @@ jobs: GH_TOKEN: ${{ github.token }} - name: Close issue if everything is fine - if: steps.lychee.outputs.exit_code == 0 == 0 && steps.find-issue.outputs.number != '' + if: steps.lychee.outputs.exit_code == 0 && steps.find-issue.outputs.number != '' run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }} env: GH_TOKEN: ${{ github.token }} - name: Create Issue From File - if: steps.lychee.outputs.exit_code == 0 != 0 + if: steps.lychee.outputs.exit_code != 0 uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5 with: issue-number: ${{ steps.find-issue.outputs.number }} From 00044fbbdba12f12e92af7f749de68d8c2606ad4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 19 Jul 2025 04:17:58 +0000 Subject: [PATCH 038/141] Update dependency com.fasterxml.jackson:jackson-bom to v2.19.2 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index b3af0454..0ac9b3a7 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -61,7 +61,7 @@ com.fasterxml.jackson jackson-bom - 2.19.1 + 2.19.2 pom import From 1885f22338c088ac37f6fa40d79437c2618cd0f1 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 26 Jul 2025 04:23:21 +0000 Subject: [PATCH 039/141] Update net.sourceforge.pmd to v7.16.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index b148a3f6..13cbcef4 100644 --- a/pom.xml +++ b/pom.xml @@ -82,12 +82,12 @@ net.sourceforge.pmd pmd-core - 7.15.0 + 7.16.0 net.sourceforge.pmd pmd-java - 7.15.0 + 7.16.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index b0e33c76..789e4552 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -252,12 +252,12 @@ net.sourceforge.pmd pmd-core - 7.15.0 + 7.16.0 net.sourceforge.pmd pmd-java - 7.15.0 + 7.16.0 From f288c365ca866a08907cb7963fea3f82c7bffb01 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 29 Jul 2025 04:30:18 +0000 Subject: [PATCH 040/141] Update dependency org.codehaus.mojo:flatten-maven-plugin to v1.7.2 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 789e4552..58df6c88 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -147,7 +147,7 @@ org.codehaus.mojo flatten-maven-plugin - 1.7.1 + 1.7.2 ossrh From 12b61ed91efb5330fb3c9ef12d7fe61423582fee Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Mon, 4 Aug 2025 10:07:50 +0200 Subject: [PATCH 041/141] Remove unused variable from workflow --- .github/workflows/check-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 01edc3aa..65e1e41a 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -20,7 +20,6 @@ on: - 'assets/**' env: - PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }} DEMO_MAVEN_MODULE: ${{ github.event.repository.name }}-demo jobs: From d75370f1dfb63a2fc3e0e8dd40e1ab2ed957c33e Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 7 Aug 2025 09:47:14 +0200 Subject: [PATCH 042/141] [IDEA] Bump checkstyle version --- .idea/checkstyle-idea.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml index b52c3e2f..d43641c1 100644 --- a/.idea/checkstyle-idea.xml +++ b/.idea/checkstyle-idea.xml @@ -1,7 +1,7 @@ - 10.21.0 + 10.26.1 JavaOnlyWithTests true true From 0ec6a335f6992cafc30d348c9415a71456ac08db Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 8 Aug 2025 04:26:21 +0000 Subject: [PATCH 043/141] Update lycheeverse/lychee-action digest to 5c4ee84 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 1d9d96b2..d29a4da9 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -18,7 +18,7 @@ jobs: - name: Link Checker id: lychee - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2 + uses: lycheeverse/lychee-action@5c4ee84814c983aa7164eaee476f014e53ff3963 # v2 with: fail: false # Don't fail on broken links, create an issue instead From f368480b8f948af255e91cd589f99d160bf1284b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 8 Aug 2025 04:31:07 +0000 Subject: [PATCH 044/141] Update lycheeverse/lychee-action digest to 5c4ee84 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index e2f3597a..d5095397 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -19,7 +19,7 @@ jobs: - name: Link Checker id: lychee - uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2 + uses: lycheeverse/lychee-action@5c4ee84814c983aa7164eaee476f014e53ff3963 # v2 with: fail: false # Don't fail on broken links, create an issue instead From 3849ad71af09d44503bfbf2ae967cd33e33ac91f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 8 Aug 2025 04:31:09 +0000 Subject: [PATCH 045/141] Update dependency com.puppycrawl.tools:checkstyle to v11 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 13cbcef4..c495b40d 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 10.26.1 + 11.0.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 58df6c88..cc32fe86 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 10.26.1 + 11.0.0 From df23f84b8e58db57c57d0a3652ab3c4c31ea9595 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 12 Aug 2025 04:15:58 +0000 Subject: [PATCH 046/141] Update actions/checkout action to v5 --- .github/workflows/broken-links.yml | 2 +- .github/workflows/sync-labels.yml | 2 +- .github/workflows/update-from-template.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 1d9d96b2..a9e2882f 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -12,7 +12,7 @@ jobs: link-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mv .github/.lycheeignore .lycheeignore diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 0e2beb51..3faaf1e3 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -15,7 +15,7 @@ jobs: labels: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: .github/labels.yml diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml index 24af3f35..3a7dc919 100644 --- a/.github/workflows/update-from-template.yml +++ b/.github/workflows/update-from-template.yml @@ -35,7 +35,7 @@ jobs: update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 @@ -181,7 +181,7 @@ jobs: if: needs.update.outputs.create_update_branch_merged_pr == 1 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 From 613e5d01c18b6bf9687473275b8ea5111224203d Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 12 Aug 2025 04:19:19 +0000 Subject: [PATCH 047/141] Update actions/checkout action to v5 --- .github/workflows/broken-links.yml | 2 +- .github/workflows/check-build.yml | 6 +++--- .github/workflows/release.yml | 10 +++++----- .github/workflows/sync-labels.yml | 2 +- .github/workflows/test-deploy.yml | 2 +- .github/workflows/update-from-template.yml | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index d5095397..a37abe70 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mv .github/.lycheeignore .lycheeignore diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 65e1e41a..fdeead25 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -33,7 +33,7 @@ jobs: distribution: [temurin] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK uses: actions/setup-java@v4 @@ -81,7 +81,7 @@ jobs: distribution: [temurin] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK uses: actions/setup-java@v4 @@ -104,7 +104,7 @@ jobs: distribution: [temurin] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK uses: actions/setup-java@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5f8fb83e..e415f670 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK uses: actions/setup-java@v4 @@ -53,7 +53,7 @@ jobs: outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Configure Git run: | @@ -105,7 +105,7 @@ jobs: needs: [prepare-release] timeout-minutes: 60 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Init Git and pull run: | @@ -153,7 +153,7 @@ jobs: needs: [prepare-release] timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Init Git and pull run: | @@ -184,7 +184,7 @@ jobs: needs: [publish-maven] timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Init Git and pull run: | diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index dc672877..f6c50a17 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: sparse-checkout: .github/labels.yml diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 046be633..795bd6e8 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Set up JDK uses: actions/setup-java@v4 diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml index 65f56b0d..e689fe9f 100644 --- a/.github/workflows/update-from-template.yml +++ b/.github/workflows/update-from-template.yml @@ -36,7 +36,7 @@ jobs: update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 @@ -183,7 +183,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 From 019ff584fedbc7f8e0bff18c9ac9db333db7aa3d Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 13 Aug 2025 13:48:55 +0200 Subject: [PATCH 048/141] Add configuration for Intellij PMD plugin --- .gitignore | 46 +++++++++++++++++++++++++++++++++++++++++++++ .idea/PMDPlugin.xml | 16 ++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/PMDPlugin.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..ea952953 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Compiled class file +*.class + +# Log file +*.log + +# Package/Binary Files don't belong into a git repo +*.jar +*.war +*.ear +*.zip +*.tar.gz +*.dll +*.exe +*.bin + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +# Eclipse +.metadata +.settings +.classpath +.project + +# == IntelliJ == +*.iml +*.ipr + +# Some files are user/installation independent and are used for configuring the IDE +# See also https://stackoverflow.com/a/35279076 + +.idea/* +!.idea/saveactions_settings.xml +!.idea/checkstyle-idea.xml +!.idea/externalDependencies.xml +!.idea/PMDPlugin.xml + +!.idea/inspectionProfiles/ +.idea/inspectionProfiles/* +!.idea/inspectionProfiles/Project_Default.xml + +!.idea/codeStyles/ +.idea/codeStyles/* +!.idea/codeStyles/codeStyleConfig.xml +!.idea/codeStyles/Project.xml diff --git a/.idea/PMDPlugin.xml b/.idea/PMDPlugin.xml new file mode 100644 index 00000000..0936e518 --- /dev/null +++ b/.idea/PMDPlugin.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file From 29aa603936a4926a2fb47cafb1fd4a1ab8115208 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 13 Aug 2025 16:38:20 +0200 Subject: [PATCH 049/141] Enable async processing by default --- .idea/saveactions_settings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/.idea/saveactions_settings.xml b/.idea/saveactions_settings.xml index 848c311a..12a4f040 100644 --- a/.idea/saveactions_settings.xml +++ b/.idea/saveactions_settings.xml @@ -5,6 +5,7 @@ \ No newline at end of file From b828600535aa40c085989653d484607d30e7f6e2 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 12 Sep 2025 09:21:56 +0000 Subject: [PATCH 069/141] Update net.sourceforge.pmd to v7.17.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index abef334e..f824869d 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.16.0 + 7.17.0 net.sourceforge.pmd pmd-java - 7.16.0 + 7.17.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index e8666847..7380883f 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.16.0 + 7.17.0 net.sourceforge.pmd pmd-java - 7.16.0 + 7.17.0 From 154c6c732cbb090b1d3ddb6941759893d9d9c1f1 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 12 Sep 2025 12:09:53 +0200 Subject: [PATCH 070/141] Update to PMD 7.17 and add new rules --- .config/pmd/java/ruleset.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index ebdbd83a..267fa5e9 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -42,6 +42,7 @@ + @@ -138,6 +139,7 @@ + @@ -155,7 +157,7 @@ - + From 44ccd727be9ac92de19cd75f1dc5d77eea2dfd8b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 14 Sep 2025 04:14:19 +0000 Subject: [PATCH 071/141] Update shogo82148/actions-create-release digest to 7b89596 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0639fc65..61015663 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,7 +91,7 @@ jobs: - name: Create Release id: create-release - uses: shogo82148/actions-create-release@4661dc54f7b4b564074e9fbf73884d960de569a3 # v1 + uses: shogo82148/actions-create-release@7b89596097b26731bda0852f1504f813499079ee # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From 088bcf340437d337ffc169567f6bdfaad3a6d2d6 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 15 Sep 2025 14:54:51 +0200 Subject: [PATCH 072/141] Add PMD 7.16 Rules --- .config/pmd/java/ruleset.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 267fa5e9..5d76b2b6 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -153,6 +153,8 @@ + + From dd4c7faeec7695b3b9d02cff6dbc674f9cdd582b Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 16 Sep 2025 10:26:07 +0200 Subject: [PATCH 073/141] Update mvnw --- .mvn/wrapper/maven-wrapper.properties | 18 +------ mvnw | 67 ++++++++++++++++++++++----- mvnw.cmd | 57 ++++++++++++++++++++--- 3 files changed, 108 insertions(+), 34 deletions(-) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index 6a6b8b2c..c0bcafe9 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1,17 +1,3 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. +wrapperVersion=3.3.4 +distributionType=only-script distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip diff --git a/mvnw b/mvnw index 08303327..bd8896bf 100755 --- a/mvnw +++ b/mvnw @@ -19,7 +19,7 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.3.0 +# Apache Maven Wrapper startup batch script, version 3.3.4 # # Optional ENV vars # ----------------- @@ -97,14 +97,25 @@ die() { exit 1 } +trim() { + # MWRAPPER-139: + # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds. + # Needed for removing poorly interpreted newline sequences when running in more + # exotic environments such as mingw bash on Windows. + printf "%s" "${1}" | tr -d '[:space:]' +} + +scriptDir="$(dirname "$0")" +scriptName="$(basename "$0")" + # parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties while IFS="=" read -r key value; do case "${key-}" in - distributionUrl) distributionUrl="${value-}" ;; - distributionSha256Sum) distributionSha256Sum="${value-}" ;; + distributionUrl) distributionUrl=$(trim "${value-}") ;; + distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;; esac -done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" -[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" +done <"$scriptDir/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" case "${distributionUrl##*/}" in maven-mvnd-*bin.*) @@ -122,7 +133,7 @@ maven-mvnd-*bin.*) distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" ;; maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; -*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +*) MVN_CMD="mvn${scriptName#mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; esac # apply MVNW_REPOURL and calculate MAVEN_HOME @@ -131,7 +142,8 @@ esac distributionUrlName="${distributionUrl##*/}" distributionUrlNameMain="${distributionUrlName%.*}" distributionUrlNameMain="${distributionUrlNameMain%-bin}" -MAVEN_HOME="$HOME/.m2/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" +MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}" +MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" exec_maven() { unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : @@ -199,7 +211,7 @@ elif set_java_home; then public static void main( String[] args ) throws Exception { setDefault( new Downloader() ); - java.nio.file.Files.copy( new java.net.URL( args[0] ).openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); } } END @@ -218,7 +230,7 @@ if [ -n "${distributionSha256Sum-}" ]; then echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 exit 1 elif command -v sha256sum >/dev/null; then - if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c - >/dev/null 2>&1; then distributionSha256Result=true fi elif command -v shasum >/dev/null; then @@ -243,8 +255,41 @@ if command -v unzip >/dev/null; then else tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" fi -printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" -mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +actualDistributionDir="" + +# First try the expected directory name (for regular distributions) +if [ -d "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" ]; then + if [ -f "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/bin/$MVN_CMD" ]; then + actualDistributionDir="$distributionUrlNameMain" + fi +fi + +# If not found, search for any directory with the Maven executable (for snapshots) +if [ -z "$actualDistributionDir" ]; then + # enable globbing to iterate over items + set +f + for dir in "$TMP_DOWNLOAD_DIR"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/bin/$MVN_CMD" ]; then + actualDistributionDir="$(basename "$dir")" + break + fi + fi + done + set -f +fi + +if [ -z "$actualDistributionDir" ]; then + verbose "Contents of $TMP_DOWNLOAD_DIR:" + verbose "$(ls -la "$TMP_DOWNLOAD_DIR")" + die "Could not find Maven distribution directory in extracted archive" +fi + +verbose "Found extracted Maven distribution directory: $actualDistributionDir" +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$actualDistributionDir/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$actualDistributionDir" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" clean || : exec_maven "$@" diff --git a/mvnw.cmd b/mvnw.cmd index 136e686a..92450f93 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -19,7 +19,7 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.3.0 +@REM Apache Maven Wrapper startup batch script, version 3.3.4 @REM @REM Optional ENV vars @REM MVNW_REPOURL - repo url base for downloading maven distribution @@ -40,7 +40,7 @@ @SET __MVNW_ARG0_NAME__= @SET MVNW_USERNAME= @SET MVNW_PASSWORD= -@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) +@IF NOT "%__MVNW_CMD__%"=="" ("%__MVNW_CMD__%" %*) @echo Cannot start maven from wrapper >&2 && exit /b 1 @GOTO :EOF : end batch / begin powershell #> @@ -73,13 +73,30 @@ switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { # apply MVNW_REPOURL and calculate MAVEN_HOME # maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ if ($env:MVNW_REPOURL) { - $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } - $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" + $MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')" } $distributionUrlName = $distributionUrl -replace '^.*/','' $distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' -$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" -$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' + +$MAVEN_M2_PATH = "$HOME/.m2" +if ($env:MAVEN_USER_HOME) { + $MAVEN_M2_PATH = "$env:MAVEN_USER_HOME" +} + +if (-not (Test-Path -Path $MAVEN_M2_PATH)) { + New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null +} + +$MAVEN_WRAPPER_DISTS = $null +if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) { + $MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists" +} else { + $MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists" +} + +$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' $MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { @@ -131,7 +148,33 @@ if ($distributionSha256Sum) { # unzip and move Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null -Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null + +# Find the actual extracted directory name (handles snapshots where filename != directory name) +$actualDistributionDir = "" + +# First try the expected directory name (for regular distributions) +$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain" +$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD" +if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) { + $actualDistributionDir = $distributionUrlNameMain +} + +# If not found, search for any directory with the Maven executable (for snapshots) +if (!$actualDistributionDir) { + Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object { + $testPath = Join-Path $_.FullName "bin/$MVN_CMD" + if (Test-Path -Path $testPath -PathType Leaf) { + $actualDistributionDir = $_.Name + } + } +} + +if (!$actualDistributionDir) { + Write-Error "Could not find Maven distribution directory in extracted archive" +} + +Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir" +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null try { Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null } catch { From 108486865e6442363bbcaff9b394ba5b36a2d63f Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 15 Sep 2025 15:03:03 +0200 Subject: [PATCH 074/141] PMD: Import and modify rules from `jPinpoint` See https://github.com/jborgers/PMD-jPinpoint-rules --- .config/pmd/java/ruleset.xml | 824 ++++++++++++++++++++++++++++++++++- 1 file changed, 818 insertions(+), 6 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 5d76b2b6..28bc272e 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -11,7 +11,6 @@ - @@ -199,6 +198,33 @@ + + + + Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or may be replaced by a simpler string concatenation. + + Solution: + * Do not use `StringBuffer` because it's thread-safe and usually this is not needed + * If `StringBuilder` is only used in a simple method (like `toString`) and is effectively inlined: Use a simpler string concatenation (`"a" + x + "b"`). This will be optimized by the Java compiler internally. + * In all other cases: + * Check what is happening and if it makes ANY sense! If for example a CSV file is built here consider using a proper library instead! + * Abstract the Strings into a DTO, join them together using a collection (or `StringJoiner`) or use Java's Streaming API instead + + 3 + + + + + + + + + - @@ -236,7 +262,7 @@ - @@ -257,7 +283,7 @@ - @@ -279,7 +305,7 @@ - @@ -303,7 +329,7 @@ - @@ -311,4 +337,790 @@ + + + + + + Do not use native HTML! Use Vaadin layouts and components to create required structure. + If you are 100% sure that you escaped the value properly and you have no better options you can suppress this. + + 2 + + + + + + + + + + + + + + + + java.text.NumberFormat: DecimalFormat and ChoiceFormat are thread-unsafe. + + Solution: Create a new local one when needed in a method. + + 1 + + + + + + + + + + + + + + + A regular expression is compiled implicitly on every invocation. + Problem: This can be (CPU) expensive, depending on the length of the regular expression. + + Solution: Compile the regex pattern only once and assign it to a private static final Pattern field. + java.util.Pattern objects are thread-safe, so they can be shared among threads. + + 2 + + + + 5 and +(matches(@Image, '[\.\$\|\(\)\[\]\{\}\^\?\*\+\\]+'))) +or +self::VariableAccess and @Name=ancestor::ClassBody[1]/FieldDeclaration/VariableDeclarator[StringLiteral[string-length(@Image) > 5 and +(matches(@Image, '[\.\$\|\(\)\[\]\{\}\^\?\*\+\\]+'))] or not(StringLiteral)]/VariableId/@Name] +]]> + + + + + + + + + + + + The default constructor of ByteArrayOutputStream creates a 32 bytes initial capacity and for StringWriter 16 chars. + Such a small buffer as capacity usually needs several expensive expansions. + + Solution: Explicitly declared the buffer size so that an expansion is not needed in most cases. + Typically much larger than 32, e.g. 4096. + + 2 + + + + + + + + + + + + + + + The time to find element is O(n); n = the number of enum values. + This identical processing is executed for every call. + Considered problematic when `n > 3`. + + Solution: Use a static field-to-enum-value Map. Access time is O(1), provided the hashCode is well-defined. + Implement a fromString method to provide the reverse conversion by using the map. + + 3 + + + + 3]//MethodDeclaration/Block + //MethodCall[pmd-java:matchesSig('java.util.stream.Stream#findFirst()') or pmd-java:matchesSig('java.util.stream.Stream#findAny()')] + [//MethodCall[pmd-java:matchesSig('java.util.stream.Stream#of(_)') or pmd-java:matchesSig('java.util.Arrays#stream(_)')] + [ArgumentList/MethodCall[pmd-java:matchesSig('_#values()')]]] +]]> + + + + + fromString(String name) { + return Stream.of(values()).filter(v -> v.toString().equals(name)).findAny(); // bad: iterates for every call, O(n) access time + } +} + +Usage: `Fruit f = Fruit.fromString("banana");` + +// GOOD +public enum Fruit { + APPLE("apple"), + ORANGE("orange"), + BANANA("banana"), + KIWI("kiwi"); + + private static final Map nameToValue = + Stream.of(values()).collect(toMap(Object::toString, v -> v)); + private final String name; + + Fruit(String name) { this.name = name; } + @Override public String toString() { return name; } + public static Optional fromString(String name) { + return Optional.ofNullable(nameToValue.get(name)); // good, get from Map, O(1) access time + } +} +]]> + + + + + + A regular expression is compiled on every invocation. + Problem: this can be expensive, depending on the length of the regular expression. + + Solution: Usually a pattern is a literal, not dynamic and can be compiled only once. Assign it to a private static field. + java.util.Pattern objects are thread-safe so they can be shared among threads. + + 2 + + + + + + + + + + + + + + + + Recreating a DateTimeFormatter is relatively expensive. + + Solution: Java 8+ java.time.DateTimeFormatter is thread-safe and can be shared among threads. + Create the formatter from a pattern only once, to initialize a static final field. + + 2 + + + + + + + + + + + + Creating a security provider is expensive because of loading of algorithms and other classes. + Additionally, it uses synchronized which leads to lock contention when used with multiple threads. + + Solution: This only needs to happen once in the JVM lifetime, because once loaded the provider is typically available from the Security class. + Create the security provider only once: Only in case when it's not yet available from the Security class. + + 2 + + + + + + + + + + + + + + + Reflection is relatively expensive. + + Solution: Avoid reflection. Use the non-reflective, explicit way like generation by IDE. + + 2 + + + + + + + + + + + + + + + java.util.SimpleDateFormat is thread-unsafe. + The usual solution is to create a new one when needed in a method. + Creating SimpleDateFormat is relatively expensive. + + Solution: Use java.time.DateTimeFormatter. These classes are immutable, thus thread-safe and can be made static. + + 2 + + + + + + + + + + + + + + + Creating Comparator instances repeatedly in methods like compareTo or sort calls is inefficient. + + Solution: Initialize the Comparator once as a static final field and reuse. + + 2 + + + + + + + + + { + @Override + public int compareTo(@NotNull Person o) { + return Comparator.comparing(Person::getFirstName) // Bad: Creates new Comparator instance on each invocation + .thenComparing(Person::getLastName) + .thenComparingInt(Person::getAge) + .compare(this, o); + } +} + +public class GoodPerson implements Comparable { + private static final Comparator COMPARE_FIRST_LAST_NAME_AGE = + Comparator.comparing(Person::getFirstName) + .thenComparing(Person::getLastName) + .thenComparingInt(Person::getAge); + + @Override + public int compareTo(@NotNull Person o) { + return COMPARE_FIRST_LAST_NAME_AGE.compare(this, o); // Good: Comparator initialized once as static final field + } +} +]]> + + + + + + Blocking calls, for instance remote calls, may exhaust the common pool for some time thereby blocking all other use of the common pool. + In addition, nested use of the common pool can lead to deadlock. Do not use the common pool for blocking calls. + The parallelStream() call uses the common pool. + + Solution: Use a dedicated thread pool with enough threads to get proper parallelism. + The number of threads in the common pool is equal to the number of CPUs and meant to utilize all of them. + It assumes CPU-intensive non-blocking processing of in-memory data. + + 2 + + + + + + + + + list = new ArrayList(); + final ForkJoinPool myFjPool = new ForkJoinPool(10); + final ExecutorService myExePool = Executors.newFixedThreadPool(10); + + void bad1() { + list.parallelStream().forEach(elem -> storeDataRemoteCall(elem)); // bad + } + + void good1() { + CompletableFuture[] futures = list.stream().map(elem -> CompletableFuture.supplyAsync(() -> storeDataRemoteCall(elem), myExePool)) + .toArray(CompletableFuture[]::new); + CompletableFuture.allOf(futures).get(10, TimeUnit.MILLISECONDS)); + } + + void good2() throws ExecutionException, InterruptedException { + myFjPool.submit(() -> + list.parallelStream().forEach(elem -> storeDataRemoteCall(elem)) + ).get(); + } + + String storeDataRemoteCall(String elem) { + // do remote call, blocking. We don't use the returned value. + RestTemplate tmpl; + return ""; + } +} +]]> + + + + + + Future.supplyAsync is typically used for remote calls. By default, it uses the common pool. + The number of threads in the common pool is equal to the number of CPU's, which is suitable for in-memory processing. + For I/O, however, this number is typically not suitable because most time is spent waiting for the response and not in CPU. + The common pool must not be used for blocking calls. + + Solution: A separate, properly sized, pool of threads (an Executor) should be used for the async calls. + + 2 + + + + + + + + +>[] futures = accounts.stream() + .map(account -> CompletableFuture.supplyAsync(() -> isAccountBlocked(account))) // bad + .toArray(CompletableFuture[]::new); + } + + void good() { + CompletableFuture>[] futures = accounts.stream() + .map(account -> CompletableFuture.supplyAsync(() -> isAccountBlocked(account), asyncPool)) // good + .toArray(CompletableFuture[]::new); + } +} +]]> + + + + + + `take()` stalls indefinitely in case of hanging threads and consumes a thread. + + Solution: use `poll()` with a timeout value and handle the timeout. + + 2 + + + + + + + + + void collectAllCollectionReplyFromThreads(CompletionService> completionService) { + try { + Future> futureLocal = completionService.take(); // bad + Future> futuresGood = completionService.poll(3, TimeUnit.SECONDS); // good + responseCollector.addAll(futuresGood.get(10, TimeUnit.SECONDS)); // good + } catch (InterruptedException | ExecutionException e) { + LOGGER.error("Error in Thread : {}", e); + } catch (TimeoutException e) { + LOGGER.error("Timeout in Thread : {}", e); + } +} +]]> + + + + + + Stalls indefinitely in case of stalled Callable(s) and consumes threads. + + Solution: Provide a timeout to the invokeAll/invokeAny method and handle the timeout. + + 2 + + + + + + + + +> executeTasksBad(Collection> tasks, ExecutorService executor) throws Exception { + return executor.invokeAll(tasks); // bad, no timeout + } + private List> executeTasksGood(Collection> tasks, ExecutorService executor) throws Exception { + return executor.invokeAll(tasks, OUR_TIMEOUT_IN_MILLIS, TimeUnit.MILLISECONDS); // good + } +} +]]> + + + + + + Stalls indefinitely in case of hanging threads and consumes a thread. + + Solution: Provide a timeout value and handle the timeout. + + 2 + + + + + + + + + complFuture) throws Exception { + return complFuture.get(); // bad +} + +public static String good(CompletableFuture complFuture) throws Exception { + return complFuture.get(10, TimeUnit.SECONDS); // good +} +]]> + + + + + + + Apache HttpClient with its connection pool and timeouts should be setup once and then used for many requests. + It is quite expensive to create and can only provide the benefits of pooling when reused in all requests for that connection. + + Solution: Create/build HttpClient with proper connection pooling and timeouts once, and then use it for requests. + + 3 + + + + + + + + + connectBad(Object req) { + HttpEntity requestEntity = new HttpEntity<>(req); + + HttpClient httpClient = HttpClientBuilder.create().setMaxConnPerRoute(10).build(); // bad + return remoteCall(httpClient, requestEntity); + } +} +]]> + + + + + + Problem: Gson creation is relatively expensive. A JMH benchmark shows a 24x improvement reusing one instance. + + Solution: Since Gson objects are thread-safe after creation, they can be shared between threads. + So reuse created instances from a static field. + Pay attention to use thread-safe (custom) adapters and serializers. + + 3 + + + + + + + + + + + From deddd914be12567ecf33146f9a2f7acb0c10fa0a Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 16 Sep 2025 14:36:18 +0200 Subject: [PATCH 075/141] PMD: Exclude unused rule --- .config/pmd/java/ruleset.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 28bc272e..517b9243 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -185,6 +185,9 @@ + + + From 53b1e5dfd3fc70d91302cfb4fef2dd48b1b65ccb Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 16 Sep 2025 14:36:48 +0200 Subject: [PATCH 076/141] PMD: Reword and also apply to runAsync --- .config/pmd/java/ruleset.xml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 517b9243..cda412b8 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -841,6 +841,8 @@ public class GoodPerson implements Comparable { Solution: Use a dedicated thread pool with enough threads to get proper parallelism. The number of threads in the common pool is equal to the number of CPUs and meant to utilize all of them. It assumes CPU-intensive non-blocking processing of in-memory data. + + See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) 2 @@ -897,22 +899,25 @@ public class Foo { - Future.supplyAsync is typically used for remote calls. By default, it uses the common pool. + CompletableFuture.supplyAsync/runAsync is typically used for remote calls. + By default it uses the common pool. The number of threads in the common pool is equal to the number of CPU's, which is suitable for in-memory processing. For I/O, however, this number is typically not suitable because most time is spent waiting for the response and not in CPU. The common pool must not be used for blocking calls. - Solution: A separate, properly sized, pool of threads (an Executor) should be used for the async calls. + Solution: A separate, properly sized pool of threads (an Executor) should be used for the async calls. + + See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) 2 From e6358ed1fa1e6c743e9a7b055a55862beacb8677 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 16 Sep 2025 14:36:56 +0200 Subject: [PATCH 077/141] PMD: Fix error --- .config/pmd/java/ruleset.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index cda412b8..bb8177f4 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -1066,7 +1066,7 @@ public static String good(CompletableFuture complFuture) throws Exceptio //MethodDeclaration//MethodCall[ pmd-java:matchesSig('org.apache.hc.client5.http.impl.classic.HttpClientBuilder#create()') or pmd-java:matchesSig('org.apache.hc.client5.http.impl.classic.HttpClients#custom()') - or pmd-java:matchesSig('org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder#build()' + or pmd-java:matchesSig('org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder#build()') ] [ancestor::MethodDeclaration//ClassType[pmd-java:typeIs('org.springframework.http.HttpEntity') or pmd-java:typeIs('org.springframework.http.ResponseEntity')] From 042b7a495804644325788e8d174aa2d02622da85 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 16 Sep 2025 14:37:10 +0200 Subject: [PATCH 078/141] PMD: Remove rule as it yields too many FP --- .config/pmd/java/ruleset.xml | 63 ------------------------------------ 1 file changed, 63 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index bb8177f4..a5b76341 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -766,69 +766,6 @@ public class Foo { - - - Creating Comparator instances repeatedly in methods like compareTo or sort calls is inefficient. - - Solution: Initialize the Comparator once as a static final field and reuse. - - 2 - - - - - - - - - { - @Override - public int compareTo(@NotNull Person o) { - return Comparator.comparing(Person::getFirstName) // Bad: Creates new Comparator instance on each invocation - .thenComparing(Person::getLastName) - .thenComparingInt(Person::getAge) - .compare(this, o); - } -} - -public class GoodPerson implements Comparable { - private static final Comparator COMPARE_FIRST_LAST_NAME_AGE = - Comparator.comparing(Person::getFirstName) - .thenComparing(Person::getLastName) - .thenComparingInt(Person::getAge); - - @Override - public int compareTo(@NotNull Person o) { - return COMPARE_FIRST_LAST_NAME_AGE.compare(this, o); // Good: Comparator initialized once as static final field - } -} -]]> - - - Date: Wed, 17 Sep 2025 10:32:54 +0200 Subject: [PATCH 079/141] PMF: Cleanup and format --- .config/pmd/java/ruleset.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index a5b76341..748c826e 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -448,7 +448,7 @@ String good_replaceInnerLineBreakBySpace() { - + + 3 @@ -565,7 +565,7 @@ public enum Fruit { Solution: Usually a pattern is a literal, not dynamic and can be compiled only once. Assign it to a private static field. java.util.Pattern objects are thread-safe so they can be shared among threads. - + 2 From 7bcc1bd25b867131f2190e8e86d41f90aa8ada2a Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 21 Sep 2025 04:13:51 +0000 Subject: [PATCH 080/141] Update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.12.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7380883f..89d4aa76 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -108,7 +108,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.11.3 + 3.12.0 attach-javadocs From e0867d36ce22ad168d47ea3c6dd59dfae4db74b4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 22 Sep 2025 04:19:37 +0000 Subject: [PATCH 081/141] Update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.1 --- template-placeholder-demo/pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index 37022223..b6ff1fd9 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -44,7 +44,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.0 + 3.14.1 ${maven.compiler.release} diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7380883f..f67b5057 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -97,7 +97,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.0 + 3.14.1 ${maven.compiler.release} From 184b908f235cf93fade385838d806417c1ee6564 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 22 Sep 2025 04:19:40 +0000 Subject: [PATCH 082/141] Update dependency org.codehaus.mojo:flatten-maven-plugin to v1.7.3 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7380883f..e356a34d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -147,7 +147,7 @@ org.codehaus.mojo flatten-maven-plugin - 1.7.2 + 1.7.3 ossrh From 0e8aefd14b6e396990ff21fcdd9d0bc0fe7e25b3 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 24 Sep 2025 04:13:23 +0000 Subject: [PATCH 083/141] Update dependency org.sonatype.central:central-publishing-maven-plugin to v0.9.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 27a24c8d..4c4214ca 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -193,7 +193,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.8.0 + 0.9.0 true sonatype-central-portal From f08c6622dbeb98cc1db48a845335020e361b2814 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 29 Sep 2025 04:14:48 +0000 Subject: [PATCH 084/141] Update dependency com.puppycrawl.tools:checkstyle to v11.1.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index f824869d..61578c0b 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 11.0.1 + 11.1.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 4c4214ca..3d8cc2cf 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 11.0.1 + 11.1.0 From 6278740ec8418dbe1933b70fbab9c3cf7c3f59e7 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 29 Sep 2025 13:42:00 +0200 Subject: [PATCH 085/141] Fix broken-links not finding issues on GH CLI v2.79+ Fix https://github.com/xdev-software/base-template/issues/8 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 9493fb8a..436ce503 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -25,7 +25,7 @@ jobs: - name: Find already existing issue id: find-issue run: | - echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title \"Link Checker Report\"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT + echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title "Link Checker Report"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT env: GH_TOKEN: ${{ github.token }} From e55a6a352b1f2c64d855b9d0c81c0aed70c7b9de Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 30 Sep 2025 04:13:38 +0000 Subject: [PATCH 086/141] Update dependency org.apache.httpcomponents.client5:httpclient5 to v5.5.1 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3560dbfa..2633d75c 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -73,7 +73,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.5 + 5.5.1 From 5c9ddfa5f2147988e1e972c0c5324611b71f1c7a Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 30 Sep 2025 04:13:40 +0000 Subject: [PATCH 087/141] Update log4j2-version to v2.25.2 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index ba4a00f3..9863614c 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -28,7 +28,7 @@ software.xdev.Application - 2.25.1 + 2.25.2 From 739bfe7b5670cb5f7a64963a37e41706d0430dda Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 30 Sep 2025 04:13:41 +0000 Subject: [PATCH 088/141] Update dependency org.openapitools:openapi-generator-maven-plugin to v7.16.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3560dbfa..f7275c3d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -324,7 +324,7 @@ org.openapitools openapi-generator-maven-plugin - 7.15.0 + 7.16.0 From 39c4703001cf7da323fb6b809f1ab733284a536d Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 30 Sep 2025 09:52:34 +0200 Subject: [PATCH 089/141] Test compile with Java 25 & Update docs --- .github/workflows/check-build.yml | 2 +- CONTRIBUTING.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 01f08402..e9757649 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -28,7 +28,7 @@ jobs: timeout-minutes: 30 strategy: matrix: - java: [17, 21] + java: [17, 21, 25] distribution: [temurin] steps: - uses: actions/checkout@v5 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index be2a1863..2c7b0250 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,7 +19,7 @@ We also encourage you to read the [contribution instructions by GitHub](https:// ### Software Requirements You should have the following things installed: * Git -* Java 21 - should be as unmodified as possible (Recommended: [Eclipse Adoptium](https://adoptium.net/temurin/releases/)) +* Java 25 - should be as unmodified as possible (Recommended: [Eclipse Adoptium](https://adoptium.net/temurin/releases/)) * Maven (Note that the [Maven Wrapper](https://maven.apache.org/wrapper/) is shipped with the repo) ### Recommended setup From f71bf683b682ca9d985ee02a13b157676e21cd9f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 2 Oct 2025 04:10:53 +0000 Subject: [PATCH 090/141] Update peter-evans/create-issue-from-file action to v6 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 436ce503..a99ae52c 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -37,7 +37,7 @@ jobs: - name: Create Issue From File if: steps.lychee.outputs.exit_code != 0 - uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5 + uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6 with: issue-number: ${{ steps.find-issue.outputs.number }} title: Link Checker Report From 046de3916a42b79a547d1a8281de2bc875e9091c Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 2 Oct 2025 10:47:35 +0200 Subject: [PATCH 091/141] Update PMD scheme location --- .config/pmd/java/ruleset.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 748c826e..6bf58b33 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -2,7 +2,7 @@ + xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.github.io/ruleset_2_0_0.xsd"> This ruleset checks the code for discouraged programming constructs. From d3806058ec9caf0870392740f549fd59e9b5bf79 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 7 Oct 2025 14:54:43 +0200 Subject: [PATCH 092/141] Fix typo --- .config/pmd/java/ruleset.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 6bf58b33..4570323d 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -204,7 +204,7 @@ Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or may be replaced by a simpler string concatenation. From 43afe18c3740032f26c42d71679824e0fa485f5a Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 10 Oct 2025 04:14:02 +0000 Subject: [PATCH 093/141] Update dependency com.puppycrawl.tools:checkstyle to v12 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 61578c0b..14c3d10d 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 11.1.0 + 12.0.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3d8cc2cf..ea07c2f7 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 11.1.0 + 12.0.0 From 042d657901a3455ab272d3e5342616f958e93ce5 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 11 Oct 2025 04:14:27 +0000 Subject: [PATCH 094/141] Update dependency org.apache.maven.plugins:maven-pmd-plugin to v3.28.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 14c3d10d..7236c13b 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ org.apache.maven.plugins maven-pmd-plugin - 3.27.0 + 3.28.0 true true diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index ea07c2f7..74cf0eea 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -240,7 +240,7 @@ org.apache.maven.plugins maven-pmd-plugin - 3.27.0 + 3.28.0 true true From d4bea48af9898d69073377a80fe6289ad4a2fc39 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 12 Oct 2025 04:13:47 +0000 Subject: [PATCH 095/141] Update dependency com.puppycrawl.tools:checkstyle to v12.0.1 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 14c3d10d..6c2a1987 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.0.0 + 12.0.1 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index ea07c2f7..67b916c8 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.0.0 + 12.0.1 From e28c251a2dbf97e5e8273177d05a6f8743c9902c Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 15 Oct 2025 11:20:00 +0200 Subject: [PATCH 096/141] Detect ZIP slip --- .config/pmd/java/ruleset.xml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 4570323d..c72b66ad 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -316,6 +316,28 @@ + + + ZipEntry name should be sanitized. + Unsanitized names may contain '..' which can result in path traversal ("ZipSlip"). + + You can suppress this warning when you properly sanitized the name. + + 4 + + + + + + + + + Date: Mon, 20 Oct 2025 04:17:59 +0000 Subject: [PATCH 097/141] Update dependency com.puppycrawl.tools:checkstyle to v12.1.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e03f17f6..8a108a16 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.0.1 + 12.1.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index c1146ed7..0bed85e4 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.0.1 + 12.1.0 From db9dae96091208bebb9b75e42369696d76f0760e Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 23 Oct 2025 04:14:31 +0000 Subject: [PATCH 098/141] Update shogo82148/actions-create-release digest to 28d99e2 --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61015663..103c9b10 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,7 +91,7 @@ jobs: - name: Create Release id: create-release - uses: shogo82148/actions-create-release@7b89596097b26731bda0852f1504f813499079ee # v1 + uses: shogo82148/actions-create-release@28d99e2a5b407558d17c15d0384fc0d7fb625b4c # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From a9b4edba598ec48c137c2eb5347cf789a2963713 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 25 Oct 2025 04:14:21 +0000 Subject: [PATCH 099/141] Update actions/upload-artifact action to v5 --- .github/workflows/check-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index e9757649..0e42c299 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -69,7 +69,7 @@ jobs: fi - name: Upload demo files - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: demo-files-java-${{ matrix.java }} path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar @@ -152,7 +152,7 @@ jobs: - name: Upload report if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: pmd-report if-no-files-found: ignore From 0f07ec79fe16525053fc2cb7583fe567b10613e0 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 27 Oct 2025 04:20:45 +0000 Subject: [PATCH 100/141] Update dependency com.puppycrawl.tools:checkstyle to v12.1.1 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8a108a16..cddae724 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.1.0 + 12.1.1 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 0bed85e4..7203198a 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.1.0 + 12.1.1 From 1ebe4703a7b3f80152545d7704cfffd16297e77e Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 29 Oct 2025 08:38:46 +0100 Subject: [PATCH 101/141] Add `UnnecessaryWarningSuppression` https://pmd.github.io/pmd/pmd_rules_java_bestpractices.html#unnecessarywarningsuppression Detects unused suppressions --- .config/pmd/java/ruleset.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index c72b66ad..37b4f637 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -25,6 +25,7 @@ + From 80835757139b9630a43fe1eb0d65b857e333517b Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 29 Oct 2025 13:28:01 +0100 Subject: [PATCH 102/141] Formatting --- .config/pmd/java/ruleset.xml | 179 ++++++++++++++++++----------------- 1 file changed, 91 insertions(+), 88 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 37b4f637..341cb3ae 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -10,6 +10,9 @@ + + + @@ -208,14 +211,14 @@ message="StringBuilder/StringBuffer should not be used" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or may be replaced by a simpler string concatenation. - - Solution: - * Do not use `StringBuffer` because it's thread-safe and usually this is not needed - * If `StringBuilder` is only used in a simple method (like `toString`) and is effectively inlined: Use a simpler string concatenation (`"a" + x + "b"`). This will be optimized by the Java compiler internally. - * In all other cases: - * Check what is happening and if it makes ANY sense! If for example a CSV file is built here consider using a proper library instead! - * Abstract the Strings into a DTO, join them together using a collection (or `StringJoiner`) or use Java's Streaming API instead +Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or may be replaced by a simpler string concatenation. + +Solution: +* Do not use `StringBuffer` because it's thread-safe and usually this is not needed +* If `StringBuilder` is only used in a simple method (like `toString`) and is effectively inlined: Use a simpler string concatenation (`"a" + x + "b"`). This will be optimized by the Java compiler internally. +* In all other cases: + * Check what is happening and if it makes ANY sense! If for example a CSV file is built here consider using a proper library instead! + * Abstract the Strings into a DTO, join them together using a collection (or `StringJoiner`) or use Java's Streaming API instead 3 @@ -234,11 +237,11 @@ message="Setters of java.lang.System should not be called unless really needed" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Calling setters of java.lang.System usually indicates bad design and likely causes unexpected behavior. - For example, it may break when multiple Threads are setting the value. - It may also overwrite user defined options or properties. +Calling setters of java.lang.System usually indicates bad design and likely causes unexpected behavior. +For example, it may break when multiple Threads are setting the value. +It may also overwrite user defined options or properties. - Try to pass the value only to the place where it's really needed and use it there accordingly. +Try to pass the value only to the place where it's really needed and use it there accordingly. 3 @@ -257,10 +260,10 @@ message="Avoid @PostConstruct" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Using a `@PostConstruct` method is usually only done when field injection is used and initialization needs to be performed after that. +Using a `@PostConstruct` method is usually only done when field injection is used and initialization needs to be performed after that. - It's better to do this directly in the constructor with constructor injection, so that all logic will be encapsulated there. - This also makes using the bean in environments where JavaEE is not present - for example in tests - a lot easier, as forgetting to call the `@PostConstruct` method is no longer possible. +It's better to do this directly in the constructor with constructor injection, so that all logic will be encapsulated there. +This also makes using the bean in environments where JavaEE is not present - for example in tests - a lot easier, as forgetting to call the `@PostConstruct` method is no longer possible. 3 @@ -279,9 +282,9 @@ message="Avoid @PreDestroy" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - `@PreDestroy` should be replaced by implementing `AutoCloseable` and overwriting the `close` method instead. +`@PreDestroy` should be replaced by implementing `AutoCloseable` and overwriting the `close` method instead. - This also makes using the bean in environments where JavaEE is not present - for example in tests - a lot easier, as forgetting to call the `@PreDestroy` method is no much more difficult. +This also makes using the bean in environments where JavaEE is not present - for example in tests - a lot easier, as forgetting to call the `@PreDestroy` method is no much more difficult. 3 @@ -300,10 +303,10 @@ message="Avoid unmanaged threads" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Trying to manually manage threads usually gets quickly out of control and may result in various problems like uncontrollable spawning of threads. - Threads can also not be cancelled properly. +Trying to manually manage threads usually gets quickly out of control and may result in various problems like uncontrollable spawning of threads. +Threads can also not be cancelled properly. - Use managed Thread services like `ExecutorService` and `CompletableFuture` instead. +Use managed Thread services like `ExecutorService` and `CompletableFuture` instead. 3 @@ -322,10 +325,10 @@ message="ZipEntry name should be sanitized" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - ZipEntry name should be sanitized. - Unsanitized names may contain '..' which can result in path traversal ("ZipSlip"). +ZipEntry name should be sanitized. +Unsanitized names may contain '..' which can result in path traversal ("ZipSlip"). - You can suppress this warning when you properly sanitized the name. +You can suppress this warning when you properly sanitized the name. 4 @@ -344,12 +347,12 @@ message="Using Java Object (De-)Serialization is unsafe and has led to too many security vulnerabilities" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Nearly every known usage of (Java) Object Deserialization has resulted in [a security vulnerability](https://cloud.google.com/blog/topics/threat-intelligence/hunting-deserialization-exploits?hl=en). - Vulnerabilities are so common that there are [dedicated projects for exploit payload generation](https://github.com/frohoff/ysoserial). +Nearly every known usage of (Java) Object Deserialization has resulted in [a security vulnerability](https://cloud.google.com/blog/topics/threat-intelligence/hunting-deserialization-exploits?hl=en). +Vulnerabilities are so common that there are [dedicated projects for exploit payload generation](https://github.com/frohoff/ysoserial). - Java Object Serialization may also fail to deserialize when the underlying classes are changed. +Java Object Serialization may also fail to deserialize when the underlying classes are changed. - Use proven data interchange formats like JSON instead. +Use proven data interchange formats like JSON instead. 2 @@ -371,8 +374,8 @@ message="Unescaped native HTML is unsafe and will result in XSS vulnerabilities" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule" > - Do not use native HTML! Use Vaadin layouts and components to create required structure. - If you are 100% sure that you escaped the value properly and you have no better options you can suppress this. +Do not use native HTML! Use Vaadin layouts and components to create required structure. +If you are 100% sure that you escaped the value properly and you have no better options you can suppress this. 2 @@ -396,9 +399,9 @@ message="Avoid using DecimalFormat or ChoiceFormat as field since it is thread-unsafe" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - java.text.NumberFormat: DecimalFormat and ChoiceFormat are thread-unsafe. +java.text.NumberFormat: DecimalFormat and ChoiceFormat are thread-unsafe. - Solution: Create a new local one when needed in a method. +Solution: Create a new local one when needed in a method. 1 @@ -428,11 +431,11 @@ public class Foo { message="Detected possible resource expensive implicit regex pattern compilation" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - A regular expression is compiled implicitly on every invocation. - Problem: This can be (CPU) expensive, depending on the length of the regular expression. +A regular expression is compiled implicitly on every invocation. +Problem: This can be (CPU) expensive, depending on the length of the regular expression. - Solution: Compile the regex pattern only once and assign it to a private static final Pattern field. - java.util.Pattern objects are thread-safe, so they can be shared among threads. +Solution: Compile the regex pattern only once and assign it to a private static final Pattern field. +java.util.Pattern objects are thread-safe, so they can be shared among threads. 2 @@ -477,11 +480,11 @@ String good_replaceInnerLineBreakBySpace() { message="Default buffer capacity is used which usually needs expensive expansions" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - The default constructor of ByteArrayOutputStream creates a 32 bytes initial capacity and for StringWriter 16 chars. - Such a small buffer as capacity usually needs several expensive expansions. +The default constructor of ByteArrayOutputStream creates a 32 bytes initial capacity and for StringWriter 16 chars. +Such a small buffer as capacity usually needs several expensive expansions. - Solution: Explicitly declared the buffer size so that an expansion is not needed in most cases. - Typically much larger than 32, e.g. 4096. +Solution: Explicitly declared the buffer size so that an expansion is not needed in most cases. +Typically much larger than 32, e.g. 4096. 2 @@ -517,12 +520,12 @@ class Good { message="Avoid re-streaming enum values to find a value by a field" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - The time to find element is O(n); n = the number of enum values. - This identical processing is executed for every call. - Considered problematic when `n > 3`. +The time to find element is O(n); n = the number of enum values. +This identical processing is executed for every call. +Considered problematic when `n > 3`. - Solution: Use a static field-to-enum-value Map. Access time is O(1), provided the hashCode is well-defined. - Implement a fromString method to provide the reverse conversion by using the map. +Solution: Use a static field-to-enum-value Map. Access time is O(1), provided the hashCode is well-defined. +Implement a fromString method to provide the reverse conversion by using the map. 3 @@ -583,11 +586,11 @@ public enum Fruit { message="Pattern.compile is used in a method. Compiling a regex pattern can be expensive, make it a static final field." class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - A regular expression is compiled on every invocation. - Problem: this can be expensive, depending on the length of the regular expression. +A regular expression is compiled on every invocation. +Problem: this can be expensive, depending on the length of the regular expression. - Solution: Usually a pattern is a literal, not dynamic and can be compiled only once. Assign it to a private static field. - java.util.Pattern objects are thread-safe so they can be shared among threads. +Solution: Usually a pattern is a literal, not dynamic and can be compiled only once. Assign it to a private static field. +java.util.Pattern objects are thread-safe so they can be shared among threads. 2 @@ -629,10 +632,10 @@ public static void good() { message="Avoid expensive recreation of DateTimeFormatter" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Recreating a DateTimeFormatter is relatively expensive. +Recreating a DateTimeFormatter is relatively expensive. - Solution: Java 8+ java.time.DateTimeFormatter is thread-safe and can be shared among threads. - Create the formatter from a pattern only once, to initialize a static final field. +Solution: Java 8+ java.time.DateTimeFormatter is thread-safe and can be shared among threads. +Create the formatter from a pattern only once, to initialize a static final field. 2 @@ -659,11 +662,11 @@ or pmd-java:matchesSig('java.time.format.DateTimeFormatterBuilder#toFormatter(_) message="Avoid expensive recreation of security providers" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Creating a security provider is expensive because of loading of algorithms and other classes. - Additionally, it uses synchronized which leads to lock contention when used with multiple threads. +Creating a security provider is expensive because of loading of algorithms and other classes. +Additionally, it uses synchronized which leads to lock contention when used with multiple threads. - Solution: This only needs to happen once in the JVM lifetime, because once loaded the provider is typically available from the Security class. - Create the security provider only once: Only in case when it's not yet available from the Security class. +Solution: This only needs to happen once in the JVM lifetime, because once loaded the provider is typically available from the Security class. +Create the security provider only once: Only in case when it's not yet available from the Security class. 2 @@ -710,9 +713,9 @@ class Foo { message="Expensive Reflection is used" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Reflection is relatively expensive. +Reflection is relatively expensive. - Solution: Avoid reflection. Use the non-reflective, explicit way like generation by IDE. +Solution: Avoid reflection. Use the non-reflective, explicit way like generation by IDE. 2 @@ -753,11 +756,11 @@ class Good { message="SimpleDateFormat is used. Since it is thread-unsafe, it needs expensive recreation." class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - java.util.SimpleDateFormat is thread-unsafe. - The usual solution is to create a new one when needed in a method. - Creating SimpleDateFormat is relatively expensive. +java.util.SimpleDateFormat is thread-unsafe. +The usual solution is to create a new one when needed in a method. +Creating SimpleDateFormat is relatively expensive. - Solution: Use java.time.DateTimeFormatter. These classes are immutable, thus thread-safe and can be made static. +Solution: Use java.time.DateTimeFormatter. These classes are immutable, thus thread-safe and can be made static. 2 @@ -794,15 +797,15 @@ public class Foo { message="Avoid the ForkJoinPool::commonPool used in parallelStream for blocking calls" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Blocking calls, for instance remote calls, may exhaust the common pool for some time thereby blocking all other use of the common pool. - In addition, nested use of the common pool can lead to deadlock. Do not use the common pool for blocking calls. - The parallelStream() call uses the common pool. +Blocking calls, for instance remote calls, may exhaust the common pool for some time thereby blocking all other use of the common pool. +In addition, nested use of the common pool can lead to deadlock. Do not use the common pool for blocking calls. +The parallelStream() call uses the common pool. - Solution: Use a dedicated thread pool with enough threads to get proper parallelism. - The number of threads in the common pool is equal to the number of CPUs and meant to utilize all of them. - It assumes CPU-intensive non-blocking processing of in-memory data. +Solution: Use a dedicated thread pool with enough threads to get proper parallelism. +The number of threads in the common pool is equal to the number of CPUs and meant to utilize all of them. +It assumes CPU-intensive non-blocking processing of in-memory data. - See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) +See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) 2 @@ -862,15 +865,15 @@ public class Foo { message="Avoid using the common thread pool, use a separate pool" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - CompletableFuture.supplyAsync/runAsync is typically used for remote calls. - By default it uses the common pool. - The number of threads in the common pool is equal to the number of CPU's, which is suitable for in-memory processing. - For I/O, however, this number is typically not suitable because most time is spent waiting for the response and not in CPU. - The common pool must not be used for blocking calls. +CompletableFuture.supplyAsync/runAsync is typically used for remote calls. +By default it uses the common pool. +The number of threads in the common pool is equal to the number of CPU's, which is suitable for in-memory processing. +For I/O, however, this number is typically not suitable because most time is spent waiting for the response and not in CPU. +The common pool must not be used for blocking calls. - Solution: A separate, properly sized pool of threads (an Executor) should be used for the async calls. +Solution: A separate, properly sized pool of threads (an Executor) should be used for the async calls. - See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) +See also: [_Be Aware of ForkJoinPool#commonPool()_](https://dzone.com/articles/be-aware-of-forkjoinpoolcommonpool) 2 @@ -908,9 +911,9 @@ public class Foo { message="Avoid CompletionService.take, use poll" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - `take()` stalls indefinitely in case of hanging threads and consumes a thread. +`take()` stalls indefinitely in case of hanging threads and consumes a thread. - Solution: use `poll()` with a timeout value and handle the timeout. +Solution: use `poll()` with a timeout value and handle the timeout. 2 @@ -944,9 +947,9 @@ public static void collectAllCollectionReplyFromThreads(CompletionService
  • - Stalls indefinitely in case of stalled Callable(s) and consumes threads. +Stalls indefinitely in case of stalled Callable(s) and consumes threads. - Solution: Provide a timeout to the invokeAll/invokeAny method and handle the timeout. +Solution: Provide a timeout to the invokeAll/invokeAny method and handle the timeout. 2 @@ -979,9 +982,9 @@ class Foo { message="Avoid future.get without timeout" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Stalls indefinitely in case of hanging threads and consumes a thread. +Stalls indefinitely in case of hanging threads and consumes a thread. - Solution: Provide a timeout value and handle the timeout. +Solution: Provide a timeout value and handle the timeout. 2 @@ -1012,10 +1015,10 @@ public static String good(CompletableFuture complFuture) throws Exceptio message="An HttpClient is created and combined with request-response" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Apache HttpClient with its connection pool and timeouts should be setup once and then used for many requests. - It is quite expensive to create and can only provide the benefits of pooling when reused in all requests for that connection. +Apache HttpClient with its connection pool and timeouts should be setup once and then used for many requests. +It is quite expensive to create and can only provide the benefits of pooling when reused in all requests for that connection. - Solution: Create/build HttpClient with proper connection pooling and timeouts once, and then use it for requests. +Solution: Create/build HttpClient with proper connection pooling and timeouts once, and then use it for requests. 3 @@ -1054,11 +1057,11 @@ class Foo { message="A Gson object is created for each method call, which is expensive." class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> - Problem: Gson creation is relatively expensive. A JMH benchmark shows a 24x improvement reusing one instance. +Problem: Gson creation is relatively expensive. A JMH benchmark shows a 24x improvement reusing one instance. - Solution: Since Gson objects are thread-safe after creation, they can be shared between threads. - So reuse created instances from a static field. - Pay attention to use thread-safe (custom) adapters and serializers. +Solution: Since Gson objects are thread-safe after creation, they can be shared between threads. +So reuse created instances from a static field. +Pay attention to use thread-safe (custom) adapters and serializers. 3 From f0350dd55446e78ff917b5641070e6db9d379d3f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 30 Oct 2025 04:11:25 +0000 Subject: [PATCH 103/141] Update lycheeverse/lychee-action digest to a8c4c7c --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index a99ae52c..0e96b205 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -18,7 +18,7 @@ jobs: - name: Link Checker id: lychee - uses: lycheeverse/lychee-action@885c65f3dc543b57c898c8099f4e08c8afd178a2 # v2 + uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2 with: fail: false # Don't fail on broken links, create an issue instead From f5923efaaa98f06a394b539ee7d795d941973e86 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 1 Nov 2025 04:16:41 +0000 Subject: [PATCH 104/141] Update net.sourceforge.pmd to v7.18.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index cddae724..046a7424 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.17.0 + 7.18.0 net.sourceforge.pmd pmd-java - 7.17.0 + 7.18.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7203198a..13bcb16c 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.17.0 + 7.18.0 net.sourceforge.pmd pmd-java - 7.17.0 + 7.18.0 From 4ebf84d79a7204b8641896071191c7e05ae42fe1 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 3 Nov 2025 08:46:37 +0100 Subject: [PATCH 105/141] Updated to PMD 7.18 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/pmd/pmd/releases/tag/pmd_releases%2F7.18.0 Reasoning: * Newly included/Changed * `IdenticalConditionalBranches` → self explaining * `LabeledStatement` → are confusing to use and I barely ever see them * Not included * `UnusedLabel` → Not used because `LabeledStatement` already handles these * `ConfusingTernary` → Not helpful in most situations * `AvoidCatchingGenericException` → Might be ok for maybe Throwable or Error (but we sometimes also have to catch those), however not catching Exceptions and RuntimeExceptions is an extremely bad practice --- .config/pmd/java/ruleset.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 341cb3ae..33320293 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -17,6 +17,7 @@ + @@ -149,6 +150,7 @@ + From 53e5c3113b97eb080131c1809d79b6b2d3365c60 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 3 Nov 2025 15:14:58 +0100 Subject: [PATCH 106/141] Don't allow TODO comments Fixes https://github.com/xdev-software/java-setup-template/issues/1 --- .config/checkstyle/checkstyle.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index 43b52907..ffbc2a93 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -122,9 +122,7 @@ - - - + From 4342c35dc276aecb146aa2877b1062c4a16ba3c0 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 7 Nov 2025 14:12:35 +0100 Subject: [PATCH 107/141] Small descriptive improvements Fixes https://github.com/xdev-software/java-setup-template/issues/2 --- .config/pmd/java/ruleset.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index 33320293..c057d1aa 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -213,11 +213,11 @@ message="StringBuilder/StringBuffer should not be used" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> -Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or may be replaced by a simpler string concatenation. +Usually all cases where `StringBuilder` (or the outdated `StringBuffer`) is used are either due to confusing (legacy) logic or in situations where it may be easily replaced by a simpler string concatenation. Solution: * Do not use `StringBuffer` because it's thread-safe and usually this is not needed -* If `StringBuilder` is only used in a simple method (like `toString`) and is effectively inlined: Use a simpler string concatenation (`"a" + x + "b"`). This will be optimized by the Java compiler internally. +* If `StringBuilder` is only used in a simple method (like `toString`) and is effectively inlined: Use a simpler string concatenation (`"a" + x + "b"`). This will be [optimized by the Java compiler internally](https://docs.oracle.com/javase/specs/jls/se25/html/jls-15.html#jls-15.18.1). * In all other cases: * Check what is happening and if it makes ANY sense! If for example a CSV file is built here consider using a proper library instead! * Abstract the Strings into a DTO, join them together using a collection (or `StringJoiner`) or use Java's Streaming API instead @@ -239,8 +239,8 @@ Solution: message="Setters of java.lang.System should not be called unless really needed" class="net.sourceforge.pmd.lang.rule.xpath.XPathRule"> -Calling setters of java.lang.System usually indicates bad design and likely causes unexpected behavior. -For example, it may break when multiple Threads are setting the value. +Calling setters of `java.lang.System` usually indicates bad design and likely causes unexpected behavior. +For example, it may break when multiple Threads are working with the same value. It may also overwrite user defined options or properties. Try to pass the value only to the place where it's really needed and use it there accordingly. @@ -352,7 +352,8 @@ You can suppress this warning when you properly sanitized the name. Nearly every known usage of (Java) Object Deserialization has resulted in [a security vulnerability](https://cloud.google.com/blog/topics/threat-intelligence/hunting-deserialization-exploits?hl=en). Vulnerabilities are so common that there are [dedicated projects for exploit payload generation](https://github.com/frohoff/ysoserial). -Java Object Serialization may also fail to deserialize when the underlying classes are changed. +Java Object Serialization may also fail to deserialize properly when the underlying classes are changed. +This can result in unexpected crashes when outdated data is deserialized. Use proven data interchange formats like JSON instead. @@ -374,7 +375,8 @@ Use proven data interchange formats like JSON instead. + class="net.sourceforge.pmd.lang.rule.xpath.XPathRule" + externalInfoUrl="https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML"> Do not use native HTML! Use Vaadin layouts and components to create required structure. If you are 100% sure that you escaped the value properly and you have no better options you can suppress this. From 053d6040fb9b814e5929e61408b7934e692210bb Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 10 Nov 2025 09:47:22 +0100 Subject: [PATCH 108/141] Add initial PMD X plugin configuration See https://github.com/xdev-software/intellij-plugin-pmd --- .gitignore | 1 + .idea/pmd-x.xml | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 .idea/pmd-x.xml diff --git a/.gitignore b/.gitignore index ea952953..d35b413f 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ hs_err_pid* !.idea/saveactions_settings.xml !.idea/checkstyle-idea.xml !.idea/externalDependencies.xml +!.idea/pmd-x.xml !.idea/PMDPlugin.xml !.idea/inspectionProfiles/ diff --git a/.idea/pmd-x.xml b/.idea/pmd-x.xml new file mode 100644 index 00000000..260e454b --- /dev/null +++ b/.idea/pmd-x.xml @@ -0,0 +1,27 @@ + + + + false + true + true + SUPPORTED_ONLY_WITH_TESTS + + + + \ No newline at end of file From b721e725428ab6ef132401b37458043415cb8482 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 11 Nov 2025 04:15:05 +0000 Subject: [PATCH 109/141] Update dependency com.fasterxml.jackson:jackson-bom to v2.20.1 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 440b1760..198ac15b 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -61,7 +61,7 @@ com.fasterxml.jackson jackson-bom - 2.20.0 + 2.20.1 pom import From 271133cfd7728ed4db265333783369ed8d9e8b22 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 11 Nov 2025 04:15:06 +0000 Subject: [PATCH 110/141] Update dependency org.openapitools:jackson-databind-nullable to v0.2.8 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 440b1760..b4094130 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -96,7 +96,7 @@ org.openapitools jackson-databind-nullable - 0.2.7 + 0.2.8 From 24a7535e6512384295bf634ca96e353eaf5d8174 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 11 Nov 2025 04:15:08 +0000 Subject: [PATCH 111/141] Update dependency org.openapitools:openapi-generator-maven-plugin to v7.17.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 440b1760..4b457b39 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -324,7 +324,7 @@ org.openapitools openapi-generator-maven-plugin - 7.16.0 + 7.17.0 From 7b3d463b138e82bd1ac574de670fc3c90a01ce0e Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 12 Nov 2025 04:16:23 +0000 Subject: [PATCH 112/141] Update dependency com.puppycrawl.tools:checkstyle to v12.1.2 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 046a7424..8eef4999 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.1.1 + 12.1.2 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 13bcb16c..d6a7deda 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.1.1 + 12.1.2 From b76d5553bbf3f4cf432b4eaf3e04347be793c64a Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 20 Nov 2025 09:31:05 +0100 Subject: [PATCH 113/141] Sonar is no longer in use --- template-placeholder/pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 9bf9f037..8d45cda6 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -49,11 +49,6 @@ UTF-8 src/generated/java - - - - src/generated/** - From 6ff31257538b8fc040f950df9d7525ce992f1434 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 21 Nov 2025 04:11:32 +0000 Subject: [PATCH 114/141] Update actions/checkout action to v6 --- .github/workflows/broken-links.yml | 2 +- .github/workflows/sync-labels.yml | 2 +- .github/workflows/update-from-template.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 0e96b205..e6c33857 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -12,7 +12,7 @@ jobs: link-checker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: mv .github/.lycheeignore .lycheeignore diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 3faaf1e3..c43365ef 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -15,7 +15,7 @@ jobs: labels: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: sparse-checkout: .github/labels.yml diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml index ebd8220e..7cff5596 100644 --- a/.github/workflows/update-from-template.yml +++ b/.github/workflows/update-from-template.yml @@ -35,7 +35,7 @@ jobs: update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 @@ -181,7 +181,7 @@ jobs: if: needs.update.outputs.create_update_branch_merged_pr == 1 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 From 25f9289239221e0e8f35a121c86ecb41feceab95 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 21 Nov 2025 04:15:13 +0000 Subject: [PATCH 115/141] Update actions/checkout action to v6 --- .github/workflows/broken-links.yml | 2 +- .github/workflows/check-build.yml | 6 +++--- .github/workflows/release.yml | 10 +++++----- .github/workflows/sync-labels.yml | 2 +- .github/workflows/test-deploy.yml | 2 +- .github/workflows/update-from-template.yml | 4 ++-- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 7f35a979..2675c8b6 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: mv .github/.lycheeignore .lycheeignore diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 0e42c299..38497bb1 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -31,7 +31,7 @@ jobs: java: [17, 21, 25] distribution: [temurin] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 @@ -84,7 +84,7 @@ jobs: java: [17] distribution: [temurin] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 @@ -120,7 +120,7 @@ jobs: java: [17] distribution: [temurin] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 103c9b10..e0265f26 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 30 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 @@ -63,7 +63,7 @@ jobs: outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Configure Git run: | @@ -115,7 +115,7 @@ jobs: needs: [prepare-release] timeout-minutes: 60 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Init Git and pull run: | @@ -163,7 +163,7 @@ jobs: needs: [prepare-release] timeout-minutes: 15 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Init Git and pull run: | @@ -202,7 +202,7 @@ jobs: needs: [publish-maven] timeout-minutes: 10 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Init Git and pull run: | diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index f6c50a17..6471ce7c 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 10 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: sparse-checkout: .github/labels.yml diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index b75a246e..2d13d77a 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up JDK uses: actions/setup-java@v5 diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml index 1088171f..f447710f 100644 --- a/.github/workflows/update-from-template.yml +++ b/.github/workflows/update-from-template.yml @@ -36,7 +36,7 @@ jobs: update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 @@ -183,7 +183,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 60 steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: # Required because otherwise there are always changes detected when executing diff/rev-list fetch-depth: 0 From edf902f001242e39b915775d8d7d6f28a571e9ef Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 2 Dec 2025 13:14:14 +0100 Subject: [PATCH 116/141] Add more common numbers --- .config/checkstyle/checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index ffbc2a93..b5a41357 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -91,7 +91,7 @@ - + From c8756b9d201ead32afbe5e4e031505da7c2b9c31 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 3 Dec 2025 04:18:05 +0000 Subject: [PATCH 117/141] Update dependency com.puppycrawl.tools:checkstyle to v12.2.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8eef4999..b13f778c 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.1.2 + 12.2.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index d6a7deda..6ca6b297 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.1.2 + 12.2.0 From df641394583403a6ce83949d31ae5b46586d5c60 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 3 Dec 2025 04:18:06 +0000 Subject: [PATCH 118/141] Update dependency org.apache.maven.plugins:maven-assembly-plugin to v3.8.0 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index b6ff1fd9..05b947bc 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-assembly-plugin - 3.7.1 + 3.8.0 From 1f1983a64fb1e0a054802e79bc194c603702937b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 3 Dec 2025 04:18:07 +0000 Subject: [PATCH 119/141] Update dependency org.apache.maven.plugins:maven-source-plugin to v3.4.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index d6a7deda..b8c21a4d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -126,7 +126,7 @@ org.apache.maven.plugins maven-source-plugin - 3.3.1 + 3.4.0 attach-sources From 3fcab4287f04880ecb7f89980d5da2c06134cff6 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 3 Dec 2025 04:18:08 +0000 Subject: [PATCH 120/141] Update net.sourceforge.pmd to v7.19.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8eef4999..14c61ce7 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.18.0 + 7.19.0 net.sourceforge.pmd pmd-java - 7.18.0 + 7.19.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index d6a7deda..4f5d9ecc 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.18.0 + 7.19.0 net.sourceforge.pmd pmd-java - 7.18.0 + 7.19.0 From b7be80a0ffaca6fdb3d3d68bebf98c8c85fd9947 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 12 Dec 2025 04:23:26 +0000 Subject: [PATCH 121/141] Update actions/cache action to v5 --- .github/workflows/check-build.yml | 10 +++++----- .github/workflows/release.yml | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 38497bb1..e558a919 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -40,7 +40,7 @@ jobs: java-version: ${{ matrix.java }} - name: Cache Maven - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} @@ -93,7 +93,7 @@ jobs: java-version: ${{ matrix.java }} - name: Cache Maven - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-mvn-checkstyle-${{ hashFiles('**/pom.xml') }} @@ -101,7 +101,7 @@ jobs: ${{ runner.os }}-mvn-checkstyle- - name: CheckStyle Cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: '**/target/checkstyle-cachefile' key: ${{ runner.os }}-checkstyle-${{ hashFiles('**/pom.xml') }} @@ -129,7 +129,7 @@ jobs: java-version: ${{ matrix.java }} - name: Cache Maven - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-mvn-pmd-${{ hashFiles('**/pom.xml') }} @@ -137,7 +137,7 @@ jobs: ${{ runner.os }}-mvn-pmd- - name: PMD Cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: '**/target/pmd/pmd.cache' key: ${{ runner.os }}-pmd-${{ hashFiles('**/pom.xml') }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e0265f26..63c583f7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: # Try to reuse existing cache from check-build - name: Try restore Maven Cache - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} @@ -179,7 +179,7 @@ jobs: # Try to reuse existing cache from check-build - name: Try restore Maven Cache - uses: actions/cache/restore@v4 + uses: actions/cache/restore@v5 with: path: ~/.m2/repository key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} From 94faaa817fcf0586ef2f77ad66fdc582e3cbc5b3 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 13 Dec 2025 04:18:54 +0000 Subject: [PATCH 122/141] Update actions/upload-artifact action to v6 --- .github/workflows/check-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 38497bb1..5b1ddcde 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -69,7 +69,7 @@ jobs: fi - name: Upload demo files - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: demo-files-java-${{ matrix.java }} path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar @@ -152,7 +152,7 @@ jobs: - name: Upload report if: always() - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: pmd-report if-no-files-found: ignore From 9d0fc14dce5143c432b7674dfdc94b577df1d61c Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 14 Dec 2025 04:26:08 +0000 Subject: [PATCH 123/141] Update dependency com.puppycrawl.tools:checkstyle to v12.3.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4ddf0d83..0a33102a 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.2.0 + 12.3.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 57263e36..32974642 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.2.0 + 12.3.0 From 5ec11e42f23cba26475630d3685926c828ce73ce Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 17 Dec 2025 04:22:05 +0000 Subject: [PATCH 124/141] Update dependency maven to v3.9.12 --- .mvn/wrapper/maven-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index c0bcafe9..8dea6c22 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -1,3 +1,3 @@ wrapperVersion=3.3.4 distributionType=only-script -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip From d1732099fc96a89266d96bf10d1b97f6ca68e9e2 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 25 Dec 2025 04:25:20 +0000 Subject: [PATCH 125/141] Update shogo82148/actions-create-release digest to 559c27c --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 63c583f7..3f55399a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -91,7 +91,7 @@ jobs: - name: Create Release id: create-release - uses: shogo82148/actions-create-release@28d99e2a5b407558d17c15d0384fc0d7fb625b4c # v1 + uses: shogo82148/actions-create-release@559c27ce7eb834825e2b55927c64f6d1bd1db716 # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From b8924cfb611d0c61c80ff53bcec7c6f029386c30 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 31 Dec 2025 04:28:38 +0000 Subject: [PATCH 126/141] Update net.sourceforge.pmd to v7.20.0 --- pom.xml | 4 ++-- template-placeholder/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0a33102a..4f008f63 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.19.0 + 7.20.0 net.sourceforge.pmd pmd-java - 7.19.0 + 7.20.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 32974642..5c16b704 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.19.0 + 7.20.0 net.sourceforge.pmd pmd-java - 7.19.0 + 7.20.0 From 8c4cce7a01a368b3f252b338a5c01bd8a949cdd3 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 5 Jan 2026 04:37:37 +0000 Subject: [PATCH 127/141] Update dependency com.puppycrawl.tools:checkstyle to v13 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0a33102a..963892d2 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 12.3.0 + 13.0.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 32974642..ffe73ccc 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 12.3.0 + 13.0.0 From 1d1ce1e358bced2d31510629135e7d9dd53bc903 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 8 Jan 2026 04:27:09 +0000 Subject: [PATCH 128/141] Update dependency org.sonatype.central:central-publishing-maven-plugin to v0.10.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 32974642..6bf68ad8 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -193,7 +193,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.9.0 + 0.10.0 true sonatype-central-portal From 8159312aa40e8b4e74625cbf7b7d94dbba10072d Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 12 Jan 2026 09:40:34 +0100 Subject: [PATCH 129/141] Checkstyle now requires Java 21 --- .github/workflows/check-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 9fdeb5ad..b1a6d66f 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -81,7 +81,7 @@ jobs: timeout-minutes: 15 strategy: matrix: - java: [17] + java: [21] distribution: [temurin] steps: - uses: actions/checkout@v6 From 628f4713440162468b2d0f7fdcef5986b4394119 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 14 Jan 2026 15:52:03 +0100 Subject: [PATCH 130/141] Do not allow params and vars to end with collection type names Fixes https://github.com/xdev-software/java-setup-template/issues/6 --- .config/checkstyle/checkstyle.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index b5a41357..f0dcc86b 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -74,6 +74,11 @@ + + + + + From fff49da9f48d4086c326b1ceed5422f4223ebdb1 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 14 Jan 2026 16:36:27 +0100 Subject: [PATCH 131/141] PMD: Use a Set instead of a List in entity relations Fixes https://github.com/xdev-software/java-setup-template/issues/5 --- .config/pmd/java/ruleset.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index c057d1aa..e96576b1 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -394,6 +394,30 @@ If you are 100% sure that you escaped the value properly and you have no better + + + +`List` allows duplicates while a `Set` does not. +A `Set` also prevents duplicates when the ORM reads multiple identical rows from the database (e.g. when using JOIN). + + 2 + + + + + + + + + From ae8b5b88317ca2cd6df74e92c3fe0ecf92cc017d Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 14 Jan 2026 16:51:29 +0100 Subject: [PATCH 132/141] Update checkstyle-idea.xml --- .idea/checkstyle-idea.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml index ec555b58..a751c417 100644 --- a/.idea/checkstyle-idea.xml +++ b/.idea/checkstyle-idea.xml @@ -1,7 +1,7 @@ - 11.0.0 + 13.0.0 JavaOnlyWithTests true true From 43e1272ebeab136234afadf89bc73789f7d1a94e Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 15 Jan 2026 09:11:40 +0100 Subject: [PATCH 133/141] Fix Todo comment detection --- .config/checkstyle/checkstyle.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index f0dcc86b..da116832 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -127,7 +127,10 @@ - + + + + From 8f54163363b15bb2266df7ef78fe5fb324120b17 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 16 Jan 2026 08:43:40 +0100 Subject: [PATCH 134/141] Look for TODOs case INsensitive --- .config/checkstyle/checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index da116832..463a629a 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -129,7 +129,7 @@ - + From 4466c20fa4fc7116b9e737403a51e3a6466634dc Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 17 Jan 2026 04:23:21 +0000 Subject: [PATCH 135/141] Update log4j2-version to v2.25.3 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index 9253a4e1..c1db62a9 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -28,7 +28,7 @@ software.xdev.Application - 2.25.2 + 2.25.3 From c8f3715b3af5412dbeab7b85eda9033e76e8998c Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 17 Jan 2026 04:23:23 +0000 Subject: [PATCH 136/141] Update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 0a673258..6553cb41 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -68,7 +68,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.5.1 + 5.6 From 54861dae8fd3d9742e16c4a8ce07a76415daa4d2 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 17 Jan 2026 04:23:24 +0000 Subject: [PATCH 137/141] Update dependency org.apache.maven.plugins:maven-resources-plugin to v3.4.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 0a673258..6edebce3 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -355,7 +355,7 @@ org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.4.0 copy-generated-resources From 1e951545a1a685e9cbbcf1a3a6202643079063e4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 17 Jan 2026 04:23:26 +0000 Subject: [PATCH 138/141] Update dependency org.openapitools:openapi-generator-maven-plugin to v7.18.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 0a673258..fd97d66b 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -319,7 +319,7 @@ org.openapitools openapi-generator-maven-plugin - 7.17.0 + 7.18.0 From 703c80a1598aebfd7f704fd83b5037d014890661 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 19 Jan 2026 04:34:19 +0000 Subject: [PATCH 139/141] Update dependency com.fasterxml.jackson:jackson-bom to v2.21.0 --- template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 0a673258..0bee31a8 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -56,7 +56,7 @@ com.fasterxml.jackson jackson-bom - 2.20.1 + 2.21.0 pom import From 2c53b7c1e7aba3a094e226605413ccde84ba5ace Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 19 Jan 2026 09:44:22 +0100 Subject: [PATCH 140/141] Regenerate API --- .../software/xdev/sessionize/api/AllApi.java | 4 +- .../xdev/sessionize/api/SessionsApi.java | 4 +- .../xdev/sessionize/api/SpeakersApi.java | 8 +- .../xdev/sessionize/client/ApiClient.java | 47 ++++---- .../xdev/sessionize/client/Configuration.java | 66 +++++++---- .../sessionize/client/JavaTimeFormatter.java | 74 +++++++------ .../software/xdev/sessionize/client/Pair.java | 50 +++------ .../client/RFC3339InstantDeserializer.java | 98 +++++++++++++++++ .../client/RFC3339JavaTimeModule.java | 36 ++++++ .../client/auth/Authentication.java | 16 +-- .../client/auth/HttpBearerAuth.java | 10 +- .../xdev/sessionize/model/AllResult.java | 40 +++---- .../xdev/sessionize/model/BaseCategory.java | 12 +- .../xdev/sessionize/model/BaseSession.java | 74 ++++++------- .../xdev/sessionize/model/BaseSpeaker.java | 56 +++++----- .../model/BaseSpeakerEssential.java | 18 +-- .../xdev/sessionize/model/CategoryAll.java | 32 +++--- .../xdev/sessionize/model/CategoryItem.java | 12 +- .../sessionize/model/CategoryItemAll.java | 18 +-- .../sessionize/model/CategorySession.java | 26 ++--- .../software/xdev/sessionize/model/Link.java | 18 +-- .../xdev/sessionize/model/Question.java | 24 ++-- .../xdev/sessionize/model/QuestionAnswer.java | 12 +- .../sessionize/model/QuestionAnswerFull.java | 30 ++--- .../software/xdev/sessionize/model/Room.java | 18 +-- .../xdev/sessionize/model/Session.java | 104 +++++++++--------- .../xdev/sessionize/model/SessionAll.java | 90 +++++++-------- .../xdev/sessionize/model/SessionGroup.java | 26 ++--- .../xdev/sessionize/model/SessionMinimal.java | 12 +- .../xdev/sessionize/model/Speaker.java | 72 ++++++------ .../xdev/sessionize/model/SpeakerAll.java | 72 ++++++------ .../xdev/sessionize/model/SpeakerMinimal.java | 12 +- .../sessionize/model/SpeakerWithEmail.java | 24 ++-- .../xdev/sessionize/model/Status.java | 2 +- 34 files changed, 678 insertions(+), 539 deletions(-) create mode 100644 sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java create mode 100644 sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java index 1168bb9a..d394fc44 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java @@ -47,7 +47,7 @@ public AllApi(ApiClient apiClient) { * @return AllResult * @throws ApiException if fails to make API call */ - public AllResult getAll(String endpointId) throws ApiException { + public AllResult getAll(@jakarta.annotation.Nonnull String endpointId) throws ApiException { return this.getAll(endpointId, Collections.emptyMap()); } @@ -60,7 +60,7 @@ public AllResult getAll(String endpointId) throws ApiException { * @return AllResult * @throws ApiException if fails to make API call */ - public AllResult getAll(String endpointId, Map additionalHeaders) throws ApiException { + public AllResult getAll(@jakarta.annotation.Nonnull String endpointId, Map additionalHeaders) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'endpointId' is set diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java index 52d94e3a..412f5dff 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java @@ -47,7 +47,7 @@ public SessionsApi(ApiClient apiClient) { * @return List<SessionGroup> * @throws ApiException if fails to make API call */ - public List getAllSessions(String endpointId) throws ApiException { + public List getAllSessions(@jakarta.annotation.Nonnull String endpointId) throws ApiException { return this.getAllSessions(endpointId, Collections.emptyMap()); } @@ -60,7 +60,7 @@ public List getAllSessions(String endpointId) throws ApiException * @return List<SessionGroup> * @throws ApiException if fails to make API call */ - public List getAllSessions(String endpointId, Map additionalHeaders) throws ApiException { + public List getAllSessions(@jakarta.annotation.Nonnull String endpointId, Map additionalHeaders) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'endpointId' is set diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java index 79b3e7d9..c402afde 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java @@ -48,7 +48,7 @@ public SpeakersApi(ApiClient apiClient) { * @return List<Speaker> * @throws ApiException if fails to make API call */ - public List getAllSpeakers(String endpointId) throws ApiException { + public List getAllSpeakers(@jakarta.annotation.Nonnull String endpointId) throws ApiException { return this.getAllSpeakers(endpointId, Collections.emptyMap()); } @@ -61,7 +61,7 @@ public List getAllSpeakers(String endpointId) throws ApiException { * @return List<Speaker> * @throws ApiException if fails to make API call */ - public List getAllSpeakers(String endpointId, Map additionalHeaders) throws ApiException { + public List getAllSpeakers(@jakarta.annotation.Nonnull String endpointId, Map additionalHeaders) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'endpointId' is set @@ -124,7 +124,7 @@ public List getAllSpeakers(String endpointId, Map addit * @return List<SpeakerWithEmail> * @throws ApiException if fails to make API call */ - public List getAllSpeakersEmails(String endpointId, String s) throws ApiException { + public List getAllSpeakersEmails(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nonnull String s) throws ApiException { return this.getAllSpeakersEmails(endpointId, s, Collections.emptyMap()); } @@ -138,7 +138,7 @@ public List getAllSpeakersEmails(String endpointId, String s) * @return List<SpeakerWithEmail> * @throws ApiException if fails to make API call */ - public List getAllSpeakersEmails(String endpointId, String s, Map additionalHeaders) throws ApiException { + public List getAllSpeakersEmails(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nonnull String s, Map additionalHeaders) throws ApiException { Object localVarPostBody = null; // verify the required parameter 'endpointId' is set diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java index b658caff..5d709e9b 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java @@ -56,7 +56,6 @@ import java.util.Date; import java.util.function.Supplier; import java.util.TimeZone; -import java.util.concurrent.ConcurrentHashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -80,9 +79,9 @@ import software.xdev.sessionize.client.auth.Authentication; public class ApiClient extends JavaTimeFormatter { - private Map defaultHeaderMap = new HashMap(); - private Map defaultCookieMap = new HashMap(); - private String basePath = "https://sessionize.com"; + protected Map defaultHeaderMap = new HashMap(); + protected Map defaultCookieMap = new HashMap(); + protected String basePath = "https://sessionize.com"; protected List servers = new ArrayList(Arrays.asList( new ServerConfiguration( "https://sessionize.com", @@ -92,22 +91,22 @@ public class ApiClient extends JavaTimeFormatter { )); protected Integer serverIndex = 0; protected Map serverVariables = null; - private boolean debugging = false; - private int connectionTimeout = 0; + protected boolean debugging = false; + protected int connectionTimeout = 0; - private CloseableHttpClient httpClient; - private ObjectMapper objectMapper; + protected CloseableHttpClient httpClient; + protected ObjectMapper objectMapper; protected String tempFolderPath = null; - private Map authentications; + protected Map authentications; - private Map lastStatusCodeByThread = new ConcurrentHashMap<>(); - private Map>> lastResponseHeadersByThread = new ConcurrentHashMap<>(); + protected ThreadLocal lastStatusCode = new ThreadLocal<>(); + protected ThreadLocal>> lastResponseHeaders = new ThreadLocal<>(); - private DateFormat dateFormat; + protected DateFormat dateFormat; // Methods that can have a request body - private static List bodyMethods = Arrays.asList("POST", "PUT", "DELETE", "PATCH"); + protected static List bodyMethods = Arrays.asList("POST", "PUT", "DELETE", "PATCH"); public ApiClient(CloseableHttpClient httpClient) { objectMapper = new ObjectMapper(); @@ -119,6 +118,7 @@ public ApiClient(CloseableHttpClient httpClient) { objectMapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING); objectMapper.registerModule(new JavaTimeModule()); objectMapper.registerModule(new JsonNullableModule()); + objectMapper.registerModule(new RFC3339JavaTimeModule()); objectMapper.setDateFormat(ApiClient.buildDefaultDateFormat()); dateFormat = ApiClient.buildDefaultDateFormat(); @@ -248,7 +248,7 @@ public ApiClient setServerVariables(Map serverVariables) { */ @Deprecated public int getStatusCode() { - return lastStatusCodeByThread.get(Thread.currentThread().getId()); + return lastStatusCode.get(); } /** @@ -257,7 +257,7 @@ public int getStatusCode() { */ @Deprecated public Map> getResponseHeaders() { - return lastResponseHeadersByThread.get(Thread.currentThread().getId()); + return lastResponseHeaders.get(); } /** @@ -320,7 +320,7 @@ public ApiClient setTempFolderPath(String tempFolderPath) { * @param value The header's value * @return API client */ - public ApiClient addDefaultHeader(String key, String value) { + public final ApiClient addDefaultHeader(String key, String value) { defaultHeaderMap.put(key, value); return this; } @@ -610,7 +610,7 @@ protected Map> transformResponseHeaders(Header[] headers) { /** * Parse content type object from header value */ - private ContentType getContentType(String headerValue) throws ApiException { + protected ContentType getContentType(String headerValue) throws ApiException { try { return ContentType.parse(headerValue); } catch (UnsupportedCharsetException e) { @@ -621,7 +621,7 @@ private ContentType getContentType(String headerValue) throws ApiException { /** * Get content type of a response or null if one was not provided */ - private String getResponseMimeType(HttpResponse response) throws ApiException { + protected String getResponseMimeType(HttpResponse response) throws ApiException { Header contentTypeHeader = response.getFirstHeader("Content-Type"); if (contentTypeHeader != null) { return getContentType(contentTypeHeader.getValue()).getMimeType(); @@ -730,7 +730,7 @@ public T deserialize(CloseableHttpResponse response, TypeReference valueT } } - private File downloadFileFromResponse(CloseableHttpResponse response) throws IOException { + protected File downloadFileFromResponse(CloseableHttpResponse response) throws IOException { Header contentDispositionHeader = response.getFirstHeader("Content-Disposition"); String contentDisposition = contentDispositionHeader == null ? null : contentDispositionHeader.getValue(); File file = prepareDownloadFile(contentDisposition); @@ -782,6 +782,7 @@ public String getBaseURL() { if (serverIndex != null) { if (serverIndex < 0 || serverIndex >= servers.size()) { throw new ArrayIndexOutOfBoundsException(String.format( + java.util.Locale.ROOT, "Invalid index %d when selecting the host settings. Must be less than %d", serverIndex, servers.size() )); } @@ -801,7 +802,7 @@ public String getBaseURL() { * @param urlQueryDeepObject URL query string of the deep object parameters * @return The full URL */ - private String buildUrl(String path, List queryParams, List collectionQueryParams, String urlQueryDeepObject) { + protected String buildUrl(String path, List queryParams, List collectionQueryParams, String urlQueryDeepObject) { String baseURL = getBaseURL(); final StringBuilder url = new StringBuilder(); @@ -867,13 +868,13 @@ protected Cookie buildCookie(String key, String value, URI uri) { protected T processResponse(CloseableHttpResponse response, TypeReference returnType) throws ApiException, IOException, ParseException { int statusCode = response.getCode(); - lastStatusCodeByThread.put(Thread.currentThread().getId(), statusCode); + lastStatusCode.set(statusCode); if (statusCode == HttpStatus.SC_NO_CONTENT) { return null; } Map> responseHeaders = transformResponseHeaders(response.getHeaders()); - lastResponseHeadersByThread.put(Thread.currentThread().getId(), responseHeaders); + lastResponseHeaders.set(responseHeaders); if (isSuccessfulStatus(statusCode)) { return this.deserialize(response, returnType); @@ -980,7 +981,7 @@ public T invokeAPI( * @param headerParams Header parameters * @param cookieParams Cookie parameters */ - private void updateParamsForAuth(String[] authNames, List queryParams, Map headerParams, Map cookieParams) { + protected void updateParamsForAuth(String[] authNames, List queryParams, Map headerParams, Map cookieParams) { for (String authName : authNames) { Authentication auth = authentications.get(authName); if (auth == null) throw new RuntimeException("Authentication undefined: " + authName); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java index 221042c4..881269a9 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java @@ -13,28 +13,50 @@ package software.xdev.sessionize.client; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Supplier; + public class Configuration { - public static final String VERSION = "2.0"; - - private static volatile ApiClient defaultApiClient = new ApiClient(); - - /** - * Get the default API client, which would be used when creating API - * instances without providing an API client. - * - * @return Default API client - */ - public static ApiClient getDefaultApiClient() { - return defaultApiClient; - } + public static final String VERSION = "2.0"; + + private static final AtomicReference defaultApiClient = new AtomicReference<>(); + private static volatile Supplier apiClientFactory = ApiClient::new; - /** - * Set the default API client, which would be used when creating API - * instances without providing an API client. - * - * @param apiClient API client - */ - public static void setDefaultApiClient(ApiClient apiClient) { - defaultApiClient = apiClient; + /** + * Get the default API client, which would be used when creating API instances without providing an API client. + * + * @return Default API client + */ + public static ApiClient getDefaultApiClient() { + ApiClient client = defaultApiClient.get(); + if (client == null) { + client = defaultApiClient.updateAndGet(val -> { + if (val != null) { // changed by another thread + return val; + } + return apiClientFactory.get(); + }); } -} + return client; + } + + /** + * Set the default API client, which would be used when creating API instances without providing an API client. + * + * @param apiClient API client + */ + public static void setDefaultApiClient(ApiClient apiClient) { + defaultApiClient.set(apiClient); + } + + /** + * set the callback used to create new ApiClient objects + */ + public static void setApiClientFactory(Supplier factory) { + apiClientFactory = Objects.requireNonNull(factory); + } + + private Configuration() { + } +} \ No newline at end of file diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java index d15b1b5f..20ed2215 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java @@ -21,43 +21,47 @@ * It's generated for java clients when {@code AbstractJavaCodegen#dateLibrary} specified as {@code java8}. */ public class JavaTimeFormatter { + private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; - private DateTimeFormatter offsetDateTimeFormatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME; + /** + * Get the date format used to parse/format {@code OffsetDateTime} parameters. + * + * @return DateTimeFormatter + */ + public DateTimeFormatter getOffsetDateTimeFormatter() { + return offsetDateTimeFormatter; + } - /** - * Get the date format used to parse/format {@code OffsetDateTime} parameters. - * @return DateTimeFormatter - */ - public DateTimeFormatter getOffsetDateTimeFormatter() { - return offsetDateTimeFormatter; - } + /** + * Set the date format used to parse/format {@code OffsetDateTime} parameters. + * + * @param offsetDateTimeFormatter {@code DateTimeFormatter} + */ + public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) { + this.offsetDateTimeFormatter = offsetDateTimeFormatter; + } - /** - * Set the date format used to parse/format {@code OffsetDateTime} parameters. - * @param offsetDateTimeFormatter {@code DateTimeFormatter} - */ - public void setOffsetDateTimeFormatter(DateTimeFormatter offsetDateTimeFormatter) { - this.offsetDateTimeFormatter = offsetDateTimeFormatter; + /** + * Parse the given string into {@code OffsetDateTime} object. + * + * @param str String + * @return {@code OffsetDateTime} + */ + public OffsetDateTime parseOffsetDateTime(String str) { + try { + return OffsetDateTime.parse(str, offsetDateTimeFormatter); + } catch (DateTimeParseException e) { + throw new RuntimeException(e); } + } - /** - * Parse the given string into {@code OffsetDateTime} object. - * @param str String - * @return {@code OffsetDateTime} - */ - public OffsetDateTime parseOffsetDateTime(String str) { - try { - return OffsetDateTime.parse(str, offsetDateTimeFormatter); - } catch (DateTimeParseException e) { - throw new RuntimeException(e); - } - } - /** - * Format the given {@code OffsetDateTime} object into string. - * @param offsetDateTime {@code OffsetDateTime} - * @return {@code OffsetDateTime} in string format - */ - public String formatOffsetDateTime(OffsetDateTime offsetDateTime) { - return offsetDateTimeFormatter.format(offsetDateTime); - } -} + /** + * Format the given {@code OffsetDateTime} object into string. + * + * @param offsetDateTime {@code OffsetDateTime} + * @return {@code OffsetDateTime} in string format + */ + public String formatOffsetDateTime(OffsetDateTime offsetDateTime) { + return offsetDateTimeFormatter.format(offsetDateTime); + } +} \ No newline at end of file diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java index 3338a31f..3a662f59 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java @@ -14,43 +14,23 @@ package software.xdev.sessionize.client; public class Pair { - private String name = ""; - private String value = ""; + private final String name; + private final String value; - public Pair (String name, String value) { - setName(name); - setValue(value); - } + public Pair(String name, String value) { + this.name = isValidString(name) ? name : ""; + this.value = isValidString(value) ? value : ""; + } - private void setName(String name) { - if (!isValidString(name)) { - return; - } + public String getName() { + return this.name; + } - this.name = name; - } + public String getValue() { + return this.value; + } - private void setValue(String value) { - if (!isValidString(value)) { - return; - } - - this.value = value; - } - - public String getName() { - return this.name; - } - - public String getValue() { - return this.value; - } - - private boolean isValidString(String arg) { - if (arg == null) { - return false; - } - - return true; - } + private static boolean isValidString(String arg) { + return arg != null; + } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java new file mode 100644 index 00000000..1b3b9df9 --- /dev/null +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java @@ -0,0 +1,98 @@ +/* + * Sessionize JSON-REST API + * Sessionize JSON-REST API documentation by XDEV Software + * + * The version of the OpenAPI document: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package software.xdev.sessionize.client; + +import java.io.IOException; +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.time.temporal.Temporal; +import java.time.temporal.TemporalAccessor; +import java.util.function.BiFunction; +import java.util.function.Function; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeFeature; +import com.fasterxml.jackson.datatype.jsr310.deser.InstantDeserializer; + +public class RFC3339InstantDeserializer extends InstantDeserializer { + private final static boolean DEFAULT_NORMALIZE_ZONE_ID = JavaTimeFeature.NORMALIZE_DESERIALIZED_ZONE_ID.enabledByDefault(); + private final static boolean DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + = JavaTimeFeature.ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS.enabledByDefault(); + + public static final RFC3339InstantDeserializer INSTANT = new RFC3339InstantDeserializer<>( + Instant.class, DateTimeFormatter.ISO_INSTANT, + Instant::from, + a -> Instant.ofEpochMilli( a.value ), + a -> Instant.ofEpochSecond( a.integer, a.fraction ), + null, + true, // yes, replace zero offset with Z + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + public static final RFC3339InstantDeserializer OFFSET_DATE_TIME = new RFC3339InstantDeserializer<>( + OffsetDateTime.class, DateTimeFormatter.ISO_OFFSET_DATE_TIME, + OffsetDateTime::from, + a -> OffsetDateTime.ofInstant( Instant.ofEpochMilli( a.value ), a.zoneId ), + a -> OffsetDateTime.ofInstant( Instant.ofEpochSecond( a.integer, a.fraction ), a.zoneId ), + (d, z) -> ( d.isEqual( OffsetDateTime.MIN ) || d.isEqual( OffsetDateTime.MAX ) ? + d : + d.withOffsetSameInstant( z.getRules().getOffset( d.toLocalDateTime() ) ) ), + true, // yes, replace zero offset with Z + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + public static final RFC3339InstantDeserializer ZONED_DATE_TIME = new RFC3339InstantDeserializer<>( + ZonedDateTime.class, DateTimeFormatter.ISO_ZONED_DATE_TIME, + ZonedDateTime::from, + a -> ZonedDateTime.ofInstant( Instant.ofEpochMilli( a.value ), a.zoneId ), + a -> ZonedDateTime.ofInstant( Instant.ofEpochSecond( a.integer, a.fraction ), a.zoneId ), + ZonedDateTime::withZoneSameInstant, + false, // keep zero offset and Z separate since zones explicitly supported + DEFAULT_NORMALIZE_ZONE_ID, + DEFAULT_ALWAYS_ALLOW_STRINGIFIED_DATE_TIMESTAMPS + ); + + protected RFC3339InstantDeserializer( + Class supportedType, + DateTimeFormatter formatter, + Function parsedToValue, + Function fromMilliseconds, + Function fromNanoseconds, + BiFunction adjust, + boolean replaceZeroOffsetAsZ, + boolean normalizeZoneId, + boolean readNumericStringsAsTimestamp) { + super( + supportedType, + formatter, + parsedToValue, + fromMilliseconds, + fromNanoseconds, + adjust, + replaceZeroOffsetAsZ, + normalizeZoneId, + readNumericStringsAsTimestamp + ); + } + + @Override + protected T _fromString(JsonParser p, DeserializationContext ctxt, String string0) throws IOException { + return super._fromString(p, ctxt, string0.replace( ' ', 'T' )); + } +} \ No newline at end of file diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java new file mode 100644 index 00000000..cec4e8bb --- /dev/null +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java @@ -0,0 +1,36 @@ +/* + * Sessionize JSON-REST API + * Sessionize JSON-REST API documentation by XDEV Software + * + * The version of the OpenAPI document: 2.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + +package software.xdev.sessionize.client; + +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.ZonedDateTime; + +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.Module.SetupContext; + +public class RFC3339JavaTimeModule extends SimpleModule { + public RFC3339JavaTimeModule() { + super("RFC3339JavaTimeModule"); + } + + @Override + public void setupModule(SetupContext context) { + super.setupModule(context); + + addDeserializer(Instant.class, RFC3339InstantDeserializer.INSTANT); + addDeserializer(OffsetDateTime.class, RFC3339InstantDeserializer.OFFSET_DATE_TIME); + addDeserializer(ZonedDateTime.class, RFC3339InstantDeserializer.ZONED_DATE_TIME); + } + +} diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java index 761305d2..06c25e7c 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java @@ -19,12 +19,12 @@ import java.util.List; public interface Authentication { - /** - * Apply authentication settings to header and query params. - * - * @param queryParams List of query parameters - * @param headerParams Map of header parameters - * @param cookieParams Map of cookie parameters - */ - void applyToParams(List queryParams, Map headerParams, Map cookieParams); + /** + * Apply authentication settings to header and query params. + * + * @param queryParams List of query parameters + * @param headerParams Map of header parameters + * @param cookieParams Map of cookie parameters + */ + void applyToParams(List queryParams, Map headerParams, Map cookieParams); } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java index ba4843dd..bd03c64f 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java @@ -17,7 +17,6 @@ import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.Supplier; public class HttpBearerAuth implements Authentication { @@ -25,7 +24,7 @@ public class HttpBearerAuth implements Authentication { private Supplier tokenSupplier; public HttpBearerAuth(String scheme) { - this.scheme = scheme; + this.scheme = upperCaseBearer(scheme); } /** @@ -57,15 +56,14 @@ public void setBearerToken(Supplier tokenSupplier) { @Override public void applyToParams(List queryParams, Map headerParams, Map cookieParams) { - String bearerToken = Optional.ofNullable(tokenSupplier).map(Supplier::get).orElse(null); + String bearerToken = tokenSupplier != null ? tokenSupplier.get() : null; if (bearerToken == null) { return; } - - headerParams.put("Authorization", (scheme != null ? upperCaseBearer(scheme) + " " : "") + bearerToken); + headerParams.put("Authorization", (scheme != null ? scheme + " " : "") + bearerToken); } private static String upperCaseBearer(String scheme) { - return ("bearer".equalsIgnoreCase(scheme)) ? "Bearer" : scheme; + return "bearer".equalsIgnoreCase(scheme) ? "Bearer" : scheme; } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java index d4b7ffc1..1fcd8da9 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java @@ -87,7 +87,7 @@ public AllResult addSessionsItem(SessionAll sessionsItem) { * @return sessions */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSessions() { @@ -95,7 +95,7 @@ public List getSessions() { } - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSessions(@jakarta.annotation.Nonnull List sessions) { this.sessions = sessions; @@ -120,7 +120,7 @@ public AllResult addSpeakersItem(SpeakerAll speakersItem) { * @return speakers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSpeakers() { @@ -128,7 +128,7 @@ public List getSpeakers() { } - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSpeakers(@jakarta.annotation.Nonnull List speakers) { this.speakers = speakers; @@ -153,7 +153,7 @@ public AllResult addQuestionsItem(Question questionsItem) { * @return questions */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTIONS) + @JsonProperty(value = JSON_PROPERTY_QUESTIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getQuestions() { @@ -161,7 +161,7 @@ public List getQuestions() { } - @JsonProperty(JSON_PROPERTY_QUESTIONS) + @JsonProperty(value = JSON_PROPERTY_QUESTIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestions(@jakarta.annotation.Nonnull List questions) { this.questions = questions; @@ -186,7 +186,7 @@ public AllResult addCategoriesItem(CategoryAll categoriesItem) { * @return categories */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORIES) + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategories() { @@ -194,7 +194,7 @@ public List getCategories() { } - @JsonProperty(JSON_PROPERTY_CATEGORIES) + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategories(@jakarta.annotation.Nonnull List categories) { this.categories = categories; @@ -219,7 +219,7 @@ public AllResult addRoomsItem(Room roomsItem) { * @return rooms */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ROOMS) + @JsonProperty(value = JSON_PROPERTY_ROOMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getRooms() { @@ -227,7 +227,7 @@ public List getRooms() { } - @JsonProperty(JSON_PROPERTY_ROOMS) + @JsonProperty(value = JSON_PROPERTY_ROOMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setRooms(@jakarta.annotation.Nonnull List rooms) { this.rooms = rooms; @@ -314,8 +314,8 @@ public String toUrlQueryString(String prefix) { if (getSessions() != null) { for (int i = 0; i < getSessions().size(); i++) { if (getSessions().get(i) != null) { - joiner.add(getSessions().get(i).toUrlQueryString(String.format("%ssessions%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getSessions().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%ssessions%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -324,8 +324,8 @@ public String toUrlQueryString(String prefix) { if (getSpeakers() != null) { for (int i = 0; i < getSpeakers().size(); i++) { if (getSpeakers().get(i) != null) { - joiner.add(getSpeakers().get(i).toUrlQueryString(String.format("%sspeakers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getSpeakers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%sspeakers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -334,8 +334,8 @@ public String toUrlQueryString(String prefix) { if (getQuestions() != null) { for (int i = 0; i < getQuestions().size(); i++) { if (getQuestions().get(i) != null) { - joiner.add(getQuestions().get(i).toUrlQueryString(String.format("%squestions%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getQuestions().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%squestions%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -344,8 +344,8 @@ public String toUrlQueryString(String prefix) { if (getCategories() != null) { for (int i = 0; i < getCategories().size(); i++) { if (getCategories().get(i) != null) { - joiner.add(getCategories().get(i).toUrlQueryString(String.format("%scategories%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getCategories().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%scategories%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -354,8 +354,8 @@ public String toUrlQueryString(String prefix) { if (getRooms() != null) { for (int i = 0; i < getRooms().size(); i++) { if (getRooms().get(i) != null) { - joiner.add(getRooms().get(i).toUrlQueryString(String.format("%srooms%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getRooms().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%srooms%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java index 2f43f43d..fe7642cf 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java @@ -56,7 +56,7 @@ public BaseCategory id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -64,7 +64,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -81,7 +81,7 @@ public BaseCategory sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -89,7 +89,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -169,7 +169,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -179,7 +179,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java index f1686e93..41eb9170 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java @@ -116,7 +116,7 @@ public BaseSession id(@jakarta.annotation.Nonnull String id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getId() { @@ -124,7 +124,7 @@ public String getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; @@ -141,7 +141,7 @@ public BaseSession title(@jakarta.annotation.Nonnull String title) { * @return title */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTitle() { @@ -149,7 +149,7 @@ public String getTitle() { } - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; @@ -172,14 +172,14 @@ public String getDescription() { return description.orElse(null); } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getDescription_JsonNullable() { return description; } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) public void setDescription_JsonNullable(JsonNullable description) { this.description = description; } @@ -199,7 +199,7 @@ public BaseSession startsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt * @return startsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getStartsAt() { @@ -207,7 +207,7 @@ public OffsetDateTime getStartsAt() { } - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStartsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt) { this.startsAt = startsAt; @@ -224,7 +224,7 @@ public BaseSession endsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { * @return endsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getEndsAt() { @@ -232,7 +232,7 @@ public OffsetDateTime getEndsAt() { } - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setEndsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { this.endsAt = endsAt; @@ -249,7 +249,7 @@ public BaseSession isServiceSession(@jakarta.annotation.Nonnull Boolean isServic * @return isServiceSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsServiceSession() { @@ -257,7 +257,7 @@ public Boolean getIsServiceSession() { } - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsServiceSession(@jakarta.annotation.Nonnull Boolean isServiceSession) { this.isServiceSession = isServiceSession; @@ -274,7 +274,7 @@ public BaseSession isPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumS * @return isPlenumSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsPlenumSession() { @@ -282,7 +282,7 @@ public Boolean getIsPlenumSession() { } - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumSession) { this.isPlenumSession = isPlenumSession; @@ -307,7 +307,7 @@ public BaseSession addCategoryItemsItem(Integer categoryItemsItem) { * @return categoryItems */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategoryItems() { @@ -315,7 +315,7 @@ public List getCategoryItems() { } - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategoryItems(@jakarta.annotation.Nonnull List categoryItems) { this.categoryItems = categoryItems; @@ -332,7 +332,7 @@ public BaseSession roomId(@jakarta.annotation.Nullable Integer roomId) { * @return roomId */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getRoomId() { @@ -340,7 +340,7 @@ public Integer getRoomId() { } - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setRoomId(@jakarta.annotation.Nullable Integer roomId) { this.roomId = roomId; @@ -363,14 +363,14 @@ public URI getLiveUrl() { return liveUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getLiveUrl_JsonNullable() { return liveUrl; } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) public void setLiveUrl_JsonNullable(JsonNullable liveUrl) { this.liveUrl = liveUrl; } @@ -396,14 +396,14 @@ public URI getRecordingUrl() { return recordingUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getRecordingUrl_JsonNullable() { return recordingUrl; } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) public void setRecordingUrl_JsonNullable(JsonNullable recordingUrl) { this.recordingUrl = recordingUrl; } @@ -423,7 +423,7 @@ public BaseSession status(@jakarta.annotation.Nonnull Status status) { * @return status */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Status getStatus() { @@ -431,7 +431,7 @@ public Status getStatus() { } - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStatus(@jakarta.annotation.Nonnull Status status) { this.status = status; @@ -542,7 +542,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -552,7 +552,7 @@ public String toUrlQueryString(String prefix) { // add `title` to the URL query string if (getTitle() != null) { try { - joiner.add(String.format("%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -562,7 +562,7 @@ public String toUrlQueryString(String prefix) { // add `description` to the URL query string if (getDescription() != null) { try { - joiner.add(String.format("%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -572,7 +572,7 @@ public String toUrlQueryString(String prefix) { // add `startsAt` to the URL query string if (getStartsAt() != null) { try { - joiner.add(String.format("%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -582,7 +582,7 @@ public String toUrlQueryString(String prefix) { // add `endsAt` to the URL query string if (getEndsAt() != null) { try { - joiner.add(String.format("%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -592,7 +592,7 @@ public String toUrlQueryString(String prefix) { // add `isServiceSession` to the URL query string if (getIsServiceSession() != null) { try { - joiner.add(String.format("%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -602,7 +602,7 @@ public String toUrlQueryString(String prefix) { // add `isPlenumSession` to the URL query string if (getIsPlenumSession() != null) { try { - joiner.add(String.format("%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -613,8 +613,8 @@ public String toUrlQueryString(String prefix) { if (getCategoryItems() != null) { for (int i = 0; i < getCategoryItems().size(); i++) { try { - joiner.add(String.format("%scategoryItems%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + joiner.add(String.format(java.util.Locale.ROOT, "%scategoryItems%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix), URLEncoder.encode(String.valueOf(getCategoryItems().get(i)), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported @@ -626,7 +626,7 @@ public String toUrlQueryString(String prefix) { // add `roomId` to the URL query string if (getRoomId() != null) { try { - joiner.add(String.format("%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -636,7 +636,7 @@ public String toUrlQueryString(String prefix) { // add `liveUrl` to the URL query string if (getLiveUrl() != null) { try { - joiner.add(String.format("%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -646,7 +646,7 @@ public String toUrlQueryString(String prefix) { // add `recordingUrl` to the URL query string if (getRecordingUrl() != null) { try { - joiner.add(String.format("%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -656,7 +656,7 @@ public String toUrlQueryString(String prefix) { // add `status` to the URL query string if (getStatus() != null) { try { - joiner.add(String.format("%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java index 22e8305a..4d28a9e5 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java @@ -101,7 +101,7 @@ public BaseSpeaker id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -109,7 +109,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -126,7 +126,7 @@ public BaseSpeaker firstName(@jakarta.annotation.Nonnull String firstName) { * @return firstName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFirstName() { @@ -134,7 +134,7 @@ public String getFirstName() { } - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFirstName(@jakarta.annotation.Nonnull String firstName) { this.firstName = firstName; @@ -151,7 +151,7 @@ public BaseSpeaker lastName(@jakarta.annotation.Nonnull String lastName) { * @return lastName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLastName() { @@ -159,7 +159,7 @@ public String getLastName() { } - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLastName(@jakarta.annotation.Nonnull String lastName) { this.lastName = lastName; @@ -182,14 +182,14 @@ public String getBio() { return bio.orElse(null); } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getBio_JsonNullable() { return bio; } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) public void setBio_JsonNullable(JsonNullable bio) { this.bio = bio; } @@ -209,7 +209,7 @@ public BaseSpeaker tagLine(@jakarta.annotation.Nullable String tagLine) { * @return tagLine */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTagLine() { @@ -217,7 +217,7 @@ public String getTagLine() { } - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTagLine(@jakarta.annotation.Nullable String tagLine) { this.tagLine = tagLine; @@ -240,14 +240,14 @@ public URI getProfilePicture() { return profilePicture.orElse(null); } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getProfilePicture_JsonNullable() { return profilePicture; } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) public void setProfilePicture_JsonNullable(JsonNullable profilePicture) { this.profilePicture = profilePicture; } @@ -267,7 +267,7 @@ public BaseSpeaker isTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker * @return isTopSpeaker */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsTopSpeaker() { @@ -275,7 +275,7 @@ public Boolean getIsTopSpeaker() { } - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker) { this.isTopSpeaker = isTopSpeaker; @@ -300,7 +300,7 @@ public BaseSpeaker addLinksItem(Link linksItem) { * @return links */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getLinks() { @@ -308,7 +308,7 @@ public List getLinks() { } - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLinks(@jakarta.annotation.Nonnull List links) { this.links = links; @@ -325,7 +325,7 @@ public BaseSpeaker fullName(@jakarta.annotation.Nonnull String fullName) { * @return fullName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFullName() { @@ -333,7 +333,7 @@ public String getFullName() { } - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFullName(@jakarta.annotation.Nonnull String fullName) { this.fullName = fullName; @@ -438,7 +438,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -448,7 +448,7 @@ public String toUrlQueryString(String prefix) { // add `firstName` to the URL query string if (getFirstName() != null) { try { - joiner.add(String.format("%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -458,7 +458,7 @@ public String toUrlQueryString(String prefix) { // add `lastName` to the URL query string if (getLastName() != null) { try { - joiner.add(String.format("%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -468,7 +468,7 @@ public String toUrlQueryString(String prefix) { // add `bio` to the URL query string if (getBio() != null) { try { - joiner.add(String.format("%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -478,7 +478,7 @@ public String toUrlQueryString(String prefix) { // add `tagLine` to the URL query string if (getTagLine() != null) { try { - joiner.add(String.format("%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -488,7 +488,7 @@ public String toUrlQueryString(String prefix) { // add `profilePicture` to the URL query string if (getProfilePicture() != null) { try { - joiner.add(String.format("%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -498,7 +498,7 @@ public String toUrlQueryString(String prefix) { // add `isTopSpeaker` to the URL query string if (getIsTopSpeaker() != null) { try { - joiner.add(String.format("%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -509,8 +509,8 @@ public String toUrlQueryString(String prefix) { if (getLinks() != null) { for (int i = 0; i < getLinks().size(); i++) { if (getLinks().get(i) != null) { - joiner.add(getLinks().get(i).toUrlQueryString(String.format("%slinks%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getLinks().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%slinks%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -518,7 +518,7 @@ public String toUrlQueryString(String prefix) { // add `fullName` to the URL query string if (getFullName() != null) { try { - joiner.add(String.format("%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java index cbe5b29b..4320953a 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java @@ -62,7 +62,7 @@ public BaseSpeakerEssential id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -70,7 +70,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -87,7 +87,7 @@ public BaseSpeakerEssential firstName(@jakarta.annotation.Nonnull String firstNa * @return firstName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFirstName() { @@ -95,7 +95,7 @@ public String getFirstName() { } - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFirstName(@jakarta.annotation.Nonnull String firstName) { this.firstName = firstName; @@ -112,7 +112,7 @@ public BaseSpeakerEssential lastName(@jakarta.annotation.Nonnull String lastName * @return lastName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLastName() { @@ -120,7 +120,7 @@ public String getLastName() { } - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLastName(@jakarta.annotation.Nonnull String lastName) { this.lastName = lastName; @@ -202,7 +202,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -212,7 +212,7 @@ public String toUrlQueryString(String prefix) { // add `firstName` to the URL query string if (getFirstName() != null) { try { - joiner.add(String.format("%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -222,7 +222,7 @@ public String toUrlQueryString(String prefix) { // add `lastName` to the URL query string if (getLastName() != null) { try { - joiner.add(String.format("%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java index 39f3220b..92a56087 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java @@ -75,7 +75,7 @@ public CategoryAll id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -83,7 +83,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -100,7 +100,7 @@ public CategoryAll sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -108,7 +108,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -125,7 +125,7 @@ public CategoryAll title(@jakarta.annotation.Nonnull String title) { * @return title */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTitle() { @@ -133,7 +133,7 @@ public String getTitle() { } - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; @@ -158,7 +158,7 @@ public CategoryAll addItemsItem(CategoryItemAll itemsItem) { * @return items */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getItems() { @@ -166,7 +166,7 @@ public List getItems() { } - @JsonProperty(JSON_PROPERTY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setItems(@jakarta.annotation.Nonnull List items) { this.items = items; @@ -183,7 +183,7 @@ public CategoryAll type(@jakarta.annotation.Nonnull String type) { * @return type */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TYPE) + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getType() { @@ -191,7 +191,7 @@ public String getType() { } - @JsonProperty(JSON_PROPERTY_TYPE) + @JsonProperty(value = JSON_PROPERTY_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setType(@jakarta.annotation.Nonnull String type) { this.type = type; @@ -277,7 +277,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -287,7 +287,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -297,7 +297,7 @@ public String toUrlQueryString(String prefix) { // add `title` to the URL query string if (getTitle() != null) { try { - joiner.add(String.format("%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -308,8 +308,8 @@ public String toUrlQueryString(String prefix) { if (getItems() != null) { for (int i = 0; i < getItems().size(); i++) { if (getItems().get(i) != null) { - joiner.add(getItems().get(i).toUrlQueryString(String.format("%sitems%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getItems().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%sitems%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -317,7 +317,7 @@ public String toUrlQueryString(String prefix) { // add `type` to the URL query string if (getType() != null) { try { - joiner.add(String.format("%stype%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getType()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stype%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getType()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java index 5a30b354..25b4c7eb 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java @@ -56,7 +56,7 @@ public CategoryItem id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -64,7 +64,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -81,7 +81,7 @@ public CategoryItem name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -89,7 +89,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -169,7 +169,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -179,7 +179,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java index 2d4b31d3..f136109e 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java @@ -61,7 +61,7 @@ public CategoryItemAll id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -69,7 +69,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -86,7 +86,7 @@ public CategoryItemAll name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -94,7 +94,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -111,7 +111,7 @@ public CategoryItemAll sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -119,7 +119,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -201,7 +201,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -211,7 +211,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -221,7 +221,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java index 5eb3b704..10e9f13c 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java @@ -70,7 +70,7 @@ public CategorySession id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -78,7 +78,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -95,7 +95,7 @@ public CategorySession sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -103,7 +103,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -120,7 +120,7 @@ public CategorySession name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -128,7 +128,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -153,7 +153,7 @@ public CategorySession addCategoryItemsItem(CategoryItem categoryItemsItem) { * @return categoryItems */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategoryItems() { @@ -161,7 +161,7 @@ public List getCategoryItems() { } - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategoryItems(@jakarta.annotation.Nonnull List categoryItems) { this.categoryItems = categoryItems; @@ -245,7 +245,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -255,7 +255,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -265,7 +265,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -276,8 +276,8 @@ public String toUrlQueryString(String prefix) { if (getCategoryItems() != null) { for (int i = 0; i < getCategoryItems().size(); i++) { if (getCategoryItems().get(i) != null) { - joiner.add(getCategoryItems().get(i).toUrlQueryString(String.format("%scategoryItems%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getCategoryItems().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%scategoryItems%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java index b3f4a86a..e04b3b64 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java @@ -62,7 +62,7 @@ public Link title(@jakarta.annotation.Nonnull String title) { * @return title */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTitle() { @@ -70,7 +70,7 @@ public String getTitle() { } - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; @@ -87,7 +87,7 @@ public Link url(@jakarta.annotation.Nonnull URI url) { * @return url */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_URL) + @JsonProperty(value = JSON_PROPERTY_URL, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public URI getUrl() { @@ -95,7 +95,7 @@ public URI getUrl() { } - @JsonProperty(JSON_PROPERTY_URL) + @JsonProperty(value = JSON_PROPERTY_URL, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setUrl(@jakarta.annotation.Nonnull URI url) { this.url = url; @@ -112,7 +112,7 @@ public Link linkType(@jakarta.annotation.Nonnull String linkType) { * @return linkType */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LINK_TYPE) + @JsonProperty(value = JSON_PROPERTY_LINK_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLinkType() { @@ -120,7 +120,7 @@ public String getLinkType() { } - @JsonProperty(JSON_PROPERTY_LINK_TYPE) + @JsonProperty(value = JSON_PROPERTY_LINK_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLinkType(@jakarta.annotation.Nonnull String linkType) { this.linkType = linkType; @@ -202,7 +202,7 @@ public String toUrlQueryString(String prefix) { // add `title` to the URL query string if (getTitle() != null) { try { - joiner.add(String.format("%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -212,7 +212,7 @@ public String toUrlQueryString(String prefix) { // add `url` to the URL query string if (getUrl() != null) { try { - joiner.add(String.format("%surl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%surl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -222,7 +222,7 @@ public String toUrlQueryString(String prefix) { // add `linkType` to the URL query string if (getLinkType() != null) { try { - joiner.add(String.format("%slinkType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLinkType()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slinkType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLinkType()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java index 21c4a02a..6e1a27a3 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java @@ -66,7 +66,7 @@ public Question id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -74,7 +74,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -91,7 +91,7 @@ public Question question(@jakarta.annotation.Nonnull String question) { * @return question */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION) + @JsonProperty(value = JSON_PROPERTY_QUESTION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getQuestion() { @@ -99,7 +99,7 @@ public String getQuestion() { } - @JsonProperty(JSON_PROPERTY_QUESTION) + @JsonProperty(value = JSON_PROPERTY_QUESTION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestion(@jakarta.annotation.Nonnull String question) { this.question = question; @@ -116,7 +116,7 @@ public Question questionType(@jakarta.annotation.Nonnull String questionType) { * @return questionType */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_TYPE) + @JsonProperty(value = JSON_PROPERTY_QUESTION_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getQuestionType() { @@ -124,7 +124,7 @@ public String getQuestionType() { } - @JsonProperty(JSON_PROPERTY_QUESTION_TYPE) + @JsonProperty(value = JSON_PROPERTY_QUESTION_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionType(@jakarta.annotation.Nonnull String questionType) { this.questionType = questionType; @@ -141,7 +141,7 @@ public Question sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -149,7 +149,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -233,7 +233,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -243,7 +243,7 @@ public String toUrlQueryString(String prefix) { // add `question` to the URL query string if (getQuestion() != null) { try { - joiner.add(String.format("%squestion%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestion()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%squestion%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestion()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -253,7 +253,7 @@ public String toUrlQueryString(String prefix) { // add `questionType` to the URL query string if (getQuestionType() != null) { try { - joiner.add(String.format("%squestionType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionType()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%squestionType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionType()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -263,7 +263,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java index d2ab5cb3..65396a17 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java @@ -56,7 +56,7 @@ public QuestionAnswer questionId(@jakarta.annotation.Nonnull Integer questionId) * @return questionId */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_ID) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getQuestionId() { @@ -64,7 +64,7 @@ public Integer getQuestionId() { } - @JsonProperty(JSON_PROPERTY_QUESTION_ID) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionId(@jakarta.annotation.Nonnull Integer questionId) { this.questionId = questionId; @@ -81,7 +81,7 @@ public QuestionAnswer answerValue(@jakarta.annotation.Nonnull String answerValue * @return answerValue */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ANSWER_VALUE) + @JsonProperty(value = JSON_PROPERTY_ANSWER_VALUE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getAnswerValue() { @@ -89,7 +89,7 @@ public String getAnswerValue() { } - @JsonProperty(JSON_PROPERTY_ANSWER_VALUE) + @JsonProperty(value = JSON_PROPERTY_ANSWER_VALUE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setAnswerValue(@jakarta.annotation.Nonnull String answerValue) { this.answerValue = answerValue; @@ -169,7 +169,7 @@ public String toUrlQueryString(String prefix) { // add `questionId` to the URL query string if (getQuestionId() != null) { try { - joiner.add(String.format("%squestionId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%squestionId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -179,7 +179,7 @@ public String toUrlQueryString(String prefix) { // add `answerValue` to the URL query string if (getAnswerValue() != null) { try { - joiner.add(String.format("%sanswerValue%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getAnswerValue()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sanswerValue%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getAnswerValue()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java index d0ec5417..7e5f46dd 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java @@ -71,7 +71,7 @@ public QuestionAnswerFull id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -79,7 +79,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -96,7 +96,7 @@ public QuestionAnswerFull question(@jakarta.annotation.Nonnull String question) * @return question */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION) + @JsonProperty(value = JSON_PROPERTY_QUESTION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getQuestion() { @@ -104,7 +104,7 @@ public String getQuestion() { } - @JsonProperty(JSON_PROPERTY_QUESTION) + @JsonProperty(value = JSON_PROPERTY_QUESTION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestion(@jakarta.annotation.Nonnull String question) { this.question = question; @@ -121,7 +121,7 @@ public QuestionAnswerFull questionType(@jakarta.annotation.Nonnull String questi * @return questionType */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_TYPE) + @JsonProperty(value = JSON_PROPERTY_QUESTION_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getQuestionType() { @@ -129,7 +129,7 @@ public String getQuestionType() { } - @JsonProperty(JSON_PROPERTY_QUESTION_TYPE) + @JsonProperty(value = JSON_PROPERTY_QUESTION_TYPE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionType(@jakarta.annotation.Nonnull String questionType) { this.questionType = questionType; @@ -146,7 +146,7 @@ public QuestionAnswerFull answer(@jakarta.annotation.Nullable String answer) { * @return answer */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ANSWER) + @JsonProperty(value = JSON_PROPERTY_ANSWER, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getAnswer() { @@ -154,7 +154,7 @@ public String getAnswer() { } - @JsonProperty(JSON_PROPERTY_ANSWER) + @JsonProperty(value = JSON_PROPERTY_ANSWER, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setAnswer(@jakarta.annotation.Nullable String answer) { this.answer = answer; @@ -171,7 +171,7 @@ public QuestionAnswerFull sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -179,7 +179,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -265,7 +265,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -275,7 +275,7 @@ public String toUrlQueryString(String prefix) { // add `question` to the URL query string if (getQuestion() != null) { try { - joiner.add(String.format("%squestion%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestion()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%squestion%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestion()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -285,7 +285,7 @@ public String toUrlQueryString(String prefix) { // add `questionType` to the URL query string if (getQuestionType() != null) { try { - joiner.add(String.format("%squestionType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionType()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%squestionType%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getQuestionType()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -295,7 +295,7 @@ public String toUrlQueryString(String prefix) { // add `answer` to the URL query string if (getAnswer() != null) { try { - joiner.add(String.format("%sanswer%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getAnswer()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sanswer%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getAnswer()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -305,7 +305,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java index 22c2af15..c7d922d6 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java @@ -61,7 +61,7 @@ public Room id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -69,7 +69,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -86,7 +86,7 @@ public Room name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -94,7 +94,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -111,7 +111,7 @@ public Room sort(@jakarta.annotation.Nonnull Integer sort) { * @return sort */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getSort() { @@ -119,7 +119,7 @@ public Integer getSort() { } - @JsonProperty(JSON_PROPERTY_SORT) + @JsonProperty(value = JSON_PROPERTY_SORT, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; @@ -201,7 +201,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -211,7 +211,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -221,7 +221,7 @@ public String toUrlQueryString(String prefix) { // add `sort` to the URL query string if (getSort() != null) { try { - joiner.add(String.format("%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%ssort%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getSort()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java index bdc016e9..14d1e3d3 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java @@ -139,7 +139,7 @@ public Session id(@jakarta.annotation.Nonnull String id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getId() { @@ -147,7 +147,7 @@ public String getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; @@ -164,7 +164,7 @@ public Session title(@jakarta.annotation.Nonnull String title) { * @return title */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTitle() { @@ -172,7 +172,7 @@ public String getTitle() { } - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; @@ -195,14 +195,14 @@ public String getDescription() { return description.orElse(null); } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getDescription_JsonNullable() { return description; } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) public void setDescription_JsonNullable(JsonNullable description) { this.description = description; } @@ -222,7 +222,7 @@ public Session startsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt) { * @return startsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getStartsAt() { @@ -230,7 +230,7 @@ public OffsetDateTime getStartsAt() { } - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStartsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt) { this.startsAt = startsAt; @@ -247,7 +247,7 @@ public Session endsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { * @return endsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getEndsAt() { @@ -255,7 +255,7 @@ public OffsetDateTime getEndsAt() { } - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setEndsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { this.endsAt = endsAt; @@ -272,7 +272,7 @@ public Session isServiceSession(@jakarta.annotation.Nonnull Boolean isServiceSes * @return isServiceSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsServiceSession() { @@ -280,7 +280,7 @@ public Boolean getIsServiceSession() { } - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsServiceSession(@jakarta.annotation.Nonnull Boolean isServiceSession) { this.isServiceSession = isServiceSession; @@ -297,7 +297,7 @@ public Session isPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumSessi * @return isPlenumSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsPlenumSession() { @@ -305,7 +305,7 @@ public Boolean getIsPlenumSession() { } - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumSession) { this.isPlenumSession = isPlenumSession; @@ -330,7 +330,7 @@ public Session addCategoryItemsItem(Integer categoryItemsItem) { * @return categoryItems */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategoryItems() { @@ -338,7 +338,7 @@ public List getCategoryItems() { } - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategoryItems(@jakarta.annotation.Nonnull List categoryItems) { this.categoryItems = categoryItems; @@ -355,7 +355,7 @@ public Session roomId(@jakarta.annotation.Nullable Integer roomId) { * @return roomId */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getRoomId() { @@ -363,7 +363,7 @@ public Integer getRoomId() { } - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setRoomId(@jakarta.annotation.Nullable Integer roomId) { this.roomId = roomId; @@ -386,14 +386,14 @@ public URI getLiveUrl() { return liveUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getLiveUrl_JsonNullable() { return liveUrl; } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) public void setLiveUrl_JsonNullable(JsonNullable liveUrl) { this.liveUrl = liveUrl; } @@ -419,14 +419,14 @@ public URI getRecordingUrl() { return recordingUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getRecordingUrl_JsonNullable() { return recordingUrl; } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) public void setRecordingUrl_JsonNullable(JsonNullable recordingUrl) { this.recordingUrl = recordingUrl; } @@ -446,7 +446,7 @@ public Session status(@jakarta.annotation.Nonnull Status status) { * @return status */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Status getStatus() { @@ -454,7 +454,7 @@ public Status getStatus() { } - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStatus(@jakarta.annotation.Nonnull Status status) { this.status = status; @@ -477,14 +477,14 @@ public String getRoom() { return room.orElse(null); } - @JsonProperty(JSON_PROPERTY_ROOM) + @JsonProperty(value = JSON_PROPERTY_ROOM, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getRoom_JsonNullable() { return room; } - @JsonProperty(JSON_PROPERTY_ROOM) + @JsonProperty(value = JSON_PROPERTY_ROOM, required = false) public void setRoom_JsonNullable(JsonNullable room) { this.room = room; } @@ -512,7 +512,7 @@ public Session addSpeakersItem(SpeakerMinimal speakersItem) { * @return speakers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSpeakers() { @@ -520,7 +520,7 @@ public List getSpeakers() { } - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSpeakers(@jakarta.annotation.Nonnull List speakers) { this.speakers = speakers; @@ -545,7 +545,7 @@ public Session addQuestionAnswersItem(QuestionAnswerFull questionAnswersItem) { * @return questionAnswers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getQuestionAnswers() { @@ -553,7 +553,7 @@ public List getQuestionAnswers() { } - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionAnswers(@jakarta.annotation.Nonnull List questionAnswers) { this.questionAnswers = questionAnswers; @@ -578,7 +578,7 @@ public Session addCategoriesItem(CategorySession categoriesItem) { * @return categories */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORIES) + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategories() { @@ -586,7 +586,7 @@ public List getCategories() { } - @JsonProperty(JSON_PROPERTY_CATEGORIES) + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategories(@jakarta.annotation.Nonnull List categories) { this.categories = categories; @@ -705,7 +705,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -715,7 +715,7 @@ public String toUrlQueryString(String prefix) { // add `title` to the URL query string if (getTitle() != null) { try { - joiner.add(String.format("%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -725,7 +725,7 @@ public String toUrlQueryString(String prefix) { // add `description` to the URL query string if (getDescription() != null) { try { - joiner.add(String.format("%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -735,7 +735,7 @@ public String toUrlQueryString(String prefix) { // add `startsAt` to the URL query string if (getStartsAt() != null) { try { - joiner.add(String.format("%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -745,7 +745,7 @@ public String toUrlQueryString(String prefix) { // add `endsAt` to the URL query string if (getEndsAt() != null) { try { - joiner.add(String.format("%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -755,7 +755,7 @@ public String toUrlQueryString(String prefix) { // add `isServiceSession` to the URL query string if (getIsServiceSession() != null) { try { - joiner.add(String.format("%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -765,7 +765,7 @@ public String toUrlQueryString(String prefix) { // add `isPlenumSession` to the URL query string if (getIsPlenumSession() != null) { try { - joiner.add(String.format("%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -776,8 +776,8 @@ public String toUrlQueryString(String prefix) { if (getCategoryItems() != null) { for (int i = 0; i < getCategoryItems().size(); i++) { try { - joiner.add(String.format("%scategoryItems%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + joiner.add(String.format(java.util.Locale.ROOT, "%scategoryItems%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix), URLEncoder.encode(String.valueOf(getCategoryItems().get(i)), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported @@ -789,7 +789,7 @@ public String toUrlQueryString(String prefix) { // add `roomId` to the URL query string if (getRoomId() != null) { try { - joiner.add(String.format("%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -799,7 +799,7 @@ public String toUrlQueryString(String prefix) { // add `liveUrl` to the URL query string if (getLiveUrl() != null) { try { - joiner.add(String.format("%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -809,7 +809,7 @@ public String toUrlQueryString(String prefix) { // add `recordingUrl` to the URL query string if (getRecordingUrl() != null) { try { - joiner.add(String.format("%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -819,7 +819,7 @@ public String toUrlQueryString(String prefix) { // add `status` to the URL query string if (getStatus() != null) { try { - joiner.add(String.format("%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -829,7 +829,7 @@ public String toUrlQueryString(String prefix) { // add `room` to the URL query string if (getRoom() != null) { try { - joiner.add(String.format("%sroom%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoom()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sroom%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoom()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -840,8 +840,8 @@ public String toUrlQueryString(String prefix) { if (getSpeakers() != null) { for (int i = 0; i < getSpeakers().size(); i++) { if (getSpeakers().get(i) != null) { - joiner.add(getSpeakers().get(i).toUrlQueryString(String.format("%sspeakers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getSpeakers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%sspeakers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -850,8 +850,8 @@ public String toUrlQueryString(String prefix) { if (getQuestionAnswers() != null) { for (int i = 0; i < getQuestionAnswers().size(); i++) { if (getQuestionAnswers().get(i) != null) { - joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format("%squestionAnswers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%squestionAnswers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -860,8 +860,8 @@ public String toUrlQueryString(String prefix) { if (getCategories() != null) { for (int i = 0; i < getCategories().size(); i++) { if (getCategories().get(i) != null) { - joiner.add(getCategories().get(i).toUrlQueryString(String.format("%scategories%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getCategories().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%scategories%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java index dfbd1544..bc12e0f7 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java @@ -127,7 +127,7 @@ public SessionAll id(@jakarta.annotation.Nonnull String id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getId() { @@ -135,7 +135,7 @@ public String getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull String id) { this.id = id; @@ -152,7 +152,7 @@ public SessionAll title(@jakarta.annotation.Nonnull String title) { * @return title */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTitle() { @@ -160,7 +160,7 @@ public String getTitle() { } - @JsonProperty(JSON_PROPERTY_TITLE) + @JsonProperty(value = JSON_PROPERTY_TITLE, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTitle(@jakarta.annotation.Nonnull String title) { this.title = title; @@ -183,14 +183,14 @@ public String getDescription() { return description.orElse(null); } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getDescription_JsonNullable() { return description; } - @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonProperty(value = JSON_PROPERTY_DESCRIPTION, required = false) public void setDescription_JsonNullable(JsonNullable description) { this.description = description; } @@ -210,7 +210,7 @@ public SessionAll startsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt) * @return startsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getStartsAt() { @@ -218,7 +218,7 @@ public OffsetDateTime getStartsAt() { } - @JsonProperty(JSON_PROPERTY_STARTS_AT) + @JsonProperty(value = JSON_PROPERTY_STARTS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStartsAt(@jakarta.annotation.Nullable OffsetDateTime startsAt) { this.startsAt = startsAt; @@ -235,7 +235,7 @@ public SessionAll endsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { * @return endsAt */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public OffsetDateTime getEndsAt() { @@ -243,7 +243,7 @@ public OffsetDateTime getEndsAt() { } - @JsonProperty(JSON_PROPERTY_ENDS_AT) + @JsonProperty(value = JSON_PROPERTY_ENDS_AT, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setEndsAt(@jakarta.annotation.Nullable OffsetDateTime endsAt) { this.endsAt = endsAt; @@ -260,7 +260,7 @@ public SessionAll isServiceSession(@jakarta.annotation.Nonnull Boolean isService * @return isServiceSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsServiceSession() { @@ -268,7 +268,7 @@ public Boolean getIsServiceSession() { } - @JsonProperty(JSON_PROPERTY_IS_SERVICE_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_SERVICE_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsServiceSession(@jakarta.annotation.Nonnull Boolean isServiceSession) { this.isServiceSession = isServiceSession; @@ -285,7 +285,7 @@ public SessionAll isPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumSe * @return isPlenumSession */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsPlenumSession() { @@ -293,7 +293,7 @@ public Boolean getIsPlenumSession() { } - @JsonProperty(JSON_PROPERTY_IS_PLENUM_SESSION) + @JsonProperty(value = JSON_PROPERTY_IS_PLENUM_SESSION, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsPlenumSession(@jakarta.annotation.Nonnull Boolean isPlenumSession) { this.isPlenumSession = isPlenumSession; @@ -318,7 +318,7 @@ public SessionAll addCategoryItemsItem(Integer categoryItemsItem) { * @return categoryItems */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getCategoryItems() { @@ -326,7 +326,7 @@ public List getCategoryItems() { } - @JsonProperty(JSON_PROPERTY_CATEGORY_ITEMS) + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setCategoryItems(@jakarta.annotation.Nonnull List categoryItems) { this.categoryItems = categoryItems; @@ -343,7 +343,7 @@ public SessionAll roomId(@jakarta.annotation.Nullable Integer roomId) { * @return roomId */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getRoomId() { @@ -351,7 +351,7 @@ public Integer getRoomId() { } - @JsonProperty(JSON_PROPERTY_ROOM_ID) + @JsonProperty(value = JSON_PROPERTY_ROOM_ID, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setRoomId(@jakarta.annotation.Nullable Integer roomId) { this.roomId = roomId; @@ -374,14 +374,14 @@ public URI getLiveUrl() { return liveUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getLiveUrl_JsonNullable() { return liveUrl; } - @JsonProperty(JSON_PROPERTY_LIVE_URL) + @JsonProperty(value = JSON_PROPERTY_LIVE_URL, required = false) public void setLiveUrl_JsonNullable(JsonNullable liveUrl) { this.liveUrl = liveUrl; } @@ -407,14 +407,14 @@ public URI getRecordingUrl() { return recordingUrl.orElse(null); } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getRecordingUrl_JsonNullable() { return recordingUrl; } - @JsonProperty(JSON_PROPERTY_RECORDING_URL) + @JsonProperty(value = JSON_PROPERTY_RECORDING_URL, required = false) public void setRecordingUrl_JsonNullable(JsonNullable recordingUrl) { this.recordingUrl = recordingUrl; } @@ -434,7 +434,7 @@ public SessionAll status(@jakarta.annotation.Nonnull Status status) { * @return status */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Status getStatus() { @@ -442,7 +442,7 @@ public Status getStatus() { } - @JsonProperty(JSON_PROPERTY_STATUS) + @JsonProperty(value = JSON_PROPERTY_STATUS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setStatus(@jakarta.annotation.Nonnull Status status) { this.status = status; @@ -467,7 +467,7 @@ public SessionAll addSpeakersItem(String speakersItem) { * @return speakers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSpeakers() { @@ -475,7 +475,7 @@ public List getSpeakers() { } - @JsonProperty(JSON_PROPERTY_SPEAKERS) + @JsonProperty(value = JSON_PROPERTY_SPEAKERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSpeakers(@jakarta.annotation.Nonnull List speakers) { this.speakers = speakers; @@ -500,7 +500,7 @@ public SessionAll addQuestionAnswersItem(QuestionAnswer questionAnswersItem) { * @return questionAnswers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getQuestionAnswers() { @@ -508,7 +508,7 @@ public List getQuestionAnswers() { } - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionAnswers(@jakarta.annotation.Nonnull List questionAnswers) { this.questionAnswers = questionAnswers; @@ -623,7 +623,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -633,7 +633,7 @@ public String toUrlQueryString(String prefix) { // add `title` to the URL query string if (getTitle() != null) { try { - joiner.add(String.format("%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stitle%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTitle()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -643,7 +643,7 @@ public String toUrlQueryString(String prefix) { // add `description` to the URL query string if (getDescription() != null) { try { - joiner.add(String.format("%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sdescription%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getDescription()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -653,7 +653,7 @@ public String toUrlQueryString(String prefix) { // add `startsAt` to the URL query string if (getStartsAt() != null) { try { - joiner.add(String.format("%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstartsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStartsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -663,7 +663,7 @@ public String toUrlQueryString(String prefix) { // add `endsAt` to the URL query string if (getEndsAt() != null) { try { - joiner.add(String.format("%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sendsAt%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEndsAt()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -673,7 +673,7 @@ public String toUrlQueryString(String prefix) { // add `isServiceSession` to the URL query string if (getIsServiceSession() != null) { try { - joiner.add(String.format("%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisServiceSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsServiceSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -683,7 +683,7 @@ public String toUrlQueryString(String prefix) { // add `isPlenumSession` to the URL query string if (getIsPlenumSession() != null) { try { - joiner.add(String.format("%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisPlenumSession%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsPlenumSession()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -694,8 +694,8 @@ public String toUrlQueryString(String prefix) { if (getCategoryItems() != null) { for (int i = 0; i < getCategoryItems().size(); i++) { try { - joiner.add(String.format("%scategoryItems%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + joiner.add(String.format(java.util.Locale.ROOT, "%scategoryItems%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix), URLEncoder.encode(String.valueOf(getCategoryItems().get(i)), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported @@ -707,7 +707,7 @@ public String toUrlQueryString(String prefix) { // add `roomId` to the URL query string if (getRoomId() != null) { try { - joiner.add(String.format("%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sroomId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRoomId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -717,7 +717,7 @@ public String toUrlQueryString(String prefix) { // add `liveUrl` to the URL query string if (getLiveUrl() != null) { try { - joiner.add(String.format("%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sliveUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLiveUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -727,7 +727,7 @@ public String toUrlQueryString(String prefix) { // add `recordingUrl` to the URL query string if (getRecordingUrl() != null) { try { - joiner.add(String.format("%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%srecordingUrl%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getRecordingUrl()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -737,7 +737,7 @@ public String toUrlQueryString(String prefix) { // add `status` to the URL query string if (getStatus() != null) { try { - joiner.add(String.format("%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sstatus%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getStatus()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -748,8 +748,8 @@ public String toUrlQueryString(String prefix) { if (getSpeakers() != null) { for (int i = 0; i < getSpeakers().size(); i++) { try { - joiner.add(String.format("%sspeakers%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + joiner.add(String.format(java.util.Locale.ROOT, "%sspeakers%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix), URLEncoder.encode(String.valueOf(getSpeakers().get(i)), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported @@ -762,8 +762,8 @@ public String toUrlQueryString(String prefix) { if (getQuestionAnswers() != null) { for (int i = 0; i < getQuestionAnswers().size(); i++) { if (getQuestionAnswers().get(i) != null) { - joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format("%squestionAnswers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%squestionAnswers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java index fa1c7e2f..e538b1db 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java @@ -70,7 +70,7 @@ public SessionGroup groupId(@jakarta.annotation.Nullable Integer groupId) { * @return groupId */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_GROUP_ID) + @JsonProperty(value = JSON_PROPERTY_GROUP_ID, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Integer getGroupId() { @@ -78,7 +78,7 @@ public Integer getGroupId() { } - @JsonProperty(JSON_PROPERTY_GROUP_ID) + @JsonProperty(value = JSON_PROPERTY_GROUP_ID, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public void setGroupId(@jakarta.annotation.Nullable Integer groupId) { this.groupId = groupId; @@ -95,7 +95,7 @@ public SessionGroup groupName(@jakarta.annotation.Nullable String groupName) { * @return groupName */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_GROUP_NAME) + @JsonProperty(value = JSON_PROPERTY_GROUP_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public String getGroupName() { @@ -103,7 +103,7 @@ public String getGroupName() { } - @JsonProperty(JSON_PROPERTY_GROUP_NAME) + @JsonProperty(value = JSON_PROPERTY_GROUP_NAME, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public void setGroupName(@jakarta.annotation.Nullable String groupName) { this.groupName = groupName; @@ -128,7 +128,7 @@ public SessionGroup addSessionsItem(Session sessionsItem) { * @return sessions */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public List getSessions() { @@ -136,7 +136,7 @@ public List getSessions() { } - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public void setSessions(@jakarta.annotation.Nullable List sessions) { this.sessions = sessions; @@ -153,7 +153,7 @@ public SessionGroup isDefault(@jakarta.annotation.Nullable Boolean isDefault) { * @return isDefault */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonProperty(value = JSON_PROPERTY_IS_DEFAULT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public Boolean getIsDefault() { @@ -161,7 +161,7 @@ public Boolean getIsDefault() { } - @JsonProperty(JSON_PROPERTY_IS_DEFAULT) + @JsonProperty(value = JSON_PROPERTY_IS_DEFAULT, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public void setIsDefault(@jakarta.annotation.Nullable Boolean isDefault) { this.isDefault = isDefault; @@ -245,7 +245,7 @@ public String toUrlQueryString(String prefix) { // add `groupId` to the URL query string if (getGroupId() != null) { try { - joiner.add(String.format("%sgroupId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getGroupId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sgroupId%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getGroupId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -255,7 +255,7 @@ public String toUrlQueryString(String prefix) { // add `groupName` to the URL query string if (getGroupName() != null) { try { - joiner.add(String.format("%sgroupName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getGroupName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sgroupName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getGroupName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -266,8 +266,8 @@ public String toUrlQueryString(String prefix) { if (getSessions() != null) { for (int i = 0; i < getSessions().size(); i++) { if (getSessions().get(i) != null) { - joiner.add(getSessions().get(i).toUrlQueryString(String.format("%ssessions%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getSessions().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%ssessions%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -275,7 +275,7 @@ public String toUrlQueryString(String prefix) { // add `isDefault` to the URL query string if (getIsDefault() != null) { try { - joiner.add(String.format("%sisDefault%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsDefault()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisDefault%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsDefault()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java index 21b0acdc..0523786c 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java @@ -56,7 +56,7 @@ public SessionMinimal id(@jakarta.annotation.Nonnull Integer id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Integer getId() { @@ -64,7 +64,7 @@ public Integer getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; @@ -81,7 +81,7 @@ public SessionMinimal name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -89,7 +89,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -169,7 +169,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -179,7 +179,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java index a7a809e1..5c074192 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java @@ -113,7 +113,7 @@ public Speaker id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -121,7 +121,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -138,7 +138,7 @@ public Speaker firstName(@jakarta.annotation.Nonnull String firstName) { * @return firstName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFirstName() { @@ -146,7 +146,7 @@ public String getFirstName() { } - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFirstName(@jakarta.annotation.Nonnull String firstName) { this.firstName = firstName; @@ -163,7 +163,7 @@ public Speaker lastName(@jakarta.annotation.Nonnull String lastName) { * @return lastName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLastName() { @@ -171,7 +171,7 @@ public String getLastName() { } - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLastName(@jakarta.annotation.Nonnull String lastName) { this.lastName = lastName; @@ -194,14 +194,14 @@ public String getBio() { return bio.orElse(null); } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getBio_JsonNullable() { return bio; } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) public void setBio_JsonNullable(JsonNullable bio) { this.bio = bio; } @@ -221,7 +221,7 @@ public Speaker tagLine(@jakarta.annotation.Nullable String tagLine) { * @return tagLine */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTagLine() { @@ -229,7 +229,7 @@ public String getTagLine() { } - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTagLine(@jakarta.annotation.Nullable String tagLine) { this.tagLine = tagLine; @@ -252,14 +252,14 @@ public URI getProfilePicture() { return profilePicture.orElse(null); } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getProfilePicture_JsonNullable() { return profilePicture; } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) public void setProfilePicture_JsonNullable(JsonNullable profilePicture) { this.profilePicture = profilePicture; } @@ -279,7 +279,7 @@ public Speaker isTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker) { * @return isTopSpeaker */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsTopSpeaker() { @@ -287,7 +287,7 @@ public Boolean getIsTopSpeaker() { } - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker) { this.isTopSpeaker = isTopSpeaker; @@ -312,7 +312,7 @@ public Speaker addLinksItem(Link linksItem) { * @return links */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getLinks() { @@ -320,7 +320,7 @@ public List getLinks() { } - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLinks(@jakarta.annotation.Nonnull List links) { this.links = links; @@ -337,7 +337,7 @@ public Speaker fullName(@jakarta.annotation.Nonnull String fullName) { * @return fullName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFullName() { @@ -345,7 +345,7 @@ public String getFullName() { } - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFullName(@jakarta.annotation.Nonnull String fullName) { this.fullName = fullName; @@ -370,7 +370,7 @@ public Speaker addSessionsItem(SessionMinimal sessionsItem) { * @return sessions */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSessions() { @@ -378,7 +378,7 @@ public List getSessions() { } - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSessions(@jakarta.annotation.Nonnull List sessions) { this.sessions = sessions; @@ -403,7 +403,7 @@ public Speaker addQuestionAnswersItem(QuestionAnswerFull questionAnswersItem) { * @return questionAnswers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getQuestionAnswers() { @@ -411,7 +411,7 @@ public List getQuestionAnswers() { } - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionAnswers(@jakarta.annotation.Nonnull List questionAnswers) { this.questionAnswers = questionAnswers; @@ -520,7 +520,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -530,7 +530,7 @@ public String toUrlQueryString(String prefix) { // add `firstName` to the URL query string if (getFirstName() != null) { try { - joiner.add(String.format("%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -540,7 +540,7 @@ public String toUrlQueryString(String prefix) { // add `lastName` to the URL query string if (getLastName() != null) { try { - joiner.add(String.format("%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -550,7 +550,7 @@ public String toUrlQueryString(String prefix) { // add `bio` to the URL query string if (getBio() != null) { try { - joiner.add(String.format("%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -560,7 +560,7 @@ public String toUrlQueryString(String prefix) { // add `tagLine` to the URL query string if (getTagLine() != null) { try { - joiner.add(String.format("%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -570,7 +570,7 @@ public String toUrlQueryString(String prefix) { // add `profilePicture` to the URL query string if (getProfilePicture() != null) { try { - joiner.add(String.format("%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -580,7 +580,7 @@ public String toUrlQueryString(String prefix) { // add `isTopSpeaker` to the URL query string if (getIsTopSpeaker() != null) { try { - joiner.add(String.format("%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -591,8 +591,8 @@ public String toUrlQueryString(String prefix) { if (getLinks() != null) { for (int i = 0; i < getLinks().size(); i++) { if (getLinks().get(i) != null) { - joiner.add(getLinks().get(i).toUrlQueryString(String.format("%slinks%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getLinks().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%slinks%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -600,7 +600,7 @@ public String toUrlQueryString(String prefix) { // add `fullName` to the URL query string if (getFullName() != null) { try { - joiner.add(String.format("%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -611,8 +611,8 @@ public String toUrlQueryString(String prefix) { if (getSessions() != null) { for (int i = 0; i < getSessions().size(); i++) { if (getSessions().get(i) != null) { - joiner.add(getSessions().get(i).toUrlQueryString(String.format("%ssessions%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getSessions().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%ssessions%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -621,8 +621,8 @@ public String toUrlQueryString(String prefix) { if (getQuestionAnswers() != null) { for (int i = 0; i < getQuestionAnswers().size(); i++) { if (getQuestionAnswers().get(i) != null) { - joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format("%squestionAnswers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%squestionAnswers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java index 65cf147b..7f9912ac 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java @@ -112,7 +112,7 @@ public SpeakerAll id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -120,7 +120,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -137,7 +137,7 @@ public SpeakerAll firstName(@jakarta.annotation.Nonnull String firstName) { * @return firstName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFirstName() { @@ -145,7 +145,7 @@ public String getFirstName() { } - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFirstName(@jakarta.annotation.Nonnull String firstName) { this.firstName = firstName; @@ -162,7 +162,7 @@ public SpeakerAll lastName(@jakarta.annotation.Nonnull String lastName) { * @return lastName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLastName() { @@ -170,7 +170,7 @@ public String getLastName() { } - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLastName(@jakarta.annotation.Nonnull String lastName) { this.lastName = lastName; @@ -193,14 +193,14 @@ public String getBio() { return bio.orElse(null); } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getBio_JsonNullable() { return bio; } - @JsonProperty(JSON_PROPERTY_BIO) + @JsonProperty(value = JSON_PROPERTY_BIO, required = false) public void setBio_JsonNullable(JsonNullable bio) { this.bio = bio; } @@ -220,7 +220,7 @@ public SpeakerAll tagLine(@jakarta.annotation.Nullable String tagLine) { * @return tagLine */ @jakarta.annotation.Nullable - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getTagLine() { @@ -228,7 +228,7 @@ public String getTagLine() { } - @JsonProperty(JSON_PROPERTY_TAG_LINE) + @JsonProperty(value = JSON_PROPERTY_TAG_LINE, required = false) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setTagLine(@jakarta.annotation.Nullable String tagLine) { this.tagLine = tagLine; @@ -251,14 +251,14 @@ public URI getProfilePicture() { return profilePicture.orElse(null); } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) public JsonNullable getProfilePicture_JsonNullable() { return profilePicture; } - @JsonProperty(JSON_PROPERTY_PROFILE_PICTURE) + @JsonProperty(value = JSON_PROPERTY_PROFILE_PICTURE, required = false) public void setProfilePicture_JsonNullable(JsonNullable profilePicture) { this.profilePicture = profilePicture; } @@ -278,7 +278,7 @@ public SpeakerAll isTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker) * @return isTopSpeaker */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public Boolean getIsTopSpeaker() { @@ -286,7 +286,7 @@ public Boolean getIsTopSpeaker() { } - @JsonProperty(JSON_PROPERTY_IS_TOP_SPEAKER) + @JsonProperty(value = JSON_PROPERTY_IS_TOP_SPEAKER, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setIsTopSpeaker(@jakarta.annotation.Nonnull Boolean isTopSpeaker) { this.isTopSpeaker = isTopSpeaker; @@ -311,7 +311,7 @@ public SpeakerAll addLinksItem(Link linksItem) { * @return links */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getLinks() { @@ -319,7 +319,7 @@ public List getLinks() { } - @JsonProperty(JSON_PROPERTY_LINKS) + @JsonProperty(value = JSON_PROPERTY_LINKS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLinks(@jakarta.annotation.Nonnull List links) { this.links = links; @@ -336,7 +336,7 @@ public SpeakerAll fullName(@jakarta.annotation.Nonnull String fullName) { * @return fullName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFullName() { @@ -344,7 +344,7 @@ public String getFullName() { } - @JsonProperty(JSON_PROPERTY_FULL_NAME) + @JsonProperty(value = JSON_PROPERTY_FULL_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFullName(@jakarta.annotation.Nonnull String fullName) { this.fullName = fullName; @@ -369,7 +369,7 @@ public SpeakerAll addSessionsItem(Integer sessionsItem) { * @return sessions */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getSessions() { @@ -377,7 +377,7 @@ public List getSessions() { } - @JsonProperty(JSON_PROPERTY_SESSIONS) + @JsonProperty(value = JSON_PROPERTY_SESSIONS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setSessions(@jakarta.annotation.Nonnull List sessions) { this.sessions = sessions; @@ -402,7 +402,7 @@ public SpeakerAll addQuestionAnswersItem(QuestionAnswer questionAnswersItem) { * @return questionAnswers */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public List getQuestionAnswers() { @@ -410,7 +410,7 @@ public List getQuestionAnswers() { } - @JsonProperty(JSON_PROPERTY_QUESTION_ANSWERS) + @JsonProperty(value = JSON_PROPERTY_QUESTION_ANSWERS, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setQuestionAnswers(@jakarta.annotation.Nonnull List questionAnswers) { this.questionAnswers = questionAnswers; @@ -519,7 +519,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -529,7 +529,7 @@ public String toUrlQueryString(String prefix) { // add `firstName` to the URL query string if (getFirstName() != null) { try { - joiner.add(String.format("%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -539,7 +539,7 @@ public String toUrlQueryString(String prefix) { // add `lastName` to the URL query string if (getLastName() != null) { try { - joiner.add(String.format("%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -549,7 +549,7 @@ public String toUrlQueryString(String prefix) { // add `bio` to the URL query string if (getBio() != null) { try { - joiner.add(String.format("%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sbio%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getBio()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -559,7 +559,7 @@ public String toUrlQueryString(String prefix) { // add `tagLine` to the URL query string if (getTagLine() != null) { try { - joiner.add(String.format("%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%stagLine%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getTagLine()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -569,7 +569,7 @@ public String toUrlQueryString(String prefix) { // add `profilePicture` to the URL query string if (getProfilePicture() != null) { try { - joiner.add(String.format("%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sprofilePicture%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getProfilePicture()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -579,7 +579,7 @@ public String toUrlQueryString(String prefix) { // add `isTopSpeaker` to the URL query string if (getIsTopSpeaker() != null) { try { - joiner.add(String.format("%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sisTopSpeaker%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getIsTopSpeaker()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -590,8 +590,8 @@ public String toUrlQueryString(String prefix) { if (getLinks() != null) { for (int i = 0; i < getLinks().size(); i++) { if (getLinks().get(i) != null) { - joiner.add(getLinks().get(i).toUrlQueryString(String.format("%slinks%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getLinks().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%slinks%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } @@ -599,7 +599,7 @@ public String toUrlQueryString(String prefix) { // add `fullName` to the URL query string if (getFullName() != null) { try { - joiner.add(String.format("%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfullName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFullName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -610,8 +610,8 @@ public String toUrlQueryString(String prefix) { if (getSessions() != null) { for (int i = 0; i < getSessions().size(); i++) { try { - joiner.add(String.format("%ssessions%s%s=%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix), + joiner.add(String.format(java.util.Locale.ROOT, "%ssessions%s%s=%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix), URLEncoder.encode(String.valueOf(getSessions().get(i)), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported @@ -624,8 +624,8 @@ public String toUrlQueryString(String prefix) { if (getQuestionAnswers() != null) { for (int i = 0; i < getQuestionAnswers().size(); i++) { if (getQuestionAnswers().get(i) != null) { - joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format("%squestionAnswers%s%s", prefix, suffix, - "".equals(suffix) ? "" : String.format("%s%d%s", containerPrefix, i, containerSuffix)))); + joiner.add(getQuestionAnswers().get(i).toUrlQueryString(String.format(java.util.Locale.ROOT, "%squestionAnswers%s%s", prefix, suffix, + "".equals(suffix) ? "" : String.format(java.util.Locale.ROOT, "%s%d%s", containerPrefix, i, containerSuffix)))); } } } diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java index 320165bd..5ee124e6 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java @@ -57,7 +57,7 @@ public SpeakerMinimal id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -65,7 +65,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -82,7 +82,7 @@ public SpeakerMinimal name(@jakarta.annotation.Nonnull String name) { * @return name */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getName() { @@ -90,7 +90,7 @@ public String getName() { } - @JsonProperty(JSON_PROPERTY_NAME) + @JsonProperty(value = JSON_PROPERTY_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; @@ -170,7 +170,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -180,7 +180,7 @@ public String toUrlQueryString(String prefix) { // add `name` to the URL query string if (getName() != null) { try { - joiner.add(String.format("%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sname%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java index 982bc75c..9a55d90e 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java @@ -67,7 +67,7 @@ public SpeakerWithEmail id(@jakarta.annotation.Nonnull UUID id) { * @return id */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public UUID getId() { @@ -75,7 +75,7 @@ public UUID getId() { } - @JsonProperty(JSON_PROPERTY_ID) + @JsonProperty(value = JSON_PROPERTY_ID, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setId(@jakarta.annotation.Nonnull UUID id) { this.id = id; @@ -92,7 +92,7 @@ public SpeakerWithEmail firstName(@jakarta.annotation.Nonnull String firstName) * @return firstName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getFirstName() { @@ -100,7 +100,7 @@ public String getFirstName() { } - @JsonProperty(JSON_PROPERTY_FIRST_NAME) + @JsonProperty(value = JSON_PROPERTY_FIRST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setFirstName(@jakarta.annotation.Nonnull String firstName) { this.firstName = firstName; @@ -117,7 +117,7 @@ public SpeakerWithEmail lastName(@jakarta.annotation.Nonnull String lastName) { * @return lastName */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getLastName() { @@ -125,7 +125,7 @@ public String getLastName() { } - @JsonProperty(JSON_PROPERTY_LAST_NAME) + @JsonProperty(value = JSON_PROPERTY_LAST_NAME, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setLastName(@jakarta.annotation.Nonnull String lastName) { this.lastName = lastName; @@ -142,7 +142,7 @@ public SpeakerWithEmail email(@jakarta.annotation.Nonnull String email) { * @return email */ @jakarta.annotation.Nonnull - @JsonProperty(JSON_PROPERTY_EMAIL) + @JsonProperty(value = JSON_PROPERTY_EMAIL, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public String getEmail() { @@ -150,7 +150,7 @@ public String getEmail() { } - @JsonProperty(JSON_PROPERTY_EMAIL) + @JsonProperty(value = JSON_PROPERTY_EMAIL, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) public void setEmail(@jakarta.annotation.Nonnull String email) { this.email = email; @@ -234,7 +234,7 @@ public String toUrlQueryString(String prefix) { // add `id` to the URL query string if (getId() != null) { try { - joiner.add(String.format("%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sid%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getId()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -244,7 +244,7 @@ public String toUrlQueryString(String prefix) { // add `firstName` to the URL query string if (getFirstName() != null) { try { - joiner.add(String.format("%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%sfirstName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getFirstName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -254,7 +254,7 @@ public String toUrlQueryString(String prefix) { // add `lastName` to the URL query string if (getLastName() != null) { try { - joiner.add(String.format("%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%slastName%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getLastName()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); @@ -264,7 +264,7 @@ public String toUrlQueryString(String prefix) { // add `email` to the URL query string if (getEmail() != null) { try { - joiner.add(String.format("%semail%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEmail()), "UTF-8").replaceAll("\\+", "%20"))); + joiner.add(String.format(java.util.Locale.ROOT, "%semail%s=%s", prefix, suffix, URLEncoder.encode(String.valueOf(getEmail()), "UTF-8").replaceAll("\\+", "%20"))); } catch (UnsupportedEncodingException e) { // Should never happen, UTF-8 is always supported throw new RuntimeException(e); diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java index 2320008c..da33e2e1 100644 --- a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java +++ b/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java @@ -76,7 +76,7 @@ public String toUrlQueryString(String prefix) { prefix = ""; } - return String.format("%s=%s", prefix, this.toString()); + return String.format(java.util.Locale.ROOT, "%s=%s", prefix, this.toString()); } } From 9996550d1c735a71723a09685726e9095c1fadd4 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 19 Jan 2026 09:45:30 +0100 Subject: [PATCH 141/141] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26009653..c24cb6e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 1.2.8 +* Regenerated code with latest OpenApi Generator version +* Updated dependencies + # 1.2.7 * Migrated deployment to _Sonatype Maven Central Portal_ [#155](https://github.com/xdev-software/standard-maven-template/issues/155) * Updated dependencies