From d173cd88258cb6399ccc44ef573202767aed323b Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 14 Jun 2023 10:08:20 +0300 Subject: [PATCH] Rabbittemplate config --- .../MultiTenancyMessagingConfiguration.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/main/java/com/knecon/fforesight/tenantcommons/MultiTenancyMessagingConfiguration.java b/src/main/java/com/knecon/fforesight/tenantcommons/MultiTenancyMessagingConfiguration.java index 5c8ce2c..b12573a 100644 --- a/src/main/java/com/knecon/fforesight/tenantcommons/MultiTenancyMessagingConfiguration.java +++ b/src/main/java/com/knecon/fforesight/tenantcommons/MultiTenancyMessagingConfiguration.java @@ -3,17 +3,40 @@ package com.knecon.fforesight.tenantcommons; import static com.knecon.fforesight.tenantcommons.ForwardTenantInterceptor.TENANT_HEADER_NAME; import org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory; +import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import com.fasterxml.jackson.databind.ObjectMapper; + @Configuration @ConditionalOnClass(RabbitTemplate.class) public class MultiTenancyMessagingConfiguration { + @Bean + @ConditionalOnBean(ConnectionFactory.class) + public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) { + + final var rabbitTemplate = new RabbitTemplate(connectionFactory); + rabbitTemplate.setMessageConverter(producerJackson2MessageConverter()); + return rabbitTemplate; + } + + + @Bean + public Jackson2JsonMessageConverter producerJackson2MessageConverter() { + + ObjectMapper mapper = new ObjectMapper().findAndRegisterModules(); + + return new Jackson2JsonMessageConverter(mapper); + } + @Bean public static BeanPostProcessor multitenancyBeanPostProcessor() {