mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-25 16:22:35 +03:00
move dependency description and version to gradle version catalog
bump kotlin version up to 2.1.10
This commit is contained in:
@@ -1,22 +1,17 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id("io.spring.dependency-management") version "1.1.6"
|
alias(libs.plugins.kotlin.jpa)
|
||||||
id("org.springframework.boot") version "3.2.10"
|
alias(libs.plugins.kotlin.jvm)
|
||||||
|
alias(libs.plugins.kotlin.serialization)
|
||||||
|
alias(libs.plugins.kotlin.spring)
|
||||||
|
alias(libs.plugins.spring.boot)
|
||||||
|
alias(libs.plugins.spring.dependencyManagement)
|
||||||
|
|
||||||
jacoco
|
jacoco
|
||||||
|
|
||||||
kotlin("jvm") version "2.0.20"
|
|
||||||
kotlin("plugin.jpa") version "1.9.23"
|
|
||||||
kotlin("plugin.serialization") version "2.0.20"
|
|
||||||
kotlin("plugin.spring") version "1.9.23"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group = "com.github.dannecron.demo"
|
group = "com.github.dannecron.demo"
|
||||||
version = "single-version"
|
version = "single-version"
|
||||||
|
|
||||||
val ktorVersion: String by project
|
|
||||||
val springVersion: String by project
|
|
||||||
val testContainersVersion: String by project
|
|
||||||
|
|
||||||
java {
|
java {
|
||||||
sourceCompatibility = JavaVersion.VERSION_17
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
}
|
}
|
||||||
@@ -26,46 +21,44 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api("org.springframework.boot:spring-boot-starter-data-jdbc:$springVersion")
|
runtimeOnly(libs.micrometer.registry.prometheus)
|
||||||
|
|
||||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.15.4")
|
implementation(libs.bundles.tracing)
|
||||||
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.4")
|
implementation(libs.flyway.core)
|
||||||
implementation("io.github.optimumcode:json-schema-validator:0.2.3")
|
implementation(libs.jackson.datatype.jsr)
|
||||||
implementation("io.micrometer:micrometer-tracing-bridge-otel")
|
implementation(libs.jackson.module.kotlin)
|
||||||
implementation("io.opentelemetry:opentelemetry-exporter-otlp")
|
implementation(libs.json.schema.validator)
|
||||||
implementation("net.logstash.logback:logstash-logback-encoder:8.0")
|
implementation(libs.kotlin.reflect)
|
||||||
implementation("io.ktor:ktor-client-core:$ktorVersion")
|
implementation(libs.kotlinx.serialization.json)
|
||||||
implementation("io.ktor:ktor-client-cio:$ktorVersion")
|
implementation(libs.ktor.client.cio)
|
||||||
implementation("org.flywaydb:flyway-core:9.22.3")
|
implementation(libs.ktor.client.core)
|
||||||
implementation("org.jetbrains.kotlin:kotlin-reflect:2.0.20")
|
implementation(libs.logback.encoder)
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
|
implementation(libs.postgres)
|
||||||
implementation("org.postgresql:postgresql:42.6.2")
|
implementation(libs.spring.aspects)
|
||||||
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0")
|
implementation(libs.spring.boot.starter.actuator)
|
||||||
implementation("org.springframework:spring-aspects")
|
implementation(libs.spring.boot.starter.jdbc)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-actuator:$springVersion")
|
implementation(libs.spring.boot.starter.mustache)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-mustache:$springVersion")
|
implementation(libs.spring.boot.starter.validation)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-validation:$springVersion")
|
implementation(libs.spring.boot.starter.web)
|
||||||
implementation("org.springframework.boot:spring-boot-starter-web:$springVersion")
|
implementation(libs.spring.doc.openapi.starter)
|
||||||
implementation("org.springframework.kafka:spring-kafka:3.1.3")
|
implementation(libs.spring.kafka)
|
||||||
|
|
||||||
runtimeOnly("io.micrometer:micrometer-registry-prometheus")
|
testImplementation(libs.kotlin.test.junit)
|
||||||
|
testImplementation(libs.mockito.kotlin)
|
||||||
|
testImplementation(libs.spring.boot.starter.test)
|
||||||
|
testImplementation(libs.spring.kafka.test)
|
||||||
|
testImplementation(libs.testcontainers)
|
||||||
|
testImplementation(libs.testcontainers.junit.jupiter)
|
||||||
|
testImplementation(libs.testcontainers.postgresql)
|
||||||
|
testImplementation(libs.ktor.client.mock)
|
||||||
|
|
||||||
developmentOnly("org.springframework.boot:spring-boot-devtools")
|
developmentOnly(libs.spring.boot.devtools)
|
||||||
|
|
||||||
testImplementation("org.jetbrains.kotlin:kotlin-test-junit5:2.0.20")
|
|
||||||
testImplementation("org.mockito.kotlin:mockito-kotlin:5.4.0")
|
|
||||||
testImplementation("org.springframework.boot:spring-boot-starter-test:$springVersion")
|
|
||||||
testImplementation("org.springframework.kafka:spring-kafka-test:3.1.3")
|
|
||||||
testImplementation("org.testcontainers:junit-jupiter:$testContainersVersion")
|
|
||||||
testImplementation("org.testcontainers:testcontainers:$testContainersVersion")
|
|
||||||
testImplementation("org.testcontainers:postgresql:$testContainersVersion")
|
|
||||||
testImplementation("io.ktor:ktor-client-mock:$ktorVersion")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
kotlin {
|
kotlin {
|
||||||
compilerOptions {
|
compilerOptions {
|
||||||
freeCompilerArgs.addAll("-Xjsr305=strict")
|
freeCompilerArgs.addAll("-Xjsr305=strict")
|
||||||
apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_7)
|
apiVersion.set(org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_2_1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
ktorVersion=3.0.0
|
|
||||||
springVersion=3.2.10
|
|
||||||
testContainersVersion=1.19.7
|
|
||||||
50
gradle/libs.versions.toml
Normal file
50
gradle/libs.versions.toml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
[versions]
|
||||||
|
jackson = "2.15.4"
|
||||||
|
kotlin = "2.1.10"
|
||||||
|
ktor = "3.0.0"
|
||||||
|
spring-boot = "3.2.10"
|
||||||
|
spring-kafka = "3.1.3"
|
||||||
|
testcontainers = "1.19.7"
|
||||||
|
|
||||||
|
[libraries]
|
||||||
|
flyway-core = { module = "org.flywaydb:flyway-core", version = "9.22.3" }
|
||||||
|
jackson-datatype-jsr = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" }
|
||||||
|
jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jackson" }
|
||||||
|
json-schema-validator = { module = "io.github.optimumcode:json-schema-validator", version = "0.2.3"}
|
||||||
|
kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" }
|
||||||
|
kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit5", version.ref = "kotlin" }
|
||||||
|
kotlinx-serialization-json = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3"
|
||||||
|
ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor"}
|
||||||
|
ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor"}
|
||||||
|
ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor"}
|
||||||
|
logback-encoder = { module = "net.logstash.logback:logstash-logback-encoder", version = "8.0" }
|
||||||
|
micrometer-bridge-otel = { module = "io.micrometer:micrometer-tracing-bridge-otel"}
|
||||||
|
micrometer-registry-prometheus = { module = "io.micrometer:micrometer-registry-prometheus" }
|
||||||
|
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version = "5.4.0" }
|
||||||
|
otel-exporter = { module = "io.opentelemetry:opentelemetry-exporter-otlp" }
|
||||||
|
postgres = { module = "org.postgresql:postgresql", version = "42.6.2" }
|
||||||
|
spring-aspects = { module = "org.springframework:spring-aspects" }
|
||||||
|
spring-boot-devtools = { module = "org.springframework.boot:spring-boot-devtools" }
|
||||||
|
spring-boot-starter-actuator = { module = "org.springframework.boot:spring-boot-starter-actuator", version.ref = "spring-boot" }
|
||||||
|
spring-boot-starter-jdbc = { module = "org.springframework.boot:spring-boot-starter-data-jdbc", version.ref = "spring-boot"}
|
||||||
|
spring-boot-starter-mustache = { module = "org.springframework.boot:spring-boot-starter-mustache", version.ref = "spring-boot" }
|
||||||
|
spring-boot-starter-test = { module = "org.springframework.boot:spring-boot-starter-test", version.ref = "spring-boot" }
|
||||||
|
spring-boot-starter-validation = { module = "org.springframework.boot:spring-boot-starter-validation", version.ref = "spring-boot" }
|
||||||
|
spring-boot-starter-web = { module = "org.springframework.boot:spring-boot-starter-web", version.ref = "spring-boot" }
|
||||||
|
spring-doc-openapi-starter = "org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0"
|
||||||
|
spring-kafka = { module = "org.springframework.kafka:spring-kafka", version.ref = "spring-kafka"}
|
||||||
|
spring-kafka-test = { module = "org.springframework.kafka:spring-kafka-test", version.ref = "spring-kafka"}
|
||||||
|
testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers"}
|
||||||
|
testcontainers-junit-jupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "testcontainers"}
|
||||||
|
testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "testcontainers"}
|
||||||
|
|
||||||
|
[bundles]
|
||||||
|
tracing = ["micrometer-bridge-otel", "otel-exporter"]
|
||||||
|
|
||||||
|
[plugins]
|
||||||
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
||||||
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
||||||
|
kotlin-jpa = { id = "org.jetbrains.kotlin.plugin.jpa", version.ref = "kotlin" }
|
||||||
|
kotlin-spring = { id = "org.jetbrains.kotlin.plugin.spring", version.ref = "kotlin" }
|
||||||
|
spring-boot = { id = "org.springframework.boot", version.ref = "spring-boot" }
|
||||||
|
spring-dependencyManagement = { id = "io.spring.dependency-management", version = "1.1.6"}
|
||||||
@@ -7,6 +7,7 @@ import io.micrometer.core.instrument.MeterRegistry
|
|||||||
import kotlinx.serialization.encodeToString
|
import kotlinx.serialization.encodeToString
|
||||||
import kotlinx.serialization.json.Json
|
import kotlinx.serialization.json.Json
|
||||||
import org.mockito.kotlin.after
|
import org.mockito.kotlin.after
|
||||||
|
import org.mockito.kotlin.any
|
||||||
import org.mockito.kotlin.doReturn
|
import org.mockito.kotlin.doReturn
|
||||||
import org.mockito.kotlin.verify
|
import org.mockito.kotlin.verify
|
||||||
import org.mockito.kotlin.whenever
|
import org.mockito.kotlin.whenever
|
||||||
@@ -22,7 +23,7 @@ import org.springframework.test.annotation.DirtiesContext
|
|||||||
import org.springframework.test.context.ActiveProfiles
|
import org.springframework.test.context.ActiveProfiles
|
||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
import java.time.format.DateTimeFormatter
|
import java.time.format.DateTimeFormatter
|
||||||
import java.util.*
|
import java.util.UUID
|
||||||
import kotlin.test.Test
|
import kotlin.test.Test
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
|
|
||||||
@@ -34,10 +35,14 @@ import kotlin.test.assertEquals
|
|||||||
partitions = 1,
|
partitions = 1,
|
||||||
)
|
)
|
||||||
@DirtiesContext
|
@DirtiesContext
|
||||||
class ConsumerKfkTest(
|
class ConsumerKfkTest {
|
||||||
@Autowired private val kafkaTemplate: KafkaTemplate<String, Any>,
|
|
||||||
@Autowired private val metricRegistry: MeterRegistry,
|
@Autowired
|
||||||
) {
|
private lateinit var kafkaTemplate: KafkaTemplate<String, Any>
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private lateinit var metricRegistry: MeterRegistry
|
||||||
|
|
||||||
@MockBean
|
@MockBean
|
||||||
private lateinit var cityService: CityService
|
private lateinit var cityService: CityService
|
||||||
|
|
||||||
@@ -54,7 +59,7 @@ class ConsumerKfkTest(
|
|||||||
deletedAt = null,
|
deletedAt = null,
|
||||||
)
|
)
|
||||||
|
|
||||||
whenever(cityService.create(cityCreateDto)) doReturn City(
|
whenever(cityService.create(any<CityCreateDto>())) doReturn City(
|
||||||
id = 123,
|
id = 123,
|
||||||
guid = cityGuid,
|
guid = cityGuid,
|
||||||
name = cityName,
|
name = cityName,
|
||||||
|
|||||||
Reference in New Issue
Block a user