From 36c3c4a40143cf61bf926f6fbd154a656fc75c18 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 23 Jan 2026 04:30:45 +0000 Subject: [PATCH 01/55] Update org.springframework.boot.version to v4.0.2 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index d3b2557..bf63bfe 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -31,7 +31,7 @@ 25.0.3 - 4.0.1 + 4.0.2 From 0f3f209b5e215cb05c5d2aa1e6dd7eee9213a42a Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 1 Feb 2026 04:56:12 +0000 Subject: [PATCH 02/55] Update dependency com.puppycrawl.tools:checkstyle to v13.1.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 84ce434..d062774 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.1.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3738a65..d8992d5 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.0.0 + 13.1.0 From b782259974ebd85ab887251d59fb85d354db3ec3 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 2 Feb 2026 04:53:19 +0000 Subject: [PATCH 03/55] Update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.15.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 05b947b..06fc318 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -44,7 +44,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 3738a65..0bc0784 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -97,7 +97,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${maven.compiler.release} From cdbd713ed0a07b6b3de402fc98adb2d591ece70a Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 3 Feb 2026 04:43:13 +0000 Subject: [PATCH 04/55] Update net.sourceforge.pmd to v7.21.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 d062774..803cb4d 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.21.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.21.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 597d823..cdb13a0 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.20.0 + 7.21.0 net.sourceforge.pmd pmd-java - 7.20.0 + 7.21.0 From 78e6f922261869bc7a6f939d185e46e35ed3f0aa Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 4 Feb 2026 12:01:54 +0100 Subject: [PATCH 05/55] Updat to PMD 7.21.0 --- .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 e96576b..e2325a9 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -146,7 +146,6 @@ - @@ -164,6 +163,7 @@ + From 076ea0fc43b6354042220d357fa595eeebf32f0b Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 6 Feb 2026 04:44:15 +0000 Subject: [PATCH 06/55] Update dependency com.puppycrawl.tools:checkstyle to v13.2.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d062774..45d9bd4 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.1.0 + 13.2.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 597d823..0ea5a26 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.1.0 + 13.2.0 From f07e2b24ccabd61e385fecaf05c14b53f43601e9 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 6 Feb 2026 09:49:03 +0100 Subject: [PATCH 07/55] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 5393585..85928e5 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,8 @@ node_modules/ # Vaadin package.json package-lock.json +.npmrc +pnpm-lock.yaml webpack.generated.js webpack.config.js tsconfig.json From 76cf22386537f750c979b63658ab3459f6b8586c Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 20 Feb 2026 08:43:59 +0100 Subject: [PATCH 08/55] Disallow classes ending with Helper or Util Fixes https://github.com/xdev-software/java-setup-template/issues/7 --- .config/checkstyle/checkstyle.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index 463a629..262c9f9 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -79,6 +79,11 @@ + + + + + From 838f350c5da393d455f0b1de29397762af9111ac Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 23 Feb 2026 09:54:21 +0100 Subject: [PATCH 09/55] Avoid using Optional#get Fixes https://github.com/xdev-software/java-setup-template/issues/8 --- .config/pmd/java/ruleset.xml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.config/pmd/java/ruleset.xml b/.config/pmd/java/ruleset.xml index e2325a9..9dc7a0f 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -208,6 +208,36 @@ + + +`Optional#get` can be interpreted as a getter by developers, however this is not the case as it throws an exception when empty. + +It should be replaced by +* doing a mapping directly using `.map` or `.ifPresent` +* using the preferred `.orElseThrow`, `.orElse` or `.or` methods + +Java Developer Brian Goetz also writes regarding this topic: + +> Java 8 was a huge improvement to the platform, but one of the few mistakes we made was the naming of `Optional.get()`, because the name just invites people to call it without calling `isPresent()`, undermining the whole point of using `Optional` in the first place. +> +> During the Java 9 time frame, we proposed to deprecate `Optional.get()`, but the public response to that was ... let's say cold. As a smaller step, we introduced `orElseThrow()` in 10 (see [JDK-8140281](https://bugs.openjdk.java.net/browse/JDK-8140281)) as a more transparently named synonym for the current pernicious behavior of `get()`. IDEs warn on unconditional use of `get()`, but not on `orElseThrow()`, which is a step forward in teaching people to code better. The question is, in a sense, a "glass half empty" view of the current situation; `get()` is still problematic. + + 3 + + + + + + + + + Date: Thu, 26 Feb 2026 04:42:27 +0000 Subject: [PATCH 10/55] Update lycheeverse/lychee-action digest to 8646ba3 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index e6c3385..d768259 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -18,7 +18,7 @@ jobs: - name: Link Checker id: lychee - uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2 + uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2 with: fail: false # Don't fail on broken links, create an issue instead From 8b6624e632e759013ba7aa24ba6ec36f4951f500 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 26 Feb 2026 04:45:51 +0000 Subject: [PATCH 11/55] Update lycheeverse/lychee-action digest to 8646ba3 --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 2675c8b..5b50d06 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -19,7 +19,7 @@ jobs: - name: Link Checker id: lychee - uses: lycheeverse/lychee-action@a8c4c7cb88f0c7386610c35eb25108e448569cb0 # v2 + uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2 with: fail: false # Don't fail on broken links, create an issue instead From a53730bb4a5a0765d9972d93dd5884253f67b619 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 27 Feb 2026 04:43:58 +0000 Subject: [PATCH 12/55] Update actions/upload-artifact action to v7 --- .github/workflows/check-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index b1a6d66..b5d7995 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -69,7 +69,7 @@ jobs: fi - name: Upload demo files - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: demo-files-java-${{ matrix.java }} path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar @@ -152,7 +152,7 @@ jobs: - name: Upload report if: always() - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: pmd-report if-no-files-found: ignore From 0dcf9cfe57c8d8c8ace1253845b67afb8bd47bda Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 1 Mar 2026 04:48:23 +0000 Subject: [PATCH 13/55] Update dependency com.puppycrawl.tools:checkstyle to v13.3.0 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a219280..e214afa 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.2.0 + 13.3.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 9e08842..2547c6f 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.2.0 + 13.3.0 From 77e37f981ecf107f1ebb690beb75262b3314b38e Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 2 Mar 2026 04:46:12 +0000 Subject: [PATCH 14/55] Update dependency net.sourceforge.pmd:pmd-core to v7.22.0 [SECURITY] --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a219280..4cac133 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ net.sourceforge.pmd pmd-core - 7.21.0 + 7.22.0 net.sourceforge.pmd diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 9e08842..4a20d6d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,7 +253,7 @@ net.sourceforge.pmd pmd-core - 7.21.0 + 7.22.0 net.sourceforge.pmd From 961291c3795ca9f249ce028fe98fe1524da6b0fb Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 2 Mar 2026 04:46:14 +0000 Subject: [PATCH 15/55] Update dependency net.sourceforge.pmd:pmd-java to v7.22.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 a219280..97f7b18 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ net.sourceforge.pmd pmd-java - 7.21.0 + 7.22.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 9e08842..3831400 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -258,7 +258,7 @@ net.sourceforge.pmd pmd-java - 7.21.0 + 7.22.0 From 6f9b5b39e904c2167782591b14a645b1fd49b730 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 2 Mar 2026 12:00:46 +0100 Subject: [PATCH 16/55] Create report-gha-workflow-security-problems.yml Fixes https://github.com/xdev-software/base-template/issues/13 --- .../report-gha-workflow-security-problems.yml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/report-gha-workflow-security-problems.yml diff --git a/.github/workflows/report-gha-workflow-security-problems.yml b/.github/workflows/report-gha-workflow-security-problems.yml new file mode 100644 index 0000000..b17aa53 --- /dev/null +++ b/.github/workflows/report-gha-workflow-security-problems.yml @@ -0,0 +1,61 @@ +name: Report workflow security problems + +on: + workflow_dispatch: + push: + branches: [ develop ] + paths: + - '.github/workflows/**' + +permissions: + issues: write + +jobs: + prt: + runs-on: ubuntu-latest + timeout-minutes: 15 + # Only run this in our repos (Prevent notification spam by forks) + if: ${{ github.repository_owner == 'xdev-software' }} + steps: + - uses: actions/checkout@v6 + + - name: Check + id: check + run: | + grep -l 'pull_request_target:' --exclude report-gha-workflow-security-problems.yml *.yml > reported.txt && exit 1 || exit 0 + working-directory: .github/workflows + + - name: Find already existing issue + id: find-issue + if: ${{ !cancelled() }} + run: | + echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title "Incorrectly configure GHA workflow (prt)"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT + env: + GH_TOKEN: ${{ github.token }} + + - name: Close issue if everything is fine + if: ${{ success() && steps.find-issue.outputs.number != '' }} + run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }} + env: + GH_TOKEN: ${{ github.token }} + + - name: Create report + if: ${{ failure() && steps.check.conclusion == 'failure' }} + run: | + echo 'Detected usage of `pull_request_target`. This event is dangerous and MUST NOT BE USED AT ALL COST!' > reported.md + echo '' >> reported.md + echo '/cc @xdev-software/gha-workflow-security' >> reported.md + echo '' >> reported.md + echo '```' >> reported.md + cat .github/workflows/reported.txt >> reported.md + echo '```' >> reported.md + cat reported.md + + - name: Create Issue From File + if: ${{ failure() && steps.check.conclusion == 'failure' }} + uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 # v6 + with: + issue-number: ${{ steps.find-issue.outputs.number }} + title: 'Incorrectly configure GHA workflow (prt)' + content-filepath: ./reported.md + labels: bug, automated From eeecea100177e0f5680bf8a50684c941cf6f193f Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 2 Mar 2026 12:13:20 +0000 Subject: [PATCH 17/55] Update org.springframework.boot.version to v4.0.3 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index 339996c..79a08a6 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -31,7 +31,7 @@ 25.0.3 - 4.0.2 + 4.0.3 From eddc158f8579b4f24ff2aef35cd303b94553f607 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 2 Mar 2026 12:13:21 +0000 Subject: [PATCH 18/55] Update vaadin.version to v25.0.6 --- 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 339996c..b38d411 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -29,7 +29,7 @@ software.xdev.vaadin.Application - 25.0.3 + 25.0.6 4.0.2 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 460c7a7..905f20d 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -49,7 +49,7 @@ UTF-8 - 25.0.3 + 25.0.6 From 42dc90b3195e1e69fa68bd4229ed033f43475ccb Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 6 Mar 2026 11:26:43 +0100 Subject: [PATCH 19/55] Ignore cancelled builds --- .github/workflows/check-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index b5d7995..daae7b2 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -151,7 +151,7 @@ jobs: run: ./mvnw -B pmd:aggregate-cpd pmd:cpd-check -P pmd -DskipTests -T2C - name: Upload report - if: always() + if: ${{ !cancelled() }} uses: actions/upload-artifact@v7 with: name: pmd-report From 84e1242d26dadb2a8522dbaaa1563c0e613bf086 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 9 Mar 2026 10:01:24 +0100 Subject: [PATCH 20/55] Enforce use of PMD plugin After feedback from colleague --- .idea/externalDependencies.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/.idea/externalDependencies.xml b/.idea/externalDependencies.xml index 78be5b8..0b477b8 100644 --- a/.idea/externalDependencies.xml +++ b/.idea/externalDependencies.xml @@ -3,5 +3,6 @@ + \ No newline at end of file From c8c9580accc185c3a234fda3012d41c089d0d913 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 10 Mar 2026 04:42:30 +0000 Subject: [PATCH 21/55] Update dependency maven to v3.9.13 --- .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 8dea6c2..71ea75a 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.12/apache-maven-3.9.12-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.13/apache-maven-3.9.13-bin.zip From dcc4d3a2b53acbabe8be046c40130f3ee5e37c8c Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Wed, 11 Mar 2026 04:44:33 +0000 Subject: [PATCH 22/55] Update vaadin.version to v25.0.7 --- 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 dfd1706..bd6e7f4 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -29,7 +29,7 @@ software.xdev.vaadin.Application - 25.0.6 + 25.0.7 4.0.3 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 905f20d..5aaa3e0 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -49,7 +49,7 @@ UTF-8 - 25.0.6 + 25.0.7 From 4951b0b479fcf878b6ff00a3b1be5f3b465b25c0 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 13 Mar 2026 04:44:06 +0000 Subject: [PATCH 23/55] Update dependency maven to v3.9.14 --- .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 71ea75a..c595b00 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.13/apache-maven-3.9.13-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.14/apache-maven-3.9.14-bin.zip From cbd7ac875acfbd2d36c29ffcbcbebcf315560235 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sun, 15 Mar 2026 04:56:46 +0000 Subject: [PATCH 24/55] Update shogo82148/actions-create-release digest to 6a39603 --- .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 3f55399..2b7941b 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@559c27ce7eb834825e2b55927c64f6d1bd1db716 # v1 + uses: shogo82148/actions-create-release@6a396031bc74c57403da1018fec74d24c6aa03cd # v1 with: tag_name: v${{ steps.version.outputs.release }} release_name: v${{ steps.version.outputs.release }} From 1f7b544139853259c36a8807f4710dc149738299 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Fri, 27 Mar 2026 04:58:15 +0000 Subject: [PATCH 25/55] Update org.springframework.boot.version to v4.0.5 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index bd6e7f4..f427342 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -31,7 +31,7 @@ 25.0.7 - 4.0.3 + 4.0.5 From b6c60e60be46f6fa52a6fe415e0e0b16e8e2b886 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 28 Mar 2026 04:47:46 +0000 Subject: [PATCH 26/55] Update net.sourceforge.pmd to v7.23.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 4d53635..c19848e 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.22.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.22.0 + 7.23.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index abef60d..5931b6c 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.22.0 + 7.23.0 net.sourceforge.pmd pmd-java - 7.22.0 + 7.23.0 From 7192c1a29f1848257b77974333a1108d2869db49 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 30 Mar 2026 05:09:13 +0000 Subject: [PATCH 27/55] Update dependency com.puppycrawl.tools:checkstyle to v13.4.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 4d53635..1f91c95 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.3.0 + 13.4.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index abef60d..97dc504 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.3.0 + 13.4.0 From e77bae85a513462863e824b3d8b071edb426bd52 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 30 Mar 2026 09:04:15 +0200 Subject: [PATCH 28/55] Updates for CheckStyle 13.4 --- .config/checkstyle/checkstyle.xml | 1 + .idea/checkstyle-idea.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.config/checkstyle/checkstyle.xml b/.config/checkstyle/checkstyle.xml index 262c9f9..ce1e09d 100644 --- a/.config/checkstyle/checkstyle.xml +++ b/.config/checkstyle/checkstyle.xml @@ -85,6 +85,7 @@ + diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml index a751c41..27f72ce 100644 --- a/.idea/checkstyle-idea.xml +++ b/.idea/checkstyle-idea.xml @@ -1,7 +1,7 @@ - 13.0.0 + 13.4.0 JavaOnlyWithTests true true From 225c79b88ca0fb52a376de459f5ed4c7890a498f Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 30 Mar 2026 14:59:05 +0200 Subject: [PATCH 29/55] Prepare for new templating system --- .config/topo/upstream.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .config/topo/upstream.yml diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml new file mode 100644 index 0000000..d78d893 --- /dev/null +++ b/.config/topo/upstream.yml @@ -0,0 +1,2 @@ +- url: https://github.com/xdev-software/base-template.git + branch: master From fcf8b930e9544886a329758cd7fe21ad474bd337 Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:01:53 +0200 Subject: [PATCH 30/55] Update upstream.yml --- .config/topo/upstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml index d78d893..7821ddf 100644 --- a/.config/topo/upstream.yml +++ b/.config/topo/upstream.yml @@ -1,2 +1,2 @@ -- url: https://github.com/xdev-software/base-template.git +- url: https://github.com/xdev-software/java-template.git branch: master From 3e30eebf5761e3e4ba41e2576938445c49500200 Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:05:59 +0200 Subject: [PATCH 31/55] Create upstream.yml --- .config/topo/upstream.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .config/topo/upstream.yml diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml new file mode 100644 index 0000000..8627eae --- /dev/null +++ b/.config/topo/upstream.yml @@ -0,0 +1,2 @@ +- url: https://github.com/xdev-software/java-setup-template.git + branch: master From 441acd8fc1bc6dc4bbb5ac1db54e5f276bf1c1fa Mon Sep 17 00:00:00 2001 From: "Alex \"Blex\" B" <45384811+AB-xdev@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:09:15 +0200 Subject: [PATCH 32/55] Update upstream.yml --- .config/topo/upstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml index d78d893..fced0c5 100644 --- a/.config/topo/upstream.yml +++ b/.config/topo/upstream.yml @@ -1,2 +1,2 @@ -- url: https://github.com/xdev-software/base-template.git +- url: https://github.com/xdev-software/vaadin-addon-template.git branch: master From 687c673ae447c3881b1c6fc8541111ccf847c842 Mon Sep 17 00:00:00 2001 From: AB Date: Mon, 30 Mar 2026 15:11:51 +0200 Subject: [PATCH 33/55] Update upstream.yml --- .config/topo/upstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml index d78d893..7821ddf 100644 --- a/.config/topo/upstream.yml +++ b/.config/topo/upstream.yml @@ -1,2 +1,2 @@ -- url: https://github.com/xdev-software/base-template.git +- url: https://github.com/xdev-software/java-template.git branch: master From fa9ccfa8a0714ff512fb760675b7f14bf0534f21 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 31 Mar 2026 09:54:49 +0200 Subject: [PATCH 34/55] Update upstream.yml --- .config/topo/upstream.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/topo/upstream.yml b/.config/topo/upstream.yml index 7821ddf..0cc67cd 100644 --- a/.config/topo/upstream.yml +++ b/.config/topo/upstream.yml @@ -1,2 +1,2 @@ -- url: https://github.com/xdev-software/java-template.git +- url: https://github.com/xdev-software/standard-maven-template.git branch: master From c0e52bd19d9671cf5b53ddfffd8ba4fae4b86b67 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 31 Mar 2026 14:08:01 +0200 Subject: [PATCH 35/55] Delete update-from-template.yml Will be managed centrally now --- .github/workflows/update-from-template.yml | 318 --------------------- 1 file changed, 318 deletions(-) delete mode 100644 .github/workflows/update-from-template.yml diff --git a/.github/workflows/update-from-template.yml b/.github/workflows/update-from-template.yml deleted file mode 100644 index 7cff559..0000000 --- a/.github/workflows/update-from-template.yml +++ /dev/null @@ -1,318 +0,0 @@ -name: Update from Template - -# This workflow keeps the repo up to date with changes from the template repo (REMOTE_URL) -# It duplicates the REMOTE_BRANCH (into UPDATE_BRANCH) and tries to merge it into -# this repos default branch (which is checked out here) -# Note that this requires a PAT (Personal Access Token) - at best from a servicing account -# PAT permissions: read:discussion, read:org, repo, workflow -# Also note that you should have at least once merged the template repo into the current repo manually -# otherwise a "refusing to merge unrelated histories" error might occur. - -on: - schedule: - - cron: '55 2 * * 1' - workflow_dispatch: - inputs: - no_automatic_merge: - type: boolean - description: 'No automatic merge' - default: false - -env: - UPDATE_BRANCH: update-from-template - UPDATE_BRANCH_MERGED: update-from-template-merged - REMOTE_URL: https://github.com/xdev-software/base-template.git - REMOTE_BRANCH: master - -permissions: - contents: write - pull-requests: write - -jobs: - update: - runs-on: ubuntu-latest - outputs: - update_branch_merged_commit: ${{ steps.manage-branches.outputs.update_branch_merged_commit }} - create_update_branch_merged_pr: ${{ steps.manage-branches.outputs.create_update_branch_merged_pr }} - steps: - - uses: actions/checkout@v6 - with: - # Required because otherwise there are always changes detected when executing diff/rev-list - fetch-depth: 0 - # If no PAT is used the following error occurs on a push: - # refusing to allow a GitHub App to create or update workflow `.github/workflows/xxx.yml` without `workflows` permission - token: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - - - name: Init Git - run: | - git config --global user.email "111048771+xdev-gh-bot@users.noreply.github.com" - git config --global user.name "XDEV Bot" - - - name: Manage branches - id: manage-branches - run: | - echo "Adding remote template-repo" - git remote add template ${{ env.REMOTE_URL }} - - echo "Fetching remote template repo" - git fetch template - - echo "Deleting local branches that will contain the updates - if present" - git branch -D ${{ env.UPDATE_BRANCH }} || true - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "Checking if the remote template repo has new commits" - git rev-list ..template/${{ env.REMOTE_BRANCH }} - - if [ $(git rev-list --count ..template/${{ env.REMOTE_BRANCH }}) -eq 0 ]; then - echo "There are no commits new commits on the template repo" - - echo "Deleting origin branch(es) that contain the updates - if present" - git push -f origin --delete ${{ env.UPDATE_BRANCH }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "create_update_branch_pr=0" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Found new commits on the template repo" - - echo "Creating update branch" - git branch ${{ env.UPDATE_BRANCH }} template/${{ env.REMOTE_BRANCH }} - git branch --unset-upstream ${{ env.UPDATE_BRANCH }} - - echo "Pushing update branch" - git push -f -u origin ${{ env.UPDATE_BRANCH }} - - echo "Getting base branch" - base_branch=$(git branch --show-current) - echo "Base branch is $base_branch" - echo "base_branch=$base_branch" >> $GITHUB_OUTPUT - - echo "Trying to create auto-merged branch ${{ env.UPDATE_BRANCH_MERGED }}" - git branch ${{ env.UPDATE_BRANCH_MERGED }} ${{ env.UPDATE_BRANCH }} - git checkout ${{ env.UPDATE_BRANCH_MERGED }} - - echo "Merging branch $base_branch into ${{ env.UPDATE_BRANCH_MERGED }}" - git merge $base_branch && merge_exit_code=$? || merge_exit_code=$? - if [ $merge_exit_code -ne 0 ]; then - echo "Auto merge failed! Manual merge required" - echo "::notice ::Auto merge failed - Manual merge required" - - echo "Cleaning up failed merge" - git merge --abort - git checkout $base_branch - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "Deleting auto-merge branch - if present" - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true - - echo "create_update_branch_pr=1" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Post processing: Trying to automatically fill in template variables" - find . -type f \ - -not -path "./.git/**" \ - -not -path "./.github/workflows/update-from-template.yml" -print0 \ - | xargs -0 sed -i "s/template-placeholder/${GITHUB_REPOSITORY#*/}/g" - - git status - git add --all - - if [[ "$(git status --porcelain)" != "" ]]; then - echo "Filled in template; Committing" - - git commit -m "Fill in template" - fi - - echo "Pushing auto-merged branch" - git push -f -u origin ${{ env.UPDATE_BRANCH_MERGED }} - - echo "update_branch_merged_commit=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT - - echo "Restoring base branch $base_branch" - git checkout $base_branch - - echo "create_update_branch_pr=0" >> $GITHUB_OUTPUT - echo "create_update_branch_merged_pr=1" >> $GITHUB_OUTPUT - echo "try_close_update_branch_pr=1" >> $GITHUB_OUTPUT - - - name: Create/Update PR update_branch - if: steps.manage-branches.outputs.create_update_branch_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh_pr_up() { - gh pr create -H "${{ env.UPDATE_BRANCH }}" "$@" || (git checkout "${{ env.UPDATE_BRANCH }}" && gh pr edit "$@") - } - gh_pr_up -B "${{ steps.manage-branches.outputs.base_branch }}" \ - --title "Update from template" \ - --body "An automated PR to sync changes from the template into this repo" - - # Ensure that only a single PR is open (otherwise confusion and spam) - - name: Close PR update_branch - if: steps.manage-branches.outputs.try_close_update_branch_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh pr close "${{ env.UPDATE_BRANCH }}" || true - - - name: Create/Update PR update_branch_merged - if: steps.manage-branches.outputs.create_update_branch_merged_pr == 1 - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - gh_pr_up() { - gh pr create -H "${{ env.UPDATE_BRANCH_MERGED }}" "$@" || (git checkout "${{ env.UPDATE_BRANCH_MERGED }}" && gh pr edit "$@") - } - gh_pr_up -B "${{ steps.manage-branches.outputs.base_branch }}" \ - --title "Update from template (auto-merged)" \ - --body "An automated PR to sync changes from the template into this repo" - - # Wait a moment so that checks of PR have higher prio than following job - sleep 3 - - # Split into two jobs to help with executor starvation - auto-merge: - needs: [update] - if: needs.update.outputs.create_update_branch_merged_pr == 1 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v6 - with: - # Required because otherwise there are always changes detected when executing diff/rev-list - fetch-depth: 0 - # If no PAT is used the following error occurs on a push: - # refusing to allow a GitHub App to create or update workflow `.github/workflows/xxx.yml` without `workflows` permission - token: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - - - name: Init Git - run: | - git config --global user.email "111048771+xdev-gh-bot@users.noreply.github.com" - git config --global user.name "XDEV Bot" - - - name: Checking if auto-merge for PR update_branch_merged can be done - id: auto-merge-check - env: - GH_TOKEN: ${{ secrets.UPDATE_FROM_TEMPLATE_PAT }} - run: | - not_failed_conclusion="skipped|neutral|success" - not_relevant_app_slug="dependabot|github-pages|sonarqubecloud" - - echo "Waiting for checks to start..." - sleep 40s - - for i in {1..20}; do - echo "Checking if PR can be auto-merged. Try: $i" - - echo "Checking if update-branch-merged exists" - git fetch - if [[ $(git ls-remote --heads origin refs/heads/${{ env.UPDATE_BRANCH_MERGED }}) ]]; then - echo "Branch still exists; Continuing..." - else - echo "Branch origin/${{ env.UPDATE_BRANCH_MERGED }} is missing" - exit 0 - fi - - echo "Fetching checks" - cs_response=$(curl -sL \ - --fail-with-body \ - --connect-timeout 60 \ - --max-time 120 \ - -H "Accept: application/vnd.github+json" \ - -H "Authorization: Bearer $GH_TOKEN" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - https://api.github.com/repos/${{ github.repository }}/commits/${{ needs.update.outputs.update_branch_merged_commit }}/check-suites) - - cs_data=$(echo $cs_response | jq '.check_suites[] | { conclusion: .conclusion, slug: .app.slug, check_runs_url: .check_runs_url }') - echo $cs_data - - if [[ -z "$cs_data" ]]; then - echo "No check suite data - Assuming that there are no checks to run" - - echo "perform=1" >> $GITHUB_OUTPUT - exit 0 - fi - - cs_failed=$(echo $cs_data | jq --arg x "$not_failed_conclusion" 'select ((.conclusion == null or (.conclusion | test($x))) | not)') - if [[ -z "$cs_failed" ]]; then - echo "No check failed so far; Checking if relevant checks are still running" - - cs_relevant_still_running=$(echo $cs_data | jq --arg x "$not_relevant_app_slug" 'select (.conclusion == null and (.slug | test($x) | not))') - if [[ -z $cs_relevant_still_running ]]; then - echo "All relevant checks finished - PR can be merged" - - echo "perform=1" >> $GITHUB_OUTPUT - exit 0 - else - echo "Relevant checks are still running" - echo $cs_relevant_still_running - fi - else - echo "Detected failed check" - echo $cs_failed - - echo "perform=0" >> $GITHUB_OUTPUT - exit 0 - fi - - echo "Waiting before next run..." - sleep 30s - done - - echo "Timed out - Assuming executor starvation - Forcing merge" - echo "perform=1" >> $GITHUB_OUTPUT - - - name: Auto-merge update_branch_merged - if: steps.auto-merge-check.outputs.perform == 1 - run: | - echo "Getting base branch" - base_branch=$(git branch --show-current) - echo "Base branch is $base_branch" - - echo "Fetching..." - git fetch - if [[ $(git rev-parse origin/${{ env.UPDATE_BRANCH_MERGED }}) ]]; then - echo "Branch still exists; Continuing..." - else - echo "Branch origin/${{ env.UPDATE_BRANCH_MERGED }} is missing" - exit 0 - fi - - expected_commit="${{ needs.update.outputs.update_branch_merged_commit }}" - actual_commit=$(git rev-parse origin/${{ env.UPDATE_BRANCH_MERGED }}) - if [[ "$expected_commit" != "$actual_commit" ]]; then - echo "Branch ${{ env.UPDATE_BRANCH_MERGED }} contains unexpected commit $actual_commit" - echo "Expected: $expected_commit" - - exit 0 - fi - - echo "Ensuring that current branch $base_branch is up-to-date" - git pull - - echo "Merging origin/${{ env.UPDATE_BRANCH_MERGED }} into $base_branch" - git merge origin/${{ env.UPDATE_BRANCH_MERGED }} && merge_exit_code=$? || merge_exit_code=$? - if [ $merge_exit_code -ne 0 ]; then - echo "Unexpected merge failure $merge_exit_code - Requires manual resolution" - - exit 0 - fi - - if [[ "${{ inputs.no_automatic_merge }}" == "true" ]]; then - echo "Exiting due no_automatic_merge" - - exit 0 - fi - - echo "Pushing" - git push - - echo "Cleaning up" - git branch -D ${{ env.UPDATE_BRANCH }} || true - git branch -D ${{ env.UPDATE_BRANCH_MERGED }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH }} || true - git push -f origin --delete ${{ env.UPDATE_BRANCH_MERGED }} || true From 410118a62ef1fad66e1af2179423041b79619972 Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 14 Apr 2026 17:54:38 +0200 Subject: [PATCH 36/55] Link Check: Only check md files --- .github/workflows/broken-links.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index d768259..130c748 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -20,6 +20,7 @@ jobs: id: lychee uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2 with: + args: "--verbose --no-progress './**/*.md'" fail: false # Don't fail on broken links, create an issue instead - name: Find already existing issue From 89d8065370beeec5991ee18674dabe5fba31c78c Mon Sep 17 00:00:00 2001 From: AB Date: Tue, 14 Apr 2026 17:54:48 +0200 Subject: [PATCH 37/55] Link Check: Run when it's quiet --- .github/workflows/broken-links.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml index 130c748..ce623e9 100644 --- a/.github/workflows/broken-links.yml +++ b/.github/workflows/broken-links.yml @@ -3,7 +3,7 @@ name: Broken links on: workflow_dispatch: schedule: - - cron: "23 23 * * 0" + - cron: "23 5 * * 0" permissions: issues: write From 7642f478fb87d0236e30c682c719b5c8aba826b4 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 18 Apr 2026 04:58:02 +0000 Subject: [PATCH 38/55] Update dependency maven to v3.9.15 --- .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 c595b00..5291372 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.14/apache-maven-3.9.14-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.15/apache-maven-3.9.15-bin.zip From ca2cb20d60f84102ab43ea9dd7be57365117a562 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 21 Apr 2026 05:12:41 +0000 Subject: [PATCH 39/55] Update vaadin.version to v25.1.3 --- 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 f427342..8c102c5 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -29,7 +29,7 @@ software.xdev.vaadin.Application - 25.0.7 + 25.1.3 4.0.5 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7806c20..d5a2323 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -49,7 +49,7 @@ UTF-8 - 25.0.7 + 25.1.3 From 1b82e7828d85932e34d116628253fa7da07af7aa Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 23 Apr 2026 13:47:48 +0200 Subject: [PATCH 40/55] Remove unused compoents 26.1 --- template-placeholder-demo/pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index f427342..1420ecc 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -62,11 +62,15 @@ com.vaadin vaadin-core - + com.vaadin collaboration-engine + + com.vaadin + vaadin-ai-components-flow + From 72c1a6147b89882c84aac7067618b6834580779c Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 25 Apr 2026 05:01:11 +0000 Subject: [PATCH 41/55] Update net.sourceforge.pmd to v7.24.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 4fc6633..1c8fee5 100644 --- a/pom.xml +++ b/pom.xml @@ -83,12 +83,12 @@ net.sourceforge.pmd pmd-core - 7.23.0 + 7.24.0 net.sourceforge.pmd pmd-java - 7.23.0 + 7.24.0 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index d325a4a..3b33457 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -253,12 +253,12 @@ net.sourceforge.pmd pmd-core - 7.23.0 + 7.24.0 net.sourceforge.pmd pmd-java - 7.23.0 + 7.24.0 From 637f223b1fbbd2c7de764081ed9f394b381172a9 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Tue, 28 Apr 2026 05:20:22 +0000 Subject: [PATCH 42/55] Update dependency com.puppycrawl.tools:checkstyle to v13.4.1 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 4fc6633..4c28997 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.4.0 + 13.4.1 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index d325a4a..a107243 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.4.0 + 13.4.1 From ecfea4dd4ff4a9f27048e2afde2cdc332f8cd925 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Sat, 2 May 2026 05:15:29 +0000 Subject: [PATCH 43/55] Update dependency com.puppycrawl.tools:checkstyle to v13.4.2 --- pom.xml | 2 +- template-placeholder/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7b060e9..d0719ce 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ com.puppycrawl.tools checkstyle - 13.4.1 + 13.4.2 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 7b67b90..54cbb73 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -215,7 +215,7 @@ com.puppycrawl.tools checkstyle - 13.4.1 + 13.4.2 From 83cf6d22ca9b07e9147b5282d12e609ede5de46e Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 6 May 2026 13:08:23 +0200 Subject: [PATCH 44/55] PMD: Fix AvoidListAsEntityRelation detection --- .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 9dc7a0f..e42e77a 100644 --- a/.config/pmd/java/ruleset.xml +++ b/.config/pmd/java/ruleset.xml @@ -440,7 +440,7 @@ A `Set` also prevents duplicates when the ORM reads multiple identical rows from From 8d6f647ea5e4029612bdc014279e6d55ccf1a471 Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 7 May 2026 05:20:53 +0000 Subject: [PATCH 45/55] Update org.springframework.boot.version to v4.0.6 --- template-placeholder-demo/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/template-placeholder-demo/pom.xml b/template-placeholder-demo/pom.xml index a89a95c..330a4bf 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -31,7 +31,7 @@ 25.1.3 - 4.0.5 + 4.0.6 From 08ab1882e5da48b166e096263775dc9b71bfef4d Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Thu, 7 May 2026 05:20:55 +0000 Subject: [PATCH 46/55] Update vaadin.version to v25.1.5 --- 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 a89a95c..79bc7b4 100644 --- a/template-placeholder-demo/pom.xml +++ b/template-placeholder-demo/pom.xml @@ -29,7 +29,7 @@ software.xdev.vaadin.Application - 25.1.3 + 25.1.5 4.0.5 diff --git a/template-placeholder/pom.xml b/template-placeholder/pom.xml index 5e6a209..cdeaf20 100644 --- a/template-placeholder/pom.xml +++ b/template-placeholder/pom.xml @@ -49,7 +49,7 @@ UTF-8 - 25.1.3 + 25.1.5 From 9e1a16be35591b4d0e0991c486e3937e1f38e7fd Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 8 May 2026 13:36:42 +0200 Subject: [PATCH 47/55] Remove no longer needed exclusions --- template-placeholder-demo/pnpm-workspace.yaml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/template-placeholder-demo/pnpm-workspace.yaml b/template-placeholder-demo/pnpm-workspace.yaml index 9ac0828..c502387 100644 --- a/template-placeholder-demo/pnpm-workspace.yaml +++ b/template-placeholder-demo/pnpm-workspace.yaml @@ -2,24 +2,10 @@ minimumReleaseAge: 180 # 3h overrides: # Remove unused packages - # glob CLI unused - "jackspeak": "npm:empty-npm-package@1.0.0" - "foreground-child": "npm:empty-npm-package@1.0.0" - "package-json-from-dist": "npm:empty-npm-package@1.0.0" # rollup-plugin-visualizer CLI unused "yargs": "npm:empty-npm-package@1.0.0" "open": "npm:empty-npm-package@1.0.0" # transform-ast test only "nanobench": "npm:empty-npm-package@1.0.0" - # Workbox unused - "workbox-google-analytics": "npm:empty-npm-package@1.0.0" - "@surma/rollup-plugin-off-main-thread": "npm:empty-npm-package@1.0.0" - "@babel/preset-env": "npm:empty-npm-package@1.0.0" - "@babel/runtime": "npm:empty-npm-package@1.0.0" - "@rollup/plugin-replace@2.4.2": "npm:empty-npm-package@1.0.0" - "@rollup/plugin-babel": "npm:empty-npm-package@1.0.0" - "@rollup/plugin-node-resolve": "npm:empty-npm-package@1.0.0" - "@rollup/plugin-terser": "npm:empty-npm-package@1.0.0" - "tempy": "npm:empty-npm-package@1.0.0" # Disable telemetry "@vaadin/vaadin-usage-statistics": "npm:empty-npm-package@1.0.0" From 2312b28f671fd0a90ab29666001a4daf2839fec2 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 8 May 2026 13:50:07 +0200 Subject: [PATCH 48/55] Update pnpm-workspace.yaml --- template-placeholder-demo/pnpm-workspace.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/template-placeholder-demo/pnpm-workspace.yaml b/template-placeholder-demo/pnpm-workspace.yaml index c502387..87efb12 100644 --- a/template-placeholder-demo/pnpm-workspace.yaml +++ b/template-placeholder-demo/pnpm-workspace.yaml @@ -7,5 +7,3 @@ overrides: "open": "npm:empty-npm-package@1.0.0" # transform-ast test only "nanobench": "npm:empty-npm-package@1.0.0" - # Disable telemetry - "@vaadin/vaadin-usage-statistics": "npm:empty-npm-package@1.0.0" From ee8c175a60dc52f7c617d059b8607afd1df4e591 Mon Sep 17 00:00:00 2001 From: AB Date: Fri, 8 May 2026 13:51:04 +0200 Subject: [PATCH 49/55] Build with production mode --- .github/workflows/check-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 0a788ee..24dbd4c 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -57,7 +57,7 @@ jobs: ${{ runner.os }}-vaadin-prod-bundles- - name: Build with Maven - run: ./mvnw -B clean package + run: ./mvnw -B clean package -P production - name: Check for uncommited changes run: | From ba013149da197cc9fb66db640d31c7a6d9f99ca4 Mon Sep 17 00:00:00 2001 From: AB Date: Wed, 13 May 2026 14:59:41 +0200 Subject: [PATCH 50/55] Reenable disabling of usage stats by default --- template-placeholder-demo/pnpm-workspace.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/template-placeholder-demo/pnpm-workspace.yaml b/template-placeholder-demo/pnpm-workspace.yaml index 87efb12..3ac055f 100644 --- a/template-placeholder-demo/pnpm-workspace.yaml +++ b/template-placeholder-demo/pnpm-workspace.yaml @@ -1,5 +1,7 @@ # Delay install of newly released packages to prevent supply chain attacks minimumReleaseAge: 180 # 3h +minimumReleaseAgeExclude: + - "@xdevsoftware/*" overrides: # Remove unused packages # rollup-plugin-visualizer CLI unused @@ -7,3 +9,5 @@ overrides: "open": "npm:empty-npm-package@1.0.0" # transform-ast test only "nanobench": "npm:empty-npm-package@1.0.0" + # Usage statistics + "@vaadin/vaadin-usage-statistics": "npm:@xdevsoftware/vaadin-usage-statistics-opt-out@1.0.2" From 954833a39332536e930bc51c437c0629cab1dcbb Mon Sep 17 00:00:00 2001 From: XDEV Renovate Bot Date: Mon, 18 May 2026 05:36:59 +0000 Subject: [PATCH 51/55] Update dependency maven to v3.9.16 --- .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 5291372..216df05 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.15/apache-maven-3.9.15-bin.zip +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.16/apache-maven-3.9.16-bin.zip From 7a3c41473b42226c77065943a7fa38d480c2bd6a Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 21 May 2026 14:19:23 +0200 Subject: [PATCH 52/55] Revert "Reenable disabling of usage stats by default" This reverts commit ba013149da197cc9fb66db640d31c7a6d9f99ca4. --- template-placeholder-demo/pnpm-workspace.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/template-placeholder-demo/pnpm-workspace.yaml b/template-placeholder-demo/pnpm-workspace.yaml index 3ac055f..87efb12 100644 --- a/template-placeholder-demo/pnpm-workspace.yaml +++ b/template-placeholder-demo/pnpm-workspace.yaml @@ -1,7 +1,5 @@ # Delay install of newly released packages to prevent supply chain attacks minimumReleaseAge: 180 # 3h -minimumReleaseAgeExclude: - - "@xdevsoftware/*" overrides: # Remove unused packages # rollup-plugin-visualizer CLI unused @@ -9,5 +7,3 @@ overrides: "open": "npm:empty-npm-package@1.0.0" # transform-ast test only "nanobench": "npm:empty-npm-package@1.0.0" - # Usage statistics - "@vaadin/vaadin-usage-statistics": "npm:@xdevsoftware/vaadin-usage-statistics-opt-out@1.0.2" From 1085cf79208a11a99d0f91f976dd40c8317cef1d Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 21 May 2026 15:02:52 +0200 Subject: [PATCH 53/55] Added `is not empty` + Demo for custom type handling --- CHANGELOG.md | 4 ++ pom.xml | 2 +- vaadin-grid-filter-demo/pom.xml | 4 +- .../xdev/vaadin/gridfilter/DemoView.java | 6 ++ .../gridfilter/demo/CustomTypeDemo.java | 42 ++++++++++++++ .../xdev/vaadin/gridfilter/model/City.java | 27 +++++++++ .../xdev/vaadin/gridfilter/model/Person.java | 32 ++++++---- vaadin-grid-filter/pom.xml | 2 +- .../xdev/vaadin/gridfilter/GridFilter.java | 4 +- .../GridFilterLocalizationConfig.java | 2 + .../business/operation/IsNotEmptyOp.java | 58 +++++++++++++++++++ 11 files changed, 168 insertions(+), 15 deletions(-) create mode 100644 vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/demo/CustomTypeDemo.java create mode 100644 vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/City.java create mode 100644 vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/business/operation/IsNotEmptyOp.java diff --git a/CHANGELOG.md b/CHANGELOG.md index e1408d2..6419005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# 3.1.0 +* Added `is not empty` +* Added a demo to show how custom type handling can be done + # 3.0.0 * Updated to Vaadin 25 diff --git a/pom.xml b/pom.xml index 2764974..163c8eb 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ software.xdev vaadin-grid-filter-root - 3.0.1-SNAPSHOT + 3.1.0-SNAPSHOT pom diff --git a/vaadin-grid-filter-demo/pom.xml b/vaadin-grid-filter-demo/pom.xml index 444e191..eb9993f 100644 --- a/vaadin-grid-filter-demo/pom.xml +++ b/vaadin-grid-filter-demo/pom.xml @@ -7,11 +7,11 @@ software.xdev vaadin-grid-filter-root - 3.0.1-SNAPSHOT + 3.1.0-SNAPSHOT vaadin-grid-filter-demo - 3.0.1-SNAPSHOT + 3.1.0-SNAPSHOT jar diff --git a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/DemoView.java b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/DemoView.java index 705792d..41cea3d 100644 --- a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/DemoView.java +++ b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/DemoView.java @@ -13,6 +13,7 @@ import com.vaadin.flow.router.PageTitle; import com.vaadin.flow.router.Route; +import software.xdev.vaadin.gridfilter.demo.CustomTypeDemo; import software.xdev.vaadin.gridfilter.demo.LocalizationDemo; import software.xdev.vaadin.gridfilter.demo.MaxNestedDepthDemo; import software.xdev.vaadin.gridfilter.demo.MinimalisticDemo; @@ -71,6 +72,11 @@ protected void onAttach(final AttachEvent attachEvent) LocalizationDemo.NAV, "Localization", "Showcases how localization can be done (UI in German)" + ), + new Example( + CustomTypeDemo.NAV, + "Custom type", + "Shows how a custom type can be handled" ) )); } diff --git a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/demo/CustomTypeDemo.java b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/demo/CustomTypeDemo.java new file mode 100644 index 0000000..dfedbef --- /dev/null +++ b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/demo/CustomTypeDemo.java @@ -0,0 +1,42 @@ +package software.xdev.vaadin.gridfilter.demo; + +import com.vaadin.flow.component.combobox.ComboBox; +import com.vaadin.flow.component.details.Details; +import com.vaadin.flow.component.details.DetailsVariant; +import com.vaadin.flow.router.Route; + +import software.xdev.vaadin.gridfilter.GridFilter; +import software.xdev.vaadin.gridfilter.business.typevaluecomp.single.SingleValueComponentProvider; +import software.xdev.vaadin.gridfilter.model.City; +import software.xdev.vaadin.gridfilter.model.Person; + + +@Route(CustomTypeDemo.NAV) +public class CustomTypeDemo extends AbstractDemo +{ + public static final String NAV = "/customtype"; + + public CustomTypeDemo() + { + final GridFilter filter = this.createDefaultFilter() + .addTypeValueComponent(new SingleValueComponentProvider<>( + City.class, + () -> { + final ComboBox comboBox = new ComboBox<>(); + comboBox.setItemLabelGenerator(City::name); + comboBox.setItems(City.allAvailable().values()); + return comboBox; + }, + City::name, + name -> City.allAvailable().get(name) + )) + .withFilterableField("City", Person::city, City.class); + + // Add filter inside details block for better looking UI + final Details details = new Details("Filter data"); + details.addThemeVariants(DetailsVariant.LUMO_FILLED); + details.add(filter); + details.setOpened(true); + this.add(details, this.grid); + } +} diff --git a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/City.java b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/City.java new file mode 100644 index 0000000..848b6b6 --- /dev/null +++ b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/City.java @@ -0,0 +1,27 @@ +package software.xdev.vaadin.gridfilter.model; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + + +public record City( + String name +) +{ + public static final City AMSTERDAM = new City("Amsterdam"); + public static final City BERLIN = new City("Berlin"); + public static final City NEW_YORK = new City("New York"); + + public static Map allAvailable() + { + return Stream.of(AMSTERDAM, BERLIN, NEW_YORK) + .collect(Collectors.toMap( + City::name, + Function.identity(), + (l, r) -> l, + LinkedHashMap::new)); + } +} diff --git a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/Person.java b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/Person.java index f2a30ed..447ae5b 100644 --- a/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/Person.java +++ b/vaadin-grid-filter-demo/src/main/java/software/xdev/vaadin/gridfilter/model/Person.java @@ -3,6 +3,8 @@ import java.time.LocalDate; import java.util.List; +import org.jspecify.annotations.Nullable; + public record Person( Integer id, @@ -11,22 +13,32 @@ public record Person( LocalDate birthday, boolean married, double salary, - Department department + Department department, + @Nullable + City city ) { @SuppressWarnings("checkstyle:MagicNumber") public static List list() { return List.of( - new Person(0, "Siegbert", "Schmidt", LocalDate.of(1990, 12, 17), false, 1000, Department.HR), - new Person(1, "Herbert", "Maier", LocalDate.of(1967, 10, 13), false, 1000, Department.HR), - new Person(2, "Hans", "Lang", LocalDate.of(2002, 5, 9), true, 9050.60, Department.HR), - new Person(3, "Anton", "Meier", LocalDate.of(1985, 1, 24), true, 8000.75, Department.HR), - new Person(4, "Sarah", "Smith", LocalDate.of(1999, 6, 1), false, 5000, Department.IT), - new Person(5, "Niklas", "Sommer", LocalDate.of(1994, 11, 8), true, 4000.33, Department.HR), - new Person(6, "Hanna", "Neubaum", LocalDate.of(1986, 8, 15), true, 3000, Department.HR), - new Person(8, "Laura", "Fels", LocalDate.of(1996, 3, 20), true, 1000.50, Department.HR), - new Person(7, "Sofia", "Sommer", LocalDate.of(1972, 4, 14), false, 2000, Department.ACCOUNTING) + new Person( + 1, + "Siegbert", + "Schmidt", + LocalDate.of(1990, 12, 17), + false, + 1000, + Department.HR, + City.AMSTERDAM), + new Person(2, "Herbert", "Maier", LocalDate.of(1967, 10, 13), false, 1000, Department.HR, City.AMSTERDAM), + new Person(3, "Hans", "Lang", LocalDate.of(2002, 5, 9), true, 9050.60, Department.HR, City.AMSTERDAM), + new Person(4, "Anton", "Meier", LocalDate.of(1985, 1, 24), true, 8000.75, Department.HR, City.NEW_YORK), + new Person(5, "Sarah", "Smith", LocalDate.of(1999, 6, 1), false, 5000, Department.IT, City.BERLIN), + new Person(6, "Niklas", "Sommer", LocalDate.of(1994, 11, 8), true, 4000.33, Department.HR, City.BERLIN), + new Person(7, "Hanna", "Neubaum", LocalDate.of(1986, 8, 15), true, 3000, Department.HR, null), + new Person(8, "Laura", "Fels", LocalDate.of(1996, 3, 20), true, 1000.50, Department.HR, null), + new Person(9, "Sofia", "Sommer", LocalDate.of(1972, 4, 14), false, 2000, Department.ACCOUNTING, null) ); } } diff --git a/vaadin-grid-filter/pom.xml b/vaadin-grid-filter/pom.xml index f9f2f84..24f806f 100644 --- a/vaadin-grid-filter/pom.xml +++ b/vaadin-grid-filter/pom.xml @@ -6,7 +6,7 @@ software.xdev vaadin-grid-filter - 3.0.1-SNAPSHOT + 3.1.0-SNAPSHOT jar Grid Filter for Vaadin diff --git a/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilter.java b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilter.java index 4f87f3f..813da00 100644 --- a/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilter.java +++ b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilter.java @@ -54,6 +54,7 @@ import software.xdev.vaadin.gridfilter.business.operation.EqualsOp; import software.xdev.vaadin.gridfilter.business.operation.GreaterThanOp; import software.xdev.vaadin.gridfilter.business.operation.IsEmptyOp; +import software.xdev.vaadin.gridfilter.business.operation.IsNotEmptyOp; import software.xdev.vaadin.gridfilter.business.operation.LessThanOp; import software.xdev.vaadin.gridfilter.business.operation.Operation; import software.xdev.vaadin.gridfilter.business.typevaluecomp.TypeValueComponentProvider; @@ -406,7 +407,8 @@ public static GridFilter createDefault(final Grid grid) new GreaterThanOp(), new LessThanOp(), new ContainsOp(), - new IsEmptyOp() + new IsEmptyOp(), + new IsNotEmptyOp() )) .addTypeValueComponents(List.of( new NoValueComponentProvider(), diff --git a/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilterLocalizationConfig.java b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilterLocalizationConfig.java index 5ae55f2..819bac4 100644 --- a/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilterLocalizationConfig.java +++ b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/GridFilterLocalizationConfig.java @@ -34,6 +34,7 @@ public class GridFilterLocalizationConfig public static final String OP_GREATER_THAN = PREFIX_OP + "gt"; public static final String OP_LESS_THAN = PREFIX_OP + "lt"; public static final String OP_IS_EMPTY = PREFIX_OP + "empty"; + public static final String OP_IS_NOT_EMPTY = PREFIX_OP + "not_empty"; public static final String PREFIX_BLOCK = PREFIX + "block."; public static final String BLOCK_OR = PREFIX_BLOCK + "or"; @@ -49,6 +50,7 @@ public class GridFilterLocalizationConfig entry(OP_GREATER_THAN, ">"), entry(OP_LESS_THAN, "<"), entry(OP_IS_EMPTY, "is empty"), + entry(OP_IS_NOT_EMPTY, "is not empty"), // Block entry(BLOCK_OR, "OR"), entry(BLOCK_AND, "AND"), diff --git a/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/business/operation/IsNotEmptyOp.java b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/business/operation/IsNotEmptyOp.java new file mode 100644 index 0000000..004fd46 --- /dev/null +++ b/vaadin-grid-filter/src/main/java/software/xdev/vaadin/gridfilter/business/operation/IsNotEmptyOp.java @@ -0,0 +1,58 @@ +/* + * Copyright © 2024 XDEV Software (https://xdev.software) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package software.xdev.vaadin.gridfilter.business.operation; + +import software.xdev.vaadin.gridfilter.GridFilterLocalizationConfig; +import software.xdev.vaadin.gridfilter.business.value.NoValue; + + +public class IsNotEmptyOp implements Operation +{ + @Override + public Class valueContainerClass() + { + return NoValue.class; + } + + @Override + public boolean canHandle(final Class clazz) + { + return true; + } + + @Override + public String identifier() + { + return "is not empty"; + } + + @Override + public String displayKey() + { + return GridFilterLocalizationConfig.OP_IS_NOT_EMPTY; + } + + @Override + public boolean test(final Object input, final NoValue filterValue) + { + if(input instanceof final String s) + { + return !s.isEmpty(); + } + + return input != null; + } +} From c346f46c8d22de12493b50e30c589e2dd5616b35 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 21 May 2026 16:05:25 +0200 Subject: [PATCH 54/55] Make projects buildable again This reverts a ton of changes which currently result in all project builds to fail. See https://redirect.github.com/vaadin/flow/issues/24333 for details --- .github/workflows/check-build.yml | 2 +- template-placeholder-demo/pnpm-workspace.yaml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-build.yml b/.github/workflows/check-build.yml index 24dbd4c..0a788ee 100644 --- a/.github/workflows/check-build.yml +++ b/.github/workflows/check-build.yml @@ -57,7 +57,7 @@ jobs: ${{ runner.os }}-vaadin-prod-bundles- - name: Build with Maven - run: ./mvnw -B clean package -P production + run: ./mvnw -B clean package - name: Check for uncommited changes run: | diff --git a/template-placeholder-demo/pnpm-workspace.yaml b/template-placeholder-demo/pnpm-workspace.yaml index 87efb12..3ac055f 100644 --- a/template-placeholder-demo/pnpm-workspace.yaml +++ b/template-placeholder-demo/pnpm-workspace.yaml @@ -1,5 +1,7 @@ # Delay install of newly released packages to prevent supply chain attacks minimumReleaseAge: 180 # 3h +minimumReleaseAgeExclude: + - "@xdevsoftware/*" overrides: # Remove unused packages # rollup-plugin-visualizer CLI unused @@ -7,3 +9,5 @@ overrides: "open": "npm:empty-npm-package@1.0.0" # transform-ast test only "nanobench": "npm:empty-npm-package@1.0.0" + # Usage statistics + "@vaadin/vaadin-usage-statistics": "npm:@xdevsoftware/vaadin-usage-statistics-opt-out@1.0.2" From 9dd90b36a11b26204a3e850772a484c3179bd6f7 Mon Sep 17 00:00:00 2001 From: AB Date: Thu, 21 May 2026 16:18:07 +0200 Subject: [PATCH 55/55] Make projects releaseable again II See https://redirect.github.com/vaadin/flow/issues/24333 for details --- .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 fdddca2..4aebeeb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,7 +36,7 @@ jobs: ${{ runner.os }}-mvn-build- - name: Build with Maven - run: ./mvnw -B clean package -Pproduction -T2C + run: ./mvnw -B clean package -T2C - name: Check for uncommited changes run: |