diff --git a/build.gradle b/build.gradle
index 29d00c9e..c89f38f3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
plugins {
id "com.diffplug.spotless" version "6.19.0"
- id "org.graalvm.buildtools.native" version "0.11.0" // or dependsOn fails in graalvm examples
id "com.asarkar.gradle.build-time-tracker" version "4.3.0"
+ id "org.graalvm.buildtools.native" version "0.11.1" apply false // or dependsOn fails in graalvm examples
id "org.jetbrains.kotlin.jvm" version "1.9.25" apply false
id "org.jetbrains.kotlin.kapt" version "1.9.25" apply false
}
diff --git a/gradle.properties b/gradle.properties
index 53897c7f..21ba8bc0 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,5 +1,5 @@
groupId=ru.tinkoff.kora
-koraVersion=1.2.2
+koraVersion=1.2.3
##### GRADLE #####
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index d64cd491..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 9355b415..d4081da4 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.10-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index 1aa94a42..23d15a93 100755
--- a/gradlew
+++ b/gradlew
@@ -15,6 +15,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+# SPDX-License-Identifier: Apache-2.0
+#
##############################################################################
#
@@ -55,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
-# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,7 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
-APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -112,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -203,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
@@ -211,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 25da30db..db3a6ac2 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -13,6 +13,8 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@@ -68,11 +70,11 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%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" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/kora-java-cache-caffeine/Dockerfile b/kora-java-cache-caffeine/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-cache-caffeine/Dockerfile
+++ b/kora-java-cache-caffeine/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-cache-caffeine/build.gradle b/kora-java-cache-caffeine/build.gradle
index 0ed5f5db..8e785c2b 100644
--- a/kora-java-cache-caffeine/build.gradle
+++ b/kora-java-cache-caffeine/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.cache.caffeine.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -30,7 +22,14 @@ dependencies {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.cache.caffeine.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -64,8 +63,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -86,6 +87,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-cache-caffeine/src/main/resources/logback.xml b/kora-java-cache-caffeine/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-cache-caffeine/src/main/resources/logback.xml
+++ b/kora-java-cache-caffeine/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-cache-redis/Dockerfile b/kora-java-cache-redis/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-cache-redis/Dockerfile
+++ b/kora-java-cache-redis/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-cache-redis/build.gradle b/kora-java-cache-redis/build.gradle
index 86eb7d26..95dfdfe7 100644
--- a/kora-java-cache-redis/build.gradle
+++ b/kora-java-cache-redis/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.cache.redis.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -32,7 +24,14 @@ dependencies {
testImplementation "redis.clients:jedis:4.4.3"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.cache.redis.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -66,8 +65,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -88,6 +89,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-cache-redis/src/main/resources/logback.xml b/kora-java-cache-redis/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-cache-redis/src/main/resources/logback.xml
+++ b/kora-java-cache-redis/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-camunda-engine/Dockerfile b/kora-java-camunda-engine/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-camunda-engine/Dockerfile
+++ b/kora-java-camunda-engine/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-camunda-engine/build.gradle b/kora-java-camunda-engine/build.gradle
index 345c9e86..ca7c9277 100644
--- a/kora-java-camunda-engine/build.gradle
+++ b/kora-java-camunda-engine/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.camunda.engine.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -40,7 +32,14 @@ dependencies {
testImplementation "org.assertj:assertj-core:3.26.0"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.camunda.engine.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -59,7 +58,7 @@ distTar {
test {
dependsOn tasks.distTar
-
+
jvmArgs += [
"-XX:+TieredCompilation",
"-XX:TieredStopAtLevel=1",
@@ -76,8 +75,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -98,6 +99,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-camunda-engine/src/main/resources/logback.xml b/kora-java-camunda-engine/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-camunda-engine/src/main/resources/logback.xml
+++ b/kora-java-camunda-engine/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-camunda-zeebe-worker/Dockerfile b/kora-java-camunda-zeebe-worker/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-camunda-zeebe-worker/Dockerfile
+++ b/kora-java-camunda-zeebe-worker/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-camunda-zeebe-worker/README.md b/kora-java-camunda-zeebe-worker/README.md
index 0e3e9b1d..e54a752e 100644
--- a/kora-java-camunda-zeebe-worker/README.md
+++ b/kora-java-camunda-zeebe-worker/README.md
@@ -37,7 +37,11 @@ docker build -t kora-java-camunda-zeebe-worker .
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-camunda-zeebe-worker/build.gradle b/kora-java-camunda-zeebe-worker/build.gradle
index 59e038d2..751a16f5 100644
--- a/kora-java-camunda-zeebe-worker/build.gradle
+++ b/kora-java-camunda-zeebe-worker/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.camunda.zeebe.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -33,7 +25,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.camunda.zeebe.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -67,8 +66,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -89,6 +90,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-camunda-zeebe-worker/src/main/resources/logback.xml b/kora-java-camunda-zeebe-worker/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-camunda-zeebe-worker/src/main/resources/logback.xml
+++ b/kora-java-camunda-zeebe-worker/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-config-hocon/Dockerfile b/kora-java-config-hocon/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-config-hocon/Dockerfile
+++ b/kora-java-config-hocon/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-config-hocon/build.gradle b/kora-java-config-hocon/build.gradle
index a3177cd1..08686fde 100644
--- a/kora-java-config-hocon/build.gradle
+++ b/kora-java-config-hocon/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.config.hocon.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -29,8 +21,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.config.hocon.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -64,8 +62,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -86,6 +86,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-config-hocon/src/main/resources/logback.xml b/kora-java-config-hocon/src/main/resources/logback.xml
index f0fe012d..70d14ce8 100644
--- a/kora-java-config-hocon/src/main/resources/logback.xml
+++ b/kora-java-config-hocon/src/main/resources/logback.xml
@@ -15,10 +15,7 @@
-
-
-
-
+
diff --git a/kora-java-config-yaml/Dockerfile b/kora-java-config-yaml/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-config-yaml/Dockerfile
+++ b/kora-java-config-yaml/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-config-yaml/build.gradle b/kora-java-config-yaml/build.gradle
index 4b11f109..6176337b 100644
--- a/kora-java-config-yaml/build.gradle
+++ b/kora-java-config-yaml/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.config.hocon.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -29,7 +21,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.config.hocon.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -62,8 +61,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -84,6 +85,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-config-yaml/src/main/resources/logback.xml b/kora-java-config-yaml/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-config-yaml/src/main/resources/logback.xml
+++ b/kora-java-config-yaml/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-crud-submodule/README.md b/kora-java-crud-submodule/README.md
index 1f7a2527..bc7e276e 100644
--- a/kora-java-crud-submodule/README.md
+++ b/kora-java-crud-submodule/README.md
@@ -63,7 +63,11 @@ docker build -t kora-java-crud-submodule .
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-crud-submodule/build.gradle b/kora-java-crud-submodule/build.gradle
index f0c92c3f..cdb1710e 100644
--- a/kora-java-crud-submodule/build.gradle
+++ b/kora-java-crud-submodule/build.gradle
@@ -5,9 +5,6 @@ plugins {
subprojects {
apply plugin: "jacoco"
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
annotationProcessor.extendsFrom(koraBom)
@@ -29,6 +26,11 @@ subprojects {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+ java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+
test {
jvmArgs += [
"-XX:+TieredCompilation",
@@ -39,8 +41,6 @@ subprojects {
"": ""
])
- exclude(["**/\$*"])
-
useJUnitPlatform()
testLogging {
showStandardStreams(true)
@@ -48,6 +48,12 @@ subprojects {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
+ jacoco {
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
+ }
+
reports {
html.required = false
junitXml.required = false
@@ -66,6 +72,9 @@ subprojects {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ afterEvaluate {
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
+ }
}
javadoc {
diff --git a/kora-java-crud-submodule/kora-java-crud-submodule-app/Dockerfile b/kora-java-crud-submodule/kora-java-crud-submodule-app/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-crud-submodule/kora-java-crud-submodule-app/Dockerfile
+++ b/kora-java-crud-submodule/kora-java-crud-submodule-app/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-crud-submodule/kora-java-crud-submodule-app/build.gradle b/kora-java-crud-submodule/kora-java-crud-submodule-app/build.gradle
index 48bc4174..927661e2 100644
--- a/kora-java-crud-submodule/kora-java-crud-submodule-app/build.gradle
+++ b/kora-java-crud-submodule/kora-java-crud-submodule-app/build.gradle
@@ -14,9 +14,6 @@ plugins {
id "org.flywaydb.flyway" version "8.4.2"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.submodule.app.Application"
-
dependencies {
annotationProcessor "org.mapstruct:mapstruct-processor:1.5.5.Final"
@@ -43,6 +40,26 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.submodule.app.Application"
+ applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+}
+
+//noinspection GroovyAssignabilityCheck
+run {
+ environment([
+ "POSTGRES_JDBC_URL": "jdbc:postgresql://$postgresHost:$postgresPort/$postgresDatabase",
+ "POSTGRES_USER" : "$postgresUser",
+ "POSTGRES_PASS" : "$postgresPassword",
+ ])
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -60,19 +77,6 @@ def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", Gene
sourceSets.main { java.srcDirs += openApiGenerateHttpServer.get().outputDir }
compileJava.dependsOn openApiGenerateHttpServer
-application {
- applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
-}
-
-//noinspection GroovyAssignabilityCheck
-run {
- environment([
- "POSTGRES_JDBC_URL": "jdbc:postgresql://$postgresHost:$postgresPort/$postgresDatabase",
- "POSTGRES_USER" : "$postgresUser",
- "POSTGRES_PASS" : "$postgresPassword",
- ])
-}
-
distTar {
archiveFileName = "application.tar"
}
diff --git a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/application.conf b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/application.conf
index 99d7a4b5..eed0583d 100644
--- a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/application.conf
+++ b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/application.conf
@@ -32,6 +32,22 @@ openapi {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/logback.xml b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/logback.xml
+++ b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/test/java/ru/tinkoff/kora/example/submodule/app/BlackBoxTests.java b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/test/java/ru/tinkoff/kora/example/submodule/app/BlackBoxTests.java
index bd0a4bf9..875c9b47 100644
--- a/kora-java-crud-submodule/kora-java-crud-submodule-app/src/test/java/ru/tinkoff/kora/example/submodule/app/BlackBoxTests.java
+++ b/kora-java-crud-submodule/kora-java-crud-submodule-app/src/test/java/ru/tinkoff/kora/example/submodule/app/BlackBoxTests.java
@@ -42,7 +42,10 @@ public static void setup(@ConnectionPostgreSQL JdbcConnection connection) {
"POSTGRES_JDBC_URL", params.jdbcUrl(),
"POSTGRES_USER", params.username(),
"POSTGRES_PASS", params.password(),
- "CACHE_MAX_SIZE", "0"));
+ "CACHE_MAX_SIZE", "0",
+ "RETRY_ATTEMPTS", "0",
+ "LOGGING_LEVEL_KORA", "DEBUG",
+ "LOGGING_LEVEL_APP", "DEBUG"));
container.start();
}
diff --git a/kora-java-crud/Dockerfile b/kora-java-crud/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-crud/Dockerfile
+++ b/kora-java-crud/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-crud/README.md b/kora-java-crud/README.md
index 97789d9c..11318dc5 100644
--- a/kora-java-crud/README.md
+++ b/kora-java-crud/README.md
@@ -60,7 +60,11 @@ docker build -t kora-java-crud .
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-crud/build.gradle b/kora-java-crud/build.gradle
index 23ff47a1..f2d15d8c 100644
--- a/kora-java-crud/build.gradle
+++ b/kora-java-crud/build.gradle
@@ -15,23 +15,10 @@ plugins {
id "org.flywaydb.flyway" version "8.4.2"
}
-application {
- applicationName = "application"
- mainClassName = "ru.tinkoff.kora.example.crud.Application"
- applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
-}
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
- testImplementation.extendsFrom(koraBom)
- testAnnotationProcessor.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -64,6 +51,26 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.crud.Application"
+ applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+}
+
+//noinspection GroovyAssignabilityCheck
+run {
+ environment([
+ "POSTGRES_JDBC_URL": "jdbc:postgresql://$postgresHost:$postgresPort/$postgresDatabase",
+ "POSTGRES_USER" : "$postgresUser",
+ "POSTGRES_PASS" : "$postgresPassword",
+ ])
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -81,15 +88,6 @@ def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", Gene
sourceSets.main { java.srcDirs += openApiGenerateHttpServer.get().outputDir }
compileJava.dependsOn openApiGenerateHttpServer
-//noinspection GroovyAssignabilityCheck
-run {
- environment([
- "POSTGRES_JDBC_URL": "jdbc:postgresql://$postgresHost:$postgresPort/$postgresDatabase",
- "POSTGRES_USER" : "$postgresUser",
- "POSTGRES_PASS" : "$postgresPassword",
- ])
-}
-
distTar {
archiveFileName = "application.tar"
}
@@ -113,10 +111,10 @@ test {
exceptionFormat("full")
}
- exclude(["**/\$*"])
+ exclude("**/\$*")
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -147,6 +145,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-crud/src/main/resources/application.conf b/kora-java-crud/src/main/resources/application.conf
index 1584c222..0c36be8b 100644
--- a/kora-java-crud/src/main/resources/application.conf
+++ b/kora-java-crud/src/main/resources/application.conf
@@ -22,9 +22,6 @@ pet-cache {
expireAfterWrite = ${?CACHE_EXPIRE_WRITE}
}
-metrics {
- opentelemetrySpec = "V123"
-}
openapi {
management {
@@ -62,6 +59,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-crud/src/main/resources/logback.xml b/kora-java-crud/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-crud/src/main/resources/logback.xml
+++ b/kora-java-crud/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-crud/src/test/java/ru/tinkoff/kora/example/crud/BlackBoxTests.java b/kora-java-crud/src/test/java/ru/tinkoff/kora/example/crud/BlackBoxTests.java
index d7df68ce..aec77bca 100644
--- a/kora-java-crud/src/test/java/ru/tinkoff/kora/example/crud/BlackBoxTests.java
+++ b/kora-java-crud/src/test/java/ru/tinkoff/kora/example/crud/BlackBoxTests.java
@@ -42,7 +42,10 @@ public static void setup(@ConnectionPostgreSQL JdbcConnection connection) {
"POSTGRES_JDBC_URL", params.jdbcUrl(),
"POSTGRES_USER", params.username(),
"POSTGRES_PASS", params.password(),
- "CACHE_MAX_SIZE", "0"));
+ "CACHE_MAX_SIZE", "0",
+ "RETRY_ATTEMPTS", "0",
+ "LOGGING_LEVEL_KORA", "DEBUG",
+ "LOGGING_LEVEL_APP", "DEBUG"));
container.start();
}
diff --git a/kora-java-database-cassandra/Dockerfile b/kora-java-database-cassandra/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-database-cassandra/Dockerfile
+++ b/kora-java-database-cassandra/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-database-cassandra/build.gradle b/kora-java-database-cassandra/build.gradle
index 69f9f447..b3caa67a 100644
--- a/kora-java-database-cassandra/build.gradle
+++ b/kora-java-database-cassandra/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.cassandra.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -32,7 +24,14 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-cassandra:0.12.2"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.cassandra.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -70,8 +69,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -92,6 +93,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-database-cassandra/src/main/resources/logback.xml b/kora-java-database-cassandra/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-database-cassandra/src/main/resources/logback.xml
+++ b/kora-java-database-cassandra/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-database-jdbc/Dockerfile b/kora-java-database-jdbc/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-database-jdbc/Dockerfile
+++ b/kora-java-database-jdbc/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-database-jdbc/build.gradle b/kora-java-database-jdbc/build.gradle
index 1c684799..109e10c7 100644
--- a/kora-java-database-jdbc/build.gradle
+++ b/kora-java-database-jdbc/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.jdbc.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -33,8 +25,15 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-postgres:0.12.2"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.jdbc.Application"
}
//noinspection GroovyAssignabilityCheck
@@ -69,8 +68,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -91,6 +92,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-database-jdbc/src/main/resources/logback.xml b/kora-java-database-jdbc/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-database-jdbc/src/main/resources/logback.xml
+++ b/kora-java-database-jdbc/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-database-r2dbc/Dockerfile b/kora-java-database-r2dbc/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-database-r2dbc/Dockerfile
+++ b/kora-java-database-r2dbc/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-database-r2dbc/build.gradle b/kora-java-database-r2dbc/build.gradle
index 5bb45119..42b42843 100644
--- a/kora-java-database-r2dbc/build.gradle
+++ b/kora-java-database-r2dbc/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.r2dbc.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -34,7 +26,14 @@ dependencies {
testImplementation "org.postgresql:postgresql:42.7.7"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.r2dbc.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -70,8 +69,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -92,6 +93,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-database-r2dbc/src/main/resources/logback.xml b/kora-java-database-r2dbc/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-database-r2dbc/src/main/resources/logback.xml
+++ b/kora-java-database-r2dbc/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-database-vertx/Dockerfile b/kora-java-database-vertx/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-database-vertx/Dockerfile
+++ b/kora-java-database-vertx/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-database-vertx/build.gradle b/kora-java-database-vertx/build.gradle
index 0b77b359..f4838d4d 100644
--- a/kora-java-database-vertx/build.gradle
+++ b/kora-java-database-vertx/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.vertx.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -35,7 +27,14 @@ dependencies {
testImplementation "org.postgresql:postgresql:42.7.7"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.vertx.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -71,8 +70,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -93,6 +94,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-database-vertx/src/main/resources/logback.xml b/kora-java-database-vertx/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-database-vertx/src/main/resources/logback.xml
+++ b/kora-java-database-vertx/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-graalvm-crud-cassandra/README.md b/kora-java-graalvm-crud-cassandra/README.md
index 16d5c5de..457b2de9 100644
--- a/kora-java-graalvm-crud-cassandra/README.md
+++ b/kora-java-graalvm-crud-cassandra/README.md
@@ -58,6 +58,19 @@ docker run --rm --entrypoint cat kora-java-graalvm-crud-cassandra /opt/app/appli
./gradlew run
```
+## Run Docker-Compose
+
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew shadowJar
+```
+
+Запустить как docker-compose:
+```shell
+docker-compose up
+```
+
## Test
Тесты используют [Testcontainers](https://java.testcontainers.org/), требуется [Docker](https://docs.docker.com/engine/install/) окружение для запуска тестов или аналогичные контейнерные окружения ([colima](https://github.com/abiosoft/colima) / итп)
diff --git a/kora-java-graalvm-crud-cassandra/build.gradle b/kora-java-graalvm-crud-cassandra/build.gradle
index 05c9a73e..8742889a 100644
--- a/kora-java-graalvm-crud-cassandra/build.gradle
+++ b/kora-java-graalvm-crud-cassandra/build.gradle
@@ -12,21 +12,14 @@ plugins {
id "application"
id "org.openapi.generator" version "7.14.0"
- id "com.github.johnrengelman.shadow" version "8.1.1"
- id "org.graalvm.buildtools.native" version "0.11.0"
+ id "com.gradleup.shadow" version "9.2.2"
+ id "org.graalvm.buildtools.native" version "0.11.1"
}
-mainClassName = "ru.tinkoff.kora.example.graalvm.crud.cassandra.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -61,6 +54,15 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ mainClass = "ru.tinkoff.kora.example.graalvm.crud.cassandra.Application"
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -82,7 +84,7 @@ graalvmNative {
binaries {
main {
imageName = "$project.name"
- mainClass = "$mainClassName"
+ mainClass = "$application.mainClass"
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.matching("GraalVM Community")
@@ -115,7 +117,7 @@ jar.enabled = false
shadowJar {
mergeServiceFiles()
manifest {
- attributes "Main-Class": mainClassName
+ attributes "Main-Class": application.mainClass
attributes "Implementation-Version": koraVersion
}
}
@@ -143,8 +145,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -165,6 +169,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-graalvm-crud-cassandra/docker-compose.yml b/kora-java-graalvm-crud-cassandra/docker-compose.yml
new file mode 100644
index 00000000..ed339bf2
--- /dev/null
+++ b/kora-java-graalvm-crud-cassandra/docker-compose.yml
@@ -0,0 +1,30 @@
+services:
+ scylla:
+ image: scylladb/scylla:2025.3
+ restart: unless-stopped
+ ports:
+ - '5432:5432'
+
+
+
+# Можно закомментировать секцию application и использовать docker-compose
+# как окружения для запуска сервиса через gradle run
+ application:
+ image: kora-java-graalvm-crud-cassandra
+ build: .
+ restart: unless-stopped
+ ports:
+ - '8080:8080'
+ - '8085:8085'
+ environment:
+ CASSANDRA_CONTACT_POINTS: jdbc:postgresql://postgres:5432/postgres
+ CASSANDRA_USER: cassandra
+ CASSANDRA_PASS: cassandra
+ CASSANDRA_DC: cassandra
+ CASSANDRA_KEYSPACE: cassandra
+ REDIS_URL: redis
+ REDIS_USER: redis
+ REDIS_PASS: redis
+ depends_on:
+ - scylla
+ - redis
diff --git a/kora-java-graalvm-crud-cassandra/src/main/resources/application.conf b/kora-java-graalvm-crud-cassandra/src/main/resources/application.conf
index 6fc5191b..86cc91cf 100644
--- a/kora-java-graalvm-crud-cassandra/src/main/resources/application.conf
+++ b/kora-java-graalvm-crud-cassandra/src/main/resources/application.conf
@@ -72,7 +72,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
- "ru.tinkoff.kora.application.graph.internal.loom.VirtualThreadExecutorHolder": "DEBUG"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-graalvm-crud-cassandra/src/main/resources/logback.xml b/kora-java-graalvm-crud-cassandra/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-graalvm-crud-cassandra/src/main/resources/logback.xml
+++ b/kora-java-graalvm-crud-cassandra/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-graalvm-crud-jdbc/README.md b/kora-java-graalvm-crud-jdbc/README.md
index 25b8127e..69e7a720 100644
--- a/kora-java-graalvm-crud-jdbc/README.md
+++ b/kora-java-graalvm-crud-jdbc/README.md
@@ -67,7 +67,11 @@ docker run --rm --entrypoint cat kora-java-graalvm-crud-jdbc /opt/app/applicatio
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew shadowJar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-graalvm-crud-jdbc/build.gradle b/kora-java-graalvm-crud-jdbc/build.gradle
index db86319e..14573564 100644
--- a/kora-java-graalvm-crud-jdbc/build.gradle
+++ b/kora-java-graalvm-crud-jdbc/build.gradle
@@ -13,21 +13,14 @@ plugins {
id "org.openapi.generator" version "7.14.0"
id "org.flywaydb.flyway" version "8.4.2"
- id "com.github.johnrengelman.shadow" version "8.1.1"
- id "org.graalvm.buildtools.native" version "0.11.0"
+ id "com.gradleup.shadow" version "9.2.2"
+ id "org.graalvm.buildtools.native" version "0.11.1"
}
-mainClassName = "ru.tinkoff.kora.example.graalvm.crud.jdbc.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -60,6 +53,15 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ mainClass = "ru.tinkoff.kora.example.graalvm.crud.jdbc.Application"
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -81,7 +83,7 @@ graalvmNative {
binaries {
main {
imageName = "$project.name"
- mainClass = "$mainClassName"
+ mainClass = "$application.mainClass"
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.matching("GraalVM Community")
@@ -109,7 +111,7 @@ jar.enabled = false
shadowJar {
mergeServiceFiles()
manifest {
- attributes "Main-Class": mainClassName
+ attributes "Main-Class": application.mainClass
attributes "Implementation-Version": koraVersion
}
}
@@ -137,8 +139,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -166,6 +170,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-graalvm-crud-jdbc/src/main/resources/application.conf b/kora-java-graalvm-crud-jdbc/src/main/resources/application.conf
index 18f6d473..0c36be8b 100644
--- a/kora-java-graalvm-crud-jdbc/src/main/resources/application.conf
+++ b/kora-java-graalvm-crud-jdbc/src/main/resources/application.conf
@@ -59,7 +59,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
- "ru.tinkoff.kora.application.graph.internal.loom.VirtualThreadExecutorHolder": "DEBUG"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-graalvm-crud-jdbc/src/main/resources/logback.xml b/kora-java-graalvm-crud-jdbc/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-graalvm-crud-jdbc/src/main/resources/logback.xml
+++ b/kora-java-graalvm-crud-jdbc/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-graalvm-crud-jdbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/jdbc/BlackBoxTests.java b/kora-java-graalvm-crud-jdbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/jdbc/BlackBoxTests.java
index c02f9a2f..308fd40e 100644
--- a/kora-java-graalvm-crud-jdbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/jdbc/BlackBoxTests.java
+++ b/kora-java-graalvm-crud-jdbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/jdbc/BlackBoxTests.java
@@ -44,7 +44,9 @@ public void setup(@ConnectionPostgreSQL JdbcConnection connection) {
"POSTGRES_USER", params.username(),
"POSTGRES_PASS", params.password(),
"CACHE_MAX_SIZE", "0",
- "RETRY_ATTEMPTS", "0"));
+ "RETRY_ATTEMPTS", "0",
+ "LOGGING_LEVEL_KORA", "DEBUG",
+ "LOGGING_LEVEL_APP", "DEBUG"));
container.start();
}
diff --git a/kora-java-graalvm-crud-r2dbc/README.md b/kora-java-graalvm-crud-r2dbc/README.md
index eb63e603..43480785 100644
--- a/kora-java-graalvm-crud-r2dbc/README.md
+++ b/kora-java-graalvm-crud-r2dbc/README.md
@@ -67,7 +67,11 @@ docker run --rm --entrypoint cat kora-java-graalvm-crud-r2dbc /opt/app/applicati
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew shadowJar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-graalvm-crud-r2dbc/build.gradle b/kora-java-graalvm-crud-r2dbc/build.gradle
index bd463805..2be91f5d 100644
--- a/kora-java-graalvm-crud-r2dbc/build.gradle
+++ b/kora-java-graalvm-crud-r2dbc/build.gradle
@@ -13,21 +13,14 @@ plugins {
id "org.openapi.generator" version "7.14.0"
id "org.flywaydb.flyway" version "8.4.2"
- id "com.github.johnrengelman.shadow" version "8.1.1"
- id "org.graalvm.buildtools.native" version "0.11.0"
+ id "com.gradleup.shadow" version "9.2.2"
+ id "org.graalvm.buildtools.native" version "0.11.1"
}
-mainClassName = "ru.tinkoff.kora.example.graalvm.crud.r2dbc.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -62,6 +55,15 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ mainClass = "ru.tinkoff.kora.example.graalvm.crud.r2dbc.Application"
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -83,7 +85,7 @@ graalvmNative {
binaries {
main {
imageName = "$project.name"
- mainClass = "$mainClassName"
+ mainClass = "$application.mainClass"
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.matching("GraalVM Community")
@@ -111,7 +113,7 @@ jar.enabled = false
shadowJar {
mergeServiceFiles()
manifest {
- attributes "Main-Class": mainClassName
+ attributes "Main-Class": application.mainClass
attributes "Implementation-Version": koraVersion
}
}
@@ -139,8 +141,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -168,6 +172,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-graalvm-crud-r2dbc/src/main/resources/application.conf b/kora-java-graalvm-crud-r2dbc/src/main/resources/application.conf
index 84e8f127..7919aa78 100644
--- a/kora-java-graalvm-crud-r2dbc/src/main/resources/application.conf
+++ b/kora-java-graalvm-crud-r2dbc/src/main/resources/application.conf
@@ -59,7 +59,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
- "ru.tinkoff.kora.application.graph.internal.loom.VirtualThreadExecutorHolder": "DEBUG"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-graalvm-crud-r2dbc/src/main/resources/logback.xml b/kora-java-graalvm-crud-r2dbc/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-graalvm-crud-r2dbc/src/main/resources/logback.xml
+++ b/kora-java-graalvm-crud-r2dbc/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-graalvm-crud-r2dbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/r2dbc/BlackBoxTests.java b/kora-java-graalvm-crud-r2dbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/r2dbc/BlackBoxTests.java
index 536502d4..bd3e7dca 100644
--- a/kora-java-graalvm-crud-r2dbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/r2dbc/BlackBoxTests.java
+++ b/kora-java-graalvm-crud-r2dbc/src/test/java/ru/tinkoff/kora/example/graalvm/crud/r2dbc/BlackBoxTests.java
@@ -45,7 +45,9 @@ public void setup(@ConnectionPostgreSQL JdbcConnection connection) {
"POSTGRES_USER", params.username(),
"POSTGRES_PASS", params.password(),
"CACHE_MAX_SIZE", "0",
- "RETRY_ATTEMPTS", "0"));
+ "RETRY_ATTEMPTS", "0",
+ "LOGGING_LEVEL_KORA", "DEBUG",
+ "LOGGING_LEVEL_APP", "DEBUG"));
container.start();
}
diff --git a/kora-java-graalvm-crud-vertx/README.md b/kora-java-graalvm-crud-vertx/README.md
index bdfaf400..c48fbc00 100644
--- a/kora-java-graalvm-crud-vertx/README.md
+++ b/kora-java-graalvm-crud-vertx/README.md
@@ -67,7 +67,11 @@ docker run --rm --entrypoint cat kora-java-graalvm-crud-vertx /opt/app/applicati
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew shadowJar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-graalvm-crud-vertx/build.gradle b/kora-java-graalvm-crud-vertx/build.gradle
index ada3d565..ac952ac8 100644
--- a/kora-java-graalvm-crud-vertx/build.gradle
+++ b/kora-java-graalvm-crud-vertx/build.gradle
@@ -13,21 +13,14 @@ plugins {
id "org.openapi.generator" version "7.14.0"
id "org.flywaydb.flyway" version "8.4.2"
- id "com.github.johnrengelman.shadow" version "8.1.1"
- id "org.graalvm.buildtools.native" version "0.11.0"
+ id "com.gradleup.shadow" version "9.2.2"
+ id "org.graalvm.buildtools.native" version "0.11.1"
}
-mainClassName = "ru.tinkoff.kora.example.graalvm.crud.vertx.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -64,6 +57,15 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ mainClass = "ru.tinkoff.kora.example.graalvm.crud.vertx.Application"
+}
+
def openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer", GenerateTask) {
generatorName = "kora"
group = "openapi tools"
@@ -85,7 +87,7 @@ graalvmNative {
binaries {
main {
imageName = "$project.name"
- mainClass = "$mainClassName"
+ mainClass = "$application.mainClass"
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.matching("GraalVM Community")
@@ -113,7 +115,7 @@ jar.enabled = false
shadowJar {
mergeServiceFiles()
manifest {
- attributes "Main-Class": mainClassName
+ attributes "Main-Class": application.mainClass
attributes "Implementation-Version": koraVersion
}
}
@@ -141,8 +143,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -170,6 +174,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-graalvm-crud-vertx/src/main/resources/application.conf b/kora-java-graalvm-crud-vertx/src/main/resources/application.conf
index ab018f46..c4cf4024 100644
--- a/kora-java-graalvm-crud-vertx/src/main/resources/application.conf
+++ b/kora-java-graalvm-crud-vertx/src/main/resources/application.conf
@@ -59,7 +59,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
- "ru.tinkoff.kora.application.graph.internal.loom.VirtualThreadExecutorHolder": "DEBUG"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-java-graalvm-crud-vertx/src/main/resources/logback.xml b/kora-java-graalvm-crud-vertx/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-graalvm-crud-vertx/src/main/resources/logback.xml
+++ b/kora-java-graalvm-crud-vertx/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-graalvm-crud-vertx/src/test/java/ru/tinkoff/kora/example/graalvm/crud/vertx/BlackBoxTests.java b/kora-java-graalvm-crud-vertx/src/test/java/ru/tinkoff/kora/example/graalvm/crud/vertx/BlackBoxTests.java
index 1afa1099..447fe318 100644
--- a/kora-java-graalvm-crud-vertx/src/test/java/ru/tinkoff/kora/example/graalvm/crud/vertx/BlackBoxTests.java
+++ b/kora-java-graalvm-crud-vertx/src/test/java/ru/tinkoff/kora/example/graalvm/crud/vertx/BlackBoxTests.java
@@ -44,7 +44,9 @@ public void setup(@ConnectionPostgreSQL JdbcConnection connection) {
"POSTGRES_USER", params.username(),
"POSTGRES_PASS", params.password(),
"CACHE_MAX_SIZE", "0",
- "RETRY_ATTEMPTS", "0"));
+ "RETRY_ATTEMPTS", "0",
+ "LOGGING_LEVEL_KORA", "DEBUG",
+ "LOGGING_LEVEL_APP", "DEBUG"));
container.start();
}
diff --git a/kora-java-graalvm-kafka/README.md b/kora-java-graalvm-kafka/README.md
index 565fbd9b..4e75833f 100644
--- a/kora-java-graalvm-kafka/README.md
+++ b/kora-java-graalvm-kafka/README.md
@@ -45,7 +45,11 @@ docker run --rm --entrypoint cat kora-java-graalvm-kafka /opt/app/application >
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-graalvm-kafka/build.gradle b/kora-java-graalvm-kafka/build.gradle
index d81914f9..a1fcfb13 100644
--- a/kora-java-graalvm-kafka/build.gradle
+++ b/kora-java-graalvm-kafka/build.gradle
@@ -3,21 +3,14 @@ plugins {
id "jacoco"
id "application"
- id "com.github.johnrengelman.shadow" version "8.1.1"
- id "org.graalvm.buildtools.native" version "0.11.0"
+ id "com.gradleup.shadow" version "9.2.2"
+ id "org.graalvm.buildtools.native" version "0.11.1"
}
-mainClassName = "ru.tinkoff.kora.example.graalvm.kafka.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -40,11 +33,20 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ mainClass = "ru.tinkoff.kora.example.graalvm.crud.kafka.Application"
+}
+
graalvmNative {
binaries {
main {
imageName = "$project.name"
- mainClass = "$mainClassName"
+ mainClass = "$application.mainClass"
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(21)
vendor = JvmVendorSpec.matching("GraalVM Community")
@@ -70,7 +72,7 @@ jar.enabled = false
shadowJar {
mergeServiceFiles()
manifest {
- attributes "Main-Class": mainClassName
+ attributes "Main-Class": application.mainClass
attributes "Implementation-Version": koraVersion
}
}
@@ -98,8 +100,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -120,6 +124,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-graalvm-kafka/docker-compose.yml b/kora-java-graalvm-kafka/docker-compose.yml
index 95251366..0c72015f 100644
--- a/kora-java-graalvm-kafka/docker-compose.yml
+++ b/kora-java-graalvm-kafka/docker-compose.yml
@@ -1,6 +1,6 @@
services:
kafka:
- image: confluentinc/cp-kafka:7.7.1
+ image: apache/kafka-native:4.1.0
restart: unless-stopped
ports:
- '9092:9092'
diff --git a/kora-java-graalvm-kafka/src/main/resources/logback.xml b/kora-java-graalvm-kafka/src/main/resources/logback.xml
index ab9429a2..5ac63a9a 100644
--- a/kora-java-graalvm-kafka/src/main/resources/logback.xml
+++ b/kora-java-graalvm-kafka/src/main/resources/logback.xml
@@ -12,10 +12,7 @@
-
-
-
-
+
diff --git a/kora-java-grpc-client/Dockerfile b/kora-java-grpc-client/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-grpc-client/Dockerfile
+++ b/kora-java-grpc-client/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-grpc-client/build.gradle b/kora-java-grpc-client/build.gradle
index 6f3257db..25678cd6 100644
--- a/kora-java-grpc-client/build.gradle
+++ b/kora-java-grpc-client/build.gradle
@@ -6,18 +6,10 @@ plugins {
id "com.google.protobuf" version "0.9.5"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.grpc.client.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -35,20 +27,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
-protobuf {
- protoc { artifact = "com.google.protobuf:protoc:3.25.3" }
- plugins {
- grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.74.0" }
- }
-
- generateProtoTasks {
- all()*.plugins { grpc {} }
- }
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
-test.dependsOn tasks.generateProto
-
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.grpc.client.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -59,6 +45,19 @@ run {
])
}
+protobuf {
+ protoc { artifact = "com.google.protobuf:protoc:3.25.3" }
+ plugins {
+ grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.74.0" }
+ }
+
+ generateProtoTasks {
+ all()*.plugins { grpc {} }
+ }
+}
+
+test.dependsOn tasks.generateProto
+
distTar {
archiveFileName = "application.tar"
}
@@ -82,8 +81,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -113,6 +114,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-grpc-client/src/main/resources/logback.xml b/kora-java-grpc-client/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-grpc-client/src/main/resources/logback.xml
+++ b/kora-java-grpc-client/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-grpc-server/Dockerfile b/kora-java-grpc-server/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-grpc-server/Dockerfile
+++ b/kora-java-grpc-server/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-grpc-server/build.gradle b/kora-java-grpc-server/build.gradle
index 97c4c08f..8ae19289 100644
--- a/kora-java-grpc-server/build.gradle
+++ b/kora-java-grpc-server/build.gradle
@@ -6,18 +6,10 @@ plugins {
id "com.google.protobuf" version "0.9.4"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.grpc.server.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -35,20 +27,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
-protobuf {
- protoc { artifact = "com.google.protobuf:protoc:3.25.3" }
- plugins {
- grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.74.0" }
- }
-
- generateProtoTasks {
- all()*.plugins { grpc {} }
- }
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
-test.dependsOn tasks.generateProto
-
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.grpc.server.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -60,6 +46,19 @@ run {
])
}
+protobuf {
+ protoc { artifact = "com.google.protobuf:protoc:3.25.3" }
+ plugins {
+ grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.74.0" }
+ }
+
+ generateProtoTasks {
+ all()*.plugins { grpc {} }
+ }
+}
+
+test.dependsOn tasks.generateProto
+
distTar {
archiveFileName = "application.tar"
}
@@ -83,8 +82,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -114,6 +115,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-grpc-server/src/main/resources/logback.xml b/kora-java-grpc-server/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-grpc-server/src/main/resources/logback.xml
+++ b/kora-java-grpc-server/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-helloworld/Dockerfile b/kora-java-helloworld/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-helloworld/Dockerfile
+++ b/kora-java-helloworld/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-helloworld/build.gradle b/kora-java-helloworld/build.gradle
index ad0a26de..f529f5de 100644
--- a/kora-java-helloworld/build.gradle
+++ b/kora-java-helloworld/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.helloworld.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -32,8 +24,14 @@ dependencies {
testImplementation "org.skyscreamer:jsonassert:1.5.1"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.helloworld.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -67,8 +65,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -89,6 +89,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-helloworld/src/main/java/ru/tinkoff/kora/example/helloworld/HelloWorldController.java b/kora-java-helloworld/src/main/java/ru/tinkoff/kora/example/helloworld/HelloWorldController.java
index dd0adfd0..ff38011e 100644
--- a/kora-java-helloworld/src/main/java/ru/tinkoff/kora/example/helloworld/HelloWorldController.java
+++ b/kora-java-helloworld/src/main/java/ru/tinkoff/kora/example/helloworld/HelloWorldController.java
@@ -2,6 +2,7 @@
import ru.tinkoff.kora.common.Component;
import ru.tinkoff.kora.http.common.HttpMethod;
+import ru.tinkoff.kora.http.common.HttpResponseEntity;
import ru.tinkoff.kora.http.common.annotation.HttpRoute;
import ru.tinkoff.kora.http.common.body.HttpBody;
import ru.tinkoff.kora.http.server.common.HttpServerResponse;
@@ -20,6 +21,12 @@ public HelloWorldResponse helloWorldJson() {
return new HelloWorldResponse("Hello World");
}
+ @Json
+ @HttpRoute(method = HttpMethod.GET, path = "/hello/world/json/entity")
+ public HttpResponseEntity helloWorldJsonEntity() {
+ return HttpResponseEntity.of(200, new HelloWorldResponse("Hello World"));
+ }
+
@HttpRoute(method = HttpMethod.GET, path = "/hello/world")
public HttpServerResponse helloWorld() {
return HttpServerResponse.of(200, HttpBody.plaintext("Hello World"));
diff --git a/kora-java-helloworld/src/main/resources/logback.xml b/kora-java-helloworld/src/main/resources/logback.xml
index 28f5003e..c6653f78 100644
--- a/kora-java-helloworld/src/main/resources/logback.xml
+++ b/kora-java-helloworld/src/main/resources/logback.xml
@@ -9,11 +9,8 @@
-
+
-
-
-
-
+
diff --git a/kora-java-http-client/Dockerfile b/kora-java-http-client/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-http-client/Dockerfile
+++ b/kora-java-http-client/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-http-client/build.gradle b/kora-java-http-client/build.gradle
index 4e98b758..0a9fd708 100644
--- a/kora-java-http-client/build.gradle
+++ b/kora-java-http-client/build.gradle
@@ -4,18 +4,11 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.http.client.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -33,12 +26,14 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-mockserver:0.12.2"
}
-
-application {
- applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
}
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.http.client.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -72,8 +67,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -94,6 +91,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-http-client/src/main/resources/logback.xml b/kora-java-http-client/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-http-client/src/main/resources/logback.xml
+++ b/kora-java-http-client/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-http-server/Dockerfile b/kora-java-http-server/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-http-server/Dockerfile
+++ b/kora-java-http-server/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-http-server/build.gradle b/kora-java-http-server/build.gradle
index 673f71a9..665a6fb0 100644
--- a/kora-java-http-server/build.gradle
+++ b/kora-java-http-server/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.http.server.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -36,8 +28,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.http.server.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -64,8 +62,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -86,6 +86,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-http-server/src/main/resources/logback.xml b/kora-java-http-server/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-http-server/src/main/resources/logback.xml
+++ b/kora-java-http-server/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-kafka/Dockerfile b/kora-java-kafka/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-kafka/Dockerfile
+++ b/kora-java-kafka/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-kafka/README.md b/kora-java-kafka/README.md
index 1e0f3435..42b6e2b5 100644
--- a/kora-java-kafka/README.md
+++ b/kora-java-kafka/README.md
@@ -29,7 +29,11 @@
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-java-kafka/build.gradle b/kora-java-kafka/build.gradle
index 21c2aa06..20672f9e 100644
--- a/kora-java-kafka/build.gradle
+++ b/kora-java-kafka/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.kafka.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -32,7 +24,14 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-kafka:0.12.2"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.kafka.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -66,8 +65,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -88,6 +89,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-kafka/docker-compose.yml b/kora-java-kafka/docker-compose.yml
index e30fe44e..0b05ef42 100644
--- a/kora-java-kafka/docker-compose.yml
+++ b/kora-java-kafka/docker-compose.yml
@@ -1,6 +1,6 @@
services:
kafka:
- image: confluentinc/cp-kafka:7.7.1
+ image: apache/kafka-native:4.1.0
restart: unless-stopped
ports:
- '9092:9092'
diff --git a/kora-java-kafka/src/main/resources/logback.xml b/kora-java-kafka/src/main/resources/logback.xml
index c98739bf..b3860715 100644
--- a/kora-java-kafka/src/main/resources/logback.xml
+++ b/kora-java-kafka/src/main/resources/logback.xml
@@ -12,10 +12,7 @@
-
-
-
-
+
diff --git a/kora-java-openapi-generator-http-client/Dockerfile b/kora-java-openapi-generator-http-client/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-openapi-generator-http-client/Dockerfile
+++ b/kora-java-openapi-generator-http-client/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-openapi-generator-http-client/build.gradle b/kora-java-openapi-generator-http-client/build.gradle
index f9b417bc..bb6f020f 100644
--- a/kora-java-openapi-generator-http-client/build.gradle
+++ b/kora-java-openapi-generator-http-client/build.gradle
@@ -14,18 +14,10 @@ plugins {
id "org.openapi.generator" version "7.14.0"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.openapi.http.client.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -46,6 +38,25 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-mockserver:0.12.2"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.openapi.http.client.Application"
+ applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+}
+
+//noinspection GroovyAssignabilityCheck
+run {
+ environment([
+ "HTTP_CLIENT_PET_V2_URL": "$httpClientUrlPetV2",
+ "HTTP_CLIENT_PET_V3_URL": "$httpClientUrlPetV3",
+ ])
+}
+
// OpeAPI for V2
def openApiGeneratePetV2 = tasks.register("openApiGeneratePetV2", GenerateTask) {
generatorName = "kora"
@@ -85,18 +96,6 @@ def openApiGeneratePetV3 = tasks.register("openApiGeneratePetV3", GenerateTask)
sourceSets.main { java.srcDirs += openApiGeneratePetV3.get().outputDir }
compileJava.dependsOn openApiGeneratePetV3
-application {
- applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
-}
-
-//noinspection GroovyAssignabilityCheck
-run {
- environment([
- "HTTP_CLIENT_PET_V2_URL": "$httpClientUrlPetV2",
- "HTTP_CLIENT_PET_V3_URL": "$httpClientUrlPetV3",
- ])
-}
-
distTar {
archiveFileName = "application.tar"
}
@@ -120,8 +119,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -142,6 +143,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-openapi-generator-http-client/src/main/resources/logback.xml b/kora-java-openapi-generator-http-client/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-openapi-generator-http-client/src/main/resources/logback.xml
+++ b/kora-java-openapi-generator-http-client/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-openapi-generator-http-server/Dockerfile b/kora-java-openapi-generator-http-server/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-openapi-generator-http-server/Dockerfile
+++ b/kora-java-openapi-generator-http-server/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-openapi-generator-http-server/build.gradle b/kora-java-openapi-generator-http-server/build.gradle
index b9a70ea0..faeef52f 100644
--- a/kora-java-openapi-generator-http-server/build.gradle
+++ b/kora-java-openapi-generator-http-server/build.gradle
@@ -14,18 +14,10 @@ plugins {
id "org.openapi.generator" version "7.14.0"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.openapi.http.server.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -46,6 +38,24 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.openapi.http.server.Application"
+ applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+}
+
+//noinspection GroovyAssignabilityCheck
+run {
+ environment([
+ "": ""
+ ])
+}
+
// OpenAPI for V2
def openApiGeneratePetV2 = tasks.register("openApiGeneratePetV2", GenerateTask) {
generatorName = "kora"
@@ -83,17 +93,6 @@ def openApiGeneratePetV3 = tasks.register("openApiGeneratePetV3", GenerateTask)
sourceSets.main { java.srcDirs += openApiGeneratePetV3.get().outputDir }
compileJava.dependsOn openApiGeneratePetV3
-application {
- applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
-}
-
-//noinspection GroovyAssignabilityCheck
-run {
- environment([
- "": ""
- ])
-}
-
distTar {
archiveFileName = "application.tar"
}
@@ -117,8 +116,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -145,6 +146,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-openapi-generator-http-server/src/main/resources/logback.xml b/kora-java-openapi-generator-http-server/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-openapi-generator-http-server/src/main/resources/logback.xml
+++ b/kora-java-openapi-generator-http-server/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-resilient/Dockerfile b/kora-java-resilient/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-resilient/Dockerfile
+++ b/kora-java-resilient/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-resilient/build.gradle b/kora-java-resilient/build.gradle
index 8d539310..1a37e544 100644
--- a/kora-java-resilient/build.gradle
+++ b/kora-java-resilient/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.resilient.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -30,7 +22,14 @@ dependencies {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.resilient.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -64,8 +63,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -86,6 +87,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-resilient/src/main/resources/logback.xml b/kora-java-resilient/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-resilient/src/main/resources/logback.xml
+++ b/kora-java-resilient/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-s3-client-aws/Dockerfile b/kora-java-s3-client-aws/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-s3-client-aws/Dockerfile
+++ b/kora-java-s3-client-aws/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-s3-client-aws/build.gradle b/kora-java-s3-client-aws/build.gradle
index 77154d30..61b215db 100644
--- a/kora-java-s3-client-aws/build.gradle
+++ b/kora-java-s3-client-aws/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.s3.aws.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -35,7 +27,14 @@ dependencies {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.s3.aws.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -72,8 +71,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -94,6 +95,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-s3-client-aws/src/main/resources/logback.xml b/kora-java-s3-client-aws/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-s3-client-aws/src/main/resources/logback.xml
+++ b/kora-java-s3-client-aws/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-s3-client-minio/Dockerfile b/kora-java-s3-client-minio/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-s3-client-minio/Dockerfile
+++ b/kora-java-s3-client-minio/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-s3-client-minio/build.gradle b/kora-java-s3-client-minio/build.gradle
index 7a4349bf..88dc185e 100644
--- a/kora-java-s3-client-minio/build.gradle
+++ b/kora-java-s3-client-minio/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.s3.minio.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -35,7 +27,14 @@ dependencies {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.s3.minio.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -72,8 +71,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -94,6 +95,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-s3-client-minio/src/main/resources/logback.xml b/kora-java-s3-client-minio/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-s3-client-minio/src/main/resources/logback.xml
+++ b/kora-java-s3-client-minio/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-scheduling-jdk/Dockerfile b/kora-java-scheduling-jdk/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-scheduling-jdk/Dockerfile
+++ b/kora-java-scheduling-jdk/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-scheduling-jdk/build.gradle b/kora-java-scheduling-jdk/build.gradle
index 2a9f97c3..0884269e 100644
--- a/kora-java-scheduling-jdk/build.gradle
+++ b/kora-java-scheduling-jdk/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.scheduling.jdk.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -31,7 +23,14 @@ dependencies {
testImplementation "org.awaitility:awaitility:4.2.0"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.scheduling.jdk.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -65,8 +64,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -87,6 +88,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-scheduling-jdk/src/main/resources/logback.xml b/kora-java-scheduling-jdk/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-scheduling-jdk/src/main/resources/logback.xml
+++ b/kora-java-scheduling-jdk/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-scheduling-quartz/Dockerfile b/kora-java-scheduling-quartz/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-scheduling-quartz/Dockerfile
+++ b/kora-java-scheduling-quartz/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-scheduling-quartz/build.gradle b/kora-java-scheduling-quartz/build.gradle
index 90900554..07c2c63f 100644
--- a/kora-java-scheduling-quartz/build.gradle
+++ b/kora-java-scheduling-quartz/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.scheduling.quartz.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -31,7 +23,14 @@ dependencies {
testImplementation "org.awaitility:awaitility:4.2.0"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.scheduling.quartz.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -65,8 +64,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -87,6 +88,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-scheduling-quartz/src/main/resources/logback.xml b/kora-java-scheduling-quartz/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-scheduling-quartz/src/main/resources/logback.xml
+++ b/kora-java-scheduling-quartz/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-soap-client/Dockerfile b/kora-java-soap-client/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-soap-client/Dockerfile
+++ b/kora-java-soap-client/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-soap-client/build.gradle b/kora-java-soap-client/build.gradle
index a29c9abb..a2753a13 100644
--- a/kora-java-soap-client/build.gradle
+++ b/kora-java-soap-client/build.gradle
@@ -6,18 +6,10 @@ plugins {
id "com.github.bjornvester.wsdl2java" version "2.0.2"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.soap.client.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -42,7 +34,14 @@ dependencies {
testImplementation "io.goodforgod:testcontainers-extensions-mockserver:0.12.2"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.soap.client.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -76,8 +75,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -111,6 +112,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-soap-client/src/main/resources/logback.xml b/kora-java-soap-client/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-soap-client/src/main/resources/logback.xml
+++ b/kora-java-soap-client/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-telemetry/Dockerfile b/kora-java-telemetry/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-telemetry/Dockerfile
+++ b/kora-java-telemetry/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-telemetry/build.gradle b/kora-java-telemetry/build.gradle
index 955ca5ae..5bfa791a 100644
--- a/kora-java-telemetry/build.gradle
+++ b/kora-java-telemetry/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.telemetry.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -33,8 +25,14 @@ dependencies {
testImplementation "org.testcontainers:junit-jupiter:1.19.8"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.telemetry.Application"
applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
}
@@ -61,8 +59,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -83,6 +83,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-telemetry/src/main/resources/logback.xml b/kora-java-telemetry/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-telemetry/src/main/resources/logback.xml
+++ b/kora-java-telemetry/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-java-validation/Dockerfile b/kora-java-validation/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-java-validation/Dockerfile
+++ b/kora-java-validation/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-java-validation/build.gradle b/kora-java-validation/build.gradle
index 6f14940b..8f3994ce 100644
--- a/kora-java-validation/build.gradle
+++ b/kora-java-validation/build.gradle
@@ -4,18 +4,10 @@ plugins {
id "application"
}
-applicationName = "application"
-mainClassName = "ru.tinkoff.kora.example.validation.Application"
-
-sourceCompatibility = JavaVersion.VERSION_17
-targetCompatibility = JavaVersion.VERSION_17
-
configurations {
koraBom
- annotationProcessor.extendsFrom(koraBom)
- compileOnly.extendsFrom(koraBom)
- implementation.extendsFrom(koraBom)
- api.extendsFrom(koraBom)
+ annotationProcessor.extendsFrom(koraBom); compileOnly.extendsFrom(koraBom); implementation.extendsFrom(koraBom)
+ api.extendsFrom(koraBom); testImplementation.extendsFrom(koraBom); testAnnotationProcessor.extendsFrom(koraBom)
}
dependencies {
@@ -30,6 +22,17 @@ dependencies {
testImplementation "ru.tinkoff.kora:test-junit5"
}
+java {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+}
+
+application {
+ applicationName = "application"
+ mainClass = "ru.tinkoff.kora.example.validation.Application"
+ applicationDefaultJvmArgs = ["-Dfile.encoding=UTF-8"]
+}
+
distTar {
archiveFileName = "application.tar"
}
@@ -53,8 +56,10 @@ test {
exceptionFormat("full")
}
+ exclude("**/\$*")
+
jacoco {
- excludes += ["**/Application*"]
+ excludes += ["**/generated/**", "**/Application*", "**/\$*"]
}
reports {
@@ -75,6 +80,7 @@ jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories = files(classDirectories.files.collect { fileTree(dir: it, excludes: test.jacoco.excludes) })
}
javadoc {
diff --git a/kora-java-validation/src/main/resources/logback.xml b/kora-java-validation/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-java-validation/src/main/resources/logback.xml
+++ b/kora-java-validation/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-kotlin-crud/Dockerfile b/kora-kotlin-crud/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-kotlin-crud/Dockerfile
+++ b/kora-kotlin-crud/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-kotlin-crud/README.md b/kora-kotlin-crud/README.md
index 622fa8df..ad69fbae 100644
--- a/kora-kotlin-crud/README.md
+++ b/kora-kotlin-crud/README.md
@@ -60,7 +60,11 @@ docker build -t kora-kotlin-crud .
## Run Docker-Compose
-Требуется сначала собрать артефакт.
+Требуется сначала собрать артефакт:
+
+```shell
+./gradlew distTar
+```
Запустить как docker-compose:
```shell
diff --git a/kora-kotlin-crud/build.gradle.kts b/kora-kotlin-crud/build.gradle.kts
index fa15f57b..a15ca416 100644
--- a/kora-kotlin-crud/build.gradle.kts
+++ b/kora-kotlin-crud/build.gradle.kts
@@ -9,35 +9,19 @@ buildscript {
}
plugins {
- id("org.openapi.generator") version ("7.14.0")
id("application")
id("jacoco")
- id("java")
// kotlin("kapt") version ("1.9.25") // KAPT & KSP broken since 1.9.11
kotlin("jvm") version ("1.9.25")
id("com.google.devtools.ksp") version ("1.9.25-1.0.20")
+ id("org.openapi.generator") version ("7.14.0")
id("org.flywaydb.flyway") version ("8.4.2")
}
-application {
- applicationName = "application"
- mainClass.set("ru.tinkoff.kora.kotlin.example.crud.ApplicationKt")
- applicationDefaultJvmArgs = listOf("-Dfile.encoding=UTF-8")
-}
-
-kotlin {
- jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
- sourceSets.main { kotlin.srcDir("build/generated/ksp/main/kotlin") }
- sourceSets.test { kotlin.srcDir("build/generated/ksp/test/kotlin") }
-// sourceSets.main { kotlin.srcDir("build/generated/source/kapt/main") } // KAPT & KSP broken since 1.9.11
-}
-
val koraBom: Configuration by configurations.creating
configurations {
- ksp.get().extendsFrom(koraBom)
- compileOnly.get().extendsFrom(koraBom)
- api.get().extendsFrom(koraBom)
- implementation.get().extendsFrom(koraBom)
+ ksp.get().extendsFrom(koraBom); compileOnly.get().extendsFrom(koraBom)
+ api.get().extendsFrom(koraBom); implementation.get().extendsFrom(koraBom)
}
dependencies {
@@ -72,6 +56,32 @@ dependencies {
testImplementation("org.testcontainers:junit-jupiter:1.19.8")
}
+kotlin {
+ jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
+ sourceSets.main { kotlin.srcDir("build/generated/ksp/main/kotlin") }
+ sourceSets.test { kotlin.srcDir("build/generated/ksp/test/kotlin") }
+// sourceSets.main { kotlin.srcDir("build/generated/source/kapt/main") } // KAPT & KSP broken since 1.9.11
+}
+
+application {
+ applicationName = "application"
+ mainClass.set("ru.tinkoff.kora.kotlin.example.crud.ApplicationKt")
+ applicationDefaultJvmArgs = listOf("-Dfile.encoding=UTF-8")
+}
+
+val postgresHost: String by project
+val postgresPort: String by project
+val postgresDatabase: String by project
+val postgresUser: String by project
+val postgresPassword: String by project
+tasks.withType {
+ environment(
+ "POSTGRES_JDBC_URL" to "jdbc:postgresql://${postgresHost}:${postgresPort}/${postgresDatabase}",
+ "POSTGRES_USER" to postgresUser,
+ "POSTGRES_PASS" to postgresPassword,
+ )
+}
+
val openApiGenerateHttpServer = tasks.register("openApiGenerateHttpServer") {
generatorName = "kora"
group = "openapi tools"
@@ -101,23 +111,11 @@ ksp {
// dependsOn(tasks.named("kaptKotlin").get())
//}
-val postgresHost: String by project
-val postgresPort: String by project
-val postgresDatabase: String by project
-val postgresUser: String by project
-val postgresPassword: String by project
-tasks.withType {
- environment(
- "POSTGRES_JDBC_URL" to "jdbc:postgresql://${postgresHost}:${postgresPort}/${postgresDatabase}",
- "POSTGRES_USER" to postgresUser,
- "POSTGRES_PASS" to postgresPassword,
- )
-}
-
tasks.distTar {
archiveFileName.set("application.tar")
}
+val jacocoExcludeSet = setOf("**/generated/**", "**/Application*", "**/\$*")
tasks.test {
dependsOn("distTar")
@@ -126,8 +124,6 @@ tasks.test {
"-XX:TieredStopAtLevel=1",
)
- exclude(listOf("**/\$*"))
-
useJUnitPlatform()
testLogging {
showStandardStreams = true
@@ -139,6 +135,12 @@ tasks.test {
html.required = false
junitXml.required = false
}
+
+ exclude("**/\$*")
+
+ jacoco {
+ jacocoExcludeSet.forEach { exclude(it) }
+ }
}
flyway {
@@ -153,4 +155,7 @@ tasks.jacocoTestReport {
xml.required = true
html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
}
+ classDirectories.setFrom(sourceSets.main.get().output.asFileTree.matching {
+ jacocoExcludeSet.forEach { exclude(it) }
+ })
}
diff --git a/kora-kotlin-crud/src/main/resources/application.conf b/kora-kotlin-crud/src/main/resources/application.conf
index 7877dae1..cce614c2 100644
--- a/kora-kotlin-crud/src/main/resources/application.conf
+++ b/kora-kotlin-crud/src/main/resources/application.conf
@@ -55,6 +55,22 @@ resilient {
logging.level {
"root": "WARN"
+ "root": ${?LOGGING_LEVEL_ALL}
+ "root": ${?LOGGING_LEVEL_ROOT}
+
"ru.tinkoff.kora": "INFO"
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora": ${?LOGGING_LEVEL_KORA}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.http.server": ${?LOGGING_LEVEL_KORA_HTTP_SERVER}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.database": ${?LOGGING_LEVEL_KORA_DATABASE}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.cache": ${?LOGGING_LEVEL_KORA_CACHE}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.resilient": ${?LOGGING_LEVEL_KORA_RESILIENT}
+
"ru.tinkoff.kora.example": "INFO"
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_ALL}
+ "ru.tinkoff.kora.example": ${?LOGGING_LEVEL_APP}
}
diff --git a/kora-kotlin-crud/src/main/resources/logback.xml b/kora-kotlin-crud/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-kotlin-crud/src/main/resources/logback.xml
+++ b/kora-kotlin-crud/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+
diff --git a/kora-kotlin-crud/src/test/kotlin/ru/tinkoff/kora/kotlin/example/crud/BlackBoxTests.kt b/kora-kotlin-crud/src/test/kotlin/ru/tinkoff/kora/kotlin/example/crud/BlackBoxTests.kt
index 2f9a1b80..7c213aad 100644
--- a/kora-kotlin-crud/src/test/kotlin/ru/tinkoff/kora/kotlin/example/crud/BlackBoxTests.kt
+++ b/kora-kotlin-crud/src/test/kotlin/ru/tinkoff/kora/kotlin/example/crud/BlackBoxTests.kt
@@ -45,6 +45,8 @@ class BlackBoxTests(@ConnectionPostgreSQL val connection: JdbcConnection) {
"POSTGRES_PASS" to params.password(),
"CACHE_MAX_SIZE" to "0",
"RETRY_ATTEMPTS" to "0",
+ "LOGGING_LEVEL_KORA" to "DEBUG",
+ "LOGGING_LEVEL_APP" to "DEBUG"
)
)
container.start()
diff --git a/kora-kotlin-helloworld/Dockerfile b/kora-kotlin-helloworld/Dockerfile
index a976c8b9..c22138f1 100644
--- a/kora-kotlin-helloworld/Dockerfile
+++ b/kora-kotlin-helloworld/Dockerfile
@@ -1,4 +1,4 @@
-ARG RUN_IMAGE=eclipse-temurin:17-jre-jammy
+ARG RUN_IMAGE=eclipse-temurin:25-jre-jammy
FROM ${RUN_IMAGE}
ARG TARGET_DIR=/opt/app
diff --git a/kora-kotlin-helloworld/build.gradle.kts b/kora-kotlin-helloworld/build.gradle.kts
index 8e33828c..c8b960ed 100644
--- a/kora-kotlin-helloworld/build.gradle.kts
+++ b/kora-kotlin-helloworld/build.gradle.kts
@@ -2,28 +2,15 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
plugins {
id("application")
+ id("jacoco")
kotlin("jvm") version ("1.9.25")
id("com.google.devtools.ksp") version ("1.9.25-1.0.20")
}
-application {
- applicationName = "application"
- mainClass.set("ru.tinkoff.kora.kotlin.example.helloworld.ApplicationKt")
- applicationDefaultJvmArgs = listOf("-Dfile.encoding=UTF-8")
-}
-
-kotlin {
- jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
- sourceSets.main { kotlin.srcDir("build/generated/ksp/main/kotlin") }
- sourceSets.test { kotlin.srcDir("build/generated/ksp/test/kotlin") }
-}
-
val koraBom: Configuration by configurations.creating
configurations {
- ksp.get().extendsFrom(koraBom)
- compileOnly.get().extendsFrom(koraBom)
- api.get().extendsFrom(koraBom)
- implementation.get().extendsFrom(koraBom)
+ ksp.get().extendsFrom(koraBom); compileOnly.get().extendsFrom(koraBom)
+ api.get().extendsFrom(koraBom); implementation.get().extendsFrom(koraBom)
}
val koraVersion: String by project
@@ -42,11 +29,23 @@ dependencies {
testImplementation("org.testcontainers:junit-jupiter:1.19.8")
}
+kotlin {
+ jvmToolchain { languageVersion.set(JavaLanguageVersion.of(17)) }
+ sourceSets.main { kotlin.srcDir("build/generated/ksp/main/kotlin") }
+ sourceSets.test { kotlin.srcDir("build/generated/ksp/test/kotlin") }
+}
+
+application {
+ applicationName = "application"
+ mainClass.set("ru.tinkoff.kora.kotlin.example.helloworld.ApplicationKt")
+ applicationDefaultJvmArgs = listOf("-Dfile.encoding=UTF-8")
+}
tasks.distTar {
archiveFileName.set("application.tar")
}
+val jacocoExcludeSet = setOf("**/generated/**", "**/Application*", "**/\$*")
tasks.test {
dependsOn("distTar")
@@ -66,4 +65,20 @@ tasks.test {
html.required = false
junitXml.required = false
}
+
+ exclude("**/\$*")
+
+ jacoco {
+ jacocoExcludeSet.forEach { exclude(it) }
+ }
+}
+
+tasks.jacocoTestReport {
+ reports {
+ xml.required = true
+ html.outputLocation = layout.buildDirectory.dir("jacocoHtml")
+ }
+ classDirectories.setFrom(sourceSets.main.get().output.asFileTree.matching {
+ jacocoExcludeSet.forEach { exclude(it) }
+ })
}
diff --git a/kora-kotlin-helloworld/src/main/kotlin/ru/tinkoff/kora/kotlin/example/helloworld/HelloWorldController.kt b/kora-kotlin-helloworld/src/main/kotlin/ru/tinkoff/kora/kotlin/example/helloworld/HelloWorldController.kt
index b6de089a..967b2c83 100644
--- a/kora-kotlin-helloworld/src/main/kotlin/ru/tinkoff/kora/kotlin/example/helloworld/HelloWorldController.kt
+++ b/kora-kotlin-helloworld/src/main/kotlin/ru/tinkoff/kora/kotlin/example/helloworld/HelloWorldController.kt
@@ -2,6 +2,7 @@ package ru.tinkoff.kora.kotlin.example.helloworld
import ru.tinkoff.kora.common.Component
import ru.tinkoff.kora.http.common.HttpMethod
+import ru.tinkoff.kora.http.common.HttpResponseEntity
import ru.tinkoff.kora.http.common.annotation.HttpRoute
import ru.tinkoff.kora.http.common.body.HttpBody
import ru.tinkoff.kora.http.server.common.HttpServerResponse
@@ -20,6 +21,12 @@ class HelloWorldController {
return HelloWorldResponse("Hello World")
}
+ @Json
+ @HttpRoute(method = HttpMethod.GET, path = "/hello/world/json/entity")
+ fun helloWorldJsonEntity(): HttpResponseEntity {
+ return HttpResponseEntity.of(200, HelloWorldResponse("Hello World"))
+ }
+
@HttpRoute(method = HttpMethod.GET, path = "/hello/world")
fun helloWorld(): HttpServerResponse {
return HttpServerResponse.of(200, HttpBody.plaintext("Hello World"))
diff --git a/kora-kotlin-helloworld/src/main/resources/logback.xml b/kora-kotlin-helloworld/src/main/resources/logback.xml
index 28f5003e..dfb612dd 100644
--- a/kora-kotlin-helloworld/src/main/resources/logback.xml
+++ b/kora-kotlin-helloworld/src/main/resources/logback.xml
@@ -12,8 +12,5 @@
-
-
-
-
+