From eb3f2dcba48be3c3332543c1b725f8515e4614c4 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 5 Aug 2026 12:38:15 +0200 Subject: [PATCH 01/64] Update to Jackson to v3 --- template-placeholder/pom.xml | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3983be5..e204553 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -51,18 +51,6 @@ src/generated/java - - - - com.fasterxml.jackson - jackson-bom - 2.22.1 - pom - import - - - - @@ -73,20 +61,9 @@ - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-annotations - - - com.fasterxml.jackson.core + tools.jackson.core jackson-databind - - - com.fasterxml.jackson.datatype - jackson-datatype-jsr310 + 3.2.1 org.openapitools @@ -342,6 +319,7 @@ true true + true false From 867b1fef77e8a7f8b1063ee5c227c437a752378f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 7 Aug 2026 04:01:16 +0000 Subject: [PATCH 02/64] Update shogo82148/actions-create-release digest to 8674c0e --- .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 6133d1a..dc0033e 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@6a396031bc74c57403da1018fec74d24c6aa03cd # v1 + uses: shogo82148/actions-create-release@8674c0ecee617c8dfb006526bcc22a362c70b88a # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From 9be12abd04f2ef265cddf8e6a09762b1f86e3311 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 10 Aug 2026 03:36:47 +0000 Subject: [PATCH 03/64] Update dependency com.puppycrawl.tools:checkstyle to v13.10.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 333c1c2..30343dc 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.9.0 + 13.10.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 202e05b..15881e9 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.9.0 + 13.10.0 From 64dedb0ed09bc0cc2f17f45e63a5b59bc0666ebd Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Thu, 20 Aug 2026 11:44:21 +0200 Subject: [PATCH 04/64] Add hint to additional information that people can include screenshots or video recordings if they wish --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 033bcdb..24f2519 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -61,4 +61,4 @@ body: attributes: label: Additional information description: | - Any other relevant information you'd like to include + Any other relevant information you'd like to include, e.g. screenshots or video recordings of the bug From 93bd66d271838bff4ba3faef24b75bb1d6ae2d88 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 25 Aug 2026 03:20:40 +0000 Subject: [PATCH 05/64] Update actions/setup-java action to v6 --- .github/workflows/check-build.yml | 6 +++--- .github/workflows/release.yml | 8 ++++---- .github/workflows/test-deploy.yml | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 0cd2d9b..da6afa9 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -34,7 +34,7 @@ jobs: - uses: actions/checkout@v7 - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} @@ -87,7 +87,7 @@ jobs: - uses: actions/checkout@v7 - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} @@ -123,7 +123,7 @@ jobs: - uses: actions/checkout@v7 - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: distribution: ${{ matrix.distribution }} java-version: ${{ matrix.java }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index dc0033e..3ce89fc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@v7 - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: java-version: '17' distribution: 'temurin' @@ -124,7 +124,7 @@ jobs: git pull - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: # running setup-java overwrites the settings.xml distribution: 'temurin' java-version: '17' @@ -141,7 +141,7 @@ jobs: MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: # running setup-java again overwrites the settings.xml distribution: 'temurin' java-version: '17' @@ -172,7 +172,7 @@ jobs: git pull - name: Setup - Java - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: java-version: '17' distribution: 'temurin' diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 96e5d2a..9f66506 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v7 - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: # running setup-java overwrites the settings.xml distribution: 'temurin' java-version: '17' @@ -31,7 +31,7 @@ jobs: MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Set up JDK - uses: actions/setup-java@v5 + uses: actions/setup-java@v6 with: # running setup-java again overwrites the settings.xml distribution: 'temurin' java-version: '17' From ee3a9cbc799f72be8e50cf7039955f0aeb272f0c Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 31 Aug 2026 08:55:55 +0200 Subject: [PATCH 06/64] Add new CheckStyle rules for v14 --- .config/checkstyle/checkstyle.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index b585880..cd40139 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -65,6 +65,7 @@ + @@ -144,6 +145,7 @@ + From 501e65a2c7340ea27e8e06046b62e531a07b6843 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 1 Sep 2026 03:04:23 +0000 Subject: [PATCH 07/64] Update dependency com.mycila:license-maven-plugin to v5.1.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 15881e9..f449e8b 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -68,7 +68,7 @@ com.mycila license-maven-plugin - 5.1.1 + 5.1.2 ${project.organization.url} From 70c35248d434103e6aca58a78595c3a5e136eeb1 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 1 Sep 2026 03:04:27 +0000 Subject: [PATCH 08/64] Update net.sourceforge.pmd to v7.27.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 30343dc..3706fdd 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.26.0 + 7.27.0 net.sourceforge.pmd pmd-java - 7.26.0 + 7.27.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 15881e9..f204888 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.26.0 + 7.27.0 net.sourceforge.pmd pmd-java - 7.26.0 + 7.27.0 From 77fb7552e27b74d6399f3b08cd4516adbb5e2830 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 1 Sep 2026 03:04:29 +0000 Subject: [PATCH 09/64] Update dependency com.puppycrawl.tools:checkstyle to v14 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 30343dc..cb336fe 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.10.0 + 14.1.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 15881e9..71687b4 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.10.0 + 14.1.0 From 3070996074a88089b368915929aa397db28a84a4 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 1 Sep 2026 16:45:03 +0200 Subject: [PATCH 10/64] PMD 7.27: Fix deprecation --- .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 8dde42b..4c72bf2 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -169,7 +169,7 @@ - + From 5102f75ef1bc31c3e9dbc03df09e71cfbf1ae785 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 2 Sep 2026 03:07:21 +0000 Subject: [PATCH 11/64] Update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6.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 6451e90..eb2db5d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -56,7 +56,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.6.3 + 5.6.4 From 1b954fd2066bed43ce52bcdfc024255e275e5899 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 2 Sep 2026 03:07:24 +0000 Subject: [PATCH 12/64] Update dependency tools.jackson.core:jackson-databind to v3.2.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 6451e90..7d250a3 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -63,7 +63,7 @@ tools.jackson.core jackson-databind - 3.2.1 + 3.2.2 org.openapitools From 58e952e206c93ecdf6b30ed67e878eaecf6cffdc Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 3 Sep 2026 04:05:38 +0000 Subject: [PATCH 13/64] Update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.16.0 --- 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 166f4a8..3712ab4 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -59,7 +59,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.15.0 + 3.16.0 ${maven.compiler.release} diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 6451e90..a25ccfb 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -126,7 +126,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.15.0 + 3.16.0 ${maven.compiler.release} From f47f393b13c6e120a6a22e18c63d3e04e304441b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 12 Sep 2026 03:03:24 +0000 Subject: [PATCH 14/64] Update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.6.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 6451e90..74f47b7 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -170,7 +170,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.6.1 + 3.6.2 generate-sources From ac8a7771515093356b32850b5f7fb8e677a4bc3b Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 15 Sep 2026 16:55:56 +0200 Subject: [PATCH 15/64] Add centralized contribution guide with AI policy attached to it Context: https://github.com/xdev-software/github/issues/41 `DEVELOPING.md` is meant for project specific development instructions e.g. what is required for building, releasing and so on --- CONTRIBUTING.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ DEVELOPING.md | 0 2 files changed, 56 insertions(+) create mode 100644 CONTRIBUTING.md create mode 100644 DEVELOPING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0dfa56b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,56 @@ +# Contributing + +We would absolutely love to get the community involved and we welcome any form of contributions - comments and questions, issues, pull request and anything that you build and share using our project. + +## Communication channels +* Communication is primarily done using issues. +* If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services-products/support). +* As a last resort measure or on otherwise important matter you may also [contact us directly](https://xdev.software/en/about-us/contact). + +## Ways to help +* **Report bugs**
Create an issue and send a pull request +* **Send pull requests**
If you want to contribute code, check out the development instructions below. + * However when contributing larger new features, please first discuss the change you wish to make via issue with the owners of this repository before making it.
Otherwise your work might be rejected and your effort was pointless. + * Please also note that your pull request might not be noticed immediately when it's not attached to an issue. + +We also encourage you to read the [contribution instructions by GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project). + +## Developing + +Project specific development instructions can be found in [DEVELOPING.md](./DEVELOPING.md) + + +## On AI use / LLM generated content + +_Our reason for the strict policy is due to [unqualified people using the technology](https://en.wikipedia.org/wiki/AI_slop)._ + +This policy was inspired by the AI policies of `curl`, `MESA`, `matplotlib` and `Ghostty`. + +### Issues and security reports + +If you asked an AI tool to find problems in the project, you must make sure to reveal this fact in your issue. + +You must also double-check the findings carefully before reporting them to us to validate that the issue is indeed existing and working exactly as the AI says. AI-based tools frequently generate inaccurate or fabricated results. + +Further: It is rarely a good idea to copy and paste an AI generated report to the project. Those are typically too wordy and rarely to the point - in addition to the common fabricated details.
+If you actually find a problem with an AI and you have verified it yourself to be true: Write the issue/report yourself and explain the problem as you have learned it. This makes sure the AI-generated inaccuracies and invented issues are filtered out early before they waste more people's time. + +As we take security reports seriously, we investigate each report with priority. This work is both time and energy consuming and pulls us away from doing other meaningful work. Fake and otherwise made up security problems effectively prevent us from doing real project work and make us waste time and resources. + +We will ban and report users who submit made up fake reports. + +### Pull requests + +When contributing content to the project, you give us permission to use it as-is and you must make sure you are allowed to distribute it to us. By submitting a change to us, you agree that the changes can and should be adopted and get redistributed under the project's license. Authors should be explicitly aware that the burden is on them to ensure no unlicensed code is submitted to the project. + +This is independent if AI is used or not. + +When contributing a pull request you should of course always make sure that the proposal is good quality and a best effort that follows our guidelines. A basic rule of thumb is that if someone can spot that the contribution was made with the help of AI, you have more work to do. + +We can accept code written with the help of AI into the project, but the code must still follow coding standards, be written clearly and adhere to all the normal requirements we have. + +### Further notices + +* External AI tooling (e.g. bots, agents) directly interacting with the project - without a human - are not allowed and will be banned and reported. +* For commit messages the same guidelines as described above for issues apply - fully generated messages are not allowed. +* AI assisted/generated commits can NOT use the `Co-authored-by` tag as this is reserved for humans - use `Assisted-by` instead. diff --git a/DEVELOPING.md b/DEVELOPING.md new file mode 100644 index 0000000..e69de29 From 1cb7ab0211196cbd5516b66479f3b8effc844758 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 13:06:10 +0200 Subject: [PATCH 16/64] Update renovate.json5 --- renovate.json5 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/renovate.json5 b/renovate.json5 index 2874d45..1e1f3c0 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -2,6 +2,16 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "rebaseWhen": "behind-base-branch", "packageRules": [ + { + "description": "Don't manage Java version in actions", + "matchDepTypes": [ + "uses-with" + ], + "matchDatasources": [ + "java-version" + ], + "enabled": false + }, { "description": "Ignore project internal dependencies", "packagePattern": "^software.xdev:template-placeholder", From 8a4f1728f3a93e72f7d0ff379c0c6bef7f9e4370 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 13:15:26 +0200 Subject: [PATCH 17/64] Fix typo and reword --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0dfa56b..54d09e0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,4 +53,4 @@ We can accept code written with the help of AI into the project, but the code mu * External AI tooling (e.g. bots, agents) directly interacting with the project - without a human - are not allowed and will be banned and reported. * For commit messages the same guidelines as described above for issues apply - fully generated messages are not allowed. -* AI assisted/generated commits can NOT use the `Co-authored-by` tag as this is reserved for humans - use `Assisted-by` instead. +* AI assisted/generated commits can NOT use the `Co-authored-by` tag as this is reserved for humans - use `Assisted-by`/`Generated-by` instead. From 54a6f6050493e325bab4584dd507df720c859f3e Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 13:29:06 +0200 Subject: [PATCH 18/64] Fill in DEVELOPING.md --- DEVELOPING.md | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/DEVELOPING.md b/DEVELOPING.md index e69de29..a852082 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -0,0 +1,56 @@ +### Software Requirements +You should have the following things installed: +* Git +* 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/tools/wrapper/) is shipped with the repo) + +### Recommended setup +* Install `IntelliJ` + * Recommended setup actions + * Disable not needed plugins + * Disable [telemetry](https://www.jetbrains.com/help/idea/settings-usage-statistics.html) + * Configure the available memory + * Import the project + * You will get prompted to install the required plugins + * Ensure that everything is encoded in `UTF-8` + * Ensure that the JDK/Java-Version is correct + + +## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml) + +Before releasing: +* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing. +* Check the [changelog](CHANGELOG.md) + +If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes + +When the release is finished do the following: +* Merge the auto-generated PR (with the incremented version number) back into the ``develop`` + +### Release failures + +There are 2 modes of release failure: +1. The remote server was e.g. down and non of the artifacts got published +2. There was a build failure during release and only parts of the artifacts got released + +In case 1 we can re-release the existing version,
in case 2 we have to release a new version when we can't get the artifacts deleted (as is the case with Maven Central) + +#### How-to: Re-Releasing an existing version + +1. Delete the release on GitHub +2. Delete the release Git tag from the repo (locally and remote!) +3. Delete the ``master``-Branch and re-create it from the ``develop`` branch (or reset it to the state before the release-workflow commits have been done) + * This requires __temporarily__ removing the branch protection + * Once this was done a new release is triggered immediately! + +#### How-to: Releasing a new version + +1. Merge the ``master`` branch back into ``develop`` (or another temporary branch) +2. Make sure all master branch versions are prepared for a new release
e.g. if the broken release was ``1.0.0`` the version should now be at ``1.0.1-SNAPSHOT`` - the ``SNAPSHOT`` is important for the workflow! +3. Mark the broken release as broken e.g. inside the Changelog, GitHub Release page, etc.
+You can use something like this: + ``` + > [!WARNING] + > This release is broken as my cat accidentally clicked the abort button during the process + ``` +4. Merge the changes back into the ``master`` branch to trigger a new release From 8fcd26b21e515237ff65ce7401613e1c7e9552dc Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 13:50:52 +0200 Subject: [PATCH 19/64] Use the power of parallelization in GHA --- .github/workflows/check-build.yml | 27 ++++++++++++++------------- .github/workflows/release.yml | 29 +++++++++++++++-------------- 2 files changed, 29 insertions(+), 27 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index da6afa9..1b75608 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -33,19 +33,20 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK - uses: actions/setup-java@v6 - with: - distribution: ${{ matrix.distribution }} - java-version: ${{ matrix.java }} - - - name: Cache Maven - uses: actions/cache@v6 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-mvn-build- + - parallel: + - name: Set up JDK + uses: actions/setup-java@v6 + with: + distribution: ${{ matrix.distribution }} + java-version: ${{ matrix.java }} + + - name: Cache Maven + uses: actions/cache@v6 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-mvn-build- - name: Build with Maven run: ./mvnw -B clean package diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ce89fc..008ec2c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,20 +20,21 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK - uses: actions/setup-java@v6 - with: - java-version: '17' - distribution: 'temurin' - - # Try to reuse existing cache from check-build - - name: Try restore Maven Cache - uses: actions/cache/restore@v6 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-mvn-build- + - parallel: + - name: Set up JDK + uses: actions/setup-java@v6 + with: + java-version: '17' + distribution: 'temurin' + + # Try to reuse existing cache from check-build + - name: Try restore Maven Cache + uses: actions/cache/restore@v6 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-mvn-build- - name: Build with Maven run: ./mvnw -B clean package -T2C From 66af1c957676f95efbf71147ea909ee2638de5f4 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 13:53:53 +0200 Subject: [PATCH 20/64] Use parallelization in GHA --- .github/workflows/check-build.yml | 78 ++++++++++++++++--------------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 1b75608..c28c5ea 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -87,27 +87,28 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK - uses: actions/setup-java@v6 - with: - distribution: ${{ matrix.distribution }} - java-version: ${{ matrix.java }} + - parallel: + - name: Set up JDK + uses: actions/setup-java@v6 + with: + distribution: ${{ matrix.distribution }} + java-version: ${{ matrix.java }} - - name: Cache Maven - uses: actions/cache@v6 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-mvn-checkstyle-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-mvn-checkstyle- + - name: Cache Maven + uses: actions/cache@v6 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-mvn-checkstyle-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-mvn-checkstyle- - - name: CheckStyle Cache - uses: actions/cache@v6 - with: - path: '**/target/checkstyle-cachefile' - key: ${{ runner.os }}-checkstyle-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-checkstyle- + - name: CheckStyle Cache + uses: actions/cache@v6 + with: + path: '**/target/checkstyle-cachefile' + key: ${{ runner.os }}-checkstyle-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-checkstyle- - name: Run Checkstyle run: ./mvnw -B checkstyle:check -P checkstyle -T2C @@ -123,27 +124,28 @@ jobs: steps: - uses: actions/checkout@v7 - - name: Set up JDK - uses: actions/setup-java@v6 - with: - distribution: ${{ matrix.distribution }} - java-version: ${{ matrix.java }} + - parallel: + - name: Set up JDK + uses: actions/setup-java@v6 + with: + distribution: ${{ matrix.distribution }} + java-version: ${{ matrix.java }} - - name: Cache Maven - uses: actions/cache@v6 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-mvn-pmd-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-mvn-pmd- + - name: Cache Maven + uses: actions/cache@v6 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-mvn-pmd-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-mvn-pmd- - - name: PMD Cache - uses: actions/cache@v6 - with: - path: '**/target/pmd/pmd.cache' - key: ${{ runner.os }}-pmd-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-pmd- + - name: PMD Cache + uses: actions/cache@v6 + with: + path: '**/target/pmd/pmd.cache' + key: ${{ runner.os }}-pmd-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-pmd- - name: Run PMD run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -DskipTests -T2C From 5fca13464538fa3e76c2c373851488c2945f515f Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 16 Sep 2026 14:17:15 +0200 Subject: [PATCH 21/64] Remove dynamically inserted project --- DEVELOPING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DEVELOPING.md b/DEVELOPING.md index a852082..10d175e 100644 --- a/DEVELOPING.md +++ b/DEVELOPING.md @@ -16,16 +16,16 @@ You should have the following things installed: * Ensure that the JDK/Java-Version is correct -## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml) +## Releasing Before releasing: -* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing. +* Consider doing a `test-deployment` before actually releasing. * Check the [changelog](CHANGELOG.md) -If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes +If the `develop` is ready for release, create a pull request to the `master`-Branch and merge the changes When the release is finished do the following: -* Merge the auto-generated PR (with the incremented version number) back into the ``develop`` +* Merge the auto-generated PR (with the incremented version number) back into the `develop` ### Release failures From 674e85b2c6b4bfaa07f10c8ddd55b3c42196ed95 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 11:41:37 +0200 Subject: [PATCH 22/64] Move poms --- .../template-placeholder-demo}/pom.xml | 0 {template-placeholder => src/template-placeholder}/pom.xml | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename {template-placeholder-demo => demos/template-placeholder-demo}/pom.xml (100%) rename {template-placeholder => src/template-placeholder}/pom.xml (100%) diff --git a/template-placeholder-demo/pom.xml b/demos/template-placeholder-demo/pom.xml similarity index 100% rename from template-placeholder-demo/pom.xml rename to demos/template-placeholder-demo/pom.xml diff --git a/template-placeholder/pom.xml b/src/template-placeholder/pom.xml similarity index 100% rename from template-placeholder/pom.xml rename to src/template-placeholder/pom.xml From 93e85d1b8f55a032a0b738105747f654e0680c32 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 11:45:24 +0200 Subject: [PATCH 23/64] Migrate root pom --- pom.xml | 52 +++++++++++++++++++++++++++----- src/template-placeholder/pom.xml | 37 ----------------------- 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/pom.xml b/pom.xml index a8116cf..b4ded46 100644 --- a/pom.xml +++ b/pom.xml @@ -5,25 +5,43 @@ 4.0.0 software.xdev - template-placeholder-root + root 1.0.0-SNAPSHOT pom - - XDEV Software - https://xdev.software - - - template-placeholder - template-placeholder-demo + src + demos + 17 + ${javaVersion} + UTF-8 UTF-8 + + https://github.com/xdev-software/template-placeholder + scm:git:https://github.com/xdev-software/template-placeholder.git + + + 2026 + + + XDEV Software + https://xdev.software + + + + + XDEV Software + XDEV Software + https://xdev.software + + + Apache-2.0 @@ -32,6 +50,24 @@ + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.16.0 + + ${maven.compiler.release} + + -proc:none + + + + + + + checkstyle diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index f4755ca..d8eb440 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -11,43 +11,6 @@ template-placeholder template-placeholder - https://github.com/xdev-software/template-placeholder - - - https://github.com/xdev-software/template-placeholder - scm:git:https://github.com/xdev-software/template-placeholder.git - - - 2023 - - - XDEV Software - https://xdev.software - - - - - XDEV Software - XDEV Software - https://xdev.software - - - - - - Apache-2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - 17 - ${javaVersion} - - UTF-8 - UTF-8 - From 5d6bf82ed96dc205d770041445771355efe50c1d Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 11:54:32 +0200 Subject: [PATCH 24/64] Create src pom.xml and hand over control to it --- src/pom.xml | 276 +++++++++++++++++++++++++++++++ src/skip-publish.marker | 0 src/template-placeholder/pom.xml | 235 +------------------------- 3 files changed, 282 insertions(+), 229 deletions(-) create mode 100644 src/pom.xml create mode 100644 src/skip-publish.marker diff --git a/src/pom.xml b/src/pom.xml new file mode 100644 index 0000000..f3e85b5 --- /dev/null +++ b/src/pom.xml @@ -0,0 +1,276 @@ + + + 4.0.0 + + + software.xdev + root + 1.0.0-SNAPSHOT + + + src + pom + + + template-placeholder + + + + + + + org.apache.maven.plugins + maven-site-plugin + 4.0.0-M16 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.9.0 + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.12.0 + + + org.apache.maven.plugins + maven-source-plugin + 3.4.0 + + + + org.apache.maven.plugins + maven-install-plugin + 3.1.4 + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.4 + + + + org.codehaus.mojo + flatten-maven-plugin + 1.8.0 + + + org.apache.maven.plugins + maven-gpg-plugin + 3.2.8 + + + org.sonatype.central + central-publishing-maven-plugin + 0.11.0 + + + + + + com.mycila + license-maven-plugin + 5.1.2 + + + ${project.organization.url} + + + +
com/mycila/maven/plugin/license/templates/APACHE-2.txt
+ + src/main/java/** + src/test/java/** + +
+
+
+ + + first + + format + + process-sources + + +
+ + + org.apache.maven.plugins + maven-javadoc-plugin + + + attach-javadocs + package + + jar + + + + + true + none + + + + org.apache.maven.plugins + maven-source-plugin + + + attach-sources + package + + jar-no-fork + + + + +
+
+ + + do-not-publish-this + + + skip-publish.marker + + + + + + org.codehaus.mojo + flatten-maven-plugin + + true + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + true + + + + org.apache.maven.plugins + maven-source-plugin + + true + + + + + maven-install-plugin + + true + + + + maven-deploy-plugin + + true + + + + + org.apache.maven.plugins + maven-gpg-plugin + + true + + + + org.sonatype.central + central-publishing-maven-plugin + + true + + + + + + + pmd + + true + + + + publish + + true + true + + + + + org.codehaus.mojo + flatten-maven-plugin + + ossrh + + + + flatten + process-resources + + flatten + + + + + + org.apache.maven.plugins + maven-gpg-plugin + + + sign-artifacts + verify + + sign + + + + + + --pinentry-mode + loopback + + + + + + + + + + publish-sonatype-central-portal + + + + org.sonatype.central + central-publishing-maven-plugin + true + + sonatype-central-portal + true + + + + + + + site + + true + true + + + +
diff --git a/src/skip-publish.marker b/src/skip-publish.marker new file mode 100644 index 0000000..e69de29 diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index d8eb440..4df605f 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -4,239 +4,16 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - software.xdev + + software.xdev + src + 1.0.0-SNAPSHOT + + template-placeholder - 1.0.0-SNAPSHOT jar template-placeholder template-placeholder - - - - - org.apache.maven.plugins - maven-site-plugin - 4.0.0-M16 - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 3.9.0 - - - - - - com.mycila - license-maven-plugin - 5.1.2 - - - ${project.organization.url} - - - -
com/mycila/maven/plugin/license/templates/APACHE-2.txt
- - src/main/java/** - src/test/java/** - -
-
-
- - - first - - format - - process-sources - - -
- - - org.apache.maven.plugins - maven-compiler-plugin - 3.15.0 - - ${maven.compiler.release} - - -proc:none - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.12.0 - - - attach-javadocs - package - - jar - - - - - true - none - - - - org.apache.maven.plugins - maven-source-plugin - 3.4.0 - - - attach-sources - package - - jar-no-fork - - - - -
-
- - - publish - - - - org.codehaus.mojo - flatten-maven-plugin - 1.8.0 - - ossrh - - - - flatten - process-resources - - flatten - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 3.2.8 - - - sign-artifacts - verify - - sign - - - - - - --pinentry-mode - loopback - - - - - - - - - - publish-sonatype-central-portal - - - - org.sonatype.central - central-publishing-maven-plugin - 0.11.0 - true - - sonatype-central-portal - true - - - - - - - checkstyle - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 3.6.0 - - - com.puppycrawl.tools - checkstyle - 14.1.0 - - - - ../.config/checkstyle/checkstyle.xml - true - - - - - check - - - - - - - - - pmd - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.28.0 - - true - true - true - - ../.config/pmd/java/ruleset.xml - - - - - net.sourceforge.pmd - pmd-core - 7.27.0 - - - net.sourceforge.pmd - pmd-java - 7.27.0 - - - - - - - - - - org.apache.maven.plugins - maven-jxr-plugin - 3.6.0 - - - - - From 97244be029541007d28c7d3562344f312ff944b8 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 11:59:09 +0200 Subject: [PATCH 25/64] Create demos pom.xml and hand over control to it --- demos/pom.xml | 19 +++++++++++++++++++ demos/template-placeholder-demo/pom.xml | 23 ----------------------- 2 files changed, 19 insertions(+), 23 deletions(-) create mode 100644 demos/pom.xml diff --git a/demos/pom.xml b/demos/pom.xml new file mode 100644 index 0000000..f6ea5e8 --- /dev/null +++ b/demos/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + software.xdev + root + 1.0.0-SNAPSHOT + + + demos + pom + + + template-placeholder-demo + + diff --git a/demos/template-placeholder-demo/pom.xml b/demos/template-placeholder-demo/pom.xml index 06fc318..25f4648 100644 --- a/demos/template-placeholder-demo/pom.xml +++ b/demos/template-placeholder-demo/pom.xml @@ -11,21 +11,9 @@ template-placeholder-demo - 1.0.0-SNAPSHOT jar - - XDEV Software - https://xdev.software - - - 17 - ${javaVersion} - - UTF-8 - UTF-8 - software.xdev.Application @@ -41,17 +29,6 @@ ${project.artifactId} - - org.apache.maven.plugins - maven-compiler-plugin - 3.15.0 - - ${maven.compiler.release} - - -proc:none - - - org.apache.maven.plugins maven-assembly-plugin From 09816ec9cd00b868701c6d42aea7fd7d53b24726 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 12:03:24 +0200 Subject: [PATCH 26/64] Update workflows --- .github/workflows/check-build.yml | 14 +------ .github/workflows/release.yml | 70 ++++++++++++++++++++++--------- .github/workflows/test-deploy.yml | 11 ++--- 3 files changed, 57 insertions(+), 38 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index c28c5ea..29ebdae 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -19,9 +19,6 @@ on: - '.idea/**' - 'assets/**' -env: - DEMO_MAVEN_MODULE: ${{ github.event.repository.name }}-demo - jobs: build: runs-on: ubuntu-latest @@ -69,13 +66,6 @@ jobs: exit 1 fi - - name: Upload demo files - uses: actions/upload-artifact@v7 - with: - name: demo-files-java-${{ matrix.java }} - path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar - if-no-files-found: error - checkstyle: runs-on: ubuntu-latest if: ${{ github.event_name != 'pull_request' || !startsWith(github.head_ref, 'renovate/') }} @@ -148,10 +138,10 @@ jobs: ${{ runner.os }}-pmd- - name: Run PMD - run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -DskipTests -T2C + run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -T2C - name: Run CPD (Copy Paste Detector) - run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -DskipTests -T2C + run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -T2C - name: Upload report if: ${{ !cancelled() }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 008ec2c..cbf4d18 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,13 +4,6 @@ on: push: branches: [ master ] -env: - PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }} - -permissions: - contents: write - pull-requests: write - # DO NOT RESTORE CACHE for critical release steps to prevent a (extremely unlikely) scenario # where a supply chain attack could be achieved due to poisoned cache jobs: @@ -37,7 +30,8 @@ jobs: ${{ runner.os }}-mvn-build- - name: Build with Maven - run: ./mvnw -B clean package -T2C + run: ../mvnw -B clean package -T2C + working-directory: src - name: Check for uncommited changes run: | @@ -61,6 +55,8 @@ jobs: runs-on: ubuntu-latest needs: [check-code] timeout-minutes: 10 + permissions: + contents: write outputs: upload_url: ${{ steps.create-release.outputs.upload_url }} steps: @@ -77,10 +73,9 @@ jobs: - name: Get version id: version run: | - version=$(../mvnw help:evaluate -Dexpression=project.version -q -DforceStdout) + version=$(mvnw -B help:evaluate -Dexpression=project.version -q -DforceStdout) echo "release=$version" >> $GITHUB_OUTPUT echo "releasenumber=${version//[!0-9]/}" >> $GITHUB_OUTPUT - working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} - name: Commit and Push run: | @@ -106,7 +101,7 @@ jobs: ```XML software.xdev - ${{ env.PRIMARY_MAVEN_MODULE }} + ${{ github.event.repository.name }} ${{ steps.version.outputs.release }} ``` @@ -135,8 +130,8 @@ jobs: gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - 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 }} + run: ../mvnw -B deploy -P publish -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central + working-directory: src env: PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} @@ -152,14 +147,14 @@ jobs: gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Publish to Central Portal - run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests + run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal env: MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} + working-directory: src - publish-pages: + build-pages: runs-on: ubuntu-latest needs: [prepare-release] timeout-minutes: 15 @@ -188,20 +183,57 @@ jobs: ${{ runner.os }}-mvn-build- - name: Build site - run: ../mvnw -B compile site -DskipTests -T2C - working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} + run: ../mvnw -B compile site -P site -T2C + working-directory: src + + - name: Aggregate site + run: | + module_dirs=$(../mvnw -B -q --also-make exec:exec -Dexec.executable="pwd") + for m in "${module_dirs[@]}" + do + echo "$m/target/site -> ./target/$m" + mkdir -p ./target/$m + cp -r $m/target/site ./target/$m + done + working-directory: src + + - name: Upload pages artifact + uses: actions/upload-pages-artifact@v5 + with: + path: src/target/site - name: Deploy to Github pages uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./${{ env.PRIMARY_MAVEN_MODULE }}/target/site + publish_dir: ./src/target/site force_orphan: true + deploy-pages: + runs-on: ubuntu-latest + needs: [build-pages] + timeout-minutes: 10 + concurrency: + group: 'pages' + cancel-in-progress: false + permissions: + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 + after-release: runs-on: ubuntu-latest needs: [publish-maven] timeout-minutes: 10 + permissions: + contents: write + pull-requests: write steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index 9f66506..e4dae05 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -3,9 +3,6 @@ name: Test Deployment on: workflow_dispatch: -env: - PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }} - jobs: publish-maven: runs-on: ubuntu-latest @@ -24,8 +21,8 @@ jobs: gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - 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 }} + run: ../mvnw -B deploy -P publish -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central + working-directory: src env: PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} @@ -41,8 +38,8 @@ jobs: gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Publish to Central Portal - run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests - working-directory: ${{ env.PRIMARY_MAVEN_MODULE }} + run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal + working-directory: src env: MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }} From 41d60e63a7ef86e480792d830843594974105684 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 12:13:34 +0200 Subject: [PATCH 27/64] Correctly prefix --- .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 cbf4d18..6ced36b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,7 +73,7 @@ jobs: - name: Get version id: version run: | - version=$(mvnw -B help:evaluate -Dexpression=project.version -q -DforceStdout) + version=$(./mvnw -B help:evaluate -Dexpression=project.version -q -DforceStdout) echo "release=$version" >> $GITHUB_OUTPUT echo "releasenumber=${version//[!0-9]/}" >> $GITHUB_OUTPUT From 103406f89811d5fbeede580d657130ea65ea5e8f Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 12:15:23 +0200 Subject: [PATCH 28/64] Standardize format --- .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 6ced36b..eee11fb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -148,11 +148,11 @@ jobs: - name: Publish to Central Portal run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal + working-directory: src env: MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }} MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - working-directory: src build-pages: runs-on: ubuntu-latest From d42728ab05462f801fefce179b0e38dcc00d2325 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 18 Sep 2026 12:30:43 +0200 Subject: [PATCH 29/64] Correct artifact id --- demos/template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/template-placeholder-demo/pom.xml b/demos/template-placeholder-demo/pom.xml index 25f4648..4699cae 100644 --- a/demos/template-placeholder-demo/pom.xml +++ b/demos/template-placeholder-demo/pom.xml @@ -6,7 +6,7 @@ software.xdev - template-placeholder-root + demos 1.0.0-SNAPSHOT From a9ecf33a97b4609d1dc013ce65854069dd7fe477 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 09:22:28 +0200 Subject: [PATCH 30/64] Fix deprecation --- .github/workflows/release.yml | 10 +++++----- .github/workflows/test-deploy.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eee11fb..2f41017 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -125,8 +125,8 @@ jobs: distribution: 'temurin' java-version: '17' server-id: github-central - server-password: PACKAGES_CENTRAL_TOKEN - gpg-passphrase: MAVEN_GPG_PASSPHRASE + server-password-env-var: PACKAGES_CENTRAL_TOKEN + gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - name: Publish to GitHub Packages Central @@ -142,9 +142,9 @@ jobs: 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 + server-username-env-var: MAVEN_CENTRAL_USERNAME + server-password-env-var: MAVEN_CENTRAL_TOKEN + gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE - name: Publish to Central Portal run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal diff --git a/.github/workflows/test-deploy.yml b/.github/workflows/test-deploy.yml index e4dae05..382f656 100644 --- a/.github/workflows/test-deploy.yml +++ b/.github/workflows/test-deploy.yml @@ -16,8 +16,8 @@ jobs: distribution: 'temurin' java-version: '17' server-id: github-central - server-password: PACKAGES_CENTRAL_TOKEN - gpg-passphrase: MAVEN_GPG_PASSPHRASE + server-password-env-var: PACKAGES_CENTRAL_TOKEN + gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once - name: Publish to GitHub Packages Central @@ -33,9 +33,9 @@ jobs: 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 + server-username-env-var: MAVEN_CENTRAL_USERNAME + server-password-env-var: MAVEN_CENTRAL_TOKEN + gpg-passphrase-env-var: MAVEN_GPG_PASSPHRASE - name: Publish to Central Portal run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal From f962f53699cfd85d441627a880dddbe1c0ac9639 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 13:35:55 +0200 Subject: [PATCH 31/64] Correctly ignore in renovate --- renovate.json5 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/renovate.json5 b/renovate.json5 index 1e1f3c0..d5dd7dd 100644 --- a/renovate.json5 +++ b/renovate.json5 @@ -14,8 +14,13 @@ }, { "description": "Ignore project internal dependencies", - "packagePattern": "^software.xdev:template-placeholder", - "datasources": [ + "matchPackagePatterns": [ + "^software.xdev.*:template-placeholder", + "^software.xdev.*:demos", + "^software.xdev.*:src", + "^software.xdev.*:root" + ], + "matchDatasources": [ "maven" ], "enabled": false @@ -25,7 +30,7 @@ "matchPackagePatterns": [ "^net.sourceforge.pmd" ], - "datasources": [ + "matchDatasources": [ "maven" ], "groupName": "net.sourceforge.pmd" From 32da74502b0edd23f4328582e21b43c9552e9d92 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 21 Sep 2026 11:37:06 +0000 Subject: [PATCH 32/64] Update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.2.0 --- src/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pom.xml b/src/pom.xml index f3e85b5..18a8c72 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -50,7 +50,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.4 + 3.2.0 From bc0ee5821bd422ffb36bd47ea4715d611946da80 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 21 Sep 2026 11:37:09 +0000 Subject: [PATCH 33/64] Update dependency org.apache.maven.plugins:maven-install-plugin to v3.2.0 --- src/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pom.xml b/src/pom.xml index f3e85b5..ec8978d 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -45,7 +45,7 @@ org.apache.maven.plugins maven-install-plugin - 3.1.4 + 3.2.0 org.apache.maven.plugins From c46e008b50130f9ac7ea1a0833259728ff72f8c6 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 14:32:07 +0200 Subject: [PATCH 34/64] Fix site aggregation --- .github/workflows/release.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2f41017..4aed868 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -188,9 +188,28 @@ jobs: - name: Aggregate site run: | - module_dirs=$(../mvnw -B -q --also-make exec:exec -Dexec.executable="pwd") - for m in "${module_dirs[@]}" + # Compile is required, otherwise dep resolution failure + echo "Looking up modules" + module_dirs=($(../mvnw -B -q --also-make compile exec:exec -Dexec.executable="pwd" -Dmaven.main.skip)) + base_module_full="${module_dirs[0]}" + + echo "Found modules - Src: $base_module_full" + + base_cut_away_length=$((${#base_module_full}+1)) + + echo "BasePathLengthToCutAway: $base_cut_away_length" + + is_first=true + for full_module_path in "${module_dirs[@]}" do + if [ $is_first ]; then + echo "Skipping initial/base module" + is_first=false + continue + fi + + m=${full_module_path:$base_cut_away_length} + echo "$m/target/site -> ./target/$m" mkdir -p ./target/$m cp -r $m/target/site ./target/$m From 4014d504bed7304952574e000663bd1f20dc160d Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 14:42:53 +0200 Subject: [PATCH 35/64] Fix release problems due to incorrect urls See also https://redirect.github.com/mojohaus/flatten-maven-plugin/issues/197 --- pom.xml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b4ded46..57ce926 100644 --- a/pom.xml +++ b/pom.xml @@ -1,13 +1,15 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" + child.project.url.inherit.append.path="false"> 4.0.0 software.xdev root 1.0.0-SNAPSHOT pom + https://github.com/xdev-software/template-placeholder src @@ -22,7 +24,10 @@ UTF-8 - + https://github.com/xdev-software/template-placeholder scm:git:https://github.com/xdev-software/template-placeholder.git From 0419f3239f475c8b201498c072c6348fa3823c28 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 15:16:54 +0200 Subject: [PATCH 36/64] Remove deploy to gh pages duplicated step --- .github/workflows/release.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4aed868..669ecac 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -221,13 +221,6 @@ jobs: with: path: src/target/site - - name: Deploy to Github pages - uses: peaceiris/actions-gh-pages@84c30a85c19949d7eee79c4ff27748b70285e453 # v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./src/target/site - force_orphan: true - deploy-pages: runs-on: ubuntu-latest needs: [build-pages] From 242736287263e782dd2bbbf388f20a97428b0fa0 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 21 Sep 2026 15:43:12 +0200 Subject: [PATCH 37/64] Fix if statement --- .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 669ecac..7f9ada7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -202,7 +202,7 @@ jobs: is_first=true for full_module_path in "${module_dirs[@]}" do - if [ $is_first ]; then + if [ $is_first = true ]; then echo "Skipping initial/base module" is_first=false continue From b0f46f27b20fcf2150f8f79e9eb99db4177a4755 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 22 Sep 2026 09:33:09 +0200 Subject: [PATCH 38/64] Fix launcher --- .run/Run Demo.run.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/.run/Run Demo.run.xml b/.run/Run Demo.run.xml index 5fb2bc2..c2f79ef 100644 --- a/.run/Run Demo.run.xml +++ b/.run/Run Demo.run.xml @@ -2,7 +2,6 @@ From 3f59144ae8113c247d626e7ba37b2089b8b60706 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 23 Sep 2026 08:50:20 +0200 Subject: [PATCH 43/64] This plugin is downstream only --- src/pom.xml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/pom.xml b/src/pom.xml index 8a3e6c8..b1bb989 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -130,25 +130,6 @@
- - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.2 - - - generate-sources - - add-source - - - - ${generatedDirRelative} - - - - - From 0dcbc99bf0299b54b4658eed57ab5aad0e0148ec Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 23 Sep 2026 09:01:57 +0200 Subject: [PATCH 44/64] Correct path to ruleset --- src/template-placeholder/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index 5d799f2..e6b0d4b 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -238,6 +238,9 @@ maven-pmd-plugin 3.28.0 + + ../../.config/pmd/java/ruleset.xml + ${generatedDir} From f40dfdb903bde27b0618a31acdf9b16d372ce33f Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 23 Sep 2026 09:09:53 +0200 Subject: [PATCH 45/64] Bump version --- src/template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index e6b0d4b..891d444 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -33,7 +33,7 @@ tools.jackson.core jackson-databind - 3.2.2 + 3.2.3 org.openapitools From 082dff3f65e469f8f99efe0614cee74660b6a5b5 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 26 Sep 2026 03:05:08 +0000 Subject: [PATCH 46/64] Update net.sourceforge.pmd to v7.28.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 57ce926..c25ed4a 100644 --- a/pom.xml +++ b/pom.xml @@ -124,12 +124,12 @@ net.sourceforge.pmd pmd-core - 7.27.0 + 7.28.0 net.sourceforge.pmd pmd-java - 7.27.0 + 7.28.0
From a93bbb2bf5b13acb65b4e669355e6be125be3e74 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 28 Sep 2026 03:08:09 +0000 Subject: [PATCH 47/64] Update dependency com.puppycrawl.tools:checkstyle to v14.3.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 57ce926..fd4fff0 100644 --- a/pom.xml +++ b/pom.xml @@ -86,7 +86,7 @@ com.puppycrawl.tools checkstyle - 14.1.0 + 14.3.0 From 92775a44ba77b0ccfba251f63e835b148e090599 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 28 Sep 2026 09:35:33 +0200 Subject: [PATCH 48/64] Update CheckStyle rules * New rule: `ModifierOrder` * Added `NoCodeInFile` and `PackageDeclaration` because we encountered these problems in the recent past --- .config/checkstyle/checkstyle.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index cd40139..b56ca4c 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -112,14 +112,17 @@ + + + From f888b2a905a2e0ce01c1c3626cd4130520da33bd Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 30 Sep 2026 03:06:39 +0000 Subject: [PATCH 49/64] Update shogo82148/actions-create-release digest to cfc5a83 --- .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 ea67f35..fe08139 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,7 +87,7 @@ jobs: - name: Create Release id: create-release - uses: shogo82148/actions-create-release@8674c0ecee617c8dfb006526bcc22a362c70b88a # v1 + uses: shogo82148/actions-create-release@cfc5a8374495dd25fe96f758cc09251ab6286911 # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From 471766d3d584dd4828cb625ee75b75ba4fb6409e Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 2 Oct 2026 03:04:48 +0000 Subject: [PATCH 50/64] Update dependency maven to v3.10.0 --- .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 216df05..bb58b3c 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.16/apache-maven-3.9.16-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.10.0/apache-maven-3.10.0-bin.zip From 958805737af74b47cf58e4a94462515ee2aafa21 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 8 Oct 2026 15:47:43 +0200 Subject: [PATCH 51/64] Update checkstyle-idea.xml for Plugin version 2.19.1 Fixes #13 --- .idea/checkstyle-idea.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml index b8b753e..c1182dc 100644 --- a/.idea/checkstyle-idea.xml +++ b/.idea/checkstyle-idea.xml @@ -11,8 +11,8 @@ From 96fc7291192c6cb992ea13c995d16587f3d75e6e Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 9 Oct 2026 03:07:22 +0000 Subject: [PATCH 52/64] Update dependency org.openapitools:jackson-databind-nullable to v0.2.12 --- src/template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index 891d444..0c55d41 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -38,7 +38,7 @@ org.openapitools jackson-databind-nullable - 0.2.11 + 0.2.12 From 6a52744477e815a555ddc16a2d56f7268876a358 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 9 Oct 2026 03:07:24 +0000 Subject: [PATCH 53/64] Update dependency org.openapitools:openapi-generator-maven-plugin to v7.26.0 --- src/template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index 891d444..eba66d7 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -115,7 +115,7 @@ org.openapitools openapi-generator-maven-plugin - 7.24.0 + 7.26.0 From a439933ba5dfe6ef2a0bbc068ab3daa7ea3811ea Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 11 Oct 2026 03:07:49 +0000 Subject: [PATCH 54/64] Update dependency org.apache.httpcomponents.client5:httpclient5 to v5.6.5 --- src/template-placeholder/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/template-placeholder/pom.xml b/src/template-placeholder/pom.xml index 891d444..7a9da0b 100644 --- a/src/template-placeholder/pom.xml +++ b/src/template-placeholder/pom.xml @@ -26,7 +26,7 @@ org.apache.httpcomponents.client5 httpclient5 - 5.6.4 + 5.6.5 From 2b6de2f495c180414706ac75edbd88467a48ef7d Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:39:49 +0200 Subject: [PATCH 55/64] Merge INFO.md --- openapi/INFO.md | 8 -------- src/template-placeholder/openapi/INFO.md | 4 ++-- 2 files changed, 2 insertions(+), 10 deletions(-) delete mode 100644 openapi/INFO.md diff --git a/openapi/INFO.md b/openapi/INFO.md deleted file mode 100644 index 638e89b..0000000 --- a/openapi/INFO.md +++ /dev/null @@ -1,8 +0,0 @@ -This ``openapi.yml`` was written manually as Sessionize fails to provide an API schema or something similar. - -The Java API Client can be generated using ``mvn clean compile -P openapi-generator`` inside [``sessionize-java-client``](../sessionize-java-client/). - -Helpful links: -* https://jsonformatter.org/json-to-jsonschema -* https://swagger.io/specification/ -* https://editor.swagger.io/ diff --git a/src/template-placeholder/openapi/INFO.md b/src/template-placeholder/openapi/INFO.md index fe3087d..638e89b 100644 --- a/src/template-placeholder/openapi/INFO.md +++ b/src/template-placeholder/openapi/INFO.md @@ -1,6 +1,6 @@ -This `openapi.yml` was written manually as INSERT_NAME_HERE fails to provide an API schema or something similar. +This ``openapi.yml`` was written manually as Sessionize fails to provide an API schema or something similar. -The Java API Client can be generated using `mvn clean compile -P openapi-generator`. +The Java API Client can be generated using ``mvn clean compile -P openapi-generator`` inside [``sessionize-java-client``](../sessionize-java-client/). Helpful links: * https://jsonformatter.org/json-to-jsonschema From 4705491688c02e09a7d9fd0cbebbda7dec98726f Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:40:35 +0200 Subject: [PATCH 56/64] Rename dirs --- demos/pom.xml | 2 +- .../pom.xml | 0 src/pom.xml | 2 +- .../openapi/INFO.md | 0 .../openapi/openapi.yml | 0 src/{template-placeholder => sessionize-java-client}/pom.xml | 0 6 files changed, 2 insertions(+), 2 deletions(-) rename demos/{template-placeholder-demo => sessionize-java-client-demo}/pom.xml (100%) rename src/{template-placeholder => sessionize-java-client}/openapi/INFO.md (100%) rename src/{template-placeholder => sessionize-java-client}/openapi/openapi.yml (100%) rename src/{template-placeholder => sessionize-java-client}/pom.xml (100%) diff --git a/demos/pom.xml b/demos/pom.xml index f6ea5e8..0ad95d5 100644 --- a/demos/pom.xml +++ b/demos/pom.xml @@ -14,6 +14,6 @@ pom - template-placeholder-demo + sessionize-java-client-demo diff --git a/demos/template-placeholder-demo/pom.xml b/demos/sessionize-java-client-demo/pom.xml similarity index 100% rename from demos/template-placeholder-demo/pom.xml rename to demos/sessionize-java-client-demo/pom.xml diff --git a/src/pom.xml b/src/pom.xml index b1bb989..31557de 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -14,7 +14,7 @@ pom - template-placeholder + sessionize-java-client diff --git a/src/template-placeholder/openapi/INFO.md b/src/sessionize-java-client/openapi/INFO.md similarity index 100% rename from src/template-placeholder/openapi/INFO.md rename to src/sessionize-java-client/openapi/INFO.md diff --git a/src/template-placeholder/openapi/openapi.yml b/src/sessionize-java-client/openapi/openapi.yml similarity index 100% rename from src/template-placeholder/openapi/openapi.yml rename to src/sessionize-java-client/openapi/openapi.yml diff --git a/src/template-placeholder/pom.xml b/src/sessionize-java-client/pom.xml similarity index 100% rename from src/template-placeholder/pom.xml rename to src/sessionize-java-client/pom.xml From e7cd3d11ef2e24aa516c2c60d2663fc3544122d6 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:41:50 +0200 Subject: [PATCH 57/64] Migrate demo pom --- demos/pom.xml | 2 +- demos/sessionize-java-client-demo/pom.xml | 11 +---------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/demos/pom.xml b/demos/pom.xml index 0ad95d5..dec7606 100644 --- a/demos/pom.xml +++ b/demos/pom.xml @@ -7,7 +7,7 @@ software.xdev root - 1.0.0-SNAPSHOT + 1.3.1-SNAPSHOT demos diff --git a/demos/sessionize-java-client-demo/pom.xml b/demos/sessionize-java-client-demo/pom.xml index f0b8929..9cc2333 100644 --- a/demos/sessionize-java-client-demo/pom.xml +++ b/demos/sessionize-java-client-demo/pom.xml @@ -6,20 +6,11 @@ software.xdev -<<<<<<<< HEAD:sessionize-java-client-demo/pom.xml - sessionize-java-client-root + demos 1.3.1-SNAPSHOT sessionize-java-client-demo - 1.3.1-SNAPSHOT -======== - demos - 1.0.0-SNAPSHOT - - - template-placeholder-demo ->>>>>>>> origin/update-from-template-github_com_xdev-software_openapi-client-maven-template_master:demos/template-placeholder-demo/pom.xml jar From f94137bcc40630e77b9423ebb243d0cccc1ab383 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:43:27 +0200 Subject: [PATCH 58/64] Migrate poms --- pom.xml | 2 +- src/pom.xml | 2 +- src/sessionize-java-client/pom.xml | 47 +++--------------------------- 3 files changed, 6 insertions(+), 45 deletions(-) diff --git a/pom.xml b/pom.xml index 58ac2a8..b9e9ee1 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ scm:git:https://github.com/xdev-software/template-placeholder.git - 2026 + 2023 XDEV Software diff --git a/src/pom.xml b/src/pom.xml index 31557de..a99fe9c 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -7,7 +7,7 @@ software.xdev root - 1.0.0-SNAPSHOT + 1.3.1-SNAPSHOT src diff --git a/src/sessionize-java-client/pom.xml b/src/sessionize-java-client/pom.xml index b88f69a..e38253c 100644 --- a/src/sessionize-java-client/pom.xml +++ b/src/sessionize-java-client/pom.xml @@ -4,56 +4,17 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 -<<<<<<<< HEAD:sessionize-java-client/pom.xml - software.xdev - sessionize-java-client - 1.3.1-SNAPSHOT - jar - - sessionize-java-client - sessionize-java-client - https://github.com/xdev-software/sessionize-java-client - - - https://github.com/xdev-software/sessionize-java-client - scm:git:https://github.com/xdev-software/sessionize-java-client.git - - - 2023 - - - XDEV Software - https://xdev.software - - - - - XDEV Software - XDEV Software - https://xdev.software - - - - - - Apache-2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - -======== software.xdev src - 1.0.0-SNAPSHOT + 1.3.1-SNAPSHOT - template-placeholder + sessionize-java-client jar - template-placeholder - template-placeholder ->>>>>>>> origin/update-from-template-github_com_xdev-software_openapi-client-maven-template_master:src/template-placeholder/pom.xml + sessionize-java-client + sessionize-java-client src/generated/java From 44fac2d332b6cf034fa4f99c8a279fa421088990 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:44:14 +0200 Subject: [PATCH 59/64] Migrate demo --- .../main/java/software/xdev/Application.java | 0 .../src/main/resources/log4j2.xml | 0 sessionize-java-client-demo/pom.xml | 86 ------------------- 3 files changed, 86 deletions(-) rename {sessionize-java-client-demo => demos/sessionize-java-client-demo}/src/main/java/software/xdev/Application.java (100%) rename {sessionize-java-client-demo => demos/sessionize-java-client-demo}/src/main/resources/log4j2.xml (100%) delete mode 100644 sessionize-java-client-demo/pom.xml diff --git a/sessionize-java-client-demo/src/main/java/software/xdev/Application.java b/demos/sessionize-java-client-demo/src/main/java/software/xdev/Application.java similarity index 100% rename from sessionize-java-client-demo/src/main/java/software/xdev/Application.java rename to demos/sessionize-java-client-demo/src/main/java/software/xdev/Application.java diff --git a/sessionize-java-client-demo/src/main/resources/log4j2.xml b/demos/sessionize-java-client-demo/src/main/resources/log4j2.xml similarity index 100% rename from sessionize-java-client-demo/src/main/resources/log4j2.xml rename to demos/sessionize-java-client-demo/src/main/resources/log4j2.xml diff --git a/sessionize-java-client-demo/pom.xml b/sessionize-java-client-demo/pom.xml deleted file mode 100644 index f0b8929..0000000 --- a/sessionize-java-client-demo/pom.xml +++ /dev/null @@ -1,86 +0,0 @@ - - - 4.0.0 - - - software.xdev -<<<<<<<< HEAD:sessionize-java-client-demo/pom.xml - sessionize-java-client-root - 1.3.1-SNAPSHOT - - - sessionize-java-client-demo - 1.3.1-SNAPSHOT -======== - demos - 1.0.0-SNAPSHOT - - - template-placeholder-demo ->>>>>>>> origin/update-from-template-github_com_xdev-software_openapi-client-maven-template_master:demos/template-placeholder-demo/pom.xml - jar - - - software.xdev.Application - - 2.26.1 - - - - - software.xdev - sessionize-java-client - ${project.version} - - - - - - org.apache.logging.log4j - log4j-core - ${log4j2-version} - - - org.apache.logging.log4j - log4j-slf4j-impl - ${log4j2-version} - - - - - ${project.artifactId} - - - - org.apache.maven.plugins - maven-assembly-plugin - 3.8.0 - - - - ${mainClass} - - - true - - - - jar-with-dependencies - - false - - - - make-assembly - package - - single - - - - - - - From 21bf06d6b33d6e7fcaa875e00eb329ff6cb5d9ea Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 08:44:42 +0200 Subject: [PATCH 60/64] Migrate src --- sessionize-java-client/pom.xml | 292 ------------------ .../software/xdev/sessionize/api/AllApi.java | 0 .../xdev/sessionize/api/SessionsApi.java | 0 .../xdev/sessionize/api/SpeakersApi.java | 0 .../xdev/sessionize/client/ApiClient.java | 0 .../xdev/sessionize/client/ApiException.java | 0 .../xdev/sessionize/client/BaseApi.java | 0 .../xdev/sessionize/client/Configuration.java | 0 .../sessionize/client/JavaTimeFormatter.java | 0 .../software/xdev/sessionize/client/Pair.java | 0 .../sessionize/client/RFC3339DateFormat.java | 0 .../client/RFC3339InstantDeserializer.java | 0 .../client/RFC3339JavaTimeModule.java | 0 .../client/ServerConfiguration.java | 0 .../sessionize/client/ServerVariable.java | 0 .../xdev/sessionize/client/StringUtil.java | 0 .../sessionize/client/auth/ApiKeyAuth.java | 0 .../client/auth/Authentication.java | 0 .../sessionize/client/auth/HttpBasicAuth.java | 0 .../client/auth/HttpBearerAuth.java | 0 .../xdev/sessionize/model/AllResult.java | 0 .../xdev/sessionize/model/BaseCategory.java | 0 .../xdev/sessionize/model/BaseSession.java | 0 .../xdev/sessionize/model/BaseSpeaker.java | 0 .../model/BaseSpeakerEssential.java | 0 .../xdev/sessionize/model/CategoryAll.java | 0 .../xdev/sessionize/model/CategoryItem.java | 0 .../sessionize/model/CategoryItemAll.java | 0 .../sessionize/model/CategorySession.java | 0 .../software/xdev/sessionize/model/Link.java | 0 .../xdev/sessionize/model/Question.java | 0 .../xdev/sessionize/model/QuestionAnswer.java | 0 .../sessionize/model/QuestionAnswerFull.java | 0 .../software/xdev/sessionize/model/Room.java | 0 .../xdev/sessionize/model/Session.java | 0 .../xdev/sessionize/model/SessionAll.java | 0 .../xdev/sessionize/model/SessionGroup.java | 0 .../xdev/sessionize/model/SessionMinimal.java | 0 .../xdev/sessionize/model/Speaker.java | 0 .../xdev/sessionize/model/SpeakerAll.java | 0 .../xdev/sessionize/model/SpeakerMinimal.java | 0 .../sessionize/model/SpeakerWithEmail.java | 0 .../xdev/sessionize/model/Status.java | 0 43 files changed, 292 deletions(-) delete mode 100644 sessionize-java-client/pom.xml rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/api/AllApi.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/api/SessionsApi.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/ApiClient.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/ApiException.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/BaseApi.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/Configuration.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/Pair.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/RFC3339DateFormat.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/ServerConfiguration.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/ServerVariable.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/StringUtil.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/auth/ApiKeyAuth.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/auth/HttpBasicAuth.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/AllResult.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/BaseCategory.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/BaseSession.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/CategoryAll.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/CategoryItem.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/CategorySession.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Link.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Question.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Room.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Session.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SessionAll.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SessionGroup.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Speaker.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java (100%) rename {sessionize-java-client => src/sessionize-java-client}/src/generated/java/software/xdev/sessionize/model/Status.java (100%) diff --git a/sessionize-java-client/pom.xml b/sessionize-java-client/pom.xml deleted file mode 100644 index b88f69a..0000000 --- a/sessionize-java-client/pom.xml +++ /dev/null @@ -1,292 +0,0 @@ - - - 4.0.0 - -<<<<<<<< HEAD:sessionize-java-client/pom.xml - software.xdev - sessionize-java-client - 1.3.1-SNAPSHOT - jar - - sessionize-java-client - sessionize-java-client - https://github.com/xdev-software/sessionize-java-client - - - https://github.com/xdev-software/sessionize-java-client - scm:git:https://github.com/xdev-software/sessionize-java-client.git - - - 2023 - - - XDEV Software - https://xdev.software - - - - - XDEV Software - XDEV Software - https://xdev.software - - - - - - Apache-2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - -======== - - software.xdev - src - 1.0.0-SNAPSHOT - - - template-placeholder - jar - - template-placeholder - template-placeholder ->>>>>>>> origin/update-from-template-github_com_xdev-software_openapi-client-maven-template_master:src/template-placeholder/pom.xml - - - src/generated/java - ${project.basedir}/${generatedDirRelative} - - - - - - org.apache.httpcomponents.client5 - httpclient5 - 5.6.4 - - - - - tools.jackson.core - jackson-databind - 3.2.3 - - - org.openapitools - jackson-databind-nullable - 0.2.11 - - - - jakarta.annotation - jakarta.annotation-api - 3.0.0 - - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.6.2 - - - generate-sources - - add-source - - - - ${generatedDirRelative} - - - - - - - - - - openapi-generator - - sessionize - - src/gen - - ${project.basedir}/target/generated-sources/openapi/${openApiRelativeGeneratorDir} - - - - - - org.apache.maven.plugins - maven-clean-plugin - 3.5.0 - - - pre-generation-clean - initialize - - clean - - - true - - - ${generatedDir} - - - - - - post-generation-clean - process-resources - - clean - - - - - - org.openapitools - openapi-generator-maven-plugin - 7.24.0 - - - - generate - - - ${project.basedir}/openapi/openapi.yml - java - - ${openApiRelativeGeneratorDir} - apache-httpclient - software.xdev.${componentName}.api - software.xdev.${componentName}.model - software.xdev.${componentName}.client - - true - - false - - - true - true - true - - - false - false - false - false - - - - - - org.apache.maven.plugins - maven-resources-plugin - 3.5.0 - - - copy-generated-resources - process-sources - - copy-resources - - - ${generatedDir} - - - ${openApiGeneratorDir} - - - - - - - - software.xdev - find-and-replace-maven-plugin - 1.0.5 - - - - remove-unused-import-com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider - process-sources - - file-contents - - - ${generatedDirRelative}/software/xdev/${componentName}/client/ - ApiClient.java - - ^import com\.fasterxml\.jackson\.jaxrs\.json\.JacksonJsonProvider;(\r?\n) - - false - - - - - remove-generated-annotation - process-sources - - file-contents - - - ${generatedDirRelative}/software/xdev/${componentName}/ - true - .java - ^@jakarta\.annotation\.Generated.*(\r?\n) - false - false - - - - - remove-serialVersionUID - process-sources - - file-contents - - - ${generatedDirRelative}/software/xdev/${componentName}/ - true - .java - ^.*serialVersionUID.*(\r?\n)(\s*\r?\n)? - false - false - - - - - - - - - pmd - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.28.0 - - - ../../.config/pmd/java/ruleset.xml - - - ${generatedDir} - - - - - - - - diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/AllApi.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SessionsApi.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiException.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiException.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiException.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiException.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/BaseApi.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/BaseApi.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/BaseApi.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/BaseApi.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Configuration.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/JavaTimeFormatter.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/Pair.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339DateFormat.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339DateFormat.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339DateFormat.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339DateFormat.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339InstantDeserializer.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/RFC3339JavaTimeModule.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerConfiguration.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerConfiguration.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerConfiguration.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerConfiguration.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerVariable.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerVariable.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerVariable.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ServerVariable.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/StringUtil.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/StringUtil.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/StringUtil.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/StringUtil.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/ApiKeyAuth.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/ApiKeyAuth.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/ApiKeyAuth.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/ApiKeyAuth.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/Authentication.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBasicAuth.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBasicAuth.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBasicAuth.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBasicAuth.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/auth/HttpBearerAuth.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/AllResult.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseCategory.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSession.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeaker.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/BaseSpeakerEssential.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryAll.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItem.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryItemAll.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Link.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Question.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswer.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/QuestionAnswerFull.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Room.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionAll.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionGroup.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SessionMinimal.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerMinimal.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerWithEmail.java diff --git a/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java similarity index 100% rename from sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Status.java From 29e1a608eb3cb05115e26722f01e6daea3372e8c Mon Sep 17 00:00:00 2001 From: XDEV Bot <111048771+xdev-gh-bot@users.noreply.github.com> Date: Tue, 13 Oct 2026 06:52:15 +0000 Subject: [PATCH 61/64] Fill in template --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b9e9ee1..06d27b0 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ root 1.3.1-SNAPSHOT pom - https://github.com/xdev-software/template-placeholder + https://github.com/xdev-software/sessionize-java-client src @@ -28,8 +28,8 @@ child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false" child.scm.url.inherit.append.path="false"> - https://github.com/xdev-software/template-placeholder - scm:git:https://github.com/xdev-software/template-placeholder.git + https://github.com/xdev-software/sessionize-java-client + scm:git:https://github.com/xdev-software/sessionize-java-client.git 2023 From 7b82ecfa173d048190b9fb44b68605dcd99d1e70 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 09:08:47 +0200 Subject: [PATCH 62/64] Update and regenerate --- CHANGELOG.md | 7 + README.md | 4 +- src/sessionize-java-client/openapi/INFO.md | 4 +- .../openapi/openapi.yml | 48 +- .../xdev/sessionize/api/SpeakersApi.java | 84 --- .../xdev/sessionize/client/ApiClient.java | 690 ++++++++---------- ...tegorySession.java => CategoryDetail.java} | 36 +- .../xdev/sessionize/model/Session.java | 12 +- .../xdev/sessionize/model/Speaker.java | 57 +- .../xdev/sessionize/model/SpeakerAll.java | 60 +- 10 files changed, 460 insertions(+), 542 deletions(-) rename src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/{CategorySession.java => CategoryDetail.java} (87%) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb0f83b..4825a16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 2.0.0 +* Removed `SpeakersWithEmails` endpoint as it's existence can no longer be validated +* Add `categories`/`categoryItems` to model + * Renamed `CategorySession` to `CategoryDetail` +* Regenerated code with latest OpenApi Generator version +* Updated dependencies + # 1.3.0 * Updated to Jackson v3 * Regenerated code with latest OpenApi Generator version diff --git a/README.md b/README.md index 8f120d6..e5dc283 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ # [sessionize](https://sessionize.com/)-java-client Java client for the [Sessionize API](https://sessionize.com/playbook/api) -This client [is generated](./sessionize-java-client/pom.xml) from an [``openapi.yml``](./openapi/openapi.yml) using [OpenAPI Generator](https://openapi-generator.tech/). +This client [is generated](./src/sessionize-java-client/pom.xml) from an [`openapi.yml`](./src/sessionize-java-client/openapi/openapi.yml) using [OpenAPI Generator](https://openapi-generator.tech/). #### API Support Status @@ -27,7 +27,7 @@ Sessionize API ``v2``: [Installation guide for the latest release](https://github.com/xdev-software/sessionize-java-client/releases/latest#Installation) ## Demo -A minimal demo is also available [here](./sessionize-java-client-demo/src/main/java/software/xdev/Application.java). +A minimal demo is also available [here](./demos/sessionize-java-client-demo/src/main/java/software/xdev/Application.java). ## Support If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services-products/support). diff --git a/src/sessionize-java-client/openapi/INFO.md b/src/sessionize-java-client/openapi/INFO.md index 638e89b..1040d20 100644 --- a/src/sessionize-java-client/openapi/INFO.md +++ b/src/sessionize-java-client/openapi/INFO.md @@ -1,6 +1,6 @@ -This ``openapi.yml`` was written manually as Sessionize fails to provide an API schema or something similar. +This `openapi.yml` was written manually as Sessionize fails to provide an API schema or something similar. -The Java API Client can be generated using ``mvn clean compile -P openapi-generator`` inside [``sessionize-java-client``](../sessionize-java-client/). +The Java API Client can be generated using `mvn clean compile -P openapi-generator`. Helpful links: * https://jsonformatter.org/json-to-jsonschema diff --git a/src/sessionize-java-client/openapi/openapi.yml b/src/sessionize-java-client/openapi/openapi.yml index f63c18c..c007b5e 100644 --- a/src/sessionize-java-client/openapi/openapi.yml +++ b/src/sessionize-java-client/openapi/openapi.yml @@ -58,35 +58,6 @@ paths: items: $ref: '#/components/schemas/Speaker' deprecated: false - /api/v2/{endpointId}/view/SpeakersEmails: - get: - tags: - - "speakers" - operationId: getAllSpeakersEmails - description: 'Undocumented endpoint for retrieving the speakers with emails' - parameters: - - name: endpointId - in: path - required: true - schema: - type: string - example: jl4ktls0 - - name: s - in: query - required: true - schema: - type: string - description: 'Special key that is only available/retrievable for unlocked admins (Contacting Sessionize-Support is required)' - responses: - '200': - description: Returned if the request is successful - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/SpeakerWithEmail' - deprecated: false /api/v2/{endpointId}/view/Sessions: get: tags: @@ -152,7 +123,7 @@ components: required: - id - sort - CategorySession: + CategoryDetail: allOf: - $ref: '#/components/schemas/BaseCategory' - type: object @@ -356,7 +327,7 @@ components: categories: type: array items: - $ref: '#/components/schemas/CategorySession' + $ref: '#/components/schemas/CategoryDetail' required: - questionAnswers - speakers @@ -375,9 +346,14 @@ components: type: array items: $ref: '#/components/schemas/QuestionAnswer' # All Endpoint + categoryItems: + type: array + items: + type: integer required: - questionAnswers - speakers + - categoryItems SessionMinimal: type: object readOnly: true @@ -462,9 +438,14 @@ components: type: array items: $ref: '#/components/schemas/QuestionAnswerFull' + categories: + type: array + items: + $ref: '#/components/schemas/CategoryDetail' required: - sessions - questionAnswers + - categories SpeakerAll: allOf: - $ref: '#/components/schemas/BaseSpeaker' @@ -479,9 +460,14 @@ components: type: array items: $ref: '#/components/schemas/QuestionAnswer' + categoryItems: + type: array + items: + type: integer required: - sessions - questionAnswers + - categoryItems SpeakerWithEmail: allOf: - $ref: '#/components/schemas/BaseSpeakerEssential' diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java index ed6da7f..5678387 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/api/SpeakersApi.java @@ -21,7 +21,6 @@ import software.xdev.sessionize.client.Pair; import software.xdev.sessionize.model.Speaker; -import software.xdev.sessionize.model.SpeakerWithEmail; import java.util.ArrayList; @@ -116,89 +115,6 @@ public List getAllSpeakers(@jakarta.annotation.Nonnull String endpointI ); } - /** - * - * Undocumented endpoint for retrieving the speakers with emails - * @param endpointId (required) - * @param s Special key that is only available/retrievable for unlocked admins (Contacting Sessionize-Support is required) (required) - * @return List<SpeakerWithEmail> - * @throws ApiException if fails to make API call - */ - public List getAllSpeakersEmails(@jakarta.annotation.Nonnull String endpointId, @jakarta.annotation.Nonnull String s) throws ApiException { - return this.getAllSpeakersEmails(endpointId, s, Collections.emptyMap()); - } - - - /** - * - * Undocumented endpoint for retrieving the speakers with emails - * @param endpointId (required) - * @param s Special key that is only available/retrievable for unlocked admins (Contacting Sessionize-Support is required) (required) - * @param additionalHeaders additionalHeaders for this call - * @return List<SpeakerWithEmail> - * @throws ApiException if fails to make API call - */ - 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 - if (endpointId == null) { - throw new ApiException(400, "Missing the required parameter 'endpointId' when calling getAllSpeakersEmails"); - } - - // verify the required parameter 's' is set - if (s == null) { - throw new ApiException(400, "Missing the required parameter 's' when calling getAllSpeakersEmails"); - } - - // create path and map variables - String localVarPath = "/api/v2/{endpointId}/view/SpeakersEmails" - .replaceAll("\\{" + "endpointId" + "\\}", apiClient.escapeString(apiClient.parameterToString(endpointId))); - - StringJoiner localVarQueryStringJoiner = new StringJoiner("&"); - String localVarQueryParameterBaseName; - List localVarQueryParams = new ArrayList(); - List localVarCollectionQueryParams = new ArrayList(); - Map localVarHeaderParams = new HashMap(); - Map localVarCookieParams = new HashMap(); - Map localVarFormParams = new HashMap(); - - localVarQueryParams.addAll(apiClient.parameterToPair("s", s)); - - localVarHeaderParams.putAll(additionalHeaders); - - - - final String[] localVarAccepts = { - "application/json" - }; - final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); - - final String[] localVarContentTypes = { - - }; - final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); - - String[] localVarAuthNames = new String[] { }; - - TypeReference> localVarReturnType = new TypeReference>() {}; - return apiClient.invokeAPI( - localVarPath, - "GET", - localVarQueryParams, - localVarCollectionQueryParams, - localVarQueryStringJoiner.toString(), - localVarPostBody, - localVarHeaderParams, - localVarCookieParams, - localVarFormParams, - localVarAccept, - localVarContentType, - localVarAuthNames, - localVarReturnType - ); - } - @Override public T invokeAPI(String url, String method, Object request, TypeReference returnType, Map additionalHeaders) throws ApiException { String localVarPath = url.replace(apiClient.getBaseURL(), ""); diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java index 3df0e55..1ee5657 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/client/ApiClient.java @@ -12,31 +12,15 @@ package software.xdev.sessionize.client; -import java.io.File; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Type; -import java.net.URI; -import java.net.URLEncoder; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.nio.charset.UnsupportedCharsetException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; -import java.text.DateFormat; +import com.fasterxml.jackson.annotation.*; +import tools.jackson.databind.*; +import tools.jackson.databind.cfg.DateTimeFeature; +import tools.jackson.databind.cfg.EnumFeature; +import tools.jackson.databind.json.JsonMapper; import java.time.OffsetDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import tools.jackson.core.type.TypeReference; +import tools.jackson.core.JacksonException; +import org.openapitools.jackson.nullable.JsonNullableJackson3Module; import org.apache.hc.client5.http.config.Configurable; import org.apache.hc.client5.http.config.RequestConfig; @@ -63,30 +47,51 @@ import org.apache.hc.core5.http.io.support.ClassicRequestBuilder; import org.apache.hc.core5.http.message.BasicNameValuePair; import org.apache.hc.core5.util.Timeout; -import org.openapitools.jackson.nullable.JsonNullableJackson3Module; -import com.fasterxml.jackson.annotation.JsonInclude; +import java.util.Collection; +import java.util.Collections; +import java.util.Map; +import java.util.Map.Entry; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Date; +import java.util.function.Supplier; +import java.util.TimeZone; +import java.util.regex.Matcher; +import java.util.regex.Pattern; -import software.xdev.sessionize.client.auth.Authentication; -import tools.jackson.core.JacksonException; -import tools.jackson.core.type.TypeReference; -import tools.jackson.databind.DeserializationFeature; -import tools.jackson.databind.ObjectMapper; -import tools.jackson.databind.cfg.DateTimeFeature; -import tools.jackson.databind.cfg.EnumFeature; -import tools.jackson.databind.json.JsonMapper; +import java.net.URLEncoder; + +import java.io.File; +import java.io.InputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; +import java.nio.charset.UnsupportedCharsetException; +import java.nio.file.Files; +import java.nio.file.StandardCopyOption; +import java.nio.file.Paths; +import java.lang.reflect.Type; +import java.net.URI; + +import java.text.DateFormat; +import software.xdev.sessionize.client.auth.Authentication; public class ApiClient extends JavaTimeFormatter { - protected Map defaultHeaderMap = new HashMap<>(); - protected Map defaultCookieMap = new HashMap<>(); + 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", - "No description provided", - new HashMap<>() - ) + protected List servers = new ArrayList(Arrays.asList( + new ServerConfiguration( + "https://sessionize.com", + "No description provided", + new HashMap() + ) )); protected Integer serverIndex = 0; protected Map serverVariables = null; @@ -107,10 +112,9 @@ public class ApiClient extends JavaTimeFormatter { // Methods that can have a request body protected static List bodyMethods = Arrays.asList("POST", "PUT", "DELETE", "PATCH"); - - public ApiClient(final CloseableHttpClient httpClient) - { - this.objectMapper = JsonMapper.builder() + + public ApiClient(CloseableHttpClient httpClient) { + objectMapper = JsonMapper.builder() .changeDefaultPropertyInclusion(v -> v.withValueInclusion(JsonInclude.Include.NON_NULL)) .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) .disable(DeserializationFeature.FAIL_ON_INVALID_SUBTYPE) @@ -121,16 +125,16 @@ public ApiClient(final CloseableHttpClient httpClient) .addModule(new RFC3339JavaTimeModule()) .defaultDateFormat(ApiClient.buildDefaultDateFormat()) .build(); - - this.dateFormat = ApiClient.buildDefaultDateFormat(); + + dateFormat = ApiClient.buildDefaultDateFormat(); // Set default User-Agent. - this.setUserAgent("OpenAPI-Generator/2.0/java"); + setUserAgent("OpenAPI-Generator/2.0/java"); // Setup authentications (key: authentication name, value: authentication). - this.authentications = new HashMap<>(); + authentications = new HashMap(); // Prevent the authentications from being modified. - this.authentications = Collections.unmodifiableMap(this.authentications); + authentications = Collections.unmodifiableMap(authentications); this.httpClient = httpClient; } @@ -152,7 +156,7 @@ public static DateFormat buildDefaultDateFormat() { * @return Object mapper */ public ObjectMapper getObjectMapper() { - return this.objectMapper; + return objectMapper; } /** @@ -161,14 +165,13 @@ public ObjectMapper getObjectMapper() { * @param objectMapper object mapper * @return API client */ - public ApiClient setObjectMapper(final ObjectMapper objectMapper) - { + public ApiClient setObjectMapper(ObjectMapper objectMapper) { this.objectMapper = objectMapper; return this; } public CloseableHttpClient getHttpClient() { - return this.httpClient; + return httpClient; } /** @@ -177,14 +180,13 @@ public CloseableHttpClient getHttpClient() { * @param httpClient HTTP client * @return API client */ - public ApiClient setHttpClient(final CloseableHttpClient httpClient) - { + public ApiClient setHttpClient(CloseableHttpClient httpClient) { this.httpClient = httpClient; return this; } public String getBasePath() { - return this.basePath; + return basePath; } /** @@ -193,15 +195,14 @@ public String getBasePath() { * @param basePath base path * @return API client */ - public ApiClient setBasePath(final String basePath) - { + public ApiClient setBasePath(String basePath) { this.basePath = basePath; this.serverIndex = null; return this; } public List getServers() { - return this.servers; + return servers; } /** @@ -210,14 +211,13 @@ public List getServers() { * @param servers a list of server configuration * @return API client */ - public ApiClient setServers(final List servers) - { + public ApiClient setServers(List servers) { this.servers = servers; return this; } public Integer getServerIndex() { - return this.serverIndex; + return serverIndex; } /** @@ -226,14 +226,13 @@ public Integer getServerIndex() { * @param serverIndex server index * @return API client */ - public ApiClient setServerIndex(final Integer serverIndex) - { + public ApiClient setServerIndex(Integer serverIndex) { this.serverIndex = serverIndex; return this; } public Map getServerVariables() { - return this.serverVariables; + return serverVariables; } /** @@ -242,8 +241,7 @@ public Map getServerVariables() { * @param serverVariables server variables * @return API client */ - public ApiClient setServerVariables(final Map serverVariables) - { + public ApiClient setServerVariables(Map serverVariables) { this.serverVariables = serverVariables; return this; } @@ -255,7 +253,7 @@ public ApiClient setServerVariables(final Map serverVariables) */ @Deprecated public int getStatusCode() { - return this.lastStatusCode.get(); + return lastStatusCode.get(); } /** @@ -264,7 +262,7 @@ public int getStatusCode() { */ @Deprecated public Map> getResponseHeaders() { - return this.lastResponseHeaders.get(); + return lastResponseHeaders.get(); } /** @@ -272,7 +270,7 @@ public Map> getResponseHeaders() { * @return Map of authentication */ public Map getAuthentications() { - return this.authentications; + return authentications; } /** @@ -281,9 +279,8 @@ public Map getAuthentications() { * @param authName The authentication name * @return The authentication, null if not found */ - public Authentication getAuthentication(final String authName) - { - return this.authentications.get(authName); + public Authentication getAuthentication(String authName) { + return authentications.get(authName); } /** @@ -294,7 +291,7 @@ public Authentication getAuthentication(final String authName) * @return Temp folder path */ public String getTempFolderPath() { - return this.tempFolderPath; + return tempFolderPath; } @@ -306,9 +303,8 @@ public String getTempFolderPath() { * @param userAgent User agent * @return API client */ - public final ApiClient setUserAgent(final String userAgent) - { - this.addDefaultHeader("User-Agent", userAgent); + public final ApiClient setUserAgent(String userAgent) { + addDefaultHeader("User-Agent", userAgent); return this; } @@ -317,8 +313,7 @@ public final ApiClient setUserAgent(final String userAgent) * @param tempFolderPath Temp folder path * @return API client */ - public ApiClient setTempFolderPath(final String tempFolderPath) - { + public ApiClient setTempFolderPath(String tempFolderPath) { this.tempFolderPath = tempFolderPath; return this; } @@ -330,9 +325,8 @@ public ApiClient setTempFolderPath(final String tempFolderPath) * @param value The header's value * @return API client */ - public final ApiClient addDefaultHeader(final String key, final String value) - { - this.defaultHeaderMap.put(key, value); + public final ApiClient addDefaultHeader(String key, String value) { + defaultHeaderMap.put(key, value); return this; } @@ -343,9 +337,8 @@ public final ApiClient addDefaultHeader(final String key, final String value) * @param value The cookie's value * @return API client */ - public ApiClient addDefaultCookie(final String key, final String value) - { - this.defaultCookieMap.put(key, value); + public ApiClient addDefaultCookie(String key, String value) { + defaultCookieMap.put(key, value); return this; } @@ -354,7 +347,7 @@ public ApiClient addDefaultCookie(final String key, final String value) * @return True if debugging is on */ public boolean isDebugging() { - return this.debugging; + return debugging; } /** @@ -363,8 +356,7 @@ public boolean isDebugging() { * @param debugging To enable (true) or disable (false) debugging * @return API client */ - public ApiClient setDebugging(final boolean debugging) - { + public ApiClient setDebugging(boolean debugging) { // TODO: implement debugging mode this.debugging = debugging; return this; @@ -375,7 +367,7 @@ public ApiClient setDebugging(final boolean debugging) * @return Connection timeout */ public int getConnectTimeout() { - return this.connectionTimeout; + return connectionTimeout; } /** @@ -389,40 +381,36 @@ public int getConnectTimeout() { * @return API client * @throws IllegalArgumentException if connectionTimeout is negative */ - public ApiClient setConnectTimeout(final int connectionTimeout) - { - if(connectionTimeout < 0) - { + public ApiClient setConnectTimeout(int connectionTimeout) { + if (connectionTimeout < 0) { throw new IllegalArgumentException("connectionTimeout must not be negative"); } this.connectionTimeout = connectionTimeout; return this; } - + /** * Read timeout (in milliseconds). - * * @return Read timeout */ - public int getReadTimeout() - { - return this.readTimeout; + public int getReadTimeout() { + return readTimeout; } - + /** - * Set the read timeout (in milliseconds), i.e. the response timeout while waiting for data after the connection is - * established. A value of 0 means the HTTP client's default response timeout is used, otherwise values must be - * between 1 and {@link Integer#MAX_VALUE}. The timeout is applied to each request via its request configuration; - * other request configuration defaults of the underlying HTTP client are preserved. - * + * Set the read timeout (in milliseconds), i.e. the response timeout + * while waiting for data after the connection is established. + * A value of 0 means the HTTP client's default response timeout is used, + * otherwise values must be between 1 and {@link Integer#MAX_VALUE}. + * The timeout is applied to each request via its request configuration; + * other request configuration defaults of the underlying HTTP client + * are preserved. * @param readTimeout Read timeout in milliseconds * @return API client * @throws IllegalArgumentException if readTimeout is negative */ - public ApiClient setReadTimeout(final int readTimeout) - { - if(readTimeout < 0) - { + public ApiClient setReadTimeout(int readTimeout) { + if (readTimeout < 0) { throw new IllegalArgumentException("readTimeout must not be negative"); } this.readTimeout = readTimeout; @@ -433,9 +421,8 @@ public ApiClient setReadTimeout(final int readTimeout) * Get the date format used to parse/format date parameters. * @return Date format */ - public DateFormat getDateFormat() - { - return this.dateFormat; + public DateFormat getDateFormat() { + return dateFormat; } /** @@ -443,18 +430,13 @@ public DateFormat getDateFormat() * @param dateFormat Date format * @return API client */ - public ApiClient setDateFormat(final DateFormat dateFormat) { + public ApiClient setDateFormat(DateFormat dateFormat) { this.dateFormat = dateFormat; // Also set the date format for model (de)serialization with Date properties. - if(this.objectMapper instanceof JsonMapper) - { - this.objectMapper = - ((JsonMapper)this.objectMapper).rebuild().defaultDateFormat((DateFormat)dateFormat.clone()).build(); - } - else - { - throw new UnsupportedOperationException( - "setDateFormat is only supported when objectMapper is a JsonMapper instance"); + if (this.objectMapper instanceof JsonMapper) { + this.objectMapper = ((JsonMapper) this.objectMapper).rebuild().defaultDateFormat((DateFormat) dateFormat.clone()).build(); + } else { + throw new UnsupportedOperationException("setDateFormat is only supported when objectMapper is a JsonMapper instance"); } return this; } @@ -464,13 +446,10 @@ public ApiClient setDateFormat(final DateFormat dateFormat) { * @param str String * @return Date */ - public Date parseDate(final String str) - { - try - { - return this.dateFormat.parse(str); - } - catch(final java.text.ParseException e) { + public Date parseDate(String str) { + try { + return dateFormat.parse(str); + } catch (java.text.ParseException e) { throw new RuntimeException(e); } } @@ -480,9 +459,8 @@ public Date parseDate(final String str) * @param date Date * @return Date in string format */ - public String formatDate(final Date date) - { - return this.dateFormat.format(date); + public String formatDate(Date date) { + return dateFormat.format(date); } /** @@ -490,19 +468,16 @@ public String formatDate(final Date date) * @param param Object * @return Object in string format */ - public String parameterToString(final Object param) { + public String parameterToString(Object param) { if (param == null) { return ""; - } else if (param instanceof Date) - { - return this.formatDate((Date) param); - } else if (param instanceof OffsetDateTime) - { - return this.formatOffsetDateTime((OffsetDateTime) param); - } else if (param instanceof Collection) - { - final StringBuilder b = new StringBuilder(); - for(final Object o : (Collection)param) { + } else if (param instanceof Date) { + return formatDate((Date) param); + } else if (param instanceof OffsetDateTime) { + return formatOffsetDateTime((OffsetDateTime) param); + } else if (param instanceof Collection) { + StringBuilder b = new StringBuilder(); + for(Object o : (Collection)param) { if(b.length() > 0) { b.append(','); } @@ -523,16 +498,15 @@ public String parameterToString(final Object param) { * @param value The value of the parameter. * @return A list containing a single {@code Pair} object. */ - public List parameterToPair(final String name, final Object value) - { - final List params = new ArrayList<>(); + public List parameterToPair(String name, Object value) { + List params = new ArrayList(); // preconditions if (name == null || name.isEmpty() || value == null || value instanceof Collection) { return params; } - - params.add(new Pair(name, this.escapeString(this.parameterToString(value)))); + + params.add(new Pair(name, escapeString(parameterToString(value)))); return params; } @@ -546,9 +520,8 @@ public List parameterToPair(final String name, final Object value) * @param value The value of the parameter. * @return A list of {@code Pair} objects. */ - public List parameterToPairs(final String collectionFormat, final String name, final Collection value) - { - final List params = new ArrayList<>(); + public List parameterToPairs(String collectionFormat, String name, Collection value) { + List params = new ArrayList(); // preconditions if (name == null || name.isEmpty() || value == null || value.isEmpty()) { @@ -556,11 +529,9 @@ public List parameterToPairs(final String collectionFormat, final String n } // create the params based on the collection format - if ("multi".equals(collectionFormat)) - { - for(final Object item : value) - { - params.add(new Pair(name, this.escapeString(this.parameterToString(item)))); + if ("multi".equals(collectionFormat)) { + for (Object item : value) { + params.add(new Pair(name, escapeString(parameterToString(item)))); } return params; } @@ -570,21 +541,18 @@ public List parameterToPairs(final String collectionFormat, final String n // escape all delimiters except commas, which are URI reserved // characters - if ("ssv".equals(collectionFormat)) - { - delimiter = this.escapeString(" "); - } else if ("tsv".equals(collectionFormat)) - { - delimiter = this.escapeString("\t"); - } else if ("pipes".equals(collectionFormat)) - { - delimiter = this.escapeString("|"); + if ("ssv".equals(collectionFormat)) { + delimiter = escapeString(" "); + } else if ("tsv".equals(collectionFormat)) { + delimiter = escapeString("\t"); + } else if ("pipes".equals(collectionFormat)) { + delimiter = escapeString("|"); } - - final StringBuilder sb = new StringBuilder(); - for(final Object item : value) { + + StringBuilder sb = new StringBuilder() ; + for (Object item : value) { sb.append(delimiter); - sb.append(this.escapeString(this.parameterToString(item))); + sb.append(escapeString(parameterToString(item))); } params.add(new Pair(name, sb.substring(delimiter.length()))); @@ -602,9 +570,8 @@ public List parameterToPairs(final String collectionFormat, final String n * @param mime MIME * @return True if MIME type is boolean */ - public boolean isJsonMime(final String mime) - { - final String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; + public boolean isJsonMime(String mime) { + String jsonMime = "(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"; return mime != null && (mime.matches(jsonMime) || mime.equals("*/*")); } @@ -617,13 +584,12 @@ public boolean isJsonMime(final String mime) * @return The Accept header to use. If the given array is empty, * null will be returned (not to set the Accept header explicitly). */ - public String selectHeaderAccept(final String[] accepts) { + public String selectHeaderAccept(String[] accepts) { if (accepts.length == 0) { return null; } - for(final String accept : accepts) - { - if(this.isJsonMime(accept)) { + for (String accept : accepts) { + if (isJsonMime(accept)) { return accept; } } @@ -639,13 +605,12 @@ public String selectHeaderAccept(final String[] accepts) { * @return The Content-Type header to use. If the given array is empty, * or matches "any", JSON will be used. */ - public String selectHeaderContentType(final String[] contentTypes) { + public String selectHeaderContentType(String[] contentTypes) { if (contentTypes.length == 0 || contentTypes[0].equals("*/*")) { return "application/json"; } - for(final String contentType : contentTypes) - { - if(this.isJsonMime(contentType)) { + for (String contentType : contentTypes) { + if (isJsonMime(contentType)) { return contentType; } } @@ -657,11 +622,10 @@ public String selectHeaderContentType(final String[] contentTypes) { * @param str String * @return Escaped string */ - public String escapeString(final String str) { + public String escapeString(String str) { try { return URLEncoder.encode(str, "utf8").replaceAll("\\+", "%20"); - } - catch(final UnsupportedEncodingException e) { + } catch (UnsupportedEncodingException e) { return str; } } @@ -672,10 +636,9 @@ public String escapeString(final String str) { * @param headers HTTP headers * @return a map of string array */ - protected Map> transformResponseHeaders(final Header[] headers) - { - final Map> headersMap = new HashMap<>(); - for(final Header header : headers) { + protected Map> transformResponseHeaders(Header[] headers) { + Map> headersMap = new HashMap<>(); + for (Header header : headers) { List valuesList = headersMap.get(header.getName()); if (valuesList != null) { valuesList.add(header.getValue()); @@ -691,11 +654,10 @@ protected Map> transformResponseHeaders(final Header[] head /** * Parse content type object from header value */ - protected ContentType getContentType(final String headerValue) throws ApiException { + protected ContentType getContentType(String headerValue) throws ApiException { try { return ContentType.parse(headerValue); - } - catch(final UnsupportedCharsetException e) { + } catch (UnsupportedCharsetException e) { throw new ApiException("Could not parse content type " + headerValue); } } @@ -703,12 +665,10 @@ protected ContentType getContentType(final String headerValue) throws ApiExcepti /** * Get content type of a response or null if one was not provided */ - protected String getResponseMimeType(final HttpResponse response) throws ApiException - { - final Header contentTypeHeader = response.getFirstHeader("Content-Type"); - if (contentTypeHeader != null) - { - return this.getContentType(contentTypeHeader.getValue()).getMimeType(); + protected String getResponseMimeType(HttpResponse response) throws ApiException { + Header contentTypeHeader = response.getFirstHeader("Content-Type"); + if (contentTypeHeader != null) { + return getContentType(contentTypeHeader.getValue()).getMimeType(); } return null; } @@ -722,55 +682,38 @@ protected String getResponseMimeType(final HttpResponse response) throws ApiExce * @return Object * @throws ApiException API exception */ - public HttpEntity serialize(final Object obj, final Map formParams, final ContentType contentType) - throws ApiException - { - final String mimeType = contentType.getMimeType(); - if(this.isJsonMime(mimeType)) - { - try - { - return new StringEntity( - this.objectMapper.writeValueAsString(obj), - contentType.withCharset(StandardCharsets.UTF_8)); - } - catch(final JacksonException e) { + public HttpEntity serialize(Object obj, Map formParams, ContentType contentType) throws ApiException { + String mimeType = contentType.getMimeType(); + if (isJsonMime(mimeType)) { + try { + return new StringEntity(objectMapper.writeValueAsString(obj), contentType.withCharset(StandardCharsets.UTF_8)); + } catch (JacksonException e) { throw new ApiException(e); } - } else if (mimeType.equals(ContentType.MULTIPART_FORM_DATA.getMimeType())) - { - final MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); - for(final Entry paramEntry : formParams.entrySet()) - { - final Object value = paramEntry.getValue(); + } else if (mimeType.equals(ContentType.MULTIPART_FORM_DATA.getMimeType())) { + MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); + for (Entry paramEntry : formParams.entrySet()) { + Object value = paramEntry.getValue(); if (value instanceof File) { multiPartBuilder.addBinaryBody(paramEntry.getKey(), (File) value); } else if (value instanceof byte[]) { multiPartBuilder.addBinaryBody(paramEntry.getKey(), (byte[]) value); - } - else - { - final Charset charset = contentType.getCharset(); - if(charset != null) - { - final ContentType customContentType = ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), charset); - multiPartBuilder.addTextBody( - paramEntry.getKey(), this.parameterToString(paramEntry.getValue()), + } else { + Charset charset = contentType.getCharset(); + if (charset != null) { + ContentType customContentType = ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), charset); + multiPartBuilder.addTextBody(paramEntry.getKey(), parameterToString(paramEntry.getValue()), customContentType); - } - else - { - multiPartBuilder.addTextBody(paramEntry.getKey(), this.parameterToString(paramEntry.getValue())); + } else { + multiPartBuilder.addTextBody(paramEntry.getKey(), parameterToString(paramEntry.getValue())); } } } return multiPartBuilder.build(); - } else if (mimeType.equals(ContentType.APPLICATION_FORM_URLENCODED.getMimeType())) - { - final List formValues = new ArrayList<>(); - for(final Entry paramEntry : formParams.entrySet()) - { - formValues.add(new BasicNameValuePair(paramEntry.getKey(), this.parameterToString(paramEntry.getValue()))); + } else if (mimeType.equals(ContentType.APPLICATION_FORM_URLENCODED.getMimeType())) { + List formValues = new ArrayList<>(); + for (Entry paramEntry : formParams.entrySet()) { + formValues.add(new BasicNameValuePair(paramEntry.getKey(), parameterToString(paramEntry.getValue()))); } return new UrlEncodedFormEntity(formValues, contentType.getCharset()); } else { @@ -795,37 +738,33 @@ public HttpEntity serialize(final Object obj, final Map formPara * @throws IOException IO exception */ @SuppressWarnings("unchecked") - public T deserialize(final CloseableHttpResponse response, final TypeReference valueType) - throws ApiException, IOException, ParseException { + public T deserialize(CloseableHttpResponse response, TypeReference valueType) throws ApiException, IOException, ParseException { if (valueType == null) { return null; } - final HttpEntity entity = response.getEntity(); - final Type valueRawType = valueType.getType(); + HttpEntity entity = response.getEntity(); + Type valueRawType = valueType.getType(); if (valueRawType.equals(byte[].class)) { return (T) EntityUtils.toByteArray(entity); - } else if (valueRawType.equals(File.class)) - { - return (T)this.downloadFileFromResponse(response); + } else if (valueRawType.equals(File.class)) { + return (T) downloadFileFromResponse(response); } - final String mimeType = this.getResponseMimeType(response); - if(mimeType == null || this.isJsonMime(mimeType)) { + String mimeType = getResponseMimeType(response); + if (mimeType == null || isJsonMime(mimeType)) { // Assume json if no mime type // convert input stream to string - final String content = EntityUtils.toString(entity); + String content = EntityUtils.toString(entity); if ("".equals(content)) { // returns null for empty body return null; } - - return this.objectMapper.readValue(content, valueType); + + return objectMapper.readValue(content, valueType); } else if (mimeType.toLowerCase().startsWith("text/")) { // convert input stream to string return (T) EntityUtils.toString(entity); - } - else - { - final Map> responseHeaders = this.transformResponseHeaders(response.getHeaders()); + } else { + Map> responseHeaders = transformResponseHeaders(response.getHeaders()); throw new ApiException( "Deserialization for content type '" + mimeType + "' not supported for type '" + valueType + "'", response.getCode(), @@ -834,22 +773,21 @@ public T deserialize(final CloseableHttpResponse response, final TypeReferen ); } } - - protected File downloadFileFromResponse(final CloseableHttpResponse response) throws IOException - { - final Header contentDispositionHeader = response.getFirstHeader("Content-Disposition"); - final String contentDisposition = contentDispositionHeader == null ? null : contentDispositionHeader.getValue(); - final File file = this.prepareDownloadFile(contentDisposition); + + protected File downloadFileFromResponse(CloseableHttpResponse response) throws IOException { + Header contentDispositionHeader = response.getFirstHeader("Content-Disposition"); + String contentDisposition = contentDispositionHeader == null ? null : contentDispositionHeader.getValue(); + File file = prepareDownloadFile(contentDisposition); Files.copy(response.getEntity().getContent(), file.toPath(), StandardCopyOption.REPLACE_EXISTING); return file; } - - protected File prepareDownloadFile(final String contentDisposition) throws IOException { + + protected File prepareDownloadFile(String contentDisposition) throws IOException { String filename = null; if (contentDisposition != null && !"".equals(contentDisposition)) { // Get filename from the Content-Disposition header. - final Pattern pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?"); - final Matcher matcher = pattern.matcher(contentDisposition); + Pattern pattern = Pattern.compile("filename=['\"]?([^'\"\\s]+)['\"]?"); + Matcher matcher = pattern.matcher(contentDisposition); if (matcher.find()) filename = matcher.group(1); } @@ -859,10 +797,8 @@ protected File prepareDownloadFile(final String contentDisposition) throws IOExc if (filename == null) { prefix = "download-"; suffix = ""; - } - else - { - final int pos = filename.lastIndexOf('.'); + } else { + int pos = filename.lastIndexOf('.'); if (pos == -1) { prefix = filename + "-"; } else { @@ -873,13 +809,11 @@ protected File prepareDownloadFile(final String contentDisposition) throws IOExc if (prefix.length() < 3) prefix = "download-"; } - - if(this.tempFolderPath == null) + + if (tempFolderPath == null) return Files.createTempFile(prefix, suffix).toFile(); else - { - return Files.createTempFile(Paths.get(this.tempFolderPath), prefix, suffix).toFile(); - } + return Files.createTempFile(Paths.get(tempFolderPath), prefix, suffix).toFile(); } /** @@ -887,22 +821,18 @@ protected File prepareDownloadFile(final String contentDisposition) throws IOExc * * @return The URL for the client. */ - public String getBaseURL() - { - final String baseURL; - if(this.serverIndex != null) - { - if(this.serverIndex < 0 || this.serverIndex >= this.servers.size()) { + public String getBaseURL() { + String baseURL; + 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", this.serverIndex, this.servers.size() + "Invalid index %d when selecting the host settings. Must be less than %d", serverIndex, servers.size() )); } - baseURL = this.servers.get(this.serverIndex).URL(this.serverVariables); - } - else - { - baseURL = this.basePath; + baseURL = servers.get(serverIndex).URL(serverVariables); + } else { + baseURL = basePath; } return baseURL; } @@ -916,13 +846,8 @@ public String getBaseURL() * @param urlQueryDeepObject URL query string of the deep object parameters * @return The full URL */ - protected String buildUrl( - final String path, - final List queryParams, - final List collectionQueryParams, - final String urlQueryDeepObject) - { - final String baseURL = this.getBaseURL(); + protected String buildUrl(String path, List queryParams, List collectionQueryParams, String urlQueryDeepObject) { + String baseURL = getBaseURL(); final StringBuilder url = new StringBuilder(); url.append(baseURL).append(path); @@ -930,7 +855,7 @@ protected String buildUrl( if (queryParams != null && !queryParams.isEmpty()) { // support (constant) query string in `path`, e.g. "/posts?draft=1" String prefix = path.contains("?") ? "&" : "?"; - for(final Pair param : queryParams) { + for (Pair param : queryParams) { if (param.getValue() != null) { if (prefix != null) { url.append(prefix); @@ -938,16 +863,16 @@ protected String buildUrl( } else { url.append("&"); } - final String value = this.parameterToString(param.getValue()); + String value = parameterToString(param.getValue()); // query parameter value already escaped as part of parameterToPair - url.append(this.escapeString(param.getName())).append("=").append(value); + url.append(escapeString(param.getName())).append("=").append(value); } } } if (collectionQueryParams != null && !collectionQueryParams.isEmpty()) { String prefix = url.toString().contains("?") ? "&" : "?"; - for(final Pair param : collectionQueryParams) { + for (Pair param : collectionQueryParams) { if (param.getValue() != null) { if (prefix != null) { url.append(prefix); @@ -955,9 +880,9 @@ protected String buildUrl( } else { url.append("&"); } - final String value = this.parameterToString(param.getValue()); + String value = parameterToString(param.getValue()); // collection query parameter value already escaped as part of parameterToPairs - url.append(this.escapeString(param.getName())).append("=").append(value); + url.append(escapeString(param.getName())).append("=").append(value); } } } @@ -969,41 +894,36 @@ protected String buildUrl( return url.toString(); } - - protected boolean isSuccessfulStatus(final int statusCode) { + + protected boolean isSuccessfulStatus(int statusCode) { return statusCode >= 200 && statusCode < 300; } - - protected boolean isBodyAllowed(final String method) { + + protected boolean isBodyAllowed(String method) { return bodyMethods.contains(method); } - - protected Cookie buildCookie(final String key, final String value, final URI uri) - { - final BasicClientCookie cookie = new BasicClientCookie(key, value); + + protected Cookie buildCookie(String key, String value, URI uri) { + BasicClientCookie cookie = new BasicClientCookie(key, value); cookie.setDomain(uri.getHost()); cookie.setPath("/"); return cookie; } - - protected T processResponse(final CloseableHttpResponse response, final TypeReference returnType) - throws ApiException, IOException, ParseException - { - final int statusCode = response.getCode(); - this.lastStatusCode.set(statusCode); + + protected T processResponse(CloseableHttpResponse response, TypeReference returnType) throws ApiException, IOException, ParseException { + int statusCode = response.getCode(); + lastStatusCode.set(statusCode); if (statusCode == HttpStatus.SC_NO_CONTENT) { return null; } - - final Map> responseHeaders = this.transformResponseHeaders(response.getHeaders()); - this.lastResponseHeaders.set(responseHeaders); - - if(this.isSuccessfulStatus(statusCode)) { + + Map> responseHeaders = transformResponseHeaders(response.getHeaders()); + lastResponseHeaders.set(responseHeaders); + + if (isSuccessfulStatus(statusCode)) { return this.deserialize(response, returnType); - } - else - { - final String message = EntityUtils.toString(response.getEntity()); + } else { + String message = EntityUtils.toString(response.getEntity()); throw new ApiException(message, statusCode, responseHeaders, message); } } @@ -1029,81 +949,73 @@ protected T processResponse(final CloseableHttpResponse response, final Type * @throws ApiException API exception */ public T invokeAPI( - final String path, - final String method, - final List queryParams, - final List collectionQueryParams, - final String urlQueryDeepObject, - final Object body, - final Map headerParams, - final Map cookieParams, - final Map formParams, - final String accept, - final String contentType, - final String[] authNames, - final TypeReference returnType) throws ApiException { + String path, + String method, + List queryParams, + List collectionQueryParams, + String urlQueryDeepObject, + Object body, + Map headerParams, + Map cookieParams, + Map formParams, + String accept, + String contentType, + String[] authNames, + TypeReference returnType) throws ApiException { if (body != null && !formParams.isEmpty()) { throw new ApiException("Cannot have body and form params"); } - - this.updateParamsForAuth(authNames, queryParams, headerParams, cookieParams); - final String url = this.buildUrl(path, queryParams, collectionQueryParams, urlQueryDeepObject); - - final ClassicRequestBuilder builder = ClassicRequestBuilder.create(method); + + updateParamsForAuth(authNames, queryParams, headerParams, cookieParams); + final String url = buildUrl(path, queryParams, collectionQueryParams, urlQueryDeepObject); + + ClassicRequestBuilder builder = ClassicRequestBuilder.create(method); builder.setUri(url); if (accept != null) { builder.addHeader("Accept", accept); } - for(final Entry keyValue : headerParams.entrySet()) { + for (Entry keyValue : headerParams.entrySet()) { builder.addHeader(keyValue.getKey(), keyValue.getValue()); - } - for(final Map.Entry keyValue : this.defaultHeaderMap.entrySet()) { + } + for (Map.Entry keyValue : defaultHeaderMap.entrySet()) { if (!headerParams.containsKey(keyValue.getKey())) { builder.addHeader(keyValue.getKey(), keyValue.getValue()); } - } - - final BasicCookieStore store = new BasicCookieStore(); - for(final Entry keyValue : cookieParams.entrySet()) - { - store.addCookie(this.buildCookie(keyValue.getKey(), keyValue.getValue(), builder.getUri())); - } - for(final Entry keyValue : this.defaultCookieMap.entrySet()) { - if (!cookieParams.containsKey(keyValue.getKey())) - { - store.addCookie(this.buildCookie(keyValue.getKey(), keyValue.getValue(), builder.getUri())); + } + + BasicCookieStore store = new BasicCookieStore(); + for (Entry keyValue : cookieParams.entrySet()) { + store.addCookie(buildCookie(keyValue.getKey(), keyValue.getValue(), builder.getUri())); + } + for (Entry keyValue : defaultCookieMap.entrySet()) { + if (!cookieParams.containsKey(keyValue.getKey())) { + store.addCookie(buildCookie(keyValue.getKey(), keyValue.getValue(), builder.getUri())); } - } - - final HttpClientContext context = HttpClientContext.create(); + } + + HttpClientContext context = HttpClientContext.create(); context.setCookieStore(store); - - if(this.connectionTimeout > 0 || this.readTimeout > 0) - { - // start from the default request configuration of the underlying HTTP client, if - // accessible, so that only the configured timeouts are overridden - final RequestConfig defaultConfig = - this.httpClient instanceof Configurable ? ((Configurable)this.httpClient).getConfig() : null; - final RequestConfig.Builder requestConfigBuilder = - defaultConfig == null ? RequestConfig.custom() : RequestConfig.copy(defaultConfig); - if(this.connectionTimeout > 0) - { - requestConfigBuilder.setConnectTimeout(Timeout.ofMilliseconds(this.connectionTimeout)); - } - if(this.readTimeout > 0) - { - requestConfigBuilder.setResponseTimeout(Timeout.ofMilliseconds(this.readTimeout)); - } - context.setRequestConfig(requestConfigBuilder.build()); - } - - final ContentType contentTypeObj = this.getContentType(contentType); - if (body != null || !formParams.isEmpty()) - { - if(this.isBodyAllowed(method)) { + + if (connectionTimeout > 0 || readTimeout > 0) { + // start from the default request configuration of the underlying HTTP client, if + // accessible, so that only the configured timeouts are overridden + RequestConfig defaultConfig = httpClient instanceof Configurable ? ((Configurable) httpClient).getConfig() : null; + RequestConfig.Builder requestConfigBuilder = defaultConfig == null ? RequestConfig.custom() : RequestConfig.copy(defaultConfig); + if (connectionTimeout > 0) { + requestConfigBuilder.setConnectTimeout(Timeout.ofMilliseconds(connectionTimeout)); + } + if (readTimeout > 0) { + requestConfigBuilder.setResponseTimeout(Timeout.ofMilliseconds(readTimeout)); + } + context.setRequestConfig(requestConfigBuilder.build()); + } + + ContentType contentTypeObj = getContentType(contentType); + if (body != null || !formParams.isEmpty()) { + if (isBodyAllowed(method)) { // Add entity if we have content and a valid method - builder.setEntity(this.serialize(body, formParams, contentTypeObj)); + builder.setEntity(serialize(body, formParams, contentTypeObj)); } else { throw new ApiException("method " + method + " does not support a request body"); } @@ -1111,12 +1023,10 @@ public T invokeAPI( // for empty body builder.setEntity(new StringEntity("", contentTypeObj)); } - - try(final CloseableHttpResponse response = this.httpClient.execute(builder.build(), context)) - { - return this.processResponse(response, returnType); - } - catch(final IOException | ParseException e) { + + try (CloseableHttpResponse response = httpClient.execute(builder.build(), context)) { + return processResponse(response, returnType); + } catch (IOException | ParseException e) { throw new ApiException(e); } } @@ -1129,15 +1039,9 @@ public T invokeAPI( * @param headerParams Header parameters * @param cookieParams Cookie parameters */ - protected void updateParamsForAuth( - final String[] authNames, - final List queryParams, - final Map headerParams, - final Map cookieParams) - { - for(final String authName : authNames) - { - final Authentication auth = this.authentications.get(authName); + 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); auth.applyToParams(queryParams, headerParams, cookieParams); } diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryDetail.java similarity index 87% rename from src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java rename to src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryDetail.java index 998caba..f716908 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategorySession.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/CategoryDetail.java @@ -30,15 +30,15 @@ import java.util.StringJoiner; /** - * CategorySession + * CategoryDetail */ @JsonPropertyOrder({ - CategorySession.JSON_PROPERTY_ID, - CategorySession.JSON_PROPERTY_SORT, - CategorySession.JSON_PROPERTY_NAME, - CategorySession.JSON_PROPERTY_CATEGORY_ITEMS + CategoryDetail.JSON_PROPERTY_ID, + CategoryDetail.JSON_PROPERTY_SORT, + CategoryDetail.JSON_PROPERTY_NAME, + CategoryDetail.JSON_PROPERTY_CATEGORY_ITEMS }) -public class CategorySession { +public class CategoryDetail { public static final String JSON_PROPERTY_ID = "id"; @jakarta.annotation.Nonnull private Integer id; @@ -55,10 +55,10 @@ public class CategorySession { @jakarta.annotation.Nonnull private List categoryItems = new ArrayList<>(); - public CategorySession() { + public CategoryDetail() { } - public CategorySession id(@jakarta.annotation.Nonnull Integer id) { + public CategoryDetail id(@jakarta.annotation.Nonnull Integer id) { this.id = id; return this; @@ -83,7 +83,7 @@ public void setId(@jakarta.annotation.Nonnull Integer id) { this.id = id; } - public CategorySession sort(@jakarta.annotation.Nonnull Integer sort) { + public CategoryDetail sort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; return this; @@ -108,7 +108,7 @@ public void setSort(@jakarta.annotation.Nonnull Integer sort) { this.sort = sort; } - public CategorySession name(@jakarta.annotation.Nonnull String name) { + public CategoryDetail name(@jakarta.annotation.Nonnull String name) { this.name = name; return this; @@ -133,13 +133,13 @@ public void setName(@jakarta.annotation.Nonnull String name) { this.name = name; } - public CategorySession categoryItems(@jakarta.annotation.Nonnull List categoryItems) { + public CategoryDetail categoryItems(@jakarta.annotation.Nonnull List categoryItems) { this.categoryItems = categoryItems; return this; } - public CategorySession addCategoryItemsItem(CategoryItem categoryItemsItem) { + public CategoryDetail addCategoryItemsItem(CategoryItem categoryItemsItem) { if (this.categoryItems == null) { this.categoryItems = new ArrayList<>(); } @@ -175,11 +175,11 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { return false; } - CategorySession categorySession = (CategorySession) o; - return Objects.equals(this.id, categorySession.id) && - Objects.equals(this.sort, categorySession.sort) && - Objects.equals(this.name, categorySession.name) && - Objects.equals(this.categoryItems, categorySession.categoryItems); + CategoryDetail categoryDetail = (CategoryDetail) o; + return Objects.equals(this.id, categoryDetail.id) && + Objects.equals(this.sort, categoryDetail.sort) && + Objects.equals(this.name, categoryDetail.name) && + Objects.equals(this.categoryItems, categoryDetail.categoryItems); } @Override @@ -190,7 +190,7 @@ public int hashCode() { @Override public String toString() { StringBuilder sb = new StringBuilder(); - sb.append("class CategorySession {\n"); + sb.append("class CategoryDetail {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" sort: ").append(toIndentedString(sort)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java index 4448ac0..1d2a407 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Session.java @@ -25,7 +25,7 @@ import java.util.Arrays; import java.util.List; import org.openapitools.jackson.nullable.JsonNullable; -import software.xdev.sessionize.model.CategorySession; +import software.xdev.sessionize.model.CategoryDetail; import software.xdev.sessionize.model.QuestionAnswerFull; import software.xdev.sessionize.model.SpeakerMinimal; import software.xdev.sessionize.model.Status; @@ -122,7 +122,7 @@ public class Session { public static final String JSON_PROPERTY_CATEGORIES = "categories"; @jakarta.annotation.Nonnull - private List categories = new ArrayList<>(); + private List categories = new ArrayList<>(); public Session() { } @@ -558,13 +558,13 @@ public void setQuestionAnswers(@jakarta.annotation.Nonnull List categories) { + public Session categories(@jakarta.annotation.Nonnull List categories) { this.categories = categories; return this; } - public Session addCategoriesItem(CategorySession categoriesItem) { + public Session addCategoriesItem(CategoryDetail categoriesItem) { if (this.categories == null) { this.categories = new ArrayList<>(); } @@ -580,14 +580,14 @@ public Session addCategoriesItem(CategorySession categoriesItem) { @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public List getCategories() { + public List getCategories() { return categories; } @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) @JsonInclude(value = JsonInclude.Include.ALWAYS) - public void setCategories(@jakarta.annotation.Nonnull List categories) { + public void setCategories(@jakarta.annotation.Nonnull List categories) { this.categories = categories; } diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java index fb4abe4..ba998a2 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/Speaker.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.UUID; import org.openapitools.jackson.nullable.JsonNullable; +import software.xdev.sessionize.model.CategoryDetail; import software.xdev.sessionize.model.Link; import software.xdev.sessionize.model.QuestionAnswerFull; import software.xdev.sessionize.model.SessionMinimal; @@ -51,7 +52,8 @@ Speaker.JSON_PROPERTY_LINKS, Speaker.JSON_PROPERTY_FULL_NAME, Speaker.JSON_PROPERTY_SESSIONS, - Speaker.JSON_PROPERTY_QUESTION_ANSWERS + Speaker.JSON_PROPERTY_QUESTION_ANSWERS, + Speaker.JSON_PROPERTY_CATEGORIES }) public class Speaker { public static final String JSON_PROPERTY_ID = "id"; @@ -98,6 +100,10 @@ public class Speaker { @jakarta.annotation.Nonnull private List questionAnswers = new ArrayList<>(); + public static final String JSON_PROPERTY_CATEGORIES = "categories"; + @jakarta.annotation.Nonnull + private List categories = new ArrayList<>(); + public Speaker() { } @@ -416,6 +422,39 @@ public void setQuestionAnswers(@jakarta.annotation.Nonnull List categories) { + + this.categories = categories; + return this; + } + + public Speaker addCategoriesItem(CategoryDetail categoriesItem) { + if (this.categories == null) { + this.categories = new ArrayList<>(); + } + this.categories.add(categoriesItem); + return this; + } + + /** + * Get categories + * @return categories + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getCategories() { + return categories; + } + + + @JsonProperty(value = JSON_PROPERTY_CATEGORIES, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCategories(@jakarta.annotation.Nonnull List categories) { + this.categories = categories; + } + @Override public boolean equals(Object o) { @@ -436,7 +475,8 @@ public boolean equals(Object o) { Objects.equals(this.links, speaker.links) && Objects.equals(this.fullName, speaker.fullName) && Objects.equals(this.sessions, speaker.sessions) && - Objects.equals(this.questionAnswers, speaker.questionAnswers); + Objects.equals(this.questionAnswers, speaker.questionAnswers) && + Objects.equals(this.categories, speaker.categories); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -445,7 +485,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(id, firstName, lastName, hashCodeNullable(bio), tagLine, hashCodeNullable(profilePicture), isTopSpeaker, links, fullName, sessions, questionAnswers); + return Objects.hash(id, firstName, lastName, hashCodeNullable(bio), tagLine, hashCodeNullable(profilePicture), isTopSpeaker, links, fullName, sessions, questionAnswers, categories); } private static int hashCodeNullable(JsonNullable a) { @@ -470,6 +510,7 @@ public String toString() { sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); sb.append(" sessions: ").append(toIndentedString(sessions)).append("\n"); sb.append(" questionAnswers: ").append(toIndentedString(questionAnswers)).append("\n"); + sb.append(" categories: ").append(toIndentedString(categories)).append("\n"); sb.append("}"); return sb.toString(); } @@ -624,6 +665,16 @@ public String toUrlQueryString(String prefix) { } } + // add `categories` to the URL query string + if (getCategories() != null) { + for (int i = 0; i < getCategories().size(); i++) { + if (getCategories().get(i) != null) { + 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)))); + } + } + } + return joiner.toString(); } diff --git a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java index 3a14c20..04c1b30 100644 --- a/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java +++ b/src/sessionize-java-client/src/generated/java/software/xdev/sessionize/model/SpeakerAll.java @@ -50,7 +50,8 @@ SpeakerAll.JSON_PROPERTY_LINKS, SpeakerAll.JSON_PROPERTY_FULL_NAME, SpeakerAll.JSON_PROPERTY_SESSIONS, - SpeakerAll.JSON_PROPERTY_QUESTION_ANSWERS + SpeakerAll.JSON_PROPERTY_QUESTION_ANSWERS, + SpeakerAll.JSON_PROPERTY_CATEGORY_ITEMS }) public class SpeakerAll { public static final String JSON_PROPERTY_ID = "id"; @@ -97,6 +98,10 @@ public class SpeakerAll { @jakarta.annotation.Nonnull private List questionAnswers = new ArrayList<>(); + public static final String JSON_PROPERTY_CATEGORY_ITEMS = "categoryItems"; + @jakarta.annotation.Nonnull + private List categoryItems = new ArrayList<>(); + public SpeakerAll() { } @@ -415,6 +420,39 @@ public void setQuestionAnswers(@jakarta.annotation.Nonnull List this.questionAnswers = questionAnswers; } + public SpeakerAll categoryItems(@jakarta.annotation.Nonnull List categoryItems) { + + this.categoryItems = categoryItems; + return this; + } + + public SpeakerAll addCategoryItemsItem(Integer categoryItemsItem) { + if (this.categoryItems == null) { + this.categoryItems = new ArrayList<>(); + } + this.categoryItems.add(categoryItemsItem); + return this; + } + + /** + * Get categoryItems + * @return categoryItems + */ + @jakarta.annotation.Nonnull + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + + public List getCategoryItems() { + return categoryItems; + } + + + @JsonProperty(value = JSON_PROPERTY_CATEGORY_ITEMS, required = true) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public void setCategoryItems(@jakarta.annotation.Nonnull List categoryItems) { + this.categoryItems = categoryItems; + } + @Override public boolean equals(Object o) { @@ -435,7 +473,8 @@ public boolean equals(Object o) { Objects.equals(this.links, speakerAll.links) && Objects.equals(this.fullName, speakerAll.fullName) && Objects.equals(this.sessions, speakerAll.sessions) && - Objects.equals(this.questionAnswers, speakerAll.questionAnswers); + Objects.equals(this.questionAnswers, speakerAll.questionAnswers) && + Objects.equals(this.categoryItems, speakerAll.categoryItems); } private static boolean equalsNullable(JsonNullable a, JsonNullable b) { @@ -444,7 +483,7 @@ private static boolean equalsNullable(JsonNullable a, JsonNullable b) @Override public int hashCode() { - return Objects.hash(id, firstName, lastName, hashCodeNullable(bio), tagLine, hashCodeNullable(profilePicture), isTopSpeaker, links, fullName, sessions, questionAnswers); + return Objects.hash(id, firstName, lastName, hashCodeNullable(bio), tagLine, hashCodeNullable(profilePicture), isTopSpeaker, links, fullName, sessions, questionAnswers, categoryItems); } private static int hashCodeNullable(JsonNullable a) { @@ -469,6 +508,7 @@ public String toString() { sb.append(" fullName: ").append(toIndentedString(fullName)).append("\n"); sb.append(" sessions: ").append(toIndentedString(sessions)).append("\n"); sb.append(" questionAnswers: ").append(toIndentedString(questionAnswers)).append("\n"); + sb.append(" categoryItems: ").append(toIndentedString(categoryItems)).append("\n"); sb.append("}"); return sb.toString(); } @@ -627,6 +667,20 @@ public String toUrlQueryString(String prefix) { } } + // add `categoryItems` to the URL query string + if (getCategoryItems() != null) { + for (int i = 0; i < getCategoryItems().size(); i++) { + try { + 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 + throw new RuntimeException(e); + } + } + } + return joiner.toString(); } From 66371dea52353f38e3b9102fe8eaa88761053df5 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 09:09:05 +0200 Subject: [PATCH 63/64] Bump version --- demos/pom.xml | 2 +- demos/sessionize-java-client-demo/pom.xml | 2 +- pom.xml | 2 +- src/pom.xml | 2 +- src/sessionize-java-client/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/demos/pom.xml b/demos/pom.xml index dec7606..b6f24c8 100644 --- a/demos/pom.xml +++ b/demos/pom.xml @@ -7,7 +7,7 @@ software.xdev root - 1.3.1-SNAPSHOT + 2.0.0-SNAPSHOT demos diff --git a/demos/sessionize-java-client-demo/pom.xml b/demos/sessionize-java-client-demo/pom.xml index 9cc2333..284e255 100644 --- a/demos/sessionize-java-client-demo/pom.xml +++ b/demos/sessionize-java-client-demo/pom.xml @@ -7,7 +7,7 @@ software.xdev demos - 1.3.1-SNAPSHOT + 2.0.0-SNAPSHOT sessionize-java-client-demo diff --git a/pom.xml b/pom.xml index b9e9ee1..2566987 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ software.xdev root - 1.3.1-SNAPSHOT + 2.0.0-SNAPSHOT pom https://github.com/xdev-software/template-placeholder diff --git a/src/pom.xml b/src/pom.xml index a99fe9c..f77061c 100644 --- a/src/pom.xml +++ b/src/pom.xml @@ -7,7 +7,7 @@ software.xdev root - 1.3.1-SNAPSHOT + 2.0.0-SNAPSHOT src diff --git a/src/sessionize-java-client/pom.xml b/src/sessionize-java-client/pom.xml index e38253c..902543b 100644 --- a/src/sessionize-java-client/pom.xml +++ b/src/sessionize-java-client/pom.xml @@ -7,7 +7,7 @@ software.xdev src - 1.3.1-SNAPSHOT + 2.0.0-SNAPSHOT sessionize-java-client From b055fae4c226c0480591d8d137ee99938e7a1e3b Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 13 Oct 2026 09:11:42 +0200 Subject: [PATCH 64/64] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index e5dc283..09d4300 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ Sessionize API ``v2``: * ``view`` * All ✔️ * Speakers ✔️ - * SpeakerEmails ✔️ (undocumented endpoint) * Sessions ✔️