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 @@ - - - - +