
com.tradeshift.amqp.rabbit.components.RabbitComponentsFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-rabbitmq-tuning-lib Show documentation
Show all versions of spring-rabbitmq-tuning-lib Show documentation
This library was created to make it easier to configure RabbitMQ within Spring and to establish a
pattern for queues architecture.
package com.tradeshift.amqp.rabbit.components;
import java.util.HashMap;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.connection.SimpleRoutingConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.amqp.support.converter.SimpleMessageConverter;
import com.rabbitmq.client.DefaultSaslConfig;
import com.tradeshift.amqp.rabbit.properties.TunedRabbitProperties;
import com.tradeshift.amqp.ssl.TLSContextUtil;
public class RabbitComponentsFactory {
private static final Logger log = LoggerFactory.getLogger(RabbitComponentsFactory.class);
public RabbitAdmin createRabbitAdminBean(CachingConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory);
}
public MessageConverter createJackson2MessageConverter() {
return new Jackson2JsonMessageConverter();
}
public RabbitTemplate createRabbitTemplateBean(CachingConnectionFactory connectionFactory, final TunedRabbitProperties property) {
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
if (property.isEnableJsonMessageConverter()) {
rabbitTemplate.setMessageConverter(createJackson2MessageConverter());
}
return rabbitTemplate;
}
public ConnectionFactory createSimpleRoutingConnectionFactory(AtomicReference defaultConnectionFactory,
HashMap
© 2015 - 2025 Weber Informatics LLC | Privacy Policy