From fdcd0fb40b2a0b4fe10e9476e8b1ffc50fa0e1c1 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Mon, 23 Sep 2024 23:46:56 +0300 Subject: [PATCH] Removed legacy tenant exchange config --- .gitignore | 1 + build.gradle.kts | 4 +- .../TenantMessagingConfiguration.java | 84 ------------------- .../TenantMessagingConfigurationImpl.java | 40 +++++++++ .../providers/TenantSyncListener.java | 12 +-- 5 files changed, 44 insertions(+), 97 deletions(-) delete mode 100644 src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfiguration.java create mode 100644 src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfigurationImpl.java diff --git a/.gitignore b/.gitignore index 55235ef..7bd98a3 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ build/ ### VS Code ### .vscode/ .DS_Store/ +.DS_Store gradle.properties gradlew diff --git a/build.gradle.kts b/build.gradle.kts index 3160a74..7b95d66 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,7 +29,7 @@ val springCloudVersion = "4.0.4" dependencies { api("com.fasterxml.jackson.core:jackson-databind:2.15.2:") - api("com.knecon.fforesight:tenant-commons:0.26.0") + api("com.knecon.fforesight:tenant-commons:0.30.0") api("com.zaxxer:HikariCP:5.0.1") api("com.google.guava:guava:32.1.2-jre") api("org.liquibase:liquibase-core:4.20.0") @@ -113,4 +113,4 @@ tasks.jacocoTestReport { java { withJavadocJar() -} \ No newline at end of file +} diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfiguration.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfiguration.java deleted file mode 100644 index 18f662e..0000000 --- a/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfiguration.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.knecon.fforesight.databasetenantcommons; - -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.Configuration; - -import lombok.RequiredArgsConstructor; - -@Configuration -@RequiredArgsConstructor -public class TenantMessagingConfiguration { - - @Value("${fforesight.multitenancy.tenant-created-queue:tenant-created-queue}") - private String tenantCreatedEventQueue; - - @Value("${fforesight.multitenancy.tenant-created-dlq:tenant-created-dlq}") - private String tenantCreatedDLQ; - - @Value("${fforesight.multitenancy.tenant-sync-queue:tenant-sync-queue}") - private String tenantSyncEventQueue; - - @Value("${fforesight.multitenancy.tenant-sync-dlq:tenant-sync-dlq}") - private String tenantSyncDQL; - - - @Bean(name = "tenantExchange") - TopicExchange tenantExchange(@Value("${fforesight.tenant-exchange.name}") String tenantExchangeName) { - - return new TopicExchange(tenantExchangeName); - } - - - @Bean("persistenceServiceTenantCreatedQueue") - public Queue persistenceServiceTenantCreatedQueue() { - - return QueueBuilder.durable(tenantCreatedEventQueue) - .withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", tenantCreatedDLQ).build(); - } - - - @Bean - public Queue persistenceServiceTenantDLQ() { - - return QueueBuilder.durable(tenantCreatedDLQ).build(); - } - - - @Bean - public Binding tenantExchangeBinding(@Qualifier("persistenceServiceTenantCreatedQueue") Queue persistenceServiceTenantCreatedQueue, - @Qualifier("tenantExchange") TopicExchange tenantExchange) { - - return BindingBuilder.bind(persistenceServiceTenantCreatedQueue).to(tenantExchange).with("tenant.created"); - } - - - @Bean("persistenceServiceTenantSyncQueue") - public Queue persistenceServiceTenantSyncQueue() { - - return QueueBuilder.durable(tenantSyncEventQueue) - .withArgument("x-dead-letter-exchange", "").withArgument("x-dead-letter-routing-key", tenantSyncDQL).build(); - } - - - @Bean - public Queue persistenceServiceTenantSyncDLQ() { - - return QueueBuilder.durable(tenantSyncDQL).build(); - } - - - @Bean - public Binding tenantExchangeSyncBinding(@Qualifier("persistenceServiceTenantSyncQueue") Queue persistenceServiceTenantSyncQueue, - @Qualifier("tenantExchange") TopicExchange tenantExchange) { - - return BindingBuilder.bind(persistenceServiceTenantSyncQueue).to(tenantExchange).with("tenant.sync"); - } - -} diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfigurationImpl.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfigurationImpl.java new file mode 100644 index 0000000..7497c1e --- /dev/null +++ b/src/main/java/com/knecon/fforesight/databasetenantcommons/TenantMessagingConfigurationImpl.java @@ -0,0 +1,40 @@ +package com.knecon.fforesight.databasetenantcommons; + +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.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.knecon.fforesight.tenantcommons.queue.TenantMessagingConfiguration; + +@Configuration +public class TenantMessagingConfigurationImpl extends TenantMessagingConfiguration { + + public String getTenantSyncQueue() { + + return this.getQueueNameWithSuffix("_tenant_sync"); + } + + + @Bean({"tenantSyncQueue"}) + public Queue tenantSyncQueue() { + + return QueueBuilder.durable(this.getTenantCreatedQueueName()) + .withArgument("x-dead-letter-exchange", "") + .withArgument("x-dead-letter-routing-key", this.getTenantEventsDLQName()) + .withArgument("x-expires", 300000) + .build(); + } + + + @Bean + public Binding tenantSyncBinding(@Qualifier("tenantSyncQueue") Queue tenantCreatedQueue, @Qualifier("tenantExchange") TopicExchange tenantExchange) { + + return BindingBuilder.bind(tenantCreatedQueue).to(tenantExchange).with("tenant.sync"); + } + +} diff --git a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantSyncListener.java b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantSyncListener.java index 3905edf..57ab264 100644 --- a/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantSyncListener.java +++ b/src/main/java/com/knecon/fforesight/databasetenantcommons/providers/TenantSyncListener.java @@ -20,19 +20,9 @@ public class TenantSyncListener { private final Optional tenantSyncServices; - @Value("${fforesight.multitenancy.tenant-sync-queue:tenant-sync-queue}") - private String tenantSyncQueue; - - - @PostConstruct - public void postConstruct() { - - log.info("Listener for tenant-sync started for queue: {}", tenantSyncQueue); - } - @SneakyThrows - @RabbitListener(queues = "${fforesight.multitenancy.tenant-sync-queue:tenant-sync-queue}") + @RabbitListener(queues = "#{tenantMessagingConfigurationImpl.getTenantSyncQueue()}") public void createTenant(TenantSyncEvent tenantSyncEvent) { tenantSyncServices.ifPresent(t -> t.syncTenant(tenantSyncEvent));