From 27925d6b3c8228ccfd848080a4f53d10f728f4a2 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 25 Sep 2024 14:13:42 +0300 Subject: [PATCH] Updated to latest tenant-commons, adjusted listeners --- .gitignore | 1 + build.gradle.kts | 8 +-- .../MongoTenantMessagingConfiguration.java | 59 ------------------- .../config/MultiTenantMongoDBFactory.java | 2 +- .../EnableMongoLiquibaseCondition.java | 3 +- .../liquibase/MongoTenantCreatedEvent.java | 14 ----- .../liquibase/MongoTenantCreatedListener.java | 24 +++----- .../commons/service/MongoClientCache.java | 4 +- 8 files changed, 19 insertions(+), 96 deletions(-) delete mode 100644 src/main/java/com/knecon/fforesight/mongo/database/commons/MongoTenantMessagingConfiguration.java delete mode 100644 src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedEvent.java diff --git a/.gitignore b/.gitignore index 55235ef..23ba605 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ gradle/ **/.gradle **/build +.DS_Store diff --git a/build.gradle.kts b/build.gradle.kts index 66bc764..092126f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,6 @@ plugins { `java-library` `maven-publish` - `kotlin-dsl` pmd checkstyle jacoco @@ -25,10 +24,11 @@ repositories { val springBootVersion = "3.1.5" dependencies { - api("com.knecon.fforesight:tenant-commons:0.29.0") + api("com.knecon.fforesight:tenant-commons:0.31.0") api("org.liquibase:liquibase-core:4.20.0") api("org.liquibase.ext:liquibase-mongodb:4.20.0") api("org.springframework.boot:spring-boot-starter-data-mongodb:${springBootVersion}") + api("org.springframework.boot:spring-boot-starter-validation:${springBootVersion}") api("org.springframework.boot:spring-boot-configuration-processor:${springBootVersion}") api("org.projectlombok:lombok:1.18.28") runtimeOnly("org.springframework.boot:spring-boot-devtools:${springBootVersion}") @@ -83,7 +83,7 @@ tasks.named("test") { sonarqube { properties { - property("sonar.login", providers.gradleProperty("sonarToken").getOrNull()) + providers.gradleProperty("sonarToken").getOrNull()?.let { property("sonar.login", it) } property("sonar.host.url", "https://sonarqube.knecon.com") } } @@ -103,4 +103,4 @@ tasks.jacocoTestReport { java { withJavadocJar() -} \ No newline at end of file +} diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/MongoTenantMessagingConfiguration.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/MongoTenantMessagingConfiguration.java deleted file mode 100644 index 99f7030..0000000 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/MongoTenantMessagingConfiguration.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.knecon.fforesight.mongo.database.commons; - -import org.springframework.amqp.core.Binding; -import org.springframework.amqp.core.BindingBuilder; -import org.springframework.amqp.core.Queue; -import org.springframework.amqp.core.QueueBuilder; -import org.springframework.amqp.core.TopicExchange; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Conditional; -import org.springframework.context.annotation.Configuration; - -import com.knecon.fforesight.mongo.database.commons.liquibase.EnableMongoLiquibaseCondition; - -import lombok.RequiredArgsConstructor; - -@Configuration -@RequiredArgsConstructor -@Conditional(EnableMongoLiquibaseCondition.class) -public class MongoTenantMessagingConfiguration { - - @Value("${fforesight.mongo.multitenancy.tenant-created-queue:mongo-tenant-created}") - private String mongoTenantCreatedEventQueue; - - @Value("${fforesight.mongo.multitenancy.tenant-created-dlq:mongo-tenant-created-error}") - private String mongoTenantCreatedDLQ; - - - @Bean(name = "mongoTenantExchange") - TopicExchange mongoTenantExchange(@Value("${fforesight.tenant-exchange.name:tenants-exchange}") String tenantExchangeName) { - - return new TopicExchange(tenantExchangeName); - } - - - @Bean("persistenceServiceMongoTenantCreatedQueue") - public Queue persistenceServiceMongoTenantCreatedQueue() { - - return QueueBuilder.durable(mongoTenantCreatedEventQueue) - .withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", mongoTenantCreatedDLQ).build(); - } - - - @Bean("persistenceServiceMongoTenantDLQ") - public Queue persistenceServiceMongoTenantDLQ() { - - return QueueBuilder.durable(mongoTenantCreatedDLQ).build(); - } - - - @Bean("mongoTenantExchangeBinding") - public Binding mongoTenantExchangeBinding(@Qualifier("persistenceServiceMongoTenantCreatedQueue") Queue persistenceServiceTenantCreatedQueue, - @Qualifier("mongoTenantExchange") TopicExchange tenantExchange) { - - return BindingBuilder.bind(persistenceServiceTenantCreatedQueue).to(tenantExchange).with("tenant.created"); - } - -} diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/config/MultiTenantMongoDBFactory.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/config/MultiTenantMongoDBFactory.java index 3390acc..d60de86 100644 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/config/MultiTenantMongoDBFactory.java +++ b/src/main/java/com/knecon/fforesight/mongo/database/commons/config/MultiTenantMongoDBFactory.java @@ -2,9 +2,9 @@ package com.knecon.fforesight.mongo.database.commons.config; import java.util.List; +import jakarta.validation.constraints.NotNull; import org.bson.Document; import org.bson.conversions.Bson; -import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/EnableMongoLiquibaseCondition.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/EnableMongoLiquibaseCondition.java index f4b9470..f48b0fd 100644 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/EnableMongoLiquibaseCondition.java +++ b/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/EnableMongoLiquibaseCondition.java @@ -2,11 +2,12 @@ package com.knecon.fforesight.mongo.database.commons.liquibase; import java.util.Objects; -import org.jetbrains.annotations.NotNull; import org.springframework.context.annotation.Condition; import org.springframework.context.annotation.ConditionContext; import org.springframework.core.type.AnnotatedTypeMetadata; +import jakarta.validation.constraints.NotNull; + public class EnableMongoLiquibaseCondition implements Condition { @Override diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedEvent.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedEvent.java deleted file mode 100644 index d7a2073..0000000 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedEvent.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.knecon.fforesight.mongo.database.commons.liquibase; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data -@AllArgsConstructor -@NoArgsConstructor -public class MongoTenantCreatedEvent { - - private String tenantId; - -} diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedListener.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedListener.java index f3246d2..52cb802 100644 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedListener.java +++ b/src/main/java/com/knecon/fforesight/mongo/database/commons/liquibase/MongoTenantCreatedListener.java @@ -1,39 +1,33 @@ package com.knecon.fforesight.mongo.database.commons.liquibase; -import org.springframework.amqp.rabbit.annotation.RabbitListener; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Conditional; import org.springframework.stereotype.Service; -import jakarta.annotation.PostConstruct; +import com.knecon.fforesight.tenantcommons.listener.ITenantEventHandler; +import com.knecon.fforesight.tenantcommons.model.TenantCreatedEvent; import lombok.RequiredArgsConstructor; -import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @Slf4j @Service @RequiredArgsConstructor @Conditional(EnableMongoLiquibaseCondition.class) -public class MongoTenantCreatedListener { +public class MongoTenantCreatedListener implements ITenantEventHandler { private final TenantMongoLiquibaseExecutor tenantMongoLiquibaseExecutor; - @Value("${fforesight.multitenancy.mongo.tenant-created-queue:mongo-tenant-created}") - private String tenantCreatedQueue; + @Override + public void handle(TenantCreatedEvent tenantCreatedEvent) { - @PostConstruct - public void postConstruct() { - - log.info("Listener for tenant-created started for queue: {}", tenantCreatedQueue); + tenantMongoLiquibaseExecutor.initializeTenant(tenantCreatedEvent.getTenantId()); } - @SneakyThrows - @RabbitListener(queues = "${fforesight.multitenancy.mongo.tenant-created-queue:mongo-tenant-created}") - public void createTenant(MongoTenantCreatedEvent tenantRequest) { + @Override + public Class getEventClass() { - tenantMongoLiquibaseExecutor.initializeTenant(tenantRequest.getTenantId()); + return TenantCreatedEvent.class; } } diff --git a/src/main/java/com/knecon/fforesight/mongo/database/commons/service/MongoClientCache.java b/src/main/java/com/knecon/fforesight/mongo/database/commons/service/MongoClientCache.java index 6070d72..c0d344f 100644 --- a/src/main/java/com/knecon/fforesight/mongo/database/commons/service/MongoClientCache.java +++ b/src/main/java/com/knecon/fforesight/mongo/database/commons/service/MongoClientCache.java @@ -2,7 +2,6 @@ package com.knecon.fforesight.mongo.database.commons.service; import java.util.concurrent.TimeUnit; -import org.jetbrains.annotations.NotNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -16,6 +15,7 @@ import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; import jakarta.annotation.PostConstruct; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -70,4 +70,4 @@ public class MongoClientCache { return clients.get(tenantId); } -} \ No newline at end of file +}