summaryrefslogtreecommitdiff
path: root/build.gradle.kts
diff options
context:
space:
mode:
Diffstat (limited to 'build.gradle.kts')
-rw-r--r--build.gradle.kts64
1 files changed, 48 insertions, 16 deletions
diff --git a/build.gradle.kts b/build.gradle.kts
index e9e698e..acd68cf 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,30 +1,36 @@
import org.gradle.api.tasks.testing.logging.TestLogEvent
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage
plugins {
war
- id("org.springframework.boot") version "3.2.12"
- id("io.spring.dependency-management") version "1.1.5"
- kotlin("jvm") version "1.9.24"
- kotlin("plugin.spring") version "1.9.24"
+ id("org.springframework.boot") version "3.3.10"
+ id("io.spring.dependency-management") version "1.1.7"
+ kotlin("jvm") version "1.9.25"
+ kotlin("plugin.spring") version "1.9.25"
+ jacoco
}
group = "dev.dnpm"
-version = "0.9-SNAPSHOT"
+version = "0.10.0-SNAPSHOT"
var versions = mapOf(
- "bwhc-dto-java" to "0.3.0",
- "hapi-fhir" to "6.10.5",
- "httpclient5" to "5.2.3",
- "mockito-kotlin" to "5.3.1",
+ "bwhc-dto-java" to "0.4.0",
+ "hapi-fhir" to "7.6.0",
+ "commons-compress" to "1.26.2",
+ "mockito-kotlin" to "5.4.0",
+ "archunit" to "1.3.0",
// Webjars
+ "webjars-locator" to "0.52",
"echarts" to "5.4.3",
"htmx.org" to "1.9.12"
)
java {
- sourceCompatibility = JavaVersion.VERSION_21
+ toolchain {
+ languageVersion = JavaLanguageVersion.of(21)
+ }
}
sourceSets {
@@ -62,37 +68,47 @@ dependencies {
implementation("org.thymeleaf.extras:thymeleaf-extras-springsecurity6")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.springframework.kafka:spring-kafka")
+ implementation("org.flywaydb:flyway-database-postgresql")
implementation("org.flywaydb:flyway-mysql")
implementation("commons-codec:commons-codec")
implementation("io.projectreactor.kotlin:reactor-kotlin-extensions")
implementation("de.ukw.ccc:bwhc-dto-java:${versions["bwhc-dto-java"]}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-base:${versions["hapi-fhir"]}")
implementation("ca.uhn.hapi.fhir:hapi-fhir-structures-r4:${versions["hapi-fhir"]}")
- implementation("org.apache.httpcomponents.client5:httpclient5:${versions["httpclient5"]}")
+ implementation("org.apache.httpcomponents.client5:httpclient5")
implementation("com.jayway.jsonpath:json-path")
- implementation("org.webjars:webjars-locator:0.52")
+ implementation("org.webjars:webjars-locator:${versions["webjars-locator"]}")
implementation("org.webjars.npm:echarts:${versions["echarts"]}")
implementation("org.webjars.npm:htmx.org:${versions["htmx.org"]}")
+
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")
runtimeOnly("org.postgresql:postgresql")
+
developmentOnly("org.springframework.boot:spring-boot-devtools")
developmentOnly("org.springframework.boot:spring-boot-docker-compose")
+
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
+
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
+
testImplementation("org.springframework.boot:spring-boot-starter-test")
testImplementation("org.springframework.security:spring-security-test")
testImplementation("io.projectreactor:reactor-test")
testImplementation("org.mockito.kotlin:mockito-kotlin:${versions["mockito-kotlin"]}")
+
integrationTestImplementation("org.testcontainers:junit-jupiter")
integrationTestImplementation("org.testcontainers:postgresql")
+ integrationTestImplementation("com.tngtech.archunit:archunit:${versions["archunit"]}")
+ integrationTestImplementation("net.sourceforge.htmlunit:htmlunit")
+ integrationTestImplementation("org.springframework:spring-webflux")
// Override dependency version from org.testcontainers:junit-jupiter - CVE-2024-26308, CVE-2024-25710
- integrationTestImplementation("org.apache.commons:commons-compress:1.26.2")
+ integrationTestImplementation("org.apache.commons:commons-compress:${versions["commons-compress"]}")
}
tasks.withType<KotlinCompile> {
- kotlinOptions {
- freeCompilerArgs += "-Xjsr305=strict"
- jvmTarget = "21"
+ compilerOptions {
+ freeCompilerArgs.add("-Xjsr305=strict")
+ jvmTarget.set(JvmTarget.JVM_21)
}
}
@@ -112,6 +128,22 @@ task<Test>("integrationTest") {
shouldRunAfter("test")
}
+tasks.register("allTests") {
+ description = "Run all tests"
+ group = JavaBasePlugin.VERIFICATION_GROUP
+ dependsOn(tasks.withType<Test>())
+}
+
+tasks.jacocoTestReport {
+ dependsOn("allTests")
+
+ executionData(fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec"))
+
+ reports {
+ xml.required = true
+ }
+}
+
tasks.named<BootBuildImage>("bootBuildImage") {
imageName.set("ghcr.io/pcvolkmer/etl-processor")