Skip to content

Commit 7894cfd

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents 7baf8f8 + 8660665 commit 7894cfd

File tree

249 files changed

+41380
-122
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

249 files changed

+41380
-122
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ body:
1515
attributes:
1616
label: "Checklist"
1717
options:
18-
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
18+
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/tci/releases/latest)"
1919
required: true
20-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
20+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/tci/issues) or [closed](https://github.com/xdev-software/tci/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
2121
required: true
2222
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
2323
required: true

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ body:
1313
attributes:
1414
label: "Checklist"
1515
options:
16-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
16+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/tci/issues) or [closed](https://github.com/xdev-software/tci/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1717
required: true
1818
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
1919
required: true

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/tci/issues) or [closed](https://github.com/xdev-software/tci/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
1818
required: true

.github/workflows/check-build.yml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
strategy:
3131
matrix:
32-
java: [17, 21]
32+
java: [21]
3333
distribution: [temurin]
3434

3535
steps:
@@ -43,7 +43,7 @@ jobs:
4343
cache: 'maven'
4444

4545
- name: Build with Maven
46-
run: ./mvnw -B clean package
46+
run: ./mvnw -B clean package -P ignore-service-loading
4747

4848
- name: Check for uncommited changes
4949
run: |
@@ -63,21 +63,14 @@ jobs:
6363
exit 1
6464
fi
6565
66-
- name: Upload demo files
67-
uses: actions/upload-artifact@v4
68-
with:
69-
name: demo-files-java-${{ matrix.java }}
70-
path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar
71-
if-no-files-found: error
72-
7366
checkstyle:
7467
runs-on: ubuntu-latest
7568
if: ${{ github.event_name != 'pull_request' || !startsWith(github.head_ref, 'renovate/') }}
7669
timeout-minutes: 15
7770

7871
strategy:
7972
matrix:
80-
java: [17]
73+
java: [21]
8174
distribution: [temurin]
8275

8376
steps:
@@ -100,7 +93,7 @@ jobs:
10093

10194
strategy:
10295
matrix:
103-
java: [17]
96+
java: [21]
10497
distribution: [temurin]
10598

10699
steps:

.github/workflows/release.yml

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@ on:
44
push:
55
branches: [ master ]
66

7-
env:
8-
PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }}
9-
107
permissions:
118
contents: write
129
pull-requests: write
@@ -21,12 +18,12 @@ jobs:
2118
- name: Set up JDK
2219
uses: actions/setup-java@v4
2320
with:
24-
java-version: '17'
21+
java-version: '21'
2522
distribution: 'temurin'
2623
cache: 'maven'
2724

2825
- name: Build with Maven
29-
run: ./mvnw -B clean package -T2C
26+
run: ./mvnw -B clean package -P ignore-service-loading -T2C
3027

3128
- name: Check for uncommited changes
3229
run: |
@@ -66,10 +63,9 @@ jobs:
6663
- name: Get version
6764
id: version
6865
run: |
69-
version=$(../mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
66+
version=$(./mvnw help:evaluate -Dexpression=project.version -q -DforceStdout)
7067
echo "release=$version" >> $GITHUB_OUTPUT
7168
echo "releasenumber=${version//[!0-9]/}" >> $GITHUB_OUTPUT
72-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
7369
7470
- name: Commit and Push
7571
run: |
@@ -94,12 +90,14 @@ jobs:
9490
Add the following lines to your pom:
9591
```XML
9692
<dependency>
97-
<groupId>software.xdev</groupId>
98-
<artifactId>${{ env.PRIMARY_MAVEN_MODULE }}</artifactId>
93+
<groupId>software.xdev.tci</groupId>
94+
<artifactId>corresponding_module</artifactId>
9995
<version>${{ steps.version.outputs.release }}</version>
10096
</dependency>
10197
```
10298
99+
You can also use the [BOM](https://github.com/${{ github.repository }}/tree/develop/bom) for easier dependency management.
100+
103101
publish-maven:
104102
runs-on: ubuntu-latest
105103
needs: [prepare-release]
@@ -117,36 +115,46 @@ jobs:
117115
uses: actions/setup-java@v4
118116
with: # running setup-java overwrites the settings.xml
119117
distribution: 'temurin'
120-
java-version: '17'
118+
java-version: '21'
121119
server-id: github-central
122120
server-password: PACKAGES_CENTRAL_TOKEN
123121
gpg-passphrase: MAVEN_GPG_PASSPHRASE
124122
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once
125-
126-
- name: Publish to GitHub Packages Central
127-
run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
128-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
123+
124+
- name: Publish to GitHub Packages
125+
run: |
126+
modules=("bom")
127+
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
128+
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
129+
printf -v modules_joined '%s,' "${modules[@]}"
130+
modules_arg=$(echo "${modules_joined%,}")
131+
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
129132
env:
130133
PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }}
131134
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
132-
135+
133136
- name: Set up JDK
134137
uses: actions/setup-java@v4
135138
with: # running setup-java again overwrites the settings.xml
136139
distribution: 'temurin'
137-
java-version: '17'
140+
java-version: '21'
138141
server-id: sonatype-central-portal
139142
server-username: MAVEN_CENTRAL_USERNAME
140143
server-password: MAVEN_CENTRAL_TOKEN
141144
gpg-passphrase: MAVEN_GPG_PASSPHRASE
142145

143146
- name: Publish to Central Portal
144-
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests
147+
run: |
148+
modules=("bom")
149+
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
150+
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
151+
printf -v modules_joined '%s,' "${modules[@]}"
152+
modules_arg=$(echo "${modules_joined%,}")
153+
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish,publish-sonatype-central-portal -DskipTests
145154
env:
146155
MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }}
147156
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }}
148157
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
149-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
150158

151159
publish-pages:
152160
runs-on: ubuntu-latest
@@ -164,19 +172,27 @@ jobs:
164172
- name: Setup - Java
165173
uses: actions/setup-java@v4
166174
with:
167-
java-version: '17'
175+
java-version: '21'
168176
distribution: 'temurin'
169177
cache: 'maven'
170178

171179
- name: Build site
172-
run: ../mvnw -B compile site -DskipTests -T2C
173-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
180+
run: ./mvnw -B compile site -DskipTests -T2C
181+
182+
- name: Aggregate site
183+
run: |
184+
modules=($(grep -ozP '(?<=module>)[^<]+' 'pom.xml' | tr -d '\0'))
185+
for m in "${modules[@]}"
186+
do
187+
echo "$m/target/site -> ./target/site/$m"
188+
cp -r $m/target/site ./target/site/$m
189+
done
174190
175191
- name: Deploy to Github pages
176192
uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4
177193
with:
178194
github_token: ${{ secrets.GITHUB_TOKEN }}
179-
publish_dir: ./${{ env.PRIMARY_MAVEN_MODULE }}/target/site
195+
publish_dir: ./target/site
180196
force_orphan: true
181197

182198
after-release:
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Run integration tests
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ develop ]
7+
paths-ignore:
8+
- '**.md'
9+
- '.config/**'
10+
- '.github/**'
11+
- '.idea/**'
12+
- 'assets/**'
13+
pull_request:
14+
branches: [ develop ]
15+
paths-ignore:
16+
- '**.md'
17+
- '.config/**'
18+
- '.github/**'
19+
- '.idea/**'
20+
- 'assets/**'
21+
22+
concurrency:
23+
group: ${{ github.workflow }}-${{ github.ref }}
24+
25+
jobs:
26+
run-integration-tests:
27+
strategy:
28+
fail-fast: false
29+
matrix:
30+
java: [21]
31+
project: [persistence-it, webapp-it]
32+
parallel: [0, 2]
33+
pre-start: [false, true]
34+
runs-on: ubuntu-latest
35+
if: ${{ !(github.event_name == 'pull_request' && startsWith(github.head_ref, 'renovate/')) }}
36+
steps:
37+
- uses: actions/checkout@v5
38+
39+
- name: Set up JDK
40+
uses: actions/setup-java@v4
41+
with:
42+
distribution: temurin
43+
java-version: ${{ matrix.java }}
44+
cache: 'maven'
45+
46+
- name: Test
47+
run: |
48+
./mvnw -B test \
49+
-pl "advanced-demo/integration-tests/${{ matrix.project }}" -am \
50+
-P run-it \
51+
${{ matrix.pre-start && '-Dinfra-pre-start.enabled=1 ' || '' }} \
52+
${{ matrix.parallel > 0 && format('-Djunit.jupiter.execution.parallel.enabled=true -Djunit.jupiter.execution.parallel.mode.default=concurrent -Djunit.jupiter.execution.parallel.mode.classes.default=concurrent -Djunit.jupiter.execution.parallel.config.strategy=fixed -Djunit.jupiter.execution.parallel.config.fixed.parallelism=2 -Djunit.jupiter.execution.parallel.config.fixed.max-pool-size={0} ', matrix.parallel) || '' }}
53+
54+
# Replace '/' with '-'
55+
- name: Normalize project name
56+
if: failure()
57+
env:
58+
PROJECT: ${{ matrix.project }}
59+
run: echo PROJECT_NORMALIZED=${PROJECT/\//-} >> $GITHUB_ENV
60+
61+
- name: Upload videos of test failures
62+
if: failure()
63+
uses: actions/upload-artifact@v4
64+
with:
65+
name: test-fail-videos-${{ matrix.java }}-${{ env.PROJECT_NORMALIZED }}-${{ matrix.parallel }}-${{ matrix.pre-start }}
66+
path: advanced-demo/integration-tests/${{ matrix.project }}/target/records
67+
if-no-files-found: ignore

.github/workflows/test-deploy.yml

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name: Test Deployment
33
on:
44
workflow_dispatch:
55

6-
env:
7-
PRIMARY_MAVEN_MODULE: ${{ github.event.repository.name }}
8-
96
jobs:
107
publish-maven:
118
runs-on: ubuntu-latest
@@ -17,32 +14,42 @@ jobs:
1714
uses: actions/setup-java@v4
1815
with: # running setup-java overwrites the settings.xml
1916
distribution: 'temurin'
20-
java-version: '17'
17+
java-version: '21'
2118
server-id: github-central
2219
server-password: PACKAGES_CENTRAL_TOKEN
2320
gpg-passphrase: MAVEN_GPG_PASSPHRASE
2421
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Only import once
25-
26-
- name: Publish to GitHub Packages Central
27-
run: ../mvnw -B deploy -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
28-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
22+
23+
- name: Publish to GitHub Packages
24+
run: |
25+
modules=("bom")
26+
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
27+
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
28+
printf -v modules_joined '%s,' "${modules[@]}"
29+
modules_arg=$(echo "${modules_joined%,}")
30+
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish -DskipTests -DaltDeploymentRepository=github-central::https://maven.pkg.github.com/xdev-software/central
2931
env:
3032
PACKAGES_CENTRAL_TOKEN: ${{ secrets.PACKAGES_CENTRAL_TOKEN }}
3133
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
32-
34+
3335
- name: Set up JDK
3436
uses: actions/setup-java@v4
3537
with: # running setup-java again overwrites the settings.xml
3638
distribution: 'temurin'
37-
java-version: '17'
39+
java-version: '21'
3840
server-id: sonatype-central-portal
3941
server-username: MAVEN_CENTRAL_USERNAME
4042
server-password: MAVEN_CENTRAL_TOKEN
4143
gpg-passphrase: MAVEN_GPG_PASSPHRASE
4244

4345
- name: Publish to Central Portal
44-
run: ../mvnw -B deploy -P publish,publish-sonatype-central-portal -DskipTests
45-
working-directory: ${{ env.PRIMARY_MAVEN_MODULE }}
46+
run: |
47+
modules=("bom")
48+
dependency_management_block=$(grep -ozP '<dependencyManagement>(\r|\n|.)*<\/dependencyManagement>' 'bom/pom.xml' | tr -d '\0')
49+
modules+=($(echo $dependency_management_block | grep -oP '(?<=<artifactId>)[^<]+'))
50+
printf -v modules_joined '%s,' "${modules[@]}"
51+
modules_arg=$(echo "${modules_joined%,}")
52+
./mvnw -B deploy -pl "$modules_arg" -am -T2C -P publish,publish-sonatype-central-portal -DskipTests
4653
env:
4754
MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_USERNAME }}
4855
MAVEN_CENTRAL_TOKEN: ${{ secrets.SONATYPE_MAVEN_CENTRAL_PORTAL_TOKEN }}

.run/All in persistence-it.run.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="All in persistence-it" type="JUnit" factoryName="JUnit" nameIsGenerated="true">
3+
<module name="persistence-it" />
4+
<option name="PACKAGE_NAME" value="" />
5+
<option name="MAIN_CLASS_NAME" value="" />
6+
<option name="METHOD_NAME" value="" />
7+
<option name="TEST_OBJECT" value="package" />
8+
<method v="2">
9+
<option name="Make" enabled="true" />
10+
</method>
11+
</configuration>
12+
</component>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="All in webapp-it (p=2 + PreStart)" type="JUnit" factoryName="JUnit">
3+
<module name="webapp-it" />
4+
<option name="PACKAGE_NAME" value="" />
5+
<option name="MAIN_CLASS_NAME" value="" />
6+
<option name="METHOD_NAME" value="" />
7+
<option name="TEST_OBJECT" value="package" />
8+
<option name="VM_PARAMETERS" value="-ea -Dinfra-pre-start.enabled=1 -Djunit.jupiter.execution.parallel.enabled=true -Djunit.jupiter.execution.parallel.mode.default=concurrent -Djunit.jupiter.execution.parallel.mode.classes.default=concurrent -Djunit.jupiter.execution.parallel.config.strategy=fixed -Djunit.jupiter.execution.parallel.config.fixed.parallelism=2 -Djunit.jupiter.execution.parallel.config.fixed.max-pool-size=2" />
9+
<method v="2">
10+
<option name="Make" enabled="true" />
11+
</method>
12+
</configuration>
13+
</component>
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<component name="ProjectRunConfigurationManager">
2+
<configuration default="false" name="All in webapp-it (p=2)" type="JUnit" factoryName="JUnit">
3+
<module name="webapp-it" />
4+
<option name="PACKAGE_NAME" value="" />
5+
<option name="MAIN_CLASS_NAME" value="" />
6+
<option name="METHOD_NAME" value="" />
7+
<option name="TEST_OBJECT" value="package" />
8+
<option name="VM_PARAMETERS" value="-ea -Djunit.jupiter.execution.parallel.enabled=true -Djunit.jupiter.execution.parallel.mode.default=concurrent -Djunit.jupiter.execution.parallel.mode.classes.default=concurrent -Djunit.jupiter.execution.parallel.config.strategy=fixed -Djunit.jupiter.execution.parallel.config.fixed.parallelism=2 -Djunit.jupiter.execution.parallel.config.fixed.max-pool-size=2" />
9+
<method v="2">
10+
<option name="Make" enabled="true" />
11+
</method>
12+
</configuration>
13+
</component>

0 commit comments

Comments
 (0)