Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
dd8b9bd
Delete cached file after restoring the cache to free up disk space
AB-xdev Sep 11, 2026
acf2831
Prevent error message
AB-xdev Sep 11, 2026
ac8a777
Add centralized contribution guide with AI policy attached to it
AB-xdev Sep 15, 2026
1cb7ab0
Update renovate.json5
AB-xdev Sep 16, 2026
8a4f172
Fix typo and reword
AB-xdev Sep 16, 2026
a8a76d2
Merge pull request #16 from xdev-software/ai-policy
AB-xdev Sep 16, 2026
1566844
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
42c662e
Merge branch 'develop' into update-from-template-github_com_xdev-soft…
xdev-gh-bot Sep 16, 2026
bed3494
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 16, 2026
54a6f60
Fill in DEVELOPING.md
AB-xdev Sep 16, 2026
8fcd26b
Use the power of parallelization in GHA
AB-xdev Sep 16, 2026
66af1c9
Use parallelization in GHA
AB-xdev Sep 16, 2026
b9537c0
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 16, 2026
40d472d
Update DEVELOPING.md
AB-xdev Sep 16, 2026
5fca134
Remove dynamically inserted project
AB-xdev Sep 16, 2026
28dd0ca
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 16, 2026
674e85b
Move poms
AB-xdev Sep 18, 2026
93e85d1
Migrate root pom
AB-xdev Sep 18, 2026
5d6bf82
Create src pom.xml and hand over control to it
AB-xdev Sep 18, 2026
97244be
Create demos pom.xml and hand over control to it
AB-xdev Sep 18, 2026
09816ec
Update workflows
AB-xdev Sep 18, 2026
41d60e6
Correctly prefix
AB-xdev Sep 18, 2026
103406f
Standardize format
AB-xdev Sep 18, 2026
faf5a50
Merge remote-tracking branch 'standard-maven-template/v2-structure-re…
AB-xdev Sep 18, 2026
5a13aac
Correct inception year
AB-xdev Sep 18, 2026
53a9edb
Re-align poms
AB-xdev Sep 18, 2026
20b7944
Java Version is 25
AB-xdev Sep 18, 2026
d42728a
Correct artifact id
AB-xdev Sep 18, 2026
afaf099
Fix demo
AB-xdev Sep 18, 2026
bed9dbc
Fill in demo
AB-xdev Sep 18, 2026
8aed843
Fill in demo
AB-xdev Sep 18, 2026
028fab3
Prepare for demo migration
AB-xdev Sep 18, 2026
a10d0e3
Move demo
AB-xdev Sep 18, 2026
10cbc14
Move demo
AB-xdev Sep 18, 2026
bdd3652
Targeted java version should be 21
AB-xdev Sep 18, 2026
3658be8
Fill in template
AB-xdev Sep 18, 2026
8eed92d
Rename module
AB-xdev Sep 18, 2026
68b6e1b
Fix group id
AB-xdev Sep 18, 2026
4abeeef
Prepare for merge
AB-xdev Sep 18, 2026
73cee39
Move
AB-xdev Sep 18, 2026
19d4cee
Module name
AB-xdev Sep 18, 2026
e01b392
Move everything into the correct directory
AB-xdev Sep 18, 2026
ba1eed6
Migrate all src modules to new world
AB-xdev Sep 18, 2026
115604e
Migrate advanced-demo
AB-xdev Sep 18, 2026
25c4289
Fix groupId
AB-xdev Sep 18, 2026
4a5a206
Correct versions
AB-xdev Sep 18, 2026
a9152d8
Integrate all modules
AB-xdev Sep 18, 2026
99e93a5
Demo has differnt GroupId
AB-xdev Sep 18, 2026
bcf7e6b
Sync year in headers
AB-xdev Sep 18, 2026
5efbf57
Use parallelization
AB-xdev Sep 18, 2026
668a696
Project specific PMD config
AB-xdev Sep 18, 2026
5355a1d
Adopt changes in workflows
AB-xdev Sep 18, 2026
96a4303
Make mvnw executable
AB-xdev Sep 18, 2026
13ddfd3
Correct launchers
AB-xdev Sep 18, 2026
126361e
Fix tcst integration tests
AB-xdev Sep 18, 2026
0b122f2
Fix license header
AB-xdev Sep 18, 2026
e534891
Fix jacoco aggregate
AB-xdev Sep 21, 2026
a9ecf33
Fix deprecation
AB-xdev Sep 21, 2026
ff1c79e
Merge pull request #311 from xdev-software/v2-structure-rework
AB-xdev Sep 21, 2026
d81d7d4
Merge pull request #763 from xdev-software/structure-rework
AB-xdev Sep 21, 2026
e0a41ef
Remove duplicate line
AB-xdev Sep 21, 2026
668190e
Bump version
AB-xdev Sep 21, 2026
f06cea0
Update CHANGELOG.md
AB-xdev Sep 21, 2026
f25eabc
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 21, 2026
21859d6
Update CHANGELOG.md
AB-xdev Sep 21, 2026
62b1ed3
Update dependency org.simplejavamail:simple-java-mail to v9.3.5
xdev-renovate Sep 21, 2026
ff9577d
Update org.hibernate.orm to v7.4.10.Final
xdev-renovate Sep 21, 2026
36b1700
Merge pull request #764 from xdev-software/renovate/org.simplejavamai…
AB-xdev Sep 21, 2026
e6aaff5
Merge pull request #757 from xdev-software/renovate/org.hibernate.orm
AB-xdev Sep 21, 2026
f962f53
Correctly ignore in renovate
AB-xdev Sep 21, 2026
32da745
Update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.2.0
xdev-renovate Sep 21, 2026
bc0ee58
Update dependency org.apache.maven.plugins:maven-install-plugin to v3…
xdev-renovate Sep 21, 2026
9ad0a14
Merge pull request #312 from xdev-software/renovate/org.apache.maven.…
AB-xdev Sep 21, 2026
593e4d2
Merge pull request #313 from xdev-software/renovate/org.apache.maven.…
AB-xdev Sep 21, 2026
9d8d4fc
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 21, 2026
0f44379
Fix test triggers
AB-xdev Sep 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 9 additions & 2 deletions .github/actions/docker-image-cache/restore/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,5 +43,12 @@ runs:
printf "%s\n" "${preinstalled_image_ids[@]}" > ~/.cache/docker-preinstalled/ids-${{ github.run_id }}.txt
fi

echo "Importing cache"
docker load -i ~/.cache/docker/images.tar && echo "Restored docker image cache" && docker image ls || true
if [ -f ~/.cache/docker/images.tar ]; then
echo "Importing cache"
docker load -i ~/.cache/docker/images.tar && echo "Restored docker image cache" && docker image ls || true

echo "Deleting cache file to free up disk space"
rm -f ~/.cache/docker/images.tar || true
else
echo "No file cache file found"
fi
122 changes: 61 additions & 61 deletions .github/workflows/check-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@ on:
- '.idea/**'
- 'assets/**'

env:
DEMO_MAVEN_MODULE: ${{ github.event.repository.name }}-demo

jobs:
build:
runs-on: ubuntu-latest
Expand All @@ -33,22 +30,23 @@ 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 -P ignore-service-loading
run: ./mvnw -B clean package -P ignore-service-loading -T2C

- name: Check for uncommited changes
run: |
Expand Down Expand Up @@ -79,27 +77,28 @@ 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-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-
- 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: 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
Expand All @@ -115,33 +114,34 @@ 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-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-
- 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: 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
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() }}
Expand Down
116 changes: 67 additions & 49 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@ on:
push:
branches: [ master ]

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:
Expand All @@ -17,23 +13,25 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v6
with:
java-version: '25'
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: '25'
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 -P ignore-service-loading -T2C
run: ../mvnw -B clean package -P ignore-service-loading -T2C
working-directory: src

- name: Check for uncommited changes
run: |
Expand All @@ -57,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:
Expand All @@ -73,7 +73,7 @@ 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

Expand Down Expand Up @@ -127,18 +127,13 @@ jobs:
distribution: 'temurin'
java-version: '25'
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
run: |
modules=("bom")
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
printf -v modules_joined '%s,' "${modules[@]}"
modules_arg=$(echo "${modules_joined%,}")
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
- name: Publish to GitHub Packages Central
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 }}
Expand All @@ -149,24 +144,19 @@ jobs:
distribution: 'temurin'
java-version: '25'
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: |
modules=("bom")
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
printf -v modules_joined '%s,' "${modules[@]}"
modules_arg=$(echo "${modules_joined%,}")
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish,publish-sonatype-central-portal -DskipTests
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 }}

publish-pages:
build-pages:
runs-on: ubuntu-latest
needs: [prepare-release]
timeout-minutes: 15
Expand Down Expand Up @@ -199,29 +189,57 @@ jobs:
sed -i '/<module>.*-demo<\/module>/d' pom.xml

- name: Build site
run: ./mvnw -B compile site -DskipTests -T2C

run: ../mvnw -B compile site -P site -T2C
working-directory: src

- name: Aggregate site
run: |
modules=($(grep -ozP '(?<=module>)[^<]+' 'pom.xml' | tr -d '\0'))
for m in "${modules[@]}"
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
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: ./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

Expand Down
Loading
Loading