From 4871a8167bf513ff23ad94e3ebfc8db725e0511e Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Sun, 1 Mar 2026 15:46:20 +0100 Subject: [PATCH 1/5] simplify the application --- build.gradle | 6 - http/async.http | 13 -- http/data/picture.jpg | Bin 354352 -> 0 bytes http/minio.http | 20 --- http/rsocket.sh | 5 - http/server-events.http | 4 - notes/keycloak-admin-api/user-create.json | 12 -- notes/keycloak-admin-api/user-search.json | 21 ---- notes/keycloak-admin-api/user-update.json | 21 ---- notes/keycloak-kafka-samples/login.json | 19 --- notes/keycloak-kafka-samples/logout.json | 14 --- notes/keycloak-kafka-samples/register.json | 22 ---- .../template/SoftenoReactiveMongoApp.kt | 5 +- .../playground/CoroutinePlayground.kt | 95 -------------- .../softeno/template/sample/http/dto/dto.kt | 4 - .../external/coroutine/ExternalController.kt | 2 +- .../http/internal/async/AsyncController.kt | 117 ------------------ .../http/internal/async/config/AsyncConfig.kt | 60 --------- .../http/internal/minio/MinioAdapter.kt | 56 --------- .../http/internal/minio/MinioController.kt | 43 ------- .../sample/http/internal/minio/S3Config.kt | 38 ------ .../internal/reactive/SampleController.kt | 4 +- .../sample/http/internal/router/Router.kt | 2 +- .../internal/serverevents/ServerEvents.kt | 39 ------ .../template/sample/rsocket/Rsocket.kt | 97 --------------- .../sample/scheduled/ScheduledService.kt | 53 -------- .../scheduled/config/SchedulerConfig.kt | 24 ---- src/main/resources/application.properties | 6 - src/main/resources/graphql/schema.graphqls | 1 - .../http/internal/reactive/IntegrationTest.kt | 1 - .../http/internal/reactive/PlaygroundTest.kt | 86 ------------- 31 files changed, 5 insertions(+), 885 deletions(-) delete mode 100644 http/async.http delete mode 100644 http/data/picture.jpg delete mode 100644 http/minio.http delete mode 100644 http/rsocket.sh delete mode 100644 http/server-events.http delete mode 100644 notes/keycloak-admin-api/user-create.json delete mode 100644 notes/keycloak-admin-api/user-search.json delete mode 100644 notes/keycloak-admin-api/user-update.json delete mode 100644 notes/keycloak-kafka-samples/login.json delete mode 100644 notes/keycloak-kafka-samples/logout.json delete mode 100644 notes/keycloak-kafka-samples/register.json delete mode 100644 src/main/kotlin/com/softeno/template/playground/CoroutinePlayground.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/dto/dto.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/async/AsyncController.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/async/config/AsyncConfig.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioAdapter.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioController.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/minio/S3Config.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/http/internal/serverevents/ServerEvents.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/rsocket/Rsocket.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/scheduled/ScheduledService.kt delete mode 100644 src/main/kotlin/com/softeno/template/sample/scheduled/config/SchedulerConfig.kt delete mode 100644 src/test/kotlin/com/softeno/template/sample/http/internal/reactive/PlaygroundTest.kt diff --git a/build.gradle b/build.gradle index 3699ed6..5e94f78 100644 --- a/build.gradle +++ b/build.gradle @@ -77,9 +77,6 @@ dependencies { } kapt group: 'com.querydsl', name: 'querydsl-apt', version: '5.1.0' - // rsocket - implementation 'org.springframework.boot:spring-boot-starter-rsocket' - // graphql implementation 'org.springframework.boot:spring-boot-starter-graphql' testImplementation 'org.springframework.graphql:spring-graphql-test' @@ -97,9 +94,6 @@ dependencies { runtimeOnly("io.netty:netty-resolver-dns-native-macos:4.2.3.Final:${osdetector.classifier}") } - // s3 - implementation 'io.minio:minio:8.6.0' - // monitoring implementation 'org.springframework.boot:spring-boot-starter-actuator' runtimeOnly 'io.micrometer:micrometer-registry-prometheus' diff --git a/http/async.http b/http/async.http deleted file mode 100644 index f8e6d7c..0000000 --- a/http/async.http +++ /dev/null @@ -1,13 +0,0 @@ -### Async Controller HTTP - -### -GET {{host}}/async/result - -### -GET {{host}}/async/void - -### -GET {{host}}/async/fail - -### -GET {{host}}/async/void-fail \ No newline at end of file diff --git a/http/data/picture.jpg b/http/data/picture.jpg deleted file mode 100644 index fe1ab50cd817fc2b8565ff259eb5e386cb51bd03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 354352 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 z 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 X;0RD-j0(-T{{UG309xi-l7Ii%=JA!g diff --git a/http/minio.http b/http/minio.http deleted file mode 100644 index a2aec03..0000000 --- a/http/minio.http +++ /dev/null @@ -1,20 +0,0 @@ -POST {{host}}/minio/upload HTTP/1.1 -Content-Type: multipart/form-data; boundary=boundary -Authorization: Bearer {{oauthToken}} - ---boundary -Content-Disposition: form-data; name="file"; filename="picture.jpg" - -< ./data/picture.jpg - -### - -GET {{host}}/minio/picture.jpg -Content-Type: application/octet-stream -Authorization: Bearer {{oauthToken}} - - -### - -DELETE {{host}}/minio/picture.jpg -Authorization: Bearer {{oauthToken}} diff --git a/http/rsocket.sh b/http/rsocket.sh deleted file mode 100644 index af3f9d0..0000000 --- a/http/rsocket.sh +++ /dev/null @@ -1,5 +0,0 @@ -#java -jar rsc/rsc-0.9.1.jar --data '{"symbol": "aaa"}' --route stock --stream ws://localhost:8081/rsocket --debug -#java -jar rsc/rsc-0.9.1.jar --data '{"symbol": "aaa"}' --route stock.error ws://localhost:8081/rsocket --debug -#java -jar rsc/rsc-0.9.1.jar --data '{"symbol": "aaa"}' --route stock.coroutine ws://localhost:8081/rsocket --debug -#java -jar rsc/rsc-0.9.1.jar --sm "client-id\"123" --smmt "application/json" --data '{"symbol": "aaa"}' --route stock.single ws://localhost:8081/rsocket --debug -java -jar rsc/rsc-0.9.1.jar --channel --route number.channel --data - ws://localhost:8081/rsocket --debug diff --git a/http/server-events.http b/http/server-events.http deleted file mode 100644 index 4661f52..0000000 --- a/http/server-events.http +++ /dev/null @@ -1,4 +0,0 @@ -### Get server event stream -GET {{host}}/coroutine/currency-rate/current -Accept: text/event-stream -Authorization: Bearer {{oauthToken}} diff --git a/notes/keycloak-admin-api/user-create.json b/notes/keycloak-admin-api/user-create.json deleted file mode 100644 index abefa18..0000000 --- a/notes/keycloak-admin-api/user-create.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "username": "test-api-1", - "enabled": true, - "firstName": "api", - "lastName": "test", - "email": "test@api.com", - "requiredActions": ["UPDATE_PASSWORD"], - "credentials": [{ - "type": "password", - "value": "test" - }] -} \ No newline at end of file diff --git a/notes/keycloak-admin-api/user-search.json b/notes/keycloak-admin-api/user-search.json deleted file mode 100644 index 63974d5..0000000 --- a/notes/keycloak-admin-api/user-search.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "862ed252-3637-4d47-a7ab-9c3504363fa0", - "createdTimestamp": 1675076704282, - "username": "admin", - "enabled": true, - "totp": false, - "emailVerified": true, - "firstName": "Admin", - "lastName": "Admin", - "email": "admin@admin.com", - "disableableCredentialTypes": [], - "requiredActions": [], - "notBefore": 0, - "access": { - "manageGroupMembership": true, - "view": true, - "mapRoles": true, - "impersonate": true, - "manage": true - } -} diff --git a/notes/keycloak-admin-api/user-update.json b/notes/keycloak-admin-api/user-update.json deleted file mode 100644 index a240e18..0000000 --- a/notes/keycloak-admin-api/user-update.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "1aa63488-6cec-417a-9c11-6aa654b23458", - "createdTimestamp": 1675274855914, - "username": "test-api-1", - "enabled": true, - "totp": false, - "emailVerified": false, - "firstName": "api-2", - "lastName": "test-2", - "email": "test@api.com", - "disableableCredentialTypes": [], - "requiredActions": [], - "notBefore": 0, - "access": { - "manageGroupMembership": true, - "view": true, - "mapRoles": true, - "impersonate": true, - "manage": true - } -} \ No newline at end of file diff --git a/notes/keycloak-kafka-samples/login.json b/notes/keycloak-kafka-samples/login.json deleted file mode 100644 index 3939a63..0000000 --- a/notes/keycloak-kafka-samples/login.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "d567e184-963e-4836-80d5-fedcb07870e5", - "time": 1674955961622, - "type": "LOGIN", - "realmId": "49b390fd-9e31-4931-a55f-34ff3e0776bb", - "clientId": "frontend", - "userId": "cd85a973-3f13-4219-827b-0c31044e241f", - "sessionId": "c71a9003-5165-4370-b98e-4d295297ecc0", - "ipAddress": "172.29.0.1", - "error": null, - "details": { - "auth_method": "openid-connect", - "auth_type": "code", - "redirect_uri": "http://localhost:3000/login", - "consent": "no_consent_required", - "code_id": "c71a9003-5165-4370-b98e-4d295297ecc0", - "username": "test" - } -} \ No newline at end of file diff --git a/notes/keycloak-kafka-samples/logout.json b/notes/keycloak-kafka-samples/logout.json deleted file mode 100644 index 97f051a..0000000 --- a/notes/keycloak-kafka-samples/logout.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "id": "2c908efd-858a-47e5-b899-e8e68559ab72", - "time": 1674955930173, - "type": "LOGOUT", - "realmId": "49b390fd-9e31-4931-a55f-34ff3e0776bb", - "clientId": null, - "userId": "8693efc7-736d-45c2-ab93-759ed2dd27c0", - "sessionId": "2cce54f3-28d5-4727-ac65-ab8f7c70a8c3", - "ipAddress": "172.29.0.1", - "error": null, - "details": { - "redirect_uri": "http://localhost:3000/" - } -} diff --git a/notes/keycloak-kafka-samples/register.json b/notes/keycloak-kafka-samples/register.json deleted file mode 100644 index 58d358b..0000000 --- a/notes/keycloak-kafka-samples/register.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "4ae0d28e-a117-473a-b9ac-83b285874098", - "time": 1674955961567, - "type": "REGISTER", - "realmId": "49b390fd-9e31-4931-a55f-34ff3e0776bb", - "clientId": "frontend", - "userId": "cd85a973-3f13-4219-827b-0c31044e241f", - "sessionId": null, - "ipAddress": "172.29.0.1", - "error": null, - "details": { - "auth_method": "openid-connect", - "auth_type": "code", - "register_method": "form", - "last_name": "test", - "redirect_uri": "http://localhost:3000/login", - "first_name": "test", - "code_id": "c71a9003-5165-4370-b98e-4d295297ecc0", - "email": "test@test.com", - "username": "test" - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt b/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt index bbfccb4..a0be754 100644 --- a/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt +++ b/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt @@ -1,6 +1,5 @@ package com.softeno.template -import com.softeno.template.playground.CoroutinePlayground import org.slf4j.LoggerFactory import org.springframework.boot.autoconfigure.SpringBootApplication import org.springframework.boot.context.event.ApplicationReadyEvent @@ -41,8 +40,6 @@ class SpringApplicationReadyEventListenerPlayground { @EventListener fun onApplicationReady(event: ApplicationReadyEvent) { - logger.info(">> Application Ready") - // play around with kotlin coroutines - CoroutinePlayground().run() + // ... } } diff --git a/src/main/kotlin/com/softeno/template/playground/CoroutinePlayground.kt b/src/main/kotlin/com/softeno/template/playground/CoroutinePlayground.kt deleted file mode 100644 index 0f3cfbc..0000000 --- a/src/main/kotlin/com/softeno/template/playground/CoroutinePlayground.kt +++ /dev/null @@ -1,95 +0,0 @@ -package com.softeno.template.playground - -import kotlinx.coroutines.* -import org.slf4j.Logger -import org.slf4j.LoggerFactory -import kotlin.coroutines.CoroutineContext - -class CoroutinePlayground { - private val logger = LoggerFactory.getLogger(this::class.java) - - @OptIn(DelicateCoroutinesApi::class) - fun run() { - logger.info(">> Coroutine playground started") - - // note: global `coroutineScope` exception handler - val exceptionHandler = CoroutineExceptionHandler { context: CoroutineContext, exception: Throwable -> - logger.error(">> Global CoroutineExceptionHandler: $exception") - } - - GlobalScope.launch(exceptionHandler) { - val messages = listOf(helloCoroutine(), helloCoroutineWithContext()) - logger.info(">> coroutine message: $messages") - - val tasks = listOf( - async { someComputation(logger) }, - async { someComputation(logger) } - ) - tasks.awaitAll() - - val deferredWithTimeout = async { someComputation(logger) } - runBlocking { - try { - withTimeout(500) { - logger.info(">> start awaiting with 500 secs timeout") - deferredWithTimeout.join() - } - } catch (exception: TimeoutCancellationException) { - logger.error(">> timeout") - deferredWithTimeout.cancel() // note: if the task will not be canceled it can still run - } - } - - val deferredWithError = supervisorScope { - async { someError() } - } - // note: if the exception should not be handled by global scope handler `supervisorScope` has to be used - try { - deferredWithError.await() - } catch (exception: Exception) { - deferredWithError.cancel() - logger.error(">> Handled local exception: $exception") - } - - launch { - logger.info(">> Coroutine playground ended") - }.join() - // note: launch - simple fire and forget scope - non-blocking unless `join` - } - - // ... - } - - suspend fun sampleFunction(input: String): String = - withContext(Dispatchers.Default) { - delay(2000) - return@withContext input - } -} - -suspend fun helloCoroutine(): String { - delay(500) - return "hello" -} - -suspend fun helloCoroutineWithContext(): String { - return withContext(Dispatchers.IO) { - delay(1000) - val message = "coroutine!" - return@withContext message - } -} - -suspend fun someComputation(logger: Logger) { - withContext(Dispatchers.Default) { - delay(2000) - logger.info(">> Some Computation done!") - } -} - -suspend fun someError() { - withContext(Dispatchers.Default) { - delay(1000) - throw RuntimeException("Some Error Occurred") - } -} diff --git a/src/main/kotlin/com/softeno/template/sample/http/dto/dto.kt b/src/main/kotlin/com/softeno/template/sample/http/dto/dto.kt deleted file mode 100644 index 6cbbc19..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/dto/dto.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.softeno.template.sample.http.dto - - -data class SampleResponseDto(val data: String) \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/external/coroutine/ExternalController.kt b/src/main/kotlin/com/softeno/template/sample/http/external/coroutine/ExternalController.kt index ef94807..53227de 100644 --- a/src/main/kotlin/com/softeno/template/sample/http/external/coroutine/ExternalController.kt +++ b/src/main/kotlin/com/softeno/template/sample/http/external/coroutine/ExternalController.kt @@ -1,7 +1,7 @@ package com.softeno.template.sample.http.external.coroutine -import com.softeno.template.sample.http.dto.SampleResponseDto import com.softeno.template.sample.http.external.config.ExternalClientConfig +import com.softeno.template.sample.http.internal.reactive.SampleResponseDto import kotlinx.coroutines.reactor.awaitSingle import org.apache.commons.logging.LogFactory import org.springframework.beans.factory.annotation.Qualifier diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/async/AsyncController.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/async/AsyncController.kt deleted file mode 100644 index 4476ab6..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/async/AsyncController.kt +++ /dev/null @@ -1,117 +0,0 @@ -package com.softeno.template.sample.http.internal.async - -import kotlinx.coroutines.reactor.awaitSingleOrNull -import org.apache.commons.logging.LogFactory -import org.springframework.scheduling.annotation.Async -import org.springframework.stereotype.Service -import org.springframework.validation.annotation.Validated -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController -import reactor.core.publisher.Mono -import java.util.concurrent.CompletableFuture - - -@RestController -@RequestMapping("/async") -@Validated -class AsyncController(private val asyncService: AsyncService) { - private val log = LogFactory.getLog(javaClass) - - @GetMapping("/result") - suspend fun asyncResultHandler(): String? { - log.info("[async]: triggering async method with result ...") - - val resultFuture: CompletableFuture = asyncService.asyncMethodWithReturnType("test", 5_000) - val result: String? = Mono.fromFuture(resultFuture).awaitSingleOrNull() - - log.info("[async]: finished with result: $result") - return result - } - - @GetMapping("/void") - fun asyncVoidHandler() { - log.info("[async]: triggering async method without result ...") - asyncService.asyncMethodVoid("test", 5_000) - } - - @GetMapping("/fail") - suspend fun asyncResultWithFailHandler(): String? { - log.info("[async]: triggering async method with result and fail ...") - - val resultFuture: CompletableFuture = asyncService.asyncMethodFail("fail", 2_000) - return Mono.fromFuture(resultFuture) - // note: in case of spring async the webflux exception handler will not be invoked since the thread pool does not belong to webflux context; - // exception has to be handled inside monad of Mono (proof: look at logger at thread name) - .doOnError { - log.error("[async]: error handled: ${it.message}") - // clean up here ... - } - .onErrorReturn("ERROR") - .awaitSingleOrNull() - } - - @GetMapping("/void-fail") - fun asyncVoidFailHandler() { - log.info("[async]: triggering async method without result and with fail ...") - asyncService.asyncMethodVoidFail("void-fail", 2_000) - } - -} - -@Service -class AsyncService { - private val log = LogFactory.getLog(javaClass) - - @Async(value = "asyncExecutor") - fun asyncMethodWithReturnType(input: String, delay: Long): CompletableFuture { - log.info("[async]: async method invoked") - try { - Thread.sleep(delay) - val result = "FUTURE_DONE: $input" - log.info("[async]: async method finished with result: $result") - return CompletableFuture.completedFuture(result) - } catch (e: InterruptedException) { - // ... - } - return CompletableFuture.completedFuture(null) - } - - @Async(value = "asyncExecutor") - fun asyncMethodVoid(input: String, delay: Long) { - log.info("[async]: async void method invoked") - try { - Thread.sleep(delay) - val result = "VOID_DONE: $input" - log.info("[async]: async void method finished with result: $result") - } catch (e: InterruptedException) { - // ... - } - } - - @Async(value = "asyncExecutor") - fun asyncMethodFail(input: String, delay: Long): CompletableFuture { - log.info("[async]: async void method invoked") - try { - Thread.sleep(delay) - log.error("[async]: Error occurred during async process...") - throw RuntimeException("ASYNC_METHOD_EXCEPTION") - } catch (e: InterruptedException) { - // ... - } - return CompletableFuture.completedFuture(null) - } - - @Async(value = "asyncExecutor") - fun asyncMethodVoidFail(input: String, delay: Long) { - log.info("[async]: async void method invoked") - try { - Thread.sleep(delay) - log.error("[async]: Error occurred during async void process...") - throw RuntimeException("ASYNC_METHOD_EXCEPTION") - } catch (e: InterruptedException) { - // ... - } - } -} - diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/async/config/AsyncConfig.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/async/config/AsyncConfig.kt deleted file mode 100644 index 8592c39..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/async/config/AsyncConfig.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.softeno.template.sample.http.internal.async.config - -import org.apache.commons.logging.LogFactory -import org.slf4j.MDC -import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Configuration -import org.springframework.core.task.TaskDecorator -import org.springframework.scheduling.annotation.AsyncConfigurer -import org.springframework.scheduling.annotation.EnableAsync -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor -import java.lang.reflect.Method -import java.util.concurrent.Executor - - -class MDCTaskDecorator : TaskDecorator { - override fun decorate(runnable: Runnable): Runnable { - val contextMap = MDC.getCopyOfContextMap() - return Runnable { - try { - MDC.setContextMap(contextMap) - runnable.run() - } finally { - MDC.clear() - } - } - } -} - - -@Configuration -@EnableAsync -class AsyncExecutorConfig { - @Bean(value = ["asyncExecutor"]) - fun asyncExecutor(): Executor { - val executor = ThreadPoolTaskExecutor() - executor.maxPoolSize = 24 - executor.corePoolSize = 8 - executor.setThreadNamePrefix("CUSTOM_SPRING_EXECUTOR-") - executor.setTaskDecorator(MDCTaskDecorator()) - executor.initialize() - return executor - } -} - -class AsyncExceptionHandler : AsyncUncaughtExceptionHandler { - private val log = LogFactory.getLog(javaClass) - - override fun handleUncaughtException(ex: Throwable, method: Method, vararg params: Any) { - log.error("[async]: Unexpected asynchronous exception at: ${method.declaringClass.name}.${method.name}, $ex") - // clean up here ... - } -} - -@Configuration -class AsyncConfig : AsyncConfigurer { - override fun getAsyncUncaughtExceptionHandler(): AsyncUncaughtExceptionHandler { - return AsyncExceptionHandler() - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioAdapter.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioAdapter.kt deleted file mode 100644 index 3f2c379..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioAdapter.kt +++ /dev/null @@ -1,56 +0,0 @@ -package com.softeno.template.sample.http.internal.minio - -import io.minio.* -import org.springframework.context.annotation.Profile -import org.springframework.core.io.InputStreamResource -import org.springframework.http.codec.multipart.FilePart -import org.springframework.stereotype.Component -import reactor.core.publisher.Mono -import reactor.core.scheduler.Schedulers -import java.io.File -import java.io.InputStream - -data class UploadResponse(val versionId: String, val objectId: String, val bucket: String) - -@Profile(value = ["!integration"]) -@Component -class MinioAdapter(private val minioClient: MinioClient, private val config: ExternalMinioConfig) { - fun uploadFile(file: Mono): Mono { - return file.publishOn(Schedulers.boundedElastic()).map { multipartFile -> - val temp = File.createTempFile(multipartFile.filename(), null) - .also { it.canRead() } - .also { it.canWrite() } - Pair(multipartFile, temp) - }.flatMap { - Mono.just(it.first).zipWith(Mono.just(it.second)).flatMap { tuple -> - tuple.t1.transferTo(tuple.t2).thenReturn { - val uploadObjectArgs: UploadObjectArgs = UploadObjectArgs.builder() - .bucket(config.bucket) - .`object`(tuple.t1.filename()) - .filename(tuple.t2.absolutePath) - .build() - val response: ObjectWriteResponse = minioClient.uploadObject(uploadObjectArgs) - tuple.t2.delete() - UploadResponse( - versionId = response.versionId() ?: "", - objectId = response.`object`(), - bucket = response.bucket() - ) - }.map { it() } - } - } - } - - fun download(name: String): Mono { - return Mono.fromCallable { - val response: InputStream = - minioClient.getObject(GetObjectArgs.builder().bucket(config.bucket).`object`(name).build()) - InputStreamResource(response) - }.subscribeOn(Schedulers.boundedElastic()) - } - - fun remove(name: String) { - minioClient.removeObject(RemoveObjectArgs.builder().bucket(config.bucket).`object`(name).build()) - } - -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioController.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioController.kt deleted file mode 100644 index 60e09c9..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/MinioController.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.softeno.template.sample.http.internal.minio - -import org.springframework.context.annotation.Profile -import org.springframework.core.io.InputStreamResource -import org.springframework.http.HttpHeaders -import org.springframework.http.MediaType -import org.springframework.http.ResponseEntity -import org.springframework.http.codec.multipart.FilePart -import org.springframework.util.MimeTypeUtils -import org.springframework.validation.annotation.Validated -import org.springframework.web.bind.annotation.* -import reactor.core.publisher.Mono - - -@Profile(value = ["!integration"]) -@RestController -@RequestMapping("/minio") -@Validated -class FileController(private val adapter: MinioAdapter) { - - @RequestMapping( - path = ["/upload"], - method = [RequestMethod.POST], - produces = [MimeTypeUtils.APPLICATION_JSON_VALUE], - consumes = [MediaType.MULTIPART_FORM_DATA_VALUE] - ) - fun upload( - @RequestPart(value = "file", required = true) files: Mono - ): Mono = adapter.uploadFile(files) - - @GetMapping("/{file}") - fun download( - @PathVariable(value = "file") file: String - ): ResponseEntity> = - ResponseEntity.ok() - .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=$file") - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_OCTET_STREAM_VALUE).body(adapter.download(file)) - - - @DeleteMapping("/{file}") - fun remove(@PathVariable(value = "file") file: String) = adapter.remove(file) - -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/S3Config.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/minio/S3Config.kt deleted file mode 100644 index 783c26b..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/minio/S3Config.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.softeno.template.sample.http.internal.minio - -import io.minio.MinioClient -import okhttp3.OkHttpClient -import org.springframework.boot.context.properties.ConfigurationProperties -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Configuration -import org.springframework.context.annotation.Profile -import java.util.concurrent.TimeUnit - - -@ConfigurationProperties(prefix = "io.min") -@Profile(value = ["!integration"]) -data class ExternalMinioConfig - (val name: String, val secret: String, val url: String, val bucket: String, val folder: String) - -@Profile(value = ["!integration"]) -@Configuration -class MinioConfig { - @Bean - fun generateMinioClient(config: ExternalMinioConfig): MinioClient { - return try { - val httpClient: OkHttpClient = OkHttpClient.Builder() - .connectTimeout(10, TimeUnit.MINUTES) - .writeTimeout(10, TimeUnit.MINUTES) - .readTimeout(30, TimeUnit.MINUTES) - .build() - - MinioClient.builder() - .endpoint(config.url) - .httpClient(httpClient) - .credentials(config.name, config.secret) - .build() - } catch (e: Exception) { - throw RuntimeException(e.message) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/reactive/SampleController.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/reactive/SampleController.kt index 9204c92..c6f5be3 100644 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/reactive/SampleController.kt +++ b/src/main/kotlin/com/softeno/template/sample/http/internal/reactive/SampleController.kt @@ -1,6 +1,5 @@ package com.softeno.template.sample.http.internal.reactive -import com.softeno.template.sample.http.dto.SampleResponseDto import org.apache.commons.logging.LogFactory import org.springframework.stereotype.Service import org.springframework.validation.annotation.Validated @@ -53,5 +52,6 @@ class SampleService { log.info("[sample-service]: GET id: $id") return Mono.empty() } +} -} \ No newline at end of file +data class SampleResponseDto(val data: String) \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/router/Router.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/router/Router.kt index 07be9b4..2a6c187 100644 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/router/Router.kt +++ b/src/main/kotlin/com/softeno/template/sample/http/internal/router/Router.kt @@ -1,6 +1,6 @@ package com.softeno.template.sample.http.internal.router -import com.softeno.template.sample.http.dto.SampleResponseDto +import com.softeno.template.sample.http.internal.reactive.SampleResponseDto import com.softeno.template.sample.http.internal.reactive.SampleService import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration diff --git a/src/main/kotlin/com/softeno/template/sample/http/internal/serverevents/ServerEvents.kt b/src/main/kotlin/com/softeno/template/sample/http/internal/serverevents/ServerEvents.kt deleted file mode 100644 index 689e87b..0000000 --- a/src/main/kotlin/com/softeno/template/sample/http/internal/serverevents/ServerEvents.kt +++ /dev/null @@ -1,39 +0,0 @@ -package com.softeno.template.sample.http.internal.serverevents - -import kotlinx.coroutines.delay -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flow -import org.springframework.stereotype.Service -import org.springframework.web.bind.annotation.GetMapping -import org.springframework.web.bind.annotation.RequestMapping -import org.springframework.web.bind.annotation.RestController - -@RestController -@RequestMapping("/coroutine/currency-rate") -class CurrencyRateController(val currencyRateService: CurrencyRateService) { - - @GetMapping("/current", produces = ["text/event-stream"]) - suspend fun currentRates() = currencyRateService.currentRates() -} - -enum class CURRENCY { - USD, EUR, GBP, PLN -} - -data class CurrencyRate(val currency: CURRENCY, val value: Double) - -@Service -class CurrencyRateService { - - suspend fun currentRates(): Flow> = flow { - while (true) { - val rates: List = CURRENCY.entries.map { - CurrencyRate(it, Math.random()) - } - emit(rates) - - val delay = (100..2000).random() - delay(delay.toLong()) - } - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/rsocket/Rsocket.kt b/src/main/kotlin/com/softeno/template/sample/rsocket/Rsocket.kt deleted file mode 100644 index 425703f..0000000 --- a/src/main/kotlin/com/softeno/template/sample/rsocket/Rsocket.kt +++ /dev/null @@ -1,97 +0,0 @@ -package com.softeno.template.sample.rsocket - -import kotlinx.coroutines.flow.firstOrNull -import kotlinx.coroutines.reactive.asFlow -import org.apache.commons.logging.LogFactory -import org.springframework.messaging.handler.annotation.MessageExceptionHandler -import org.springframework.messaging.handler.annotation.MessageMapping -import org.springframework.messaging.handler.annotation.Payload -import org.springframework.messaging.rsocket.RSocketRequester -import org.springframework.messaging.rsocket.annotation.ConnectMapping -import org.springframework.stereotype.Controller -import org.springframework.stereotype.Service -import org.springframework.util.MimeType -import reactor.core.publisher.Flux -import reactor.core.publisher.Mono -import java.time.Duration.ofSeconds -import java.time.LocalDateTime -import java.util.concurrent.ConcurrentHashMap -import java.util.concurrent.ThreadLocalRandom - - -@Controller -class StockPricesRSocketController(private val stockService: StockService) { - private val log = LogFactory.getLog(javaClass) - private var REQUESTER_MAP: HashMap = HashMap() - - @MessageMapping("stock") - fun prices(symbol: String): Flux = stockService.streamOfPrices(symbol) - - @MessageMapping("number.channel") - fun biDirectionalStream(numberFlux: Flux): Flux? { - return numberFlux - .map { n: Long -> n * n } - .onErrorReturn(-1L) - } - - @MessageMapping("stock.single") - fun singlePrice(symbol: String): Mono = stockService.getSingle(symbol) - - @MessageMapping("stock.coroutine") - suspend fun singlePriceCoroutine(symbol: String): StockPrice? = - stockService.getSingle(symbol).asFlow().firstOrNull() - - @MessageMapping("stock.error") - fun stockError(symbol: String) { - throw RuntimeException("exception for symbol: $symbol") - } - - @MessageExceptionHandler - fun handle(ex: Exception): Mono { - log.error("MessageExceptionHandler: $ex") - return Mono.error(ex) - } - - @ConnectMapping("client-id") - fun register(rSocketRequester: RSocketRequester, @Payload clientId: String): Mono { - log.info("hello: $clientId") - rSocketRequester.rsocket()!! - .onClose() - .subscribe( - null, null - ) { - log.info("good bye: $clientId") - REQUESTER_MAP.remove(clientId, rSocketRequester) - } - - REQUESTER_MAP.put(clientId, rSocketRequester) - - return rSocketRequester.metadata("hello", MimeType.valueOf("message/x.rsocket.routing.v0")).send() - } - -} - -@Service -class StockService { - private val pricesForStock = ConcurrentHashMap>() - private val log = LogFactory.getLog(javaClass) - - fun getSingle(symbol: String): Mono = - Mono.just(StockPrice(symbol, randomStockPrice(), LocalDateTime.now())) - .doOnSubscribe { log.info("New subscription for SINGLE symbol $symbol.") } - .share() - - fun streamOfPrices(symbol: String): Flux { - return pricesForStock.computeIfAbsent(symbol) { - Flux - .interval(ofSeconds(1)) - .map { StockPrice(symbol, randomStockPrice(), LocalDateTime.now()) } - .doOnSubscribe { log.info("New subscription for symbol $symbol.") } - .share() - } - } - - private fun randomStockPrice() = ThreadLocalRandom.current().nextDouble(100.0) -} - -data class StockPrice(val symbol: String, val price: Double, val time: LocalDateTime) \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/scheduled/ScheduledService.kt b/src/main/kotlin/com/softeno/template/sample/scheduled/ScheduledService.kt deleted file mode 100644 index aac3106..0000000 --- a/src/main/kotlin/com/softeno/template/sample/scheduled/ScheduledService.kt +++ /dev/null @@ -1,53 +0,0 @@ -package com.softeno.template.sample.scheduled - -import com.softeno.template.sample.http.internal.async.AsyncService -import org.apache.commons.logging.LogFactory -import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty -import org.springframework.context.annotation.Profile -import org.springframework.scheduling.annotation.Scheduled -import org.springframework.stereotype.Service -import java.util.concurrent.Executor -import java.util.concurrent.TimeUnit - -@Profile(value = ["!integration"]) -@ConditionalOnProperty( - name = ["com.softeno.scheduled-tasks"], - havingValue = "true", - matchIfMissing = false -) -@Service -class ScheduledService( - @param:Qualifier(value = "scheduledExecutor") private val executor: Executor, - private val syncService: AsyncService -) { - private val log = LogFactory.getLog(javaClass) - - @Scheduled(fixedDelay = 12, timeUnit = TimeUnit.HOURS) - fun periodicTaskDelay() { - // fixedDelay: specifically controls the next execution time when the last execution finishes. - log.info("[scheduled]: periodic task delay start") - // note: inplace Runnable - executor.execute { syncService.asyncMethodVoid("fixedDelay", 90_000) } - } - - @Scheduled(fixedRate = 12, timeUnit = TimeUnit.HOURS) - fun periodicTaskRate() { - // fixedRate: makes Spring run the task on periodic intervals even if the last invocation may still be running. - log.info("[scheduled]: periodic task rate start") - executor.execute { syncService.asyncMethodVoid("fixedRate", 90_000) } - - } - - @Scheduled(cron = "0 * */12 * * *") - fun periodicTaskCron() { - log.info("[scheduled]: periodic task cron start") - executor.execute { syncService.asyncMethodVoid("cron", 30_000) } - } - - @Scheduled(cron = "0 * */12 * * *") - fun periodicTaskWithFailCron() { - log.info("[scheduled]: periodic task cron with fail start") - executor.execute { syncService.asyncMethodVoidFail("cron-fail", 30_000) } - } -} \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/sample/scheduled/config/SchedulerConfig.kt b/src/main/kotlin/com/softeno/template/sample/scheduled/config/SchedulerConfig.kt deleted file mode 100644 index e6583d2..0000000 --- a/src/main/kotlin/com/softeno/template/sample/scheduled/config/SchedulerConfig.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.softeno.template.sample.scheduled.config - -import com.softeno.template.sample.http.internal.async.config.MDCTaskDecorator -import org.springframework.context.annotation.Bean -import org.springframework.context.annotation.Configuration -import org.springframework.scheduling.annotation.EnableScheduling -import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor -import java.util.concurrent.Executor - - -@Configuration -@EnableScheduling -class SchedulerExecutorConfig { - @Bean(value = ["scheduledExecutor"]) - fun taskExecutor(): Executor { - val executor = ThreadPoolTaskExecutor() - executor.maxPoolSize = 24 - executor.corePoolSize = 8 - executor.setThreadNamePrefix("CUSTOM_SPRING_SCHEDULER-") - executor.setTaskDecorator(MDCTaskDecorator()) - executor.initialize() - return executor - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 523f88f..a0f9d64 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -69,12 +69,6 @@ springdoc.api-docs.enabled=true springdoc.api-docs.path=/v3/api-docs springdoc.swagger-ui.path=/swagger-ui.html -io.min.name=${IO_MIN_NAME} -io.min.secret=${IO_MIN_PASSWORD} -io.min.url=${IO_MIN_URL} -io.min.bucket=${IO_MIN_BUCKET} -io.min.folder=${IO_MIN_FOLDER} - ### grphql spring.graphql.path=/graphql spring.graphql.graphiql.enabled=true diff --git a/src/main/resources/graphql/schema.graphqls b/src/main/resources/graphql/schema.graphqls index fd1129a..f4fc54e 100644 --- a/src/main/resources/graphql/schema.graphqls +++ b/src/main/resources/graphql/schema.graphqls @@ -1,5 +1,4 @@ type Query { - getAllPermissions(page: Int, size: Int, sort: String, direction: String): [Permission] getPermission(id: String): Permission diff --git a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt index 9c1e180..7c3372c 100644 --- a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt +++ b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt @@ -8,7 +8,6 @@ import com.softeno.template.SoftenoReactiveMongoApp import com.softeno.template.app.permission.db.PermissionsReactiveRepository import com.softeno.template.app.user.db.UserReactiveRepository import com.softeno.template.fixture.PermissionFixture -import com.softeno.template.sample.http.dto.SampleResponseDto import io.mockk.every import kotlinx.coroutines.reactive.awaitFirstOrNull import kotlinx.coroutines.reactor.awaitSingle diff --git a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/PlaygroundTest.kt b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/PlaygroundTest.kt deleted file mode 100644 index f64a35a..0000000 --- a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/PlaygroundTest.kt +++ /dev/null @@ -1,86 +0,0 @@ -package com.softeno.template.sample.http.internal.reactive - -import com.softeno.template.playground.CoroutinePlayground -import com.softeno.template.playground.helloCoroutine -import com.softeno.template.playground.someError -import io.mockk.coEvery -import io.mockk.mockk -import io.mockk.mockkStatic -import io.mockk.unmockkStatic -import kotlinx.coroutines.test.runTest -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.CsvSource -import org.junit.jupiter.params.provider.ValueSource - -class PlaygroundTest { - - @Test - fun testHelloCoroutine() = runTest { - val result = helloCoroutine() - assertEquals("hello", result) - } - - @Test - fun testSomeError() = runTest { - val exception = assertThrows { someError() } - assertEquals(exception.message, "Some Error Occurred") - } - -} - -class PlaygroundMockTest { - - @Test - fun `test hello coroutine Mock`() = runTest { - // setup - mockkStatic("com.softeno.template.playground.CoroutinePlaygroundKt") - - // given - val mockedValue = "mockk" - coEvery { helloCoroutine() }.answers { mockedValue } - - // when - val result = helloCoroutine() - - // then - assertEquals(result, mockedValue) - - // clean up - unmockkStatic("com.softeno.template.playground.CoroutinePlaygroundKt") - } - - @ParameterizedTest(name = "{index} => input=''{0}''") - @ValueSource(strings = ["Hello", "World"]) - fun `test coroutine playground run mocked`(input: String) = runTest { - // given - val mockedValue = "mockk" - val coroutinePlayground = mockk() - coEvery { coroutinePlayground.sampleFunction(any()) }.answers { mockedValue } - - // when - val result = coroutinePlayground.sampleFunction(input) - - // then - assertEquals(result, mockedValue) - } - - - @ParameterizedTest - @CsvSource(value = ["test:test", "tEst:test", "Java:java"], delimiter = ':') - fun `test coroutine playground run mocked with multiple values`(a: String, b: String) = runTest { - // given - val mockedValue = "$a, $b" - val coroutinePlayground = mockk() - coEvery { coroutinePlayground.sampleFunction(any()) }.answers { mockedValue } - - // when - val result = coroutinePlayground.sampleFunction(a + b) - - // then - assertEquals(result, mockedValue) - } - -} \ No newline at end of file From 0c28d9a061c4910076b64dcd7660872535b700f2 Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Mon, 2 Mar 2026 11:02:34 +0100 Subject: [PATCH 2/5] migrate the spring boot from v3 to v4 --- build.gradle | 83 ++++++++-------- .../template/SoftenoReactiveMongoApp.kt | 10 -- .../template/app/common/PrincipalHandler.kt | 2 +- .../app/config/http/WebExceptionHandler.kt | 14 +-- .../opentelementry/OpenTelemetryConfig.kt | 28 ++++++ .../security/ReactiveMongoAuditorConfig.kt | 6 +- .../softeno/template/app/event/UserAction.kt | 17 ++-- .../app/kafka/KafkaKeycloakController.kt | 36 ++----- .../template/app/kafka/KafkaSampleHandler.kt | 93 +++++------------- .../template/app/kafka/config/KafkaConfig.kt | 86 ++++------------ .../app/user/{Service.kt => UserService.kt} | 4 +- .../app/user/api/reactive/ReactiveUsers.kt | 2 +- .../template/app/user/notification/Service.kt | 6 +- .../external/config/CircuitBreakerConfig.kt | 10 -- .../sample/websocket/CoroutineWebSocket.kt | 2 +- .../sample/websocket/ReactiveWebSocket.kt | 6 +- .../resources/application-local.properties | 5 + src/main/resources/application.properties | 45 ++++----- .../resources/config/env.template.properties | 8 -- src/main/resources/logback-spring.xml | 98 +++++++++---------- .../http/internal/reactive/IntegrationTest.kt | 66 +++++++------ src/test/resources/application.properties | 15 +-- 22 files changed, 263 insertions(+), 379 deletions(-) create mode 100644 src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt rename src/main/kotlin/com/softeno/template/app/user/{Service.kt => UserService.kt} (96%) create mode 100644 src/main/resources/application-local.properties diff --git a/build.gradle b/build.gradle index 5e94f78..849c0ee 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'org.springframework.boot' version '3.5.10' + id 'org.springframework.boot' version '4.0.2' id 'io.spring.dependency-management' version '1.1.7' id 'org.jetbrains.kotlin.jvm' version '2.2.21' id 'org.jetbrains.kotlin.plugin.spring' version '2.2.21' @@ -9,6 +9,12 @@ plugins { id 'application' } +ext { + set('springCloudVersion', '2025.1.1') + set('testcontainersVersion', '2.0.3') + set('springBootVersion', '4.0.2') +} + group = 'com.softeno' version = '0.0.1-SNAPSHOT' @@ -18,10 +24,6 @@ java { } } -ext { - set('springCloudVersion', '2025.0.1') - set('testcontainersVersion', '2.0.3') -} configurations { compileOnly { @@ -35,38 +37,43 @@ repositories { dependencies { // spring project dependencies - implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive' - implementation 'org.springframework.boot:spring-boot-starter-webflux' - implementation 'com.fasterxml.jackson.module:jackson-module-kotlin' + implementation "org.springframework.boot:spring-boot-starter-data-mongodb-reactive:${springBootVersion}" + implementation "org.springframework.boot:spring-boot-starter-webflux:${springBootVersion}" + implementation "org.springframework.boot:spring-boot-starter-webclient:${springBootVersion}" + implementation "org.springframework.boot:spring-boot-starter-jackson:${springBootVersion}" + developmentOnly "org.springframework.boot:spring-boot-devtools:${springBootVersion}" + annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}" implementation 'io.projectreactor.kotlin:reactor-kotlin-extensions' implementation 'org.jetbrains.kotlin:kotlin-reflect' - implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-reactor' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-reactive' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-slf4j' - developmentOnly 'org.springframework.boot:spring-boot-devtools' - annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' + implementation 'com.fasterxml.jackson.module:jackson-module-kotlin' // test utils - testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test' - testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5' + testImplementation "org.springframework.boot:spring-boot-starter-test:${springBootVersion}" + testImplementation "org.springframework.boot:spring-boot-starter-webflux-test:${springBootVersion}" + testImplementation "org.springframework.boot:spring-boot-webtestclient:${springBootVersion}" + testImplementation "org.springframework.boot:spring-boot-starter-jackson-test:${springBootVersion}" testImplementation 'io.projectreactor:reactor-test' testImplementation 'io.mockk:mockk:1.14.9' testImplementation 'com.ninja-squad:springmockk:4.0.2' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' + testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test' + testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5' // security - implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-resource-server' - implementation 'org.springframework.boot:spring-boot-starter-security' - testImplementation 'org.springframework.security:spring-security-test' + implementation "org.springframework.boot:spring-boot-starter-oauth2-client:${springBootVersion}" + implementation "org.springframework.boot:spring-boot-starter-oauth2-resource-server:${springBootVersion}" + implementation "org.springframework.boot:spring-boot-starter-security:${springBootVersion}" + testImplementation "org.springframework.security:spring-security-test:7.0.3" // testcontainers - testImplementation 'org.springframework.boot:spring-boot-testcontainers' - testImplementation 'org.testcontainers:mongodb' - testImplementation 'org.testcontainers:junit-jupiter' + testImplementation "org.springframework.boot:spring-boot-testcontainers:${springBootVersion}" + testImplementation "org.testcontainers:testcontainers-kafka:${testcontainersVersion}" + testImplementation "org.testcontainers:testcontainers-mongodb:${testcontainersVersion}" + testImplementation "org.testcontainers:testcontainers-junit-jupiter:${testcontainersVersion}" // wiremock testImplementation 'org.wiremock:wiremock-standalone:3.13.2' @@ -78,13 +85,12 @@ dependencies { kapt group: 'com.querydsl', name: 'querydsl-apt', version: '5.1.0' // graphql - implementation 'org.springframework.boot:spring-boot-starter-graphql' - testImplementation 'org.springframework.graphql:spring-graphql-test' + implementation "org.springframework.boot:spring-boot-starter-graphql:${springBootVersion}" + testImplementation "org.springframework.boot:spring-boot-starter-graphql-test:${springBootVersion}" // kafka - implementation 'org.springframework.kafka:spring-kafka' - implementation 'io.projectreactor.kafka:reactor-kafka' - testImplementation 'org.springframework.kafka:spring-kafka-test' + implementation "org.springframework.boot:spring-boot-starter-kafka:${springBootVersion}" + testImplementation "org.springframework.kafka:spring-kafka-test:${springBootVersion}" // circuit breaker implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j' @@ -94,21 +100,20 @@ dependencies { runtimeOnly("io.netty:netty-resolver-dns-native-macos:4.2.3.Final:${osdetector.classifier}") } - // monitoring - implementation 'org.springframework.boot:spring-boot-starter-actuator' - runtimeOnly 'io.micrometer:micrometer-registry-prometheus' - - // elk - implementation 'net.logstash.logback:logstash-logback-encoder:8.1' - // springdoc - implementation 'org.springdoc:springdoc-openapi-starter-common:2.8.15' - implementation 'org.springdoc:springdoc-openapi-starter-webflux-ui:2.8.15' + implementation 'org.springdoc:springdoc-openapi-starter-common:3.0.1' + implementation 'org.springdoc:springdoc-openapi-starter-webflux-ui:3.0.1' - // zipkin - implementation 'io.micrometer:micrometer-tracing-bridge-otel' - implementation 'io.opentelemetry:opentelemetry-exporter-zipkin' - implementation 'io.zipkin.reporter2:zipkin-sender-urlconnection' + // monitoring + runtimeOnly 'io.micrometer:micrometer-registry-prometheus' + implementation "org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}" + + // opentelemetry + implementation "org.springframework.boot:spring-boot-starter-opentelemetry:${springBootVersion}" + testImplementation "org.springframework.boot:spring-boot-starter-opentelemetry-test:${springBootVersion}" + implementation "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:2.25.0-alpha" + implementation "io.micrometer:micrometer-tracing-bridge-otel" + implementation "io.micrometer:context-propagation" } dependencyManagement { diff --git a/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt b/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt index a0be754..71dbea2 100644 --- a/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt +++ b/src/main/kotlin/com/softeno/template/SoftenoReactiveMongoApp.kt @@ -33,13 +33,3 @@ class SpringApplicationReadyEventListener { } } -@Component -@Profile("playgroud") -class SpringApplicationReadyEventListenerPlayground { - private val logger = LoggerFactory.getLogger(this::class.java) - - @EventListener - fun onApplicationReady(event: ApplicationReadyEvent) { - // ... - } -} diff --git a/src/main/kotlin/com/softeno/template/app/common/PrincipalHandler.kt b/src/main/kotlin/com/softeno/template/app/common/PrincipalHandler.kt index 281290b..a8e37cf 100644 --- a/src/main/kotlin/com/softeno/template/app/common/PrincipalHandler.kt +++ b/src/main/kotlin/com/softeno/template/app/common/PrincipalHandler.kt @@ -11,7 +11,7 @@ interface PrincipalHandler { suspend fun showPrincipal(log: Log, monoPrincipal: Mono){ val principal = monoPrincipal.awaitSingleOrNull() log.debug("principal: $principal, name: ${principal?.name}") - val authentication = ReactiveSecurityContextHolder.getContext().map { it.authentication }.awaitSingleOrNull() + val authentication = ReactiveSecurityContextHolder.getContext().mapNotNull { it.authentication }.awaitSingleOrNull() if (authentication != null) { val token = (authentication as JwtAuthenticationToken).token val userId = token.claims["sub"] diff --git a/src/main/kotlin/com/softeno/template/app/config/http/WebExceptionHandler.kt b/src/main/kotlin/com/softeno/template/app/config/http/WebExceptionHandler.kt index 40079bf..90f8e0b 100644 --- a/src/main/kotlin/com/softeno/template/app/config/http/WebExceptionHandler.kt +++ b/src/main/kotlin/com/softeno/template/app/config/http/WebExceptionHandler.kt @@ -3,9 +3,9 @@ package com.softeno.template.app.config.http import com.softeno.template.sample.http.external.coroutine.ExternalServiceException import org.apache.commons.logging.LogFactory import org.springframework.boot.autoconfigure.web.WebProperties -import org.springframework.boot.autoconfigure.web.reactive.error.AbstractErrorWebExceptionHandler import org.springframework.boot.web.error.ErrorAttributeOptions -import org.springframework.boot.web.reactive.error.ErrorAttributes +import org.springframework.boot.webflux.autoconfigure.error.AbstractErrorWebExceptionHandler +import org.springframework.boot.webflux.error.ErrorAttributes import org.springframework.context.ApplicationContext import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @@ -44,19 +44,19 @@ class GlobalErrorWebExceptionHandler( private val log = LogFactory.getLog(javaClass) - override fun getRoutingFunction(errorAttributes: ErrorAttributes?): RouterFunction { + override fun getRoutingFunction(errorAttributes: ErrorAttributes): RouterFunction { return RouterFunctions.route( RequestPredicates.all() ) { request: ServerRequest -> renderErrorResponse(request) } } - private fun getCustomErrorAttributes(request: ServerRequest, includeStackTrace: Boolean): Map { + private fun getCustomErrorAttributes(request: ServerRequest, includeStackTrace: Boolean): Map { val options: ErrorAttributeOptions = if (includeStackTrace) { ErrorAttributeOptions.of(ErrorAttributeOptions.Include.STACK_TRACE) } else { ErrorAttributeOptions.defaults() } - val errorAttributes: MutableMap = this.getErrorAttributes(request, options) + val errorAttributes = this.getErrorAttributes(request, options) val error = getError(request) log.error("[exception handler]: Handling exception: $error") @@ -70,7 +70,7 @@ class GlobalErrorWebExceptionHandler( // ... } - errorAttributes["message"] = error.message ?: "" // note: custom message + errorAttributes["message"] = error?.message ?: "" // note: custom message errorAttributes["status"] = httpStatus.value() errorAttributes.remove("trace") // note: trace (stacktrace) omitted, can be also configured by: `includeStackTrace = false` @@ -81,7 +81,7 @@ class GlobalErrorWebExceptionHandler( return errorAttributes } - private fun renderErrorResponse(request: ServerRequest): Mono { + private fun renderErrorResponse(request: ServerRequest): Mono { val errorPropertiesMap = getCustomErrorAttributes(request, includeStackTrace = true) log.warn( diff --git a/src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt b/src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt new file mode 100644 index 0000000..5b5f257 --- /dev/null +++ b/src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt @@ -0,0 +1,28 @@ +package com.softeno.template.app.config.opentelementry + +import io.opentelemetry.api.OpenTelemetry +import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender +import org.springframework.beans.factory.InitializingBean +import org.springframework.context.annotation.Bean +import org.springframework.context.annotation.Configuration +import org.springframework.core.task.support.ContextPropagatingTaskDecorator +import org.springframework.stereotype.Component + + +@Component +class InstallOpenTelemetryAppender( + private val openTelemetry: OpenTelemetry +) : InitializingBean { + + override fun afterPropertiesSet() { + OpenTelemetryAppender.install(openTelemetry) + } +} + +@Configuration(proxyBeanMethods = false) +class ContextPropagationConfiguration { + @Bean + fun contextPropagatingTaskDecorator(): ContextPropagatingTaskDecorator { + return ContextPropagatingTaskDecorator() + } +} diff --git a/src/main/kotlin/com/softeno/template/app/config/security/ReactiveMongoAuditorConfig.kt b/src/main/kotlin/com/softeno/template/app/config/security/ReactiveMongoAuditorConfig.kt index f428383..85e0904 100644 --- a/src/main/kotlin/com/softeno/template/app/config/security/ReactiveMongoAuditorConfig.kt +++ b/src/main/kotlin/com/softeno/template/app/config/security/ReactiveMongoAuditorConfig.kt @@ -1,6 +1,5 @@ package com.softeno.template.app.config.security -import org.apache.commons.logging.LogFactory import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import org.springframework.data.domain.ReactiveAuditorAware @@ -13,12 +12,11 @@ import reactor.core.publisher.Mono class AuditorAwareImpl : ReactiveAuditorAware { - private val log = LogFactory.getLog(javaClass) override fun getCurrentAuditor(): Mono { return ReactiveSecurityContextHolder.getContext() - .map(SecurityContext::getAuthentication) - .map(Authentication::getPrincipal) + .mapNotNull(SecurityContext::getAuthentication) + .mapNotNull(Authentication::getPrincipal) .switchIfEmpty(Mono.just("anonymous")) .flatMap { principal -> if (principal is Jwt) { diff --git a/src/main/kotlin/com/softeno/template/app/event/UserAction.kt b/src/main/kotlin/com/softeno/template/app/event/UserAction.kt index a8c62f6..5d39499 100644 --- a/src/main/kotlin/com/softeno/template/app/event/UserAction.kt +++ b/src/main/kotlin/com/softeno/template/app/event/UserAction.kt @@ -1,34 +1,29 @@ package com.softeno.template.app.event import com.softeno.template.app.kafka.KafkaMessage -import com.softeno.template.app.kafka.ReactiveKafkaSampleProducer +import com.softeno.template.app.kafka.KafkaSampleProducer import kotlinx.coroutines.DelicateCoroutinesApi import org.apache.commons.logging.LogFactory -import org.slf4j.MDC import org.springframework.context.ApplicationEvent import org.springframework.context.ApplicationListener import org.springframework.stereotype.Component -data class UserAction(val source: String, val traceId: String? = null, val spanId: String? = null) : ApplicationEvent(source) +data class UserAction(val source: String) : ApplicationEvent(source) @Component class SampleApplicationEventPublisher( - private val reactiveKafkaProducer: ReactiveKafkaSampleProducer, + private val kafkaProducer: KafkaSampleProducer, ) : ApplicationListener { private val log = LogFactory.getLog(javaClass) @OptIn(DelicateCoroutinesApi::class) override fun onApplicationEvent(event: UserAction) { - // note: propagate traceId and spanId in MDC context - if (!event.spanId.isNullOrBlank() && !event.traceId.isNullOrBlank()) { - MDC.put("traceId", event.traceId) - MDC.put("spanId", event.spanId) - } log.debug("[app event handler]: Received event: $event") - reactiveKafkaProducer.send(event.toKafkaMessage()) + + kafkaProducer.send(event.toKafkaMessage()) } } -fun UserAction.toKafkaMessage() = KafkaMessage(content = this.source, traceId = this.traceId, spanId = this.spanId) +fun UserAction.toKafkaMessage() = KafkaMessage(content = this.source) diff --git a/src/main/kotlin/com/softeno/template/app/kafka/KafkaKeycloakController.kt b/src/main/kotlin/com/softeno/template/app/kafka/KafkaKeycloakController.kt index 2462e96..6a53b31 100644 --- a/src/main/kotlin/com/softeno/template/app/kafka/KafkaKeycloakController.kt +++ b/src/main/kotlin/com/softeno/template/app/kafka/KafkaKeycloakController.kt @@ -3,41 +3,23 @@ package com.softeno.template.app.kafka import com.fasterxml.jackson.annotation.JsonCreator import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.databind.JsonNode -import com.fasterxml.jackson.databind.ObjectMapper import org.apache.commons.logging.LogFactory import org.apache.kafka.clients.consumer.ConsumerRecord -import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.boot.CommandLineRunner -import org.springframework.kafka.core.reactive.ReactiveKafkaConsumerTemplate +import org.springframework.kafka.annotation.KafkaListener import org.springframework.stereotype.Controller -import reactor.core.publisher.Flux +import tools.jackson.databind.ObjectMapper @Controller -class ReactiveKafkaKeycloakController( - @param:Qualifier(value = "kafkaKeycloakConsumerTemplate") private val reactiveKafkaConsumerTemplate: ReactiveKafkaConsumerTemplate, +class KafkaKeycloakController( private val objectMapper: ObjectMapper -) : CommandLineRunner { +) { private val log = LogFactory.getLog(javaClass) - private fun consumeKafkaMessage(): Flux { - return reactiveKafkaConsumerTemplate - .receiveAutoAck() - .doOnNext { consumerRecord: ConsumerRecord -> - log.debug("[kafka] rx keycloak: ConsumerRecord: key=${consumerRecord.key()}, value=${consumerRecord.value()} from topic=${consumerRecord.topic()}, offset=${consumerRecord.offset()}") - } - .map { obj: ConsumerRecord -> obj.value() } - .doOnNext { message: JsonNode -> - val dto: KeycloakUserEvent = objectMapper.readValue(message.toString(), KeycloakUserEvent::class.java) - log.info("[kafka] rx keycloak: $dto") - } - .doOnError { throwable: Throwable -> - log.error("[kafka] keycloak: ${throwable.message}") - } - } - - override fun run(vararg args: String) { - log.info("[kafka]: keycloak consumer starts") - consumeKafkaMessage().subscribe() + @KafkaListener(id = "\${spring.kafka.consumer.group-id}-keycloak", topics = ["\${com.softeno.kafka.keycloak}"]) + suspend fun listen(record: ConsumerRecord) { + log.debug("[kafka] rx keycloak raw: ${record.key()}: ${record.value()}") + val dto: KeycloakUserEvent = objectMapper.readValue(record.value().toString(), KeycloakUserEvent::class.java) + log.info("[kafka] rx keycloak mapped: $dto") } } diff --git a/src/main/kotlin/com/softeno/template/app/kafka/KafkaSampleHandler.kt b/src/main/kotlin/com/softeno/template/app/kafka/KafkaSampleHandler.kt index e4843e6..2d05c55 100644 --- a/src/main/kotlin/com/softeno/template/app/kafka/KafkaSampleHandler.kt +++ b/src/main/kotlin/com/softeno/template/app/kafka/KafkaSampleHandler.kt @@ -3,99 +3,58 @@ package com.softeno.template.app.kafka import com.fasterxml.jackson.annotation.JsonIgnoreProperties import com.fasterxml.jackson.databind.JsonNode -import com.fasterxml.jackson.databind.ObjectMapper -import com.softeno.template.app.kafka.config.KafkaApplicationProperties import com.softeno.template.app.user.notification.CoroutineUserUpdateEmitter import com.softeno.template.app.user.notification.ReactiveUserUpdateEmitter import com.softeno.template.sample.websocket.Message import com.softeno.template.sample.websocket.WebSocketNotificationSender -import io.micrometer.tracing.Span -import io.micrometer.tracing.Tracer -import kotlinx.coroutines.DelicateCoroutinesApi -import org.apache.commons.lang3.RandomUtils import org.apache.commons.logging.LogFactory import org.apache.kafka.clients.consumer.ConsumerRecord -import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.boot.CommandLineRunner -import org.springframework.kafka.core.reactive.ReactiveKafkaConsumerTemplate -import org.springframework.kafka.core.reactive.ReactiveKafkaProducerTemplate +import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.kafka.annotation.KafkaListener +import org.springframework.kafka.core.KafkaTemplate +import org.springframework.stereotype.Component import org.springframework.stereotype.Controller -import org.springframework.stereotype.Service -import reactor.core.publisher.Flux -import reactor.kafka.sender.SenderResult +import tools.jackson.databind.ObjectMapper @JsonIgnoreProperties(ignoreUnknown = true) -data class KafkaMessage(val content: String, val traceId: String? = null, val spanId: String? = null) +data class KafkaMessage(val content: String) fun KafkaMessage.toMessage() = Message(from = "SYSTEM", to = "ALL", content = this.content) +@ConfigurationProperties(prefix = "com.softeno.kafka") +data class KafkaApplicationProperties(val tx: String, val rx: String, val keycloak: String) + @Controller -class ReactiveKafkaSampleController( - @param:Qualifier(value = "kafkaSampleConsumerTemplate") private val reactiveKafkaConsumerTemplate: ReactiveKafkaConsumerTemplate, - private val objectMapper: ObjectMapper, - private val tracer: Tracer, +class KafkaSampleController( + private val props: KafkaApplicationProperties, private val ws: WebSocketNotificationSender, private val reactiveUserUpdateEmitter: ReactiveUserUpdateEmitter, private val userUpdateEmitter: CoroutineUserUpdateEmitter, -) : CommandLineRunner { + private val objectMapper: ObjectMapper +) { private val log = LogFactory.getLog(javaClass) - @OptIn(DelicateCoroutinesApi::class) - private fun consumeKafkaMessage(): Flux { - return reactiveKafkaConsumerTemplate - .receiveAutoAck() - .doOnNext { consumerRecord: ConsumerRecord -> - log.debug("[kafka] rx sample: ConsumerRecord: key=${consumerRecord.key()}, " + - "value=${consumerRecord.value()} from topic=${consumerRecord.topic()}, " + - "offset=${consumerRecord.offset()}, headers=${consumerRecord.headers()}") - } - .map { obj: ConsumerRecord -> obj.value() } - .doOnNext { message: JsonNode -> - val kafkaMessage: KafkaMessage = objectMapper.readValue(message.toString(), KafkaMessage::class.java) + @KafkaListener(id = "\${spring.kafka.consumer.group-id}", topics = ["\${com.softeno.kafka.rx}"]) + fun listen(record: ConsumerRecord) { + log.info("[kafka] rx (${props.rx}): ${record.key()}: ${record.value()}") - // todo: make better observation handling by reactive kafka, currently the zipkin does not show the traces properly - val contextWithCustomTraceId = tracer.traceContextBuilder() - .traceId(kafkaMessage.traceId ?: RandomUtils.secure().toString()) - .spanId(tracer.nextSpan().name("kafka-consumer").context().spanId()) - .parentId(kafkaMessage.spanId ?: (tracer.currentSpan()?.context()?.spanId() ?: Span.NOOP.context().spanId())) - .sampled(true) - .build() + val kafkaMessage: KafkaMessage = objectMapper.readValue(record.value().toString(), KafkaMessage::class.java) - tracer.currentTraceContext().newScope(contextWithCustomTraceId).use { - val span = tracer.nextSpan().name("kafka-consumer") - tracer.withSpan(span.start()).use { - log.info("[kafka] rx sample: $kafkaMessage") - ws.broadcast(kafkaMessage.toMessage()) - reactiveUserUpdateEmitter.broadcast(kafkaMessage.toMessage()) - userUpdateEmitter.broadcast(kafkaMessage.toMessage()) - } - span.end() - } - } - .doOnError { throwable: Throwable -> - log.error("[kafka] sample: ${throwable.message}") - } - } - - override fun run(vararg args: String) { - log.info("[kafka] sample: consumer starts") - consumeKafkaMessage().subscribe() + ws.broadcast(kafkaMessage.toMessage()) + reactiveUserUpdateEmitter.broadcast(kafkaMessage.toMessage()) + userUpdateEmitter.broadcast(kafkaMessage.toMessage()) } } -@Service -class ReactiveKafkaSampleProducer( - @param:Qualifier(value = "kafkaSampleProducerTemplate") private val reactiveKafkaProducerTemplate: ReactiveKafkaProducerTemplate, +@Component +class KafkaSampleProducer( + private val producer: KafkaTemplate, private val props: KafkaApplicationProperties ) { private val log = LogFactory.getLog(javaClass) fun send(message: KafkaMessage) { - log.info("[kafka] tx: topic: ${props.tx}, message: $message") - reactiveKafkaProducerTemplate.send(props.tx, message) - .doOnSuccess { senderResult: SenderResult -> - log.info("[kafka] tx ok, offset: ${senderResult.recordMetadata().offset()}") - } - .subscribe() + log.info("[kafka] tx (${props.tx}): $message") + producer.send(props.tx, message) } -} \ No newline at end of file +} diff --git a/src/main/kotlin/com/softeno/template/app/kafka/config/KafkaConfig.kt b/src/main/kotlin/com/softeno/template/app/kafka/config/KafkaConfig.kt index fc9efee..8eb29a5 100644 --- a/src/main/kotlin/com/softeno/template/app/kafka/config/KafkaConfig.kt +++ b/src/main/kotlin/com/softeno/template/app/kafka/config/KafkaConfig.kt @@ -3,82 +3,34 @@ package com.softeno.template.app.kafka.config import com.fasterxml.jackson.databind.JsonNode import com.softeno.template.app.kafka.KafkaMessage import io.micrometer.observation.ObservationRegistry -import org.springframework.beans.factory.annotation.Qualifier -import org.springframework.boot.autoconfigure.kafka.KafkaProperties -import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration -import org.springframework.kafka.core.reactive.ReactiveKafkaConsumerTemplate -import org.springframework.kafka.core.reactive.ReactiveKafkaProducerTemplate -import org.springframework.kafka.support.converter.ByteArrayJsonMessageConverter -import org.springframework.kafka.support.converter.JsonMessageConverter -import reactor.kafka.receiver.ReceiverOptions -import reactor.kafka.receiver.observation.KafkaReceiverObservation -import reactor.kafka.sender.SenderOptions -import reactor.kafka.sender.observation.KafkaSenderObservation -import java.util.* - - -@ConfigurationProperties(prefix = "com.softeno.kafka") -data class KafkaApplicationProperties(val tx: String, val rx: String, val keycloak: String) - -@Configuration -class JsonMessageConverterConfig { - @Bean - fun jsonMessageConverter(): JsonMessageConverter { - return ByteArrayJsonMessageConverter() - } -} +import org.springframework.kafka.config.ConcurrentKafkaListenerContainerFactory +import org.springframework.kafka.core.ConsumerFactory +import org.springframework.kafka.core.KafkaTemplate +import org.springframework.kafka.core.ProducerFactory @Configuration -class ReactiveKafkaSampleConsumerConfig { - @Bean(value = ["kafkaSampleOptions"]) - fun kafkaReceiverOptions( - kafkaProperties: KafkaProperties, - props: KafkaApplicationProperties, - observationRegistry: ObservationRegistry - ): ReceiverOptions { - val basicReceiverOptions: ReceiverOptions = - ReceiverOptions.create(kafkaProperties.buildConsumerProperties(null)) - val basicReceiverOptionsWithObs = basicReceiverOptions - // todo: make better observation handling by reactive kafka, currently the zipkin does not show the traces properly - .withObservation(observationRegistry, KafkaReceiverObservation.DefaultKafkaReceiverObservationConvention() - ) - return basicReceiverOptionsWithObs.subscription(Collections.singletonList(props.rx)) - } +class KafkaConsumerConfig { - @Bean(value = ["kafkaSampleConsumerTemplate"]) - fun reactiveKafkaConsumerTemplate(@Qualifier(value = "kafkaSampleOptions") kafkaReceiverOptions: ReceiverOptions): ReactiveKafkaConsumerTemplate { - return ReactiveKafkaConsumerTemplate(kafkaReceiverOptions) - } -} - -@Configuration -class ReactiveKafkaSampleProducerConfig { - @Bean(value = ["kafkaSampleProducerTemplate"]) - fun reactiveKafkaProducerTemplate(properties: KafkaProperties, observationRegistry: ObservationRegistry): ReactiveKafkaProducerTemplate { - val props = properties.buildProducerProperties(null) - val options = SenderOptions.create(props) - // todo: make better observation handling by reactive kafka, currently the zipkin does not show the traces properly - .withObservation(observationRegistry, KafkaSenderObservation.DefaultKafkaSenderObservationConvention()) - return ReactiveKafkaProducerTemplate(options) + @Bean + fun kafkaListenerContainerFactory(consumerFactory: ConsumerFactory, registry: ObservationRegistry): ConcurrentKafkaListenerContainerFactory { + val factory = ConcurrentKafkaListenerContainerFactory() + factory.setConsumerFactory(consumerFactory) + factory.containerProperties.isObservationEnabled = true + factory.containerProperties.observationRegistry = registry + return factory } } @Configuration -class ReactiveKafkaKeycloakConsumerConfig { - @Bean(value = ["kafkaKeycloakOptions"]) - fun kafkaReceiverOptions( - kafkaProperties: KafkaProperties, - props: KafkaApplicationProperties - ): ReceiverOptions { - val basicReceiverOptions: ReceiverOptions = - ReceiverOptions.create(kafkaProperties.buildConsumerProperties(null)) - return basicReceiverOptions.subscription(Collections.singletonList(props.keycloak)) - } +class KafkaProducerConfig { - @Bean(value = ["kafkaKeycloakConsumerTemplate"]) - fun reactiveKafkaConsumerTemplate(@Qualifier(value = "kafkaKeycloakOptions") kafkaReceiverOptions: ReceiverOptions): ReactiveKafkaConsumerTemplate { - return ReactiveKafkaConsumerTemplate(kafkaReceiverOptions) + @Bean + fun kafkaTemplate(producerFactory: ProducerFactory, registry: ObservationRegistry): KafkaTemplate { + return KafkaTemplate(producerFactory).apply { + setObservationEnabled(true) + setObservationRegistry(registry) + } } } \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/app/user/Service.kt b/src/main/kotlin/com/softeno/template/app/user/UserService.kt similarity index 96% rename from src/main/kotlin/com/softeno/template/app/user/Service.kt rename to src/main/kotlin/com/softeno/template/app/user/UserService.kt index 13c0055..53ab4e6 100644 --- a/src/main/kotlin/com/softeno/template/app/user/Service.kt +++ b/src/main/kotlin/com/softeno/template/app/user/UserService.kt @@ -37,8 +37,6 @@ class UserService( ) : PrincipalHandler { private val log = LogFactory.getLog(javaClass) - // note: used by http rest controller to return users with mapped permissions -// @ContinueSpan suspend fun getAll( page: Int, size: Int, @@ -77,7 +75,7 @@ class UserService( log.info("User created: $user") applicationEventPublisher.publishEvent( - UserAction("USER_CREATED: ${user.id}", traceId = MDC.get("traceId"), spanId = MDC.get("spanId")) + UserAction("USER_CREATED: ${user.id}") ) return@withContext user } diff --git a/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt b/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt index 75ca2f6..569546a 100644 --- a/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt +++ b/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt @@ -55,7 +55,7 @@ class ReactiveUserController( version = null ) }.flatMap { e -> userReactiveRepository.save(e) } - .doOnSuccess { applicationEventPublisher.publishEvent(UserAction("USER_CREATED_REACTIVE: ${it.id}")) } + .doOnSuccess { applicationEventPublisher.publishEvent(UserAction("USER_CREATED_REACTIVE: ${it?.id}")) } .zipWith(permissions) .map { tuple -> tuple.t1.toDomain(tuple.t2.map { it.toDomain() }).toDto() } } diff --git a/src/main/kotlin/com/softeno/template/app/user/notification/Service.kt b/src/main/kotlin/com/softeno/template/app/user/notification/Service.kt index 523e2ed..6936708 100644 --- a/src/main/kotlin/com/softeno/template/app/user/notification/Service.kt +++ b/src/main/kotlin/com/softeno/template/app/user/notification/Service.kt @@ -1,6 +1,5 @@ package com.softeno.template.app.user.notification -import com.fasterxml.jackson.databind.ObjectMapper import com.softeno.template.sample.websocket.Message import com.softeno.template.sample.websocket.toJson import kotlinx.coroutines.channels.BufferOverflow @@ -14,6 +13,7 @@ import org.springframework.stereotype.Service import reactor.core.publisher.Flux import reactor.core.publisher.Mono import reactor.core.publisher.Sinks +import tools.jackson.databind.ObjectMapper import java.time.Duration import kotlin.coroutines.cancellation.CancellationException @@ -87,6 +87,10 @@ class ReactiveUserUpdateEmitter( log.warn("[reactive] Failed to broadcast message - buffer overflow") false } + Sinks.EmitResult.FAIL_ZERO_SUBSCRIBER -> { + log.warn("[reactive] Failed to broadcast message - no subscribers") + false + } else -> { log.error("[reactive] Failed to broadcast message: $result") false diff --git a/src/main/kotlin/com/softeno/template/sample/http/external/config/CircuitBreakerConfig.kt b/src/main/kotlin/com/softeno/template/sample/http/external/config/CircuitBreakerConfig.kt index f797a30..a9e0908 100644 --- a/src/main/kotlin/com/softeno/template/sample/http/external/config/CircuitBreakerConfig.kt +++ b/src/main/kotlin/com/softeno/template/sample/http/external/config/CircuitBreakerConfig.kt @@ -1,26 +1,16 @@ package com.softeno.template.sample.http.external.config import io.github.resilience4j.circuitbreaker.CircuitBreakerConfig -import io.github.resilience4j.circuitbreaker.CircuitBreakerRegistry import io.github.resilience4j.timelimiter.TimeLimiterConfig -import io.github.resilience4j.timelimiter.TimeLimiterRegistry import org.springframework.cloud.circuitbreaker.resilience4j.ReactiveResilience4JCircuitBreakerFactory import org.springframework.cloud.circuitbreaker.resilience4j.Resilience4JConfigBuilder import org.springframework.cloud.client.circuitbreaker.Customizer -import org.springframework.cloud.client.circuitbreaker.ReactiveCircuitBreakerFactory import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration import java.time.Duration - @Configuration class ReactiveCircuitBreakerConfig { - @Bean - fun reactiveResilience4JCircuitBreakerFactory(): ReactiveCircuitBreakerFactory<*, *> { - val circuitBreakerRegistry = CircuitBreakerRegistry.ofDefaults() - val timeLimiterRegistry = TimeLimiterRegistry.ofDefaults() - return ReactiveResilience4JCircuitBreakerFactory(circuitBreakerRegistry, timeLimiterRegistry, null,null) - } @Bean fun defaultCustomizer(): Customizer { diff --git a/src/main/kotlin/com/softeno/template/sample/websocket/CoroutineWebSocket.kt b/src/main/kotlin/com/softeno/template/sample/websocket/CoroutineWebSocket.kt index eceb9e0..dcbc2ab 100644 --- a/src/main/kotlin/com/softeno/template/sample/websocket/CoroutineWebSocket.kt +++ b/src/main/kotlin/com/softeno/template/sample/websocket/CoroutineWebSocket.kt @@ -1,6 +1,5 @@ package com.softeno.template.sample.websocket -import com.fasterxml.jackson.databind.ObjectMapper import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.flow.Flow @@ -24,6 +23,7 @@ import org.springframework.web.reactive.socket.WebSocketHandler import org.springframework.web.reactive.socket.WebSocketSession import org.springframework.web.reactive.socket.server.support.WebSocketHandlerAdapter import reactor.core.publisher.Mono +import tools.jackson.databind.ObjectMapper import java.time.Instant import java.util.concurrent.ConcurrentHashMap import kotlin.coroutines.CoroutineContext diff --git a/src/main/kotlin/com/softeno/template/sample/websocket/ReactiveWebSocket.kt b/src/main/kotlin/com/softeno/template/sample/websocket/ReactiveWebSocket.kt index 044c160..418f553 100644 --- a/src/main/kotlin/com/softeno/template/sample/websocket/ReactiveWebSocket.kt +++ b/src/main/kotlin/com/softeno/template/sample/websocket/ReactiveWebSocket.kt @@ -1,6 +1,5 @@ package com.softeno.template.sample.websocket -import com.fasterxml.jackson.databind.ObjectMapper import org.apache.commons.logging.LogFactory import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty import org.springframework.boot.context.properties.ConfigurationProperties @@ -19,6 +18,7 @@ import reactor.core.Disposable import reactor.core.publisher.Flux import reactor.core.publisher.Sinks import reactor.core.publisher.Sinks.Many +import tools.jackson.databind.ObjectMapper import java.time.Duration import java.time.Instant import java.util.concurrent.ConcurrentHashMap @@ -61,7 +61,7 @@ class WebSocketConfig( val handshake = Message(from = "SYSTEM", to = session.id, content = "HANDSHAKE") reactiveMessageService.send(handshake, session) - val authentication = ReactiveSecurityContextHolder.getContext().map { it.authentication } + val authentication = ReactiveSecurityContextHolder.getContext().mapNotNull { it.authentication } val userIdMessage: Flux = authentication.flux().map { val token = (it as JwtAuthenticationToken).token val userId = token.claims["sub"] @@ -103,7 +103,7 @@ class WebSocketConfig( } } catch (e: Exception) { log.error("ws: [chat] failed to parse message: ${wsMessage.payloadAsText}", e) - // optionally send error message back to client + // optionally send an error message back to a client } }.doOnError { error -> log.error("ws: [chat] error in session: ${session.id}", error) diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties new file mode 100644 index 0000000..f5ffa89 --- /dev/null +++ b/src/main/resources/application-local.properties @@ -0,0 +1,5 @@ +spring.main.allow-bean-definition-overriding=true + +management.tracing.export.otlp.enabled=false +management.logging.export.otlp.enabled=false +management.otlp.metrics.export.enabled=false \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a0f9d64..bcf61c6 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,17 +4,13 @@ spring.main.allow-bean-definition-overriding=false server.port=8080 spring.application.name=SoftenoReactiveMongoApp -spring.data.mongodb.host=${MONGO_HOST} -spring.data.mongodb.port=${MONGO_PORT} -spring.data.mongodb.username=${MONGO_USER} -spring.data.mongodb.password=${MONGO_PASSWORD} -spring.data.mongodb.database=${MONGO_DB} +spring.mongodb.host=${MONGO_HOST} +spring.mongodb.port=${MONGO_PORT} +spring.mongodb.username=${MONGO_USER} +spring.mongodb.password=${MONGO_PASSWORD} +spring.mongodb.database=${MONGO_DB} spring.data.mongodb.auto-index-creation=true -spring.rsocket.server.mapping-path=/rsocket -spring.rsocket.server.transport=websocket -spring.rsocket.server.port=8081 - spring.kafka.bootstrap-servers=${KAFKA_URL} spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer @@ -26,7 +22,6 @@ spring.kafka.properties.spring.json.trusted.packages=* spring.kafka.consumer.properties.spring.json.use.type.headers=false spring.kafka.consumer.properties.spring.json.value.default.type=com.fasterxml.jackson.databind.JsonNode -com.softeno.scheduled-tasks=false com.softeno.kafka.tx=${KAFKA_TOPIC_TX} com.softeno.kafka.rx=${KAFKA_TOPIC_RX} com.softeno.kafka.keycloak=${KAFKA_KEYCLOAK} @@ -59,36 +54,38 @@ spring.security.oauth2.client.provider.keycloak.token-uri=${OAUTH_TOKEN_URI} spring.security.oauth2.client.provider.keycloak.user-info-uri=${OAUTH_USER_INFO_URI} spring.security.oauth2.client.provider.keycloak.jwk-set-uri=${OAUTH_JWK_SET_URI} +# metrics, prometheus & actuator management.endpoints.web.base-path=/actuator management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always -management.endpoint.metrics.enabled=true -management.endpoint.prometheus.enabled=true springdoc.api-docs.enabled=true springdoc.api-docs.path=/v3/api-docs springdoc.swagger-ui.path=/swagger-ui.html ### grphql -spring.graphql.path=/graphql +spring.graphql.http.path=/graphql spring.graphql.graphiql.enabled=true spring.graphql.graphiql.path=/graphiql spring.graphql.cors.allowed-origins=* spring.graphql.cors.allowed-headers=* spring.graphql.cors.allowed-methods=* -## observation & zipkin -management.tracing.enabled=true -management.zipkin.tracing.endpoint=${ZIPKIN_URL} +# metrics, prometheus & actuator +management.otlp.metrics.export.url=http://localhost:4318/v1/metrics +management.opentelemetry.tracing.export.otlp.endpoint=http://localhost:4318/v1/traces +management.opentelemetry.logging.export.otlp.endpoint=http://localhost:4318/v1/logs management.tracing.sampling.probability=1.0 -management.tracing.propagation.consume=b3 -management.tracing.propagation.produce=b3 -management.tracing.propagation.type=b3 -spring.kafka.template.observation-enabled=true -spring.kafka.listener.observation-enabled=true -management.tracing.baggage.correlation.enabled=true +spring.reactor.context-propagation=auto + +management.tracing.propagation.consume=w3c +management.tracing.propagation.produce=w3c +management.tracing.propagation.type=w3c + management.tracing.baggage.enabled=true -management.tracing.baggage.correlation.fields=spanId,traceId +management.tracing.baggage.correlation.enabled=true -management.otlp.metrics.export.enabled=true +# fix for tracing logs +management.observations.enable.spring.security=false +logging.level.io.micrometer.observation.contextpropagation.ObservationThreadLocalAccessor=ERROR \ No newline at end of file diff --git a/src/main/resources/config/env.template.properties b/src/main/resources/config/env.template.properties index 6093509..b7d0db9 100644 --- a/src/main/resources/config/env.template.properties +++ b/src/main/resources/config/env.template.properties @@ -22,11 +22,3 @@ OAUTH_GRANT_TYPE= EXTERNAL_URL= EXTERNAL_NAME= EXTERNAL_GRAPH_QL= - -ZIPKIN_URL= - -IO_MIN_NAME= -IO_MIN_PASSWORD= -IO_MIN_URL= -IO_MIN_BUCKET= -IO_MIN_FOLDER= diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 3c8f9d7..1b51c47 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -12,77 +12,67 @@ - + + ${LOGS}/spring-boot-logger.log + + %d %p %C [%t] %m%n + + + + + ${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log + + + 10MB + + + + + + + + - + + + + + + + + + - - - - - ${LOGSTASH_HOST}:${LOGSTASH_PORT} - - - - - - { - "application": "${projectName}", - "timestamp": "%d{yyyy-MM-dd'T'HH:mm:ss.SSSZZ}", - "logger": "%logger", - "trace": "%X{traceId:-}", - "span": "%X{spanId:-}", - "thread": "%thread", - "level": "%level", - "message": "%message" - } - - - - - 2048 - 32768 - 256 - true - - - - - - - ${LOGS}/spring-boot-logger.log - - %d %p %C [%t] %m%n - - - - - ${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log - - - 10MB - - - - + - - + - + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt index 7c3372c..d84b210 100644 --- a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt +++ b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt @@ -22,22 +22,24 @@ import org.junit.jupiter.api.TestInstance import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.context.properties.ConfigurationPropertiesScan import org.springframework.boot.context.properties.EnableConfigurationProperties -import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache -import org.springframework.boot.test.autoconfigure.graphql.AutoConfigureGraphQl -import org.springframework.boot.test.autoconfigure.graphql.tester.AutoConfigureGraphQlTester +import org.springframework.boot.graphql.test.autoconfigure.AutoConfigureGraphQl +import org.springframework.boot.graphql.test.autoconfigure.tester.AutoConfigureGraphQlTester import org.springframework.boot.test.autoconfigure.json.AutoConfigureJson -import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.util.TestPropertyValues -import org.springframework.context.ApplicationContextInitializer -import org.springframework.context.ConfigurableApplicationContext +import org.springframework.boot.webtestclient.autoconfigure.AutoConfigureWebTestClient import org.springframework.core.Ordered import org.springframework.core.annotation.Order +import org.springframework.data.mongodb.repository.config.EnableMongoRepositories import org.springframework.graphql.test.tester.GraphQlTester -import org.springframework.test.context.ContextConfiguration +import org.springframework.test.annotation.DirtiesContext +import org.springframework.test.context.DynamicPropertyRegistry +import org.springframework.test.context.DynamicPropertySource import org.springframework.test.web.reactive.server.WebTestClient import org.springframework.web.reactive.function.client.WebClient -import org.testcontainers.containers.MongoDBContainer +import org.springframework.web.reactive.function.client.bodyToMono +import org.testcontainers.junit.jupiter.Container +import org.testcontainers.kafka.KafkaContainer +import org.testcontainers.mongodb.MongoDBContainer import org.testcontainers.utility.DockerImageName import reactor.core.publisher.Flux import reactor.core.publisher.Mono @@ -48,34 +50,41 @@ import reactor.core.publisher.Mono properties = ["spring.profiles.active=integration"], webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT ) -@ContextConfiguration(initializers = [BaseIntegrationTest.Companion.Initializer::class]) @EnableConfigurationProperties +@EnableMongoRepositories @ConfigurationPropertiesScan("com.softeno") @AutoConfigureWebTestClient(timeout = "6000") @TestInstance(TestInstance.Lifecycle.PER_CLASS) -@AutoConfigureCache @AutoConfigureJson @AutoConfigureGraphQl @AutoConfigureGraphQlTester +@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_CLASS) abstract class BaseIntegrationTest { companion object { + @Container + var kafka: KafkaContainer = KafkaContainer("apache/kafka-native:3.8.0") + .withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE", "true") + .withEnv("ALLOW_PLAINTEXT_LISTENER", "true") + .withEnv("KAFKA_CREATE_TOPICS", "sample_topic_2" + ":1:1") + + @Container + var mongoDBContainer = MongoDBContainer(DockerImageName.parse("mongo:6.0.4")) + .withEnv("MONGO_INITDB_DATABASE", "example1") + + @JvmStatic + @DynamicPropertySource + fun registerDynamicProperties(registry: DynamicPropertyRegistry) { + kafka.start() + registry.add("spring.kafka.bootstrap-servers") { + kafka.bootstrapServers + } - private const val DATABASE_NAME = "example1" - - @JvmField - val dbContainer: MongoDBContainer = MongoDBContainer(DockerImageName.parse("mongo:6.0.4")) - - class Initializer : ApplicationContextInitializer { - override fun initialize(applicationContext: ConfigurableApplicationContext) { - dbContainer.start() + mongoDBContainer.start() - TestPropertyValues.of( - "spring.data.mongodb.uri=${Companion.dbContainer.connectionString}/${DATABASE_NAME}", - "mongo.database=$DATABASE_NAME" - ).applyTo(applicationContext.environment) + registry.add("spring.mongodb.uri") { + mongoDBContainer.replicaSetUrl } - } } @@ -104,11 +113,10 @@ abstract class BaseIntegrationTest { class ContextLoadsTest : BaseIntegrationTest() { - val dbContainer: MongoDBContainer = BaseIntegrationTest.dbContainer - @Test fun contextLoads() { - assertTrue(dbContainer.isRunning) + assertTrue(mongoDBContainer.isRunning) + assertTrue(kafka.isRunning) } } @@ -183,7 +191,7 @@ class ExternalControllerTest : BaseIntegrationTest(), ExternalApiAbility { // expect val response = webclient.get().uri("http://localhost:4500/sample/100") .retrieve() - .bodyToMono(SampleResponseDto::class.java) + .bodyToMono() .awaitSingle() assertEquals(expected, response) @@ -245,7 +253,7 @@ class GraphqlPermissionControllerTestDocument : BaseIntegrationTest(), Permissio } """.trimIndent() - // note: returned result differs from graphigl because we use: .path("getAllPermissions") + // note: a returned result differs from graphigl because we use: .path("getAllPermissions") val expected = """ [{"name":"${aPermission.name}","description":"${aPermission.description}"}] """.trimIndent() diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties index 2f65b56..e86d711 100644 --- a/src/test/resources/application.properties +++ b/src/test/resources/application.properties @@ -4,6 +4,8 @@ com.softeno.kafka.tx=sample_topic_2 com.softeno.kafka.rx=sample_topic_2 com.softeno.kafka.keycloak=keycloak-events +spring.data.mongodb.auto-index-creation=true + com.softeno.external.url=http://localhost:4500/sample com.softeno.external.name=node-service com.softeno.external.graphql-url=http://localhost:4500/graphql @@ -20,15 +22,11 @@ resilience4j.circuitbreaker.instances.customer-service.slidingWindowSize=10 resilience4j.circuitbreaker.instances.customer-service.waitDurationInOpenState=50s resilience4j.circuitbreaker.instances.customer-service.permittedNumberOfCallsInHalfOpenState=3 -management.endpoint.metrics.enabled=false -management.endpoint.prometheus.enabled=false - springdoc.api-docs.enabled=false spring.graphql.graphiql.enabled=false -spring.graphql.path=/graphql +spring.graphql.http.path=/graphql -spring.kafka.bootstrap-servers=localhost:9092 spring.kafka.consumer.group-id=sample-group-jvm spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.springframework.kafka.support.serializer.JsonSerializer @@ -37,10 +35,3 @@ spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.Str spring.kafka.consumer.value-deserializer=org.springframework.kafka.support.serializer.JsonDeserializer spring.kafka.properties.spring.json.trusted.packages=* spring.kafka.consumer.properties.spring.json.use.type.headers=false - -management.tracing.enabled=false -spring.kafka.template.observation-enabled=false -spring.kafka.listener.observation-enabled=false -management.tracing.baggage.correlation.enabled=false -management.tracing.baggage.enabled=false -management.otlp.metrics.export.enabled=false \ No newline at end of file From d8260b29959f617627ff9bf4973b499068d056e7 Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Tue, 3 Mar 2026 08:49:38 +0100 Subject: [PATCH 3/5] remove app events and add docker compose --- docker-compose.yml | 136 ++++++++++++++++++ init_volumes.sh | 21 +++ .../softeno/template/app/event/UserAction.kt | 29 ---- .../softeno/template/app/user/UserService.kt | 11 +- .../app/user/api/reactive/ReactiveUsers.kt | 11 +- src/main/resources/logback-spring.xml | 2 +- 6 files changed, 170 insertions(+), 40 deletions(-) create mode 100644 docker-compose.yml create mode 100755 init_volumes.sh delete mode 100644 src/main/kotlin/com/softeno/template/app/event/UserAction.kt diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..2195f46 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,136 @@ +version: "3.7" +services: + kafka-broker: + image: bitnami/kafka:latest + container_name: kafka-broker + user: "${UID}" + hostname: kafka-broker + ports: + - "${IP:-0.0.0.0}:9094:9094" + - "${IP:-0.0.0.0}:9093:9093" + - "${IP:-0.0.0.0}:9092:9092" + environment: + KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094 + KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka-broker:9092,EXTERNAL://kafka-broker:9094 + KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT + ALLOW_PLAINTEXT_LISTENER: yes + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-broker:9092,EXTERNAL://kafka-broker:9094 + KAFKA_BROKER_ID: 0 + KAFKA_CFG_NODE_ID: 0 + KAFKA_CFG_PROCESS_ROLES: controller,broker + KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER + KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@kafka-broker:9093 + volumes: + - kafka-broker-data:/bitnami + + init-kafka: + image: confluentinc/cp-kafka:latest + user: "${UID}" + depends_on: + - kafka-broker + entrypoint: [ '/bin/sh', '-c' ] + command: | + " + # blocks until kafka is reachable + kafka-topics --bootstrap-server kafka-broker:9092 --list + echo -e 'Creating kafka topics' + + kafka-topics --bootstrap-server kafka-broker:9092 --create --if-not-exists --topic sample_topic_2 --replication-factor 1 --partitions 1 + kafka-topics --bootstrap-server kafka-broker:9092 --create --if-not-exists --topic keycloak-events --replication-factor 1 --partitions 1 + kafka-topics --bootstrap-server kafka-broker:9092 --create --if-not-exists --topic keycloak-admin-events --replication-factor 1 --partitions 1 + + echo -e 'Successfully created the following topics:' + kafka-topics --bootstrap-server kafka-broker:9092 --list + " + + postgres-keycloak: + image: postgres:16.4 + container_name: postgres-keycloak + user: "${UID}" + hostname: postgres-keycloak + volumes: + - postgres-data-keycloak:/var/lib/postgresql/data + environment: + POSTGRES_DB: keycloak + POSTGRES_USER: keycloak + POSTGRES_PASSWORD: keycloak + ports: + - "${IP:-0.0.0.0}:5433:5432" + + keycloak: + image: xcodeassociated/keycloak-kafka:latest + user: "${UID}" + pull_policy: always + container_name: keycloak + hostname: keycloak + ports: + - "8090:8080" + depends_on: + - postgres-keycloak + - kafka-broker + environment: + KEYCLOAK_ADMIN: admin + KEYCLOAK_ADMIN_PASSWORD: admin + KAFKA_TOPIC: keycloak-events + KAFKA_CLIENT_ID: keycloak + KAFKA_BOOTSTRAP_SERVERS: kafka-broker:9092 + KAFKA_EVENTS: "REGISTER,LOGIN,LOGOUT" + KAFKA_ADMIN_TOPIC: keycloak-admin-events + KC_DB_URL_HOST: postgres-keycloak + KC_DB_URL_DATABASE: keycloak + KC_DB_URL_PORT: 5432 + KC_DB: postgres + KC_DB_USERNAME: keycloak + KC_DB_PASSWORD: keycloak + KC_DB_SCHEMA: public + KC_HOSTNAME_STRICT: false + KC_HTTP_ENABLED: true + command: + - start-dev + volumes: + - keycloak-data:/opt/keycloak/data/ + + mongo: + container_name: mongo_rs_primary + user: "${UID}" + hostname: mongo + image: mongo:6.0.4 + ports: + - "${IP:-0.0.0.0}:27017:27017" + entrypoint: [ "/usr/bin/mongod", "--config", "/etc/mongod.conf", "--bind_ip_all", "--replSet", "rs0" ] + environment: + - MONGO_INITDB_ROOT_USERNAME=user + - MONGO_INITDB_ROOT_PASSWORD=password + - MONGO_INITDB_DATABASE=example_db + volumes: + - mongo-rs-primary-data:/data/db + - "./mongo-rs/config/mongodb/mongod.conf:/etc/mongod.conf" + +volumes: + kafka-broker-data: + driver: local + driver_opts: + o: bind + type: none + device: ./kafka+keycloak/volumes/kafka-broker + + postgres-data-keycloak: + driver: local + driver_opts: + o: bind + type: none + device: ./kafka+keycloak/volumes/postgres + + keycloak-data: + driver: local + driver_opts: + o: bind + type: none + device: ./kafka+keycloak/volumes/keycloak + + mongo-rs-primary-data: + driver: local + driver_opts: + o: bind + type: none + device: ./mongo-rs/volumes/mongodb diff --git a/init_volumes.sh b/init_volumes.sh new file mode 100755 index 0000000..e6dd703 --- /dev/null +++ b/init_volumes.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -euo pipefail + +DIRS=( + "kafka+keycloak/volumes/postgres" + "kafka+keycloak/volumes/keycloak" + "kafka+keycloak/volumes/kafka-broker" + "mongo-rs/volumes/mongodb" +) + +for dir in "${DIRS[@]}"; do + if [ -d "$dir" ]; then + echo "Directory exists: $dir" + else + echo "Directory does not exist, creating: $dir" + mkdir -p "$dir" + fi +done + +echo "done" \ No newline at end of file diff --git a/src/main/kotlin/com/softeno/template/app/event/UserAction.kt b/src/main/kotlin/com/softeno/template/app/event/UserAction.kt deleted file mode 100644 index 5d39499..0000000 --- a/src/main/kotlin/com/softeno/template/app/event/UserAction.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.softeno.template.app.event - -import com.softeno.template.app.kafka.KafkaMessage -import com.softeno.template.app.kafka.KafkaSampleProducer -import kotlinx.coroutines.DelicateCoroutinesApi -import org.apache.commons.logging.LogFactory -import org.springframework.context.ApplicationEvent -import org.springframework.context.ApplicationListener -import org.springframework.stereotype.Component - -data class UserAction(val source: String) : ApplicationEvent(source) - -@Component -class SampleApplicationEventPublisher( - - private val kafkaProducer: KafkaSampleProducer, -) : ApplicationListener { - private val log = LogFactory.getLog(javaClass) - - @OptIn(DelicateCoroutinesApi::class) - override fun onApplicationEvent(event: UserAction) { - log.debug("[app event handler]: Received event: $event") - - kafkaProducer.send(event.toKafkaMessage()) - } - -} - -fun UserAction.toKafkaMessage() = KafkaMessage(content = this.source) diff --git a/src/main/kotlin/com/softeno/template/app/user/UserService.kt b/src/main/kotlin/com/softeno/template/app/user/UserService.kt index 53ab4e6..d51811d 100644 --- a/src/main/kotlin/com/softeno/template/app/user/UserService.kt +++ b/src/main/kotlin/com/softeno/template/app/user/UserService.kt @@ -3,7 +3,8 @@ package com.softeno.template.app.user import com.softeno.template.app.common.ErrorFactory import com.softeno.template.app.common.PrincipalHandler import com.softeno.template.app.common.getPageRequest -import com.softeno.template.app.event.UserAction +import com.softeno.template.app.kafka.KafkaMessage +import com.softeno.template.app.kafka.KafkaSampleProducer import com.softeno.template.app.permission.Permission import com.softeno.template.app.permission.PermissionService import com.softeno.template.app.permission.db.PermissionDocument @@ -21,7 +22,6 @@ import kotlinx.coroutines.slf4j.MDCContext import kotlinx.coroutines.withContext import org.apache.commons.logging.LogFactory import org.slf4j.MDC -import org.springframework.context.ApplicationEventPublisher import org.springframework.stereotype.Service import reactor.core.publisher.Mono import java.security.Principal @@ -32,7 +32,7 @@ class UserService( private val userCoroutineRepository: UserCoroutineRepository, private val permissionService: PermissionService, private val userDocumentService: UserDocumentService, - private val applicationEventPublisher: ApplicationEventPublisher, + private val kafkaProducer: KafkaSampleProducer, private val tracer: Tracer ) : PrincipalHandler { private val log = LogFactory.getLog(javaClass) @@ -74,9 +74,8 @@ class UserService( val user = userCoroutineRepository.save(User(input, permissions).toDocument()).toDomain(permissions) log.info("User created: $user") - applicationEventPublisher.publishEvent( - UserAction("USER_CREATED: ${user.id}") - ) + val message = KafkaMessage(content = "USER_CREATED: ${user.id}") + kafkaProducer.send(message) return@withContext user } diff --git a/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt b/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt index 569546a..f32e94e 100644 --- a/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt +++ b/src/main/kotlin/com/softeno/template/app/user/api/reactive/ReactiveUsers.kt @@ -1,7 +1,8 @@ package com.softeno.template.app.permission.api.reactive import com.softeno.template.app.common.getPageRequest -import com.softeno.template.app.event.UserAction +import com.softeno.template.app.kafka.KafkaMessage +import com.softeno.template.app.kafka.KafkaSampleProducer import com.softeno.template.app.permission.api.PermissionNotFoundException import com.softeno.template.app.permission.db.PermissionDocument import com.softeno.template.app.permission.db.PermissionsReactiveRepository @@ -14,7 +15,6 @@ import com.softeno.template.app.user.api.toDto import com.softeno.template.app.user.db.UserDocument import com.softeno.template.app.user.db.UserReactiveRepository import com.softeno.template.app.user.toDomain -import org.springframework.context.ApplicationEventPublisher import org.springframework.validation.annotation.Validated import org.springframework.web.bind.annotation.* import reactor.core.publisher.Flux @@ -28,7 +28,7 @@ import reactor.kotlin.core.publisher.toMono class ReactiveUserController( val userReactiveRepository: UserReactiveRepository, val permissionsReactiveRepository: PermissionsReactiveRepository, - val applicationEventPublisher: ApplicationEventPublisher + val kafkaProducer: KafkaSampleProducer, ) { @PostMapping("/users") fun createUser(@RequestBody input: UserModifyCommand): Mono { @@ -55,7 +55,10 @@ class ReactiveUserController( version = null ) }.flatMap { e -> userReactiveRepository.save(e) } - .doOnSuccess { applicationEventPublisher.publishEvent(UserAction("USER_CREATED_REACTIVE: ${it?.id}")) } + .doOnSuccess { + val message = KafkaMessage(content = "USER_CREATED_REACTIVE: ${it?.id}") + kafkaProducer.send(message) + } .zipWith(permissions) .map { tuple -> tuple.t1.toDomain(tuple.t2.map { it.toDomain() }).toDto() } } diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 1b51c47..f9b0d89 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -51,7 +51,7 @@ - + From 66f48657e1954e6fe5d39de39da7fee786fe2c16 Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Tue, 3 Mar 2026 08:50:16 +0100 Subject: [PATCH 4/5] fix logback config --- src/main/resources/logback-spring.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index f9b0d89..4ee9a2b 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -1,6 +1,7 @@ + From 82b33dbc9e494a4d3387e3320c2a1c48e2ad8e9a Mon Sep 17 00:00:00 2001 From: xcodeassociated Date: Tue, 3 Mar 2026 16:35:43 +0100 Subject: [PATCH 5/5] add deps versions in gradle and package typo fix --- build.gradle | 45 ++++++++++++------- .../OpenTelemetryConfig.kt | 2 +- .../http/internal/reactive/IntegrationTest.kt | 3 +- 3 files changed, 32 insertions(+), 18 deletions(-) rename src/main/kotlin/com/softeno/template/app/config/{opentelementry => opentelemetry}/OpenTelemetryConfig.kt (94%) diff --git a/build.gradle b/build.gradle index 849c0ee..514d02a 100644 --- a/build.gradle +++ b/build.gradle @@ -13,6 +13,21 @@ ext { set('springCloudVersion', '2025.1.1') set('testcontainersVersion', '2.0.3') set('springBootVersion', '4.0.2') + set('wiremockVersion', '3.13.2') + set('mockkVersion', '1.14.9') + set('querydslMongodbVersion', '5.1.0') + set('springmockkVersion', '4.0.2') + set('logbackVersion', '1.5.30') + set('springdocVersion', '3.0.1') + set('logbackAppenderVersion', '2.25.0-alpha') + set('postgresqlVersion', '42.7.10') + set('junitPlatformLauncherVersion', '6.0.3') + set('micrometerRegistryPrometheusVersion', '1.16.3') + set('springSecurityTestVersion', '7.0.3') + set('springResilience4jVersion', '5.0.1') + set('micrometerTracingBridgeOtelVersion', '1.6.3') + set('micrometerContextPropagationVersion', '1.2.1') + set('nettyResolverDnsNativeMacosVersion', '4.2.3.Final') } group = 'com.softeno' @@ -56,10 +71,10 @@ dependencies { testImplementation "org.springframework.boot:spring-boot-starter-webflux-test:${springBootVersion}" testImplementation "org.springframework.boot:spring-boot-webtestclient:${springBootVersion}" testImplementation "org.springframework.boot:spring-boot-starter-jackson-test:${springBootVersion}" + testImplementation "io.mockk:mockk:${mockkVersion}" + testImplementation "com.ninja-squad:springmockk:${springmockkVersion}" + testRuntimeOnly "org.junit.platform:junit-platform-launcher:${junitPlatformLauncherVersion}" testImplementation 'io.projectreactor:reactor-test' - testImplementation 'io.mockk:mockk:1.14.9' - testImplementation 'com.ninja-squad:springmockk:4.0.2' - testRuntimeOnly 'org.junit.platform:junit-platform-launcher' testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test' testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5' @@ -67,7 +82,7 @@ dependencies { implementation "org.springframework.boot:spring-boot-starter-oauth2-client:${springBootVersion}" implementation "org.springframework.boot:spring-boot-starter-oauth2-resource-server:${springBootVersion}" implementation "org.springframework.boot:spring-boot-starter-security:${springBootVersion}" - testImplementation "org.springframework.security:spring-security-test:7.0.3" + testImplementation "org.springframework.security:spring-security-test:${springSecurityTestVersion}" // testcontainers testImplementation "org.springframework.boot:spring-boot-testcontainers:${springBootVersion}" @@ -76,13 +91,13 @@ dependencies { testImplementation "org.testcontainers:testcontainers-junit-jupiter:${testcontainersVersion}" // wiremock - testImplementation 'org.wiremock:wiremock-standalone:3.13.2' + testImplementation "org.wiremock:wiremock-standalone:${wiremockVersion}" // guerydsl - implementation ('com.querydsl:querydsl-mongodb:5.1.0') { + implementation ("com.querydsl:querydsl-mongodb:${querydslMongodbVersion}") { exclude group: 'org.mongodb', module: 'mongo-java-driver' } - kapt group: 'com.querydsl', name: 'querydsl-apt', version: '5.1.0' + kapt group: 'com.querydsl', name: 'querydsl-apt', version: "${querydslMongodbVersion}" // graphql implementation "org.springframework.boot:spring-boot-starter-graphql:${springBootVersion}" @@ -93,27 +108,27 @@ dependencies { testImplementation "org.springframework.kafka:spring-kafka-test:${springBootVersion}" // circuit breaker - implementation 'org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j' + implementation "org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j:${springResilience4jVersion}" // macOs ARM only if (osdetector.classifier == "osx-aarch_64") { - runtimeOnly("io.netty:netty-resolver-dns-native-macos:4.2.3.Final:${osdetector.classifier}") + runtimeOnly("io.netty:netty-resolver-dns-native-macos:${nettyResolverDnsNativeMacosVersion}:${osdetector.classifier}") } // springdoc - implementation 'org.springdoc:springdoc-openapi-starter-common:3.0.1' - implementation 'org.springdoc:springdoc-openapi-starter-webflux-ui:3.0.1' + implementation "org.springdoc:springdoc-openapi-starter-common:${springdocVersion}" + implementation "org.springdoc:springdoc-openapi-starter-webflux-ui:${springdocVersion}" // monitoring - runtimeOnly 'io.micrometer:micrometer-registry-prometheus' + runtimeOnly "io.micrometer:micrometer-registry-prometheus:${micrometerRegistryPrometheusVersion}" implementation "org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}" // opentelemetry implementation "org.springframework.boot:spring-boot-starter-opentelemetry:${springBootVersion}" testImplementation "org.springframework.boot:spring-boot-starter-opentelemetry-test:${springBootVersion}" - implementation "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:2.25.0-alpha" - implementation "io.micrometer:micrometer-tracing-bridge-otel" - implementation "io.micrometer:context-propagation" + implementation "io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0:${logbackAppenderVersion}" + implementation "io.micrometer:micrometer-tracing-bridge-otel:${micrometerTracingBridgeOtelVersion}" + implementation "io.micrometer:context-propagation:${micrometerContextPropagationVersion}" } dependencyManagement { diff --git a/src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt b/src/main/kotlin/com/softeno/template/app/config/opentelemetry/OpenTelemetryConfig.kt similarity index 94% rename from src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt rename to src/main/kotlin/com/softeno/template/app/config/opentelemetry/OpenTelemetryConfig.kt index 5b5f257..36564c7 100644 --- a/src/main/kotlin/com/softeno/template/app/config/opentelementry/OpenTelemetryConfig.kt +++ b/src/main/kotlin/com/softeno/template/app/config/opentelemetry/OpenTelemetryConfig.kt @@ -1,4 +1,4 @@ -package com.softeno.template.app.config.opentelementry +package com.softeno.template.app.config.opentelemetry import io.opentelemetry.api.OpenTelemetry import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender diff --git a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt index d84b210..c13e918 100644 --- a/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt +++ b/src/test/kotlin/com/softeno/template/sample/http/internal/reactive/IntegrationTest.kt @@ -63,7 +63,7 @@ abstract class BaseIntegrationTest { companion object { @Container - var kafka: KafkaContainer = KafkaContainer("apache/kafka-native:3.8.0") + var kafka: KafkaContainer = KafkaContainer(DockerImageName.parse("apache/kafka-native:3.8.0")) .withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE", "true") .withEnv("ALLOW_PLAINTEXT_LISTENER", "true") .withEnv("KAFKA_CREATE_TOPICS", "sample_topic_2" + ":1:1") @@ -81,7 +81,6 @@ abstract class BaseIntegrationTest { } mongoDBContainer.start() - registry.add("spring.mongodb.uri") { mongoDBContainer.replicaSetUrl }