diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 395ca244..0b23cb47 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -12,9 +12,9 @@ jobs: - uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - java-version: '21' + java-version: '25' distribution: 'temurin' - name: Build with Gradle diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ac5312aa..f2490b0a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -17,9 +17,9 @@ jobs: fetch-depth: '10' - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - java-version: '17' + java-version: '25' distribution: 'temurin' server-id: github diff --git a/Dockerfile b/Dockerfile index 19e44a3b..3a8158d0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ # Use a multi-stage build to keep the image size small # Start with a Gradle image for building the project -#FROM gradle:jdk21-alpine as builder -FROM gradle:8.8.0-jdk21 as builder +#FROM gradle:jdk25-alpine as builder +FROM gradle:jdk25 AS builder # Copy the Gradle wrapper and configuration files separately to leverage Docker cache COPY --chown=gradle:gradle gradlew /home/gradle/ @@ -25,7 +25,7 @@ COPY --chown=gradle:gradle src /home/gradle/src RUN ./gradlew build -x test # Start with a fresh image for the runtime -FROM eclipse-temurin:21-jre-alpine +FROM eclipse-temurin:25-jre-alpine # Set the deployment directory WORKDIR /app diff --git a/build.gradle.kts b/build.gradle.kts index 46e9a85c..75ee695c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ import java.time.ZoneId import java.time.format.DateTimeFormatter plugins { - val ktVer = "2.1.10" + val ktVer = "2.4.0" java kotlin("jvm") version ktVer @@ -13,9 +13,9 @@ plugins { kotlin("plugin.serialization") version ktVer kotlin("plugin.allopen") version ktVer kotlin("kapt") version ktVer - id("org.springframework.boot") version "3.2.3" + id("org.springframework.boot") version "3.5.16" id("com.github.ben-manes.versions") version "0.51.0" - id("org.hibernate.orm") version "6.4.4.Final" + id("org.hibernate.orm") version "7.4.4.Final" application } @@ -37,8 +37,8 @@ dependencies { implementation("io.netty:netty-all") implementation("org.apache.commons:commons-lang3:3.14.0") implementation("org.apache.httpcomponents.client5:httpclient5") - implementation("org.flywaydb:flyway-core:10.10.0") - implementation("org.flywaydb:flyway-mysql:10.10.0") + implementation("org.flywaydb:flyway-core:12.10.0") + implementation("org.flywaydb:flyway-mysql:12.10.0") testImplementation("org.springframework.boot:spring-boot-starter-test") { exclude(group = "org.junit.vintage", module = "junit-vintage-engine") } @@ -52,8 +52,8 @@ dependencies { // Database runtimeOnly("org.mariadb.jdbc:mariadb-java-client:3.3.3") runtimeOnly("org.xerial:sqlite-jdbc:3.45.2.0") - implementation("org.hibernate.orm:hibernate-core:6.4.4.Final") - implementation("org.hibernate.orm:hibernate-community-dialects:6.4.4.Final") + implementation("org.hibernate.orm:hibernate-core:6.6.54.Final") + implementation("org.hibernate.orm:hibernate-community-dialects:6.6.54.Final") implementation("io.github.openfeign.querydsl:querydsl-jpa:6.10.1") kapt("io.github.openfeign.querydsl:querydsl-apt:6.10.1:jpa") @@ -105,10 +105,20 @@ dependencies { group = "icu.samnya" version = "1.0.0" description = "AquaDX Arcade Server" -java.sourceCompatibility = JavaVersion.VERSION_21 + +java { + sourceCompatibility = JavaVersion.VERSION_25 + targetCompatibility = JavaVersion.VERSION_25 + toolchain { + languageVersion.set(JavaLanguageVersion.of(25)) + } +} kotlin { - jvmToolchain(21) + jvmToolchain(25) + compilerOptions { + jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_25) + } } springBoot { diff --git a/config/devtainer/Dockerfile b/config/devtainer/Dockerfile index 7458b109..294bddf2 100644 --- a/config/devtainer/Dockerfile +++ b/config/devtainer/Dockerfile @@ -1,7 +1,7 @@ FROM archlinux:latest RUN pacman -Syu --noconfirm \ - && pacman -S --noconfirm openssh sudo jdk21-openjdk wget which procps-ng zsh git curlie micro ripgrep python3 exa \ + && pacman -S --noconfirm openssh sudo jdk25-openjdk wget which procps-ng zsh git curlie micro ripgrep python3 exa \ && rm -rf /var/cache/pacman/pkg/* \ && mkdir -p /var/run/sshd \ && chsh -s /bin/zsh root \ diff --git a/docs/self-hosting.md b/docs/self-hosting.md index 057eec5c..bf713176 100644 --- a/docs/self-hosting.md +++ b/docs/self-hosting.md @@ -41,10 +41,10 @@ docker compose up ``` ### Building -You need to install JDK 21 on your system, then run `./gradlew clean build`. The jar file will be built into the `build/libs` folder. +You need to install JDK 25 on your system, then run `./gradlew clean build`. The jar file will be built into the `build/libs` folder. ## Why drop SQLite support? If you wonder why I dropped SQLite support, ask SQLite devs why they still haven't supported adding a single constraint to a table without all the hassle of creating a new one and migrating all data over and finally deleting the original. -![](sqlite-sucks.png) \ No newline at end of file +![](sqlite-sucks.png) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index a4b76b95..1b33c55b 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 cea7a793..a351597e 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.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME