0.10.0
What's Changed
New Feature
- Standalone Kafka Integration has been implemented, framework agnostic Kafka message validations 🎉
Necessary configuration:
Testing side:
kafka {
stoveKafkaObjectMapperRef = objectMapperRef
KafkaSystemOptions {
listOf(
"kafka.bootstrapServers=${it.bootstrapServers}",
"kafka.interceptorClasses=${it.interceptorClass}"
)
}
}
In the application side you need to do:
// Kafka settings on the application side
// To be able to validate consumed messages. The important thing here is the order of the intercept classes if you have any.
// You should put the `StoveKafkaBridge` at the end of the list,
// so that you won't miss any manipulations or header changes made by your interceptors.
put(ConsumerConfig.INTERCEPTOR_CLASSES_CONFIG, config.kafka.interceptorClasses)
// For published messages:
put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, config.kafka.interceptorClasses)
To validate:
validate {
kafka {
val productId = randomString() + "[productCreated]"
publish("product", message = ProductCreated(productId), key = randomString().some())
shouldBePublished<ProductCreated> {
actual.productId == productId
}
shouldBeConsumed<ProductCreated>(1.minutes) {
actual.productId == productId
}
}
}
Please check recipes for more information and example scenarios.
Changes
- feat: improve bridge system and add ktor bridge system #361 by @osoykan in #407
- feat: introduce stove container base to implement common container operations such as
pause
orunpause
a container @osoykan in #455- You can also provide your container override by implementing
StoveKafkaContainer
,StoveCouchbaseContainer
,Stove{Placeholder}Container
. For that you can useUseContainerFn
that is placed in ContainerOptions while setting the components.containerOptions = KafkaContainerOptions( useContainerFn = { StoveKafkaContainer(it) } // your container that implements StoveKafkaContainer. ),
- You can also provide your container override by implementing
- Standalone Kafka Improvements & Ktor Example App uses Standalone Kafka by @osoykan in #409
- State store by @osoykan in #453
- feat: introduce stove container base to implement common helpful by @osoykan in #455
- You can now override the StateStore if you want to customize state capture logic.
TestSystem { this.stateStorage(DefaultStateStorageFactory()) // your state store factory. } .with { kafka { ... // deleted for brevity
Deps
- fix(deps): update dependency org.wiremock:wiremock-standalone to v3.5.4 by @renovate in #406
- chore(deps): update gradle/gradle-build-action action to v3.3.2 by @renovate in #408
- chore(deps): update dependency io.github.gradle-nexus.publish-plugin to v2.0.0 by @renovate in #410
- fix(deps): update dependency com.couchbase.client:java-client to v3.6.2 by @renovate in #413
- fix(deps): update dependency com.couchbase.client:metrics-micrometer to v0.6.2 by @renovate in #412
- fix(deps): update dependency com.couchbase.client:kotlin-client to v1.3.2 by @renovate in #411
- Update dependency org.mongodb:mongodb-driver-reactivestreams to v5.1.0 by @renovate in #415
- fix(deps): update dependency co.elastic.clients:elasticsearch-java to v8.13.3 by @renovate in #417
- chore(deps): update dependency io.spring.dependency-management to v1.1.5 by @renovate in #418
- fix(deps): update jackson to v2.17.1 by @renovate in #419
- fix(deps): update kotlin monorepo to v1.9.24 by @renovate in #420
- fix(deps): update ktor to v2.3.11 by @renovate in #421
- fix(deps): update kotest to v5.9.0 by @renovate in #424
- fix(deps): update testcontainers-java monorepo to v1.19.8 - autoclosed by @renovate in #422
- fix(deps): update dependency co.elastic.clients:elasticsearch-java to v8.13.4 by @renovate in #423
- fix(deps): update kotlinx to v1.8.1 by @renovate in #425
- fix(deps): update kotlinx to v1.8.1 by @renovate in #427
- fix(deps): update dependency co.elastic.clients:elasticsearch-java to v8.13.4 by @renovate in #426
- fix(deps): update ktor to v2.3.11 by @renovate in #428
- fix(deps): update testcontainers-java monorepo to v1.19.8 by @renovate in #429
- fix(deps): update kotest to v5.9.0 by @renovate in #430
- fix(deps): update dependency io.projectreactor:reactor-core to v3.6.6 by @renovate in #431
- chore(deps): update plugin ksp to v1.9.24-1.0.20 by @renovate in #433
- fix(deps): update grpc-java monorepo to v1.64.0 by @renovate in #435
- chore(deps): update dependency org.jetbrains.kotlinx.kover to v0.8.0 by @renovate in #434
- fix(deps): update dependency com.squareup.wiregrpcserver:server to v1.0.0-alpha04 by @renovate in #436
- fix(deps): update dependency com.squareup.wiregrpcserver:server-generator to v1.0.0-alpha04 by @renovate in #437
- fix(deps): update spring core to v5.3.35 by @renovate in #438
- fix(deps): update spring core to v6.1.7 by @renovate in #439
- fix(deps): update dependency org.springframework.kafka:spring-kafka to v3.2.0 by @renovate in #441
- fix(deps): update dependency io.github.smiley4:ktor-swagger-ui to v2.10.0 by @renovate in #440
- chore(deps): update plugin ksp to v2 by @renovate in #444
- chore(deps): update dependency org.jetbrains.kotlin.plugin.spring to v2 by @renovate in #443
- fix(deps): update spring core by @renovate in #445
- fix(deps): update dependency org.wiremock:wiremock-standalone to v3.6.0 by @renovate in #446
- fix(deps): update spring boot to v3.2.6 by @renovate in #447
- fix(deps): update dependency com.microsoft.sqlserver:mssql-jdbc to v12.6.2.jre11 by @renovate in #450
- fix(deps): update spring boot to v3.3.0 by @renovate in #449
- fix(deps): update dependency com.google.protobuf:protobuf-kotlin to v4.27.0 by @renovate in #448
- fix(deps): update cohort to v2.5.1 by @renovate in #451
- fix(deps): update dependency it.czerwinski:kotlin-util to v2 by @renovate in #452
- chore(deps): update dependency gradle to v8.8 by @renovate in #454
- chore(deps): update quarkus to v3.11.1 by @renovate in #456
- chore(deps): update plugin gitversioning to v3.1.0 by @renovate in #457
- chore(deps): update plugin ksp to v2.0.0-1.0.22 by @renovate in #459
- fix(deps): update dependency co.elastic.clients:elasticsearch-java to v8.14.0 by @renovate in #458
- fix(deps): update dependency com.google.protobuf:protobuf-kotlin to v4.27.1 by @renovate in #461
- fix(deps): update kotest to v5.9.1 by @renovate in #460
- fix(deps): update dependency io.github.smiley4:ktor-swagger-ui to v3 by @renovate in #462
Full Changelog: 0.9.8...0.10.0