private org.springframework.messaging.Message<Object> createMessage(Message message, Channel channel) { Object payload = AmqpInboundChannelAdapter.this.messageConverter.fromMessage(message); Map<String, Object> headers = AmqpInboundChannelAdapter.this.headerMapper .toHeadersFromRequest(message.getMessageProperties()); if (AmqpInboundChannelAdapter.this.messageListenerContainer.getAcknowledgeMode() == AcknowledgeMode.MANUAL) { headers.put(AmqpHeaders.DELIVERY_TAG, message.getMessageProperties().getDeliveryTag()); headers.put(AmqpHeaders.CHANNEL, channel); } if (AmqpInboundChannelAdapter.this.retryTemplate != null) { headers.put(IntegrationMessageHeaderAccessor.DELIVERY_ATTEMPT, new AtomicInteger()); } final org.springframework.messaging.Message<Object> messagingMessage = getMessageBuilderFactory() .withPayload(payload) .copyHeaders(headers) .build(); return messagingMessage; }
payload = AmqpInboundGateway.this.amqpMessageConverter.fromMessage(message); headers = AmqpInboundGateway.this.headerMapper.toHeadersFromRequest(message.getMessageProperties()); if (AmqpInboundGateway.this.messageListenerContainer.getAcknowledgeMode() == AcknowledgeMode.MANUAL) { headers.put(AmqpHeaders.DELIVERY_TAG, message.getMessageProperties().getDeliveryTag()); headers.put(AmqpHeaders.CHANNEL, channel);
/** * Delegates to {@link #validateConfiguration()} and {@link #initialize()}. */ @Override public final void afterPropertiesSet() { super.afterPropertiesSet(); Assert.state( this.exposeListenerChannel || !getAcknowledgeMode().isManual(), "You cannot acknowledge messages manually if the channel is not exposed to the listener " + "(please check your configuration and set exposeListenerChannel=true or acknowledgeMode!=MANUAL)"); Assert.state( !(getAcknowledgeMode().isAutoAck() && isChannelTransacted()), "The acknowledgeMode is NONE (autoack in Rabbit terms) which is not consistent with having a " + "transactional channel. Either use a different AcknowledgeMode or make sure channelTransacted=false"); validateConfiguration(); initialize(); }
/** * Delegates to {@link #validateConfiguration()} and {@link #initialize()}. */ @Override public final void afterPropertiesSet() { super.afterPropertiesSet(); Assert.state( this.exposeListenerChannel || !getAcknowledgeMode().isManual(), "You cannot acknowledge messages manually if the channel is not exposed to the listener " + "(please check your configuration and set exposeListenerChannel=true or acknowledgeMode!=MANUAL)"); Assert.state( !(getAcknowledgeMode().isAutoAck() && isChannelTransacted()), "The acknowledgeMode is NONE (autoack in Rabbit terms) which is not consistent with having a " + "transactional channel. Either use a different AcknowledgeMode or make sure channelTransacted=false"); validateConfiguration(); initialize(); }
private org.springframework.messaging.Message<Object> createMessage(Message message, Channel channel) { Object payload = AmqpInboundChannelAdapter.this.messageConverter.fromMessage(message); Map<String, Object> headers = AmqpInboundChannelAdapter.this.headerMapper .toHeadersFromRequest(message.getMessageProperties()); if (AmqpInboundChannelAdapter.this.messageListenerContainer.getAcknowledgeMode() == AcknowledgeMode.MANUAL) { headers.put(AmqpHeaders.DELIVERY_TAG, message.getMessageProperties().getDeliveryTag()); headers.put(AmqpHeaders.CHANNEL, channel); } if (AmqpInboundChannelAdapter.this.retryTemplate != null) { headers.put(IntegrationMessageHeaderAccessor.DELIVERY_ATTEMPT, new AtomicInteger()); } final org.springframework.messaging.Message<Object> messagingMessage = getMessageBuilderFactory() .withPayload(payload) .copyHeaders(headers) .build(); return messagingMessage; }
payload = AmqpInboundGateway.this.amqpMessageConverter.fromMessage(message); headers = AmqpInboundGateway.this.headerMapper.toHeadersFromRequest(message.getMessageProperties()); if (AmqpInboundGateway.this.messageListenerContainer.getAcknowledgeMode() == AcknowledgeMode.MANUAL) { headers.put(AmqpHeaders.DELIVERY_TAG, message.getMessageProperties().getDeliveryTag()); headers.put(AmqpHeaders.CHANNEL, channel);
private void assertBasicConfig(AbstractMessageListenerContainer container) { DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(container); assertSame(connectionFactory, container.getConnectionFactory()); assertSame(errorHandler, fieldAccessor.getPropertyValue("errorHandler")); assertSame(messageConverter, fieldAccessor.getPropertyValue("messageListener.messageConverter")); assertEquals(AcknowledgeMode.MANUAL, container.getAcknowledgeMode()); assertEquals(true, container.isChannelTransacted()); assertEquals(false, container.isAutoStartup()); assertEquals(99, container.getPhase()); }