diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee2e1ea..5ad37c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,7 @@ jobs: contents: read strategy: matrix: - java: ['17', '21', '24'] + java: ['17', '21', '25'] env: DEFAULT_JAVA: '17' runs-on: ubuntu-latest @@ -22,7 +22,7 @@ jobs: cancel-in-progress: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 with: fetch-depth: 0 @@ -34,13 +34,13 @@ jobs: restore-keys: ${{ runner.os }}-sonar- - name: Set up JDK ${{ matrix.java }} - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: ${{ matrix.java }} - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 - name: Build with Java ${{ matrix.java }} run: ./gradlew build --info -PjavaVersion=${{matrix.java}} diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index da43028..4de3c1a 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -21,18 +21,18 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: fetch-depth: 2 - name: Set up JDK 17 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 - name: Initialize CodeQL uses: github/codeql-action/init@v3 diff --git a/.github/workflows/dependency-submission.yml b/.github/workflows/dependency-submission.yml index a25f0f3..9832b84 100644 --- a/.github/workflows/dependency-submission.yml +++ b/.github/workflows/dependency-submission.yml @@ -13,9 +13,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 17 diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 548c2a4..7735ecf 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -16,14 +16,14 @@ jobs: contents: read steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Set up JDK 17 - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 - name: Setup Pages uses: actions/configure-pages@v5 - name: Build Javadoc @@ -33,7 +33,7 @@ jobs: - name: Collect artifacts run: cp -r build/reports/ build/docs/ - name: Upload artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v4 with: path: ./build/docs/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 94aebb9..500d479 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,22 +22,22 @@ jobs: contents: write # Required for creating GitHub release steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Fail if not running on main branch if: ${{ github.ref != 'refs/heads/main' }} - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | core.setFailed('Not running on main branch, github.ref is ${{ github.ref }}. Please start this workflow only on main') - - uses: actions/setup-java@v4 + - uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 - name: Build run: ./gradlew build --info --warning-mode all diff --git a/CHANGELOG.md b/CHANGELOG.md index f395a6e..de621c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.3.0] - unreleased -## [0.2.0] - 2025-07-05 +## [0.2.0] - 2025-11-02 * [PR #3](https://github.com/itsallcode/simple-process/pull/3): Allow configuring log level +* [PR #9](https://github.com/itsallcode/simple-process/pull/9): Upgrade dependencies ## [0.1.0] - 2025-06-028 diff --git a/build.gradle b/build.gradle index 5047c4c..6254b43 100644 --- a/build.gradle +++ b/build.gradle @@ -5,9 +5,9 @@ plugins { id 'jacoco-report-aggregation' id 'signing' id 'maven-publish' - id 'org.sonarqube' version '6.2.0.5505' + id 'org.sonarqube' version '7.0.1.6134' id "io.github.gradle-nexus.publish-plugin" version "2.0.0" - id 'com.github.ben-manes.versions' version '0.52.0' + id 'com.github.ben-manes.versions' version '0.53.0' } group = 'org.itsallcode' @@ -39,7 +39,7 @@ testing { java { toolchain { - def javaVersion = project.hasProperty('javaVersion') ? project.getProperty('javaVersion') : 17 + def javaVersion = project.hasProperty('javaVersion') ? project.getProperty('javaVersion') : 25 languageVersion = JavaLanguageVersion.of(javaVersion) } withJavadocJar() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 75e0866..7f72598 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,10 +2,10 @@ # https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format [versions] -junitJupiter = "5.11.1" -mockito = "5.18.0" -assertj = "3.27.3" -equalsverifier = "3.18.1" +junitJupiter = "6.0.0" +mockito = "5.20.0" +assertj = "3.27.6" +equalsverifier = "4.2.1" tostringverifier = "1.4.8" [libraries] diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 1b33c55..f8e1ee3 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ff23a68..bad7c24 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 23d15a9..adff685 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH="\\\"\\\"" # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" diff --git a/gradlew.bat b/gradlew.bat index db3a6ac..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH= @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/src/test/java/org/itsallcode/process/SimpleProcessTest.java b/src/test/java/org/itsallcode/process/SimpleProcessTest.java index c969ef7..98a3dde 100644 --- a/src/test/java/org/itsallcode/process/SimpleProcessTest.java +++ b/src/test/java/org/itsallcode/process/SimpleProcessTest.java @@ -21,8 +21,9 @@ class SimpleProcessTest { @Test void startingFails() { final SimpleProcessBuilder builder = builder().command("no-such-process"); - assertThatThrownBy(builder::start).isInstanceOf(UncheckedIOException.class).hasMessage( - "Failed to start process [no-such-process] in working dir null: Cannot run program \"no-such-process\": error=2, No such file or directory"); + assertThatThrownBy(builder::start).isInstanceOf(UncheckedIOException.class).hasMessageStartingWith( + "Failed to start process [no-such-process] in working dir null:") + .hasMessageContaining("No such file or directory"); } @Test @@ -58,7 +59,7 @@ void streamConsumerCloseTimeout() { @Test void customExecutor() { - ExecutorService executor = Executors.newSingleThreadExecutor(); + final ExecutorService executor = Executors.newSingleThreadExecutor(); try { final SimpleProcess process = builder().streamConsumerExecutor(executor) .command("echo", "hello world").start();