move consumers to new sub-project

This commit is contained in:
Savosin Denis
2025-06-03 10:31:16 +07:00
parent e5361b4d56
commit 31e57678d4
12 changed files with 44 additions and 27 deletions

View File

@@ -44,6 +44,9 @@ allprojects {
}
dependencies {
runtimeOnly(rootProject.libs.micrometer.registry.prometheus)
implementation(rootProject.libs.bundles.tracing)
implementation(rootProject.libs.kotlin.reflect)
implementation(rootProject.libs.kotlinx.serialization.json)
implementation(rootProject.libs.logback.encoder)
@@ -77,16 +80,13 @@ subprojects {
dependencies {
implementation(project(":db"))
implementation(project(":core"))
implementation(project(":edge-consuming"))
runtimeOnly(libs.micrometer.registry.prometheus)
implementation(libs.bundles.tracing)
implementation(libs.jackson.datatype.jsr)
implementation(libs.jackson.module.kotlin)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.core)
implementation(libs.postgres)
implementation(libs.spring.boot.starter.actuator)
implementation(libs.spring.boot.starter.jdbc)
implementation(libs.spring.boot.starter.mustache)
implementation(libs.spring.boot.starter.validation)
@@ -96,13 +96,13 @@ dependencies {
implementation(libs.spring.doc.openapi.starter)
testImplementation(libs.ktor.client.mock)
testImplementation(libs.spring.boot.starter.actuatorAutoconfigure)
testImplementation(libs.spring.cloud.streamTestBinder)
testImplementation(libs.testcontainers)
testImplementation(libs.testcontainers.junit.jupiter)
developmentOnly(libs.spring.boot.devtools)
kover(project(":edge-consuming"))
kover(project(":core"))
kover(project(":db"))
}

View File

@@ -4,7 +4,10 @@ version = "single-version"
dependencies {
implementation(project(":db"))
implementation(rootProject.libs.spring.boot.starter.actuator)
implementation(rootProject.libs.spring.boot.starter.jdbc)
implementation(rootProject.libs.spring.boot.starter.validation)
implementation(rootProject.libs.json.schema.validator)
testImplementation(rootProject.libs.spring.boot.starter.actuatorAutoconfigure)
}

View File

@@ -1,4 +1,4 @@
package com.github.dannecron.demo.services.metrics
package com.github.dannecron.demo.core.services.metrics
interface MetricsSender {
fun incrementConsumerCityCreate()

View File

@@ -1,4 +1,4 @@
package com.github.dannecron.demo.services.metrics
package com.github.dannecron.demo.core.services.metrics
import io.micrometer.core.instrument.Counter
import io.micrometer.core.instrument.MeterRegistry

View File

@@ -0,0 +1,13 @@
group = "com.github.dannecron.demo"
version = "single-version"
dependencies {
implementation(project(":core"))
implementation(rootProject.libs.jackson.datatype.jsr)
implementation(rootProject.libs.jackson.module.kotlin)
implementation(rootProject.libs.spring.cloud.starter.streamKafka)
implementation(rootProject.libs.spring.cloud.stream)
testImplementation(rootProject.libs.spring.cloud.streamTestBinder)
}

View File

@@ -1,7 +1,7 @@
package com.github.dannecron.demo.config.kafka
package com.github.dannecron.demo.edgeconsuming.config
import com.github.dannecron.demo.services.kafka.CityCreateConsumer
import com.github.dannecron.demo.services.kafka.dto.CityCreateDto
import com.github.dannecron.demo.edgeconsuming.consumer.CityCreateConsumer
import com.github.dannecron.demo.edgeconsuming.dto.CityCreateDto
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import java.util.function.Consumer

View File

@@ -0,0 +1,7 @@
package com.github.dannecron.demo.edgeconsuming.consumer
import com.github.dannecron.demo.edgeconsuming.dto.CityCreateDto
interface CityCreateConsumer {
fun process(cityCreateDto: CityCreateDto)
}

View File

@@ -1,9 +1,9 @@
package com.github.dannecron.demo.services.kafka
package com.github.dannecron.demo.edgeconsuming.consumer
import com.github.dannecron.demo.core.dto.CityCreate
import com.github.dannecron.demo.core.services.city.CityService
import com.github.dannecron.demo.services.kafka.dto.CityCreateDto
import com.github.dannecron.demo.services.metrics.MetricsSender
import com.github.dannecron.demo.core.services.metrics.MetricsSender
import com.github.dannecron.demo.edgeconsuming.dto.CityCreateDto
import org.springframework.stereotype.Component
import java.time.OffsetDateTime
import java.time.format.DateTimeFormatter

View File

@@ -1,4 +1,4 @@
package com.github.dannecron.demo.services.kafka.dto
package com.github.dannecron.demo.edgeconsuming.dto
import kotlinx.serialization.Serializable
@@ -10,3 +10,4 @@ data class CityCreateDto (
val updatedAt: String?,
val deletedAt: String?,
)

View File

@@ -1,14 +1,14 @@
package com.github.dannecron.demo.config.kafka
package com.github.dannecron.demo.edgeconsumer.config
import com.github.dannecron.demo.services.kafka.CityCreateConsumer
import com.github.dannecron.demo.services.kafka.dto.CityCreateDto
import com.github.dannecron.demo.edgeconsuming.config.CityConsumerConfig
import com.github.dannecron.demo.edgeconsuming.consumer.CityCreateConsumer
import com.github.dannecron.demo.edgeconsuming.dto.CityCreateDto
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.junit.jupiter.api.Test
import org.mockito.kotlin.after
import org.mockito.kotlin.verify
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
@@ -43,10 +43,9 @@ import java.util.UUID
DataSourceTransactionManagerAutoConfiguration::class,
HibernateJpaAutoConfiguration::class,
SecurityAutoConfiguration::class,
EndpointAutoConfiguration::class,
]
)
class CityEntityCreateConsumerImplConfigTest {
class CityConsumerConfigTest {
@Autowired
private lateinit var inputDestination: InputDestination

View File

@@ -4,3 +4,4 @@ plugins {
rootProject.name = "demo"
include("db")
include("core")
include("edge-consuming")

View File

@@ -1,7 +0,0 @@
package com.github.dannecron.demo.services.kafka
import com.github.dannecron.demo.services.kafka.dto.CityCreateDto
interface CityCreateConsumer {
fun process(cityCreateDto: CityCreateDto)
}