diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 441bd57..1e4c2df 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -12,9 +12,9 @@ jobs:
permissions:
contents: read
strategy:
- fail-fast: true
+ fail-fast: false
matrix:
- java: [11, 17, 21]
+ java: [11, 17, 21, 25]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-java-${{ matrix.java }}
cancel-in-progress: true
@@ -23,19 +23,20 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
fetch-depth: 0
- - uses: actions/setup-java@v4
+ persist-credentials: false
+ - uses: actions/setup-java@v5
with:
distribution: 'temurin'
+ # SonarQube analysis requires Java 17 or higher
java-version: |
- 11
+ ${{ matrix.java }}
17
- 21
cache: maven
- name: Cache SonarQube packages
- uses: actions/cache@v4
+ uses: actions/cache@v5
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 6fd6438..a80cebd 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -21,21 +21,21 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- - uses: actions/setup-java@v4
+ - uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 11
cache: maven
- name: Initialize CodeQL
- uses: github/codeql-action/init@v3
+ uses: github/codeql-action/init@v4
with:
languages: java
- - name: Autobuild
- uses: github/codeql-action/autobuild@v3
+ - name: Build
+ run: mvn --batch-mode --errors -Dmaven.gitcommitid.skip=true clean compile
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v3
+ uses: github/codeql-action/analyze@v4
diff --git a/.github/workflows/publish-javadoc.yml b/.github/workflows/publish-javadoc.yml
new file mode 100644
index 0000000..ff0952c
--- /dev/null
+++ b/.github/workflows/publish-javadoc.yml
@@ -0,0 +1,46 @@
+name: Deploy Javadoc
+
+on:
+ push:
+ branches: [ main ]
+ workflow_dispatch:
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout the repository
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ - name: Set up Java
+ uses: actions/setup-java@v5
+ with:
+ distribution: temurin
+ java-version: 11
+ cache: maven
+ - name: Build JavaDoc
+ run: mvn --batch-mode javadoc:javadoc
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v5
+ with:
+ path: ./target/reports/apidocs
+
+ deploy:
+ if: ${{ github.ref == 'refs/heads/main' }}
+ permissions:
+ contents: read
+ id-token: write
+ pages: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ needs: build
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v5
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index ca2aa24..655c7fa 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -8,6 +8,11 @@ on:
required: true
type: boolean
default: false
+ auto-publish-maven-central:
+ description: "Auto-publish to Maven Central"
+ required: true
+ type: boolean
+ default: true
jobs:
release:
@@ -22,22 +27,22 @@ jobs:
contents: write # Required for creating GitHub release
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Fail if not running on main branch
if: ${{ github.ref != 'refs/heads/main' }}
- uses: actions/github-script@v7
+ uses: actions/github-script@v9
with:
script: |
core.setFailed('Not running on main branch, github.ref is ${{ github.ref }}. Please start this workflow only on main')
- name: Set up Maven Central Repository
- uses: actions/setup-java@v4
+ uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 11
cache: "maven"
- server-id: ossrh
+ server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
@@ -51,11 +56,16 @@ jobs:
- name: Publish to Maven Central Repository
if: ${{ !inputs.skip-deploy-maven-central }}
- run: mvn --batch-mode deploy -Possrh -DstagingDescription="Deployed via GitHub workflow release.yml"
+ run: |
+ mvn --batch-mode deploy -PcentralPublishing \
+ -DcentralPublishingSkipPublishing=false \
+ -DcentralPublishingAutoPublish=${AUTO_PUBLISH} \
+ -DcentralPublishingDeploymentName="Deploy junit5-system-extensions via release.yml"
env:
- MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
- MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
+ MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_PORTAL_USERNAME }}
+ MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PORTAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
+ AUTO_PUBLISH: ${{ inputs.auto-publish-maven-central }}
- name: Create GitHub Release
run: ./.github/workflows/github_release.sh
diff --git a/.vscode/settings.json b/.vscode/settings.json
index aefe10c..c23d3a3 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -6,7 +6,6 @@
"source.generate.finalModifiers": "explicit",
"source.fixAll": "explicit"
},
- "java.saveActions.organizeImports": true,
"java.sources.organizeImports.starThreshold": 3,
"java.sources.organizeImports.staticStarThreshold": 3,
"java.configuration.updateBuildConfiguration": "automatic",
diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md
index c9cf407..c85cf69 100644
--- a/doc/changes/changelog.md
+++ b/doc/changes/changelog.md
@@ -1,5 +1,6 @@
# Changes
+* [1.2.3](changes_1.2.3.md)
* [1.2.2](changes_1.2.2.md)
* [1.2.1](changes_1.2.1.md)
* [1.2.0](changes_1.2.0.md)
diff --git a/doc/changes/changes_1.2.3.md b/doc/changes/changes_1.2.3.md
new file mode 100644
index 0000000..cf4ac19
--- /dev/null
+++ b/doc/changes/changes_1.2.3.md
@@ -0,0 +1,15 @@
+# JUnit5 System Extensions 1.2.3, released 2026-05-14
+
+Code name: Upgrade dependencies
+
+## Summary
+
+This release upgrades dependencies and updates the automatic release process to Maven Central.
+
+## Bugfixes
+
+* [#76](https://github.com/itsallcode/junit5-system-extensions/pull/76): Upgrade dependencies
+
+## Compile Dependency Changes
+
+* Upgrade `org.junit.jupiter:junit-jupiter-api` from `5.11.0` to `5.14.4`
diff --git a/pom.xml b/pom.xml
index 47545e1..fd1288f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
org.itsallcode
junit5-system-extensions
- 1.2.2
+ 1.2.3
JUnit5 System Extensions
These extensions help testing behavior that is related to `System.x` calls like `exit(int).
https://github.com/itsallcode/junit5-system-extensions
@@ -36,7 +36,8 @@
11
- 5.11.0
+
+ 5.14.4
UTF-8
true
https://sonarcloud.io
@@ -44,55 +45,46 @@
${git.commit.time}
${reproducible.build.timestamp}
-
-
- ossrh
- https://oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
org.junit.jupiter
junit-jupiter-api
${junit.version}
-
- org.junit.jupiter
- junit-jupiter-engine
- ${junit.version}
- test
-
org.mockito
mockito-core
- 5.13.0
+ 5.23.0
test
- ossrh
+ centralPublishing
+
+ false
+ false
+ Manual deployment of JUnit5 System Extensions
+
- org.sonatype.plugins
- nexus-staging-maven-plugin
- 1.7.0
+ org.sonatype.central
+ central-publishing-maven-plugin
+ 0.10.0
true
- ossrh
- https://oss.sonatype.org/
- true
+ central
+ ${centralPublishingSkipPublishing}
+ ${centralPublishingAutoPublish}
+ validated
+ ${centralPublishingDeploymentName}
org.apache.maven.plugins
maven-gpg-plugin
- 3.2.5
+ 3.2.8
sign-artifacts
@@ -106,7 +98,7 @@
org.apache.maven.plugins
maven-deploy-plugin
- 3.1.3
+ 3.1.4
@@ -136,7 +128,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
+ 3.15.0
${java.version}
${java.version}
@@ -150,7 +142,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.3.1
+ 3.4.0
attach-sources
@@ -163,7 +155,8 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.10.0
+
+ 3.11.2
attach-javadocs
@@ -187,12 +180,12 @@
org.apache.maven.plugins
maven-jar-plugin
- 3.4.2
+ 3.5.0
org.jacoco
jacoco-maven-plugin
- 0.8.12
+ 0.8.14
@@ -211,7 +204,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.0
+ 3.5.5
-XX:+EnableDynamicAgentLoading ${argLine}
@@ -220,7 +213,7 @@
org.apache.maven.plugins
maven-enforcer-plugin
- 3.5.0
+ 3.6.2
enforce-maven
@@ -240,7 +233,7 @@
io.github.git-commit-id
git-commit-id-maven-plugin
- 9.0.1
+ 10.0.0
get-the-git-infos
@@ -261,7 +254,7 @@
org.apache.maven.plugins
maven-artifact-plugin
- 3.5.1
+ 3.6.1
verify-reproducible-build
@@ -275,6 +268,11 @@
true
+
+ org.sonarsource.scanner.maven
+ sonar-maven-plugin
+ 5.6.0.6792
+
2018
diff --git a/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExit.java b/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExit.java
index bccfa32..edd668d 100644
--- a/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExit.java
+++ b/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExit.java
@@ -12,7 +12,8 @@
import org.junit.jupiter.api.extension.ExtendWith;
@DisabledOnJre(value = {
- JRE.JAVA_21 }, disabledReason = "The Security Manager is deprecated and will be removed in a future release")
+ JRE.JAVA_21,
+ JRE.JAVA_25 }, disabledReason = "The Security Manager is deprecated and will be removed in a future release")
@ExtendWith(ExitGuard.class)
class TestSystemExit
{
diff --git a/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExitReplacingExistingSecurityManager.java b/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExitReplacingExistingSecurityManager.java
index 98a7726..f2fc446 100644
--- a/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExitReplacingExistingSecurityManager.java
+++ b/src/test/java/org/itsallcode/junit/sysextensions/TestSystemExitReplacingExistingSecurityManager.java
@@ -10,7 +10,8 @@
import org.junit.jupiter.api.condition.JRE;
@DisabledOnJre(value = {
- JRE.JAVA_21 }, disabledReason = "The Security Manager is deprecated and will be removed in a future release")
+ JRE.JAVA_21,
+ JRE.JAVA_25 }, disabledReason = "The Security Manager is deprecated and will be removed in a future release")
class TestSystemExitReplacingExistingSecurityManager
{
@Test