diff --git a/.github/workflows/build-docker-image.yaml b/.github/workflows/build-docker-image.yaml
index 15f6e7ffa..fbe2f144a 100644
--- a/.github/workflows/build-docker-image.yaml
+++ b/.github/workflows/build-docker-image.yaml
@@ -34,10 +34,10 @@ jobs:
ref: ${{ inputs.ref != '' && inputs.ref || github.ref }}
fetch-depth: 0
- - name: Set up JDK 21
+ - name: Set up JDK 25
uses: actions/setup-java@v4
with:
- java-version: '21'
+ java-version: '25'
distribution: 'temurin'
- name: Build with Gradle
diff --git a/.github/workflows/test-mr.yml b/.github/workflows/test-mr.yml
index 720944836..f47673bd0 100644
--- a/.github/workflows/test-mr.yml
+++ b/.github/workflows/test-mr.yml
@@ -16,10 +16,10 @@ jobs:
steps:
- uses: actions/checkout@v2
- - name: Set up JDK 21
+ - name: Set up JDK 25
uses: actions/setup-java@v2
with:
- java-version: '21'
+ java-version: '25'
distribution: 'temurin'
- name: Build with Gradle
@@ -44,4 +44,4 @@ jobs:
path: |
./**/test-results/**/*.xml
./**/reports
- ./**/libs
\ No newline at end of file
+ ./**/libs
diff --git a/README.md b/README.md
index 9609e704c..79f943c70 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
## Требования к инфраструктуре
-* JDK: 21 (Temurin)
+* JDK: 25 (Temurin)
* PostgreSQL 15.2
## Требования к рабочему окружению
diff --git a/app/src/main/resources/templates/components/combo-box.html b/app/src/main/resources/templates/components/combo-box.html
index 4ff418216..2b9d6f0d5 100644
--- a/app/src/main/resources/templates/components/combo-box.html
+++ b/app/src/main/resources/templates/components/combo-box.html
@@ -1,5 +1,5 @@
@@ -104,4 +104,4 @@
-
\ No newline at end of file
+
diff --git a/app/src/testFixtures/kotlin/pro/qyoga/tests/infra/db/TestMinio.kt b/app/src/testFixtures/kotlin/pro/qyoga/tests/infra/db/TestMinio.kt
index f008696f9..fd0fd7877 100644
--- a/app/src/testFixtures/kotlin/pro/qyoga/tests/infra/db/TestMinio.kt
+++ b/app/src/testFixtures/kotlin/pro/qyoga/tests/infra/db/TestMinio.kt
@@ -3,6 +3,7 @@ package pro.qyoga.tests.infra.db
import io.minio.ListObjectsArgs
import io.minio.MinioClient
import io.minio.RemoveObjectArgs
+import io.minio.errors.MinioException
import org.slf4j.LoggerFactory
import java.net.ConnectException
@@ -30,20 +31,26 @@ val minioUrl: String by lazy {
MINIO_URL
} catch (e: ConnectException) {
- log.info("minio container not found: ${e.message}")
- log.info("http://" + minioContainer.host + ":" + minioContainer.firstMappedPort)
+ fallbackToTestcontainersMinio(e)
+ } catch (e: MinioException) {
+ fallbackToTestcontainersMinio(e)
+ }
+}
- log.info("Cleaning testcontainers minio")
- dropBuckets(
- MinioClient.builder()
- .endpoint(minioContainer.s3URL)
- .credentials(minioContainer.userName, minioContainer.password)
- .build()
- )
- log.info("Minio cleaned")
+private fun fallbackToTestcontainersMinio(e: Exception): String {
+ log.info("minio container not found: ${e.message}")
+ log.info("http://" + minioContainer.host + ":" + minioContainer.firstMappedPort)
- "http://" + minioContainer.host + ":" + minioContainer.firstMappedPort
- }
+ log.info("Cleaning testcontainers minio")
+ dropBuckets(
+ MinioClient.builder()
+ .endpoint(minioContainer.s3URL)
+ .credentials(minioContainer.userName, minioContainer.password)
+ .build()
+ )
+ log.info("Minio cleaned")
+
+ return "http://" + minioContainer.host + ":" + minioContainer.firstMappedPort
}
val testMinioClient: MinioClient by lazy {
@@ -63,4 +70,3 @@ fun dropBuckets(client: MinioClient) {
}
}
}
-
diff --git a/build.gradle.kts b/build.gradle.kts
index 182e8cc77..dd23c600f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -23,7 +23,7 @@ subprojects {
configure {
toolchain {
- languageVersion.set(JavaLanguageVersion.of(21))
+ languageVersion.set(JavaLanguageVersion.of(25))
}
}
@@ -36,8 +36,8 @@ subprojects {
tasks.withType {
compilerOptions {
- freeCompilerArgs = listOf("-Xjsr305=strict", "-Xwhen-guards")
- jvmTarget.set(JvmTarget.JVM_21)
+ freeCompilerArgs = listOf("-Xjsr305=strict")
+ jvmTarget.set(JvmTarget.JVM_25)
jvmDefault.set(JvmDefaultMode.NO_COMPATIBILITY)
allWarningsAsErrors = true
}
diff --git a/deploy/qyoga/Dockerfile b/deploy/qyoga/Dockerfile
index f58473840..9da483325 100644
--- a/deploy/qyoga/Dockerfile
+++ b/deploy/qyoga/Dockerfile
@@ -1,6 +1,6 @@
-FROM eclipse-temurin:21-alpine
+FROM eclipse-temurin:25-alpine
EXPOSE 8080
WORKDIR /app
ADD /app/build/libs/qyoga.jar /app/qyoga.jar
-ENTRYPOINT ["java", "-jar", "qyoga.jar"]
\ No newline at end of file
+ENTRYPOINT ["java", "-jar", "qyoga.jar"]
diff --git a/deploy/qyoga/Dockerfile-local-dev b/deploy/qyoga/Dockerfile-local-dev
index c920fedde..33b12025f 100644
--- a/deploy/qyoga/Dockerfile-local-dev
+++ b/deploy/qyoga/Dockerfile-local-dev
@@ -1,6 +1,6 @@
-FROM eclipse-temurin:21-alpine
+FROM eclipse-temurin:25-alpine
EXPOSE 8080
WORKDIR /app
-ENTRYPOINT ["./gradlew", "bootRun", "--args='--spring.profiles.active=local-dev,demo,local-front-dev'", "--no-daemon"]
\ No newline at end of file
+ENTRYPOINT ["./gradlew", "bootRun", "--args='--spring.profiles.active=local-dev,demo,local-front-dev'", "--no-daemon"]
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 8bdaf60c7..61285a659 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 37f78a6af..5dd3c0121 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-9.3.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 738ce6cd7..04f2d8530 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -6,12 +6,12 @@ dependencyResolutionManagement {
versionCatalogs {
create("libs") {
// plugin versions
- val kotlinVersion = version("kotlin", "2.3.10")
- val springBootVersion = version("springBoot", "4.0.3")
+ val kotlinVersion = version("kotlin", "2.3.21")
+ val springBootVersion = version("springBoot", "4.0.6")
val springDependencyManagementVersion = version("springDependencyManagement", "1.1.7")
- val koverVersion = version("kover", "0.9.2")
- val gitPropertiesVersion = version("gitProperties", "2.5.3")
- val detektVersion = version("dekekt", "2.0.0-alpha.1")
+ val koverVersion = version("kover", "0.9.8")
+ val gitPropertiesVersion = version("gitProperties", "2.5.7")
+ val detektVersion = version("dekekt", "2.0.0-alpha.2")
// lib versions
val poiVersion = version("poi", "5.4.1")