diff --git a/.github/workflows/api-ci-using-gradle.yml b/.github/workflows/api-ci-using-gradle.yml index 5cc5fb3e..5d9195b9 100644 --- a/.github/workflows/api-ci-using-gradle.yml +++ b/.github/workflows/api-ci-using-gradle.yml @@ -34,7 +34,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 21 + java-version: 25 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 diff --git a/.github/workflows/automation-tests.yml b/.github/workflows/automation-tests.yml index 4d6997cb..0ca9c632 100644 --- a/.github/workflows/automation-tests.yml +++ b/.github/workflows/automation-tests.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-java@v5 with: distribution: temurin - java-version: 21 + java-version: 25 - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 diff --git a/Dockerfile b/Dockerfile index c19faed1..28f67958 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ -ARG JAVA_VERSION=21 +ARG JAVA_VERSION=25 ARG NODEJS_VERSION=24 -ARG ALPINE_VERSION=3.22 +ARG ALPINE_VERSION=3.23 ARG ARGON2_VERSION=20190702 FROM node:${NODEJS_VERSION}-alpine${ALPINE_VERSION} AS alpine-nodejs @@ -27,6 +27,10 @@ COPY api/token/build.gradle.kts /project/api/token/ COPY api/token-introspection/build.gradle.kts /project/api/token-introspection/ COPY api/token-revocation/build.gradle.kts /project/api/token-revocation/ +COPY automation/api/build.gradle.kts /project/automation/api/ +COPY automation/browser/build.gradle.kts /project/automation/browser/ +COPY automation/load/build.gradle.kts /project/automation/load/ + COPY user-interface/build.gradle.kts /project/user-interface/ COPY user-interface/authentication/build.gradle.kts /project/user-interface/authentication/ COPY user-interface/authentication/package.json /project/user-interface/authentication/ diff --git a/README.md b/README.md index b26dfe03..0a80e12c 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ An attempt to create an OAuth 2 service as close and on spec as possible, it att * provide test consumers that will demonstrate best practice and the various ways to integrate depending on system architecture. ## Requirements -* Java 21 +* Java 25 * Node 24 ## Using Gradle @@ -25,7 +25,7 @@ An attempt to create an OAuth 2 service as close and on spec as possible, it att ``` ## Building Docker -Since it's a multistage project we need to run a few commands to build and tag everything. +Since it's a multistage project, we need to run a few commands to build and tag everything. ```bash # Create all the all endpoints server instance diff --git a/api/common/build.gradle.kts b/api/common/build.gradle.kts index 7801af22..2e256a66 100644 --- a/api/common/build.gradle.kts +++ b/api/common/build.gradle.kts @@ -56,6 +56,17 @@ dependencies { // Mocking testImplementation(libs.mockk) + constraints { + api("net.bytebuddy:byte-buddy-agent:1.17.8") + api("net.bytebuddy:byte-buddy:1.17.8") { + because(""" + |Mockk depends on 1.5.11, which doesn't support JDK 25 + |See https://github.com/mockk/mockk/issues/1434 + |But Byte Buddy 1.17.5 brings in JDK 25 support + |https://github.com/raphw/byte-buddy/releases/tag/byte-buddy-1.17.5""".trimMargin() + ) + } + } // Test data generation testImplementation(libs.commons.lang3) diff --git a/api/token-revocation/src/test/kotlin/uk/co/baconi/oauth/HelloWorldTest.kt b/api/token-revocation/src/test/kotlin/uk/co/baconi/oauth/HelloWorldTest.kt deleted file mode 100644 index 6553ec44..00000000 --- a/api/token-revocation/src/test/kotlin/uk/co/baconi/oauth/HelloWorldTest.kt +++ /dev/null @@ -1,13 +0,0 @@ -package uk.co.baconi.oauth - -//import io.kotest.matchers.shouldBe -//import org.junit.jupiter.api.Test -// -//class HelloWorldTest { -// -// @Test -// fun hello() { -// "hello" shouldBe "hello" -// } -// -//} \ No newline at end of file diff --git a/automation/load/build.gradle.kts b/automation/load/build.gradle.kts index cd1b7732..43b0cca2 100644 --- a/automation/load/build.gradle.kts +++ b/automation/load/build.gradle.kts @@ -1,5 +1,5 @@ plugins { alias(libs.plugins.kotlin.jvm) alias(libs.plugins.kotlin.allopen) - id("io.gatling.gradle") version "3.13.1" + id("io.gatling.gradle") version "3.14.9.5" } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 523a5760..01046863 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,9 +15,9 @@ allprojects { mavenLocal() } plugins.withId("org.jetbrains.kotlin.jvm") { - // Replacement for kotlin { jvmToolchain(21) } in each project + // Replacement for kotlin { jvmToolchain(25) } in each project extensions.configure { - jvmToolchain(21) + jvmToolchain(25) } } tasks.withType().configureEach { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8aa580b9..e93b92db 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,8 +3,8 @@ # Common Versions ## node = "24.12.0" -ktor = "3.3.3" -kotlin = "2.2.21" +ktor = "3.4.0" +kotlin = "2.3.0" ## # JVM Versions @@ -19,7 +19,7 @@ slf4j = "2.0.17" ## # Common Test Versions ## -kotest = "6.0.7" +kotest = "6.1.1" mockk = "1.14.7" ## diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d4081da4..19a6bdeb 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.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME