/** * Specify the {@link MessageConverter} to convert request and reply to/from {@link Message}. * If the {@link #amqpTemplate} is explicitly set, this {@link MessageConverter} * isn't populated there. You must configure that external {@link #amqpTemplate}. * @param messageConverter the {@link MessageConverter} to use. */ public void setMessageConverter(MessageConverter messageConverter) { Assert.notNull(messageConverter, "MessageConverter must not be null"); this.amqpMessageConverter = messageConverter; if (!this.amqpTemplateExplicitlySet) { ((RabbitTemplate) this.amqpTemplate).setMessageConverter(messageConverter); } }
public void setMessageConverter(MessageConverter messageConverter) { if (this.amqpTemplate instanceof RabbitTemplate) { ((RabbitTemplate) this.amqpTemplate).setMessageConverter(messageConverter); } else if (logger.isInfoEnabled()) { logger.info("AmqpTemplate is not a RabbitTemplate, so configured MessageConverter will be ignored."); } }
@Test public void messageConversionTests() { RabbitTemplate amqpTemplate = new RabbitTemplate(this.connectionFactory); MessageConverter messageConverter = mock(MessageConverter.class); amqpTemplate.setMessageConverter(messageConverter); PointToPointSubscribableAmqpChannel channel = new PointToPointSubscribableAmqpChannel("testConvertFail", new SimpleMessageListenerContainer(this.connectionFactory), amqpTemplate); channel.afterPropertiesSet(); MessageListener listener = TestUtils.getPropertyValue(channel, "container.messageListener", MessageListener.class); willThrow(new MessageConversionException("foo", new IllegalStateException("bar"))) .given(messageConverter).fromMessage(any(org.springframework.amqp.core.Message.class)); this.exception.expect(MessageConversionException.class); this.exception.expectCause(instanceOf(IllegalStateException.class)); listener.onMessage(mock(org.springframework.amqp.core.Message.class)); }
@Before public void setUp() { this.rabbitTemplate = new RabbitTemplate(new CachingConnectionFactory("localhost")); this.rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); }
rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
/** * Set up the default strategies. Subclasses can override if necessary. */ protected void initDefaultStrategies() { setMessageConverter(new SimpleMessageConverter()); }
/** * Set up the default strategies. Subclasses can override if necessary. */ protected void initDefaultStrategies() { setMessageConverter(new SimpleMessageConverter()); }
@Bean public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) { final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(producerJackson2MessageConverter()); return rabbitTemplate; }
@Bean public RabbitTemplate rabbitTemplate(final ConnectionFactory connectionFactory) { final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(producerJackson2MessageConverter()); return rabbitTemplate; }
@Bean public RabbitTemplate jsonRabbitTemplate(ConnectionFactory connectionFactory) { RabbitTemplate template = new RabbitTemplate(connectionFactory); template.setMessageConverter(jsonConverter()); return template; }
@Bean @Primary public RabbitTemplate rabbitTemplateForTest(final ConnectionFactory connectionFactory) { final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); rabbitTemplate.setReplyTimeout(TimeUnit.SECONDS.toMillis(3)); rabbitTemplate.setReceiveTimeout(TimeUnit.SECONDS.toMillis(3)); return rabbitTemplate; }
@Bean @Primary public RabbitTemplate rabbitTemplateForTest(final ConnectionFactory connectionFactory) { final RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); rabbitTemplate.setReplyTimeout(TimeUnit.SECONDS.toMillis(3)); rabbitTemplate.setReceiveTimeout(TimeUnit.SECONDS.toMillis(3)); return rabbitTemplate; }
private RabbitTemplate createRabbitTemplate(MessageConverter messageConverter, RetryTemplate retryTemplate) { RabbitTemplate template = new RabbitTemplate(rabbitConnectionFactory); template.setMessageConverter(messageConverter); template.setRetryTemplate(retryTemplate); return template; }
private RabbitTemplate createDmfClient() { final RabbitTemplate template = new RabbitTemplate(connectionFactory); template.setMessageConverter(new Jackson2JsonMessageConverter()); template.setReceiveTimeout(TimeUnit.SECONDS.toMillis(3)); template.setReplyTimeout(TimeUnit.SECONDS.toMillis(3)); template.setExchange(getExchange()); return template; }
@Bean public RabbitTemplate xmlRabbitTemplate() { RabbitTemplate rabbitTemplate = new RabbitTemplate(rabbitConnectionFactory()); rabbitTemplate.setMessageConverter(xmlConverter()); return rabbitTemplate; }
@Test @DirtiesContext public void listenerErrorHandlerException() { this.rabbitTemplate.setMessageConverter(new RemoteInvocationAwareMessageConverterAdapter()); try { this.rabbitTemplate.convertSendAndReceive("test.pojo.errors2", "foo"); fail("ExpectedException"); } catch (Exception e) { assertThat(e.getCause().getMessage(), equalTo("from error handler")); assertThat(e.getCause().getCause().getMessage(), equalTo("return this")); } }
@Bean public RabbitTemplate jsonRabbitTemplate() { RabbitTemplate rabbitTemplate = new RabbitTemplate(rabbitConnectionFactory()); rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter()); return rabbitTemplate; }
@Bean public RabbitTemplate jsonRabbitTemplate() { RabbitTemplate rabbitTemplate = new RabbitTemplate(rabbitConnectionFactory()); rabbitTemplate.setMessageConverter(jsonConverter()); return rabbitTemplate; }
@Test @DirtiesContext public void returnExceptionWithRethrowAdapter() { this.rabbitTemplate.setMessageConverter(new RemoteInvocationAwareMessageConverterAdapter()); try { this.rabbitTemplate.convertSendAndReceive("test.return.exceptions", "foo"); fail("ExpectedException"); } catch (Exception e) { assertThat(e.getCause().getMessage(), equalTo("return this")); } }
@Bean public RabbitTemplate template() { RabbitTemplate rabbitTemplate = new RabbitTemplate(cf()); rabbitTemplate.setRoutingKey(TEST_QUEUE); rabbitTemplate.setDefaultReceiveQueue(TEST_QUEUE2); rabbitTemplate.setMessageConverter(jsonMessageConverter()); return rabbitTemplate; }