Set separate handling for invalid message handling and internal server
errors which should result in requeue instead of reject Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
@@ -149,7 +149,7 @@ public class AmqpConfiguration {
|
|||||||
@Bean(name = { "listenerContainerFactory" })
|
@Bean(name = { "listenerContainerFactory" })
|
||||||
public SimpleRabbitListenerContainerFactory listenerContainerFactory() {
|
public SimpleRabbitListenerContainerFactory listenerContainerFactory() {
|
||||||
final SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory();
|
final SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory();
|
||||||
containerFactory.setDefaultRequeueRejected(false);
|
containerFactory.setDefaultRequeueRejected(true);
|
||||||
containerFactory.setConnectionFactory(connectionFactory);
|
containerFactory.setConnectionFactory(connectionFactory);
|
||||||
containerFactory.setConcurrentConsumers(3);
|
containerFactory.setConcurrentConsumers(3);
|
||||||
containerFactory.setMaxConcurrentConsumers(10);
|
containerFactory.setMaxConcurrentConsumers(10);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.eclipse.hawkbit.simulator.amqp;
|
package org.eclipse.hawkbit.simulator.amqp;
|
||||||
|
|
||||||
|
import org.springframework.amqp.AmqpRejectAndDontRequeueException;
|
||||||
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.Message;
|
||||||
import org.springframework.amqp.core.MessageProperties;
|
import org.springframework.amqp.core.MessageProperties;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
@@ -55,7 +56,7 @@ public abstract class ReceiverService extends MessageService {
|
|||||||
if (contentType != null && contentType.contains("json")) {
|
if (contentType != null && contentType.contains("json")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
throw new IllegalArgumentException("Content-Type is not JSON compatible");
|
throw new AmqpRejectAndDontRequeueException("Content-Type is not JSON compatible");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ public class AmqpConfiguration {
|
|||||||
@Bean(name = { "listenerContainerFactory" })
|
@Bean(name = { "listenerContainerFactory" })
|
||||||
public SimpleRabbitListenerContainerFactory listenerContainerFactory() {
|
public SimpleRabbitListenerContainerFactory listenerContainerFactory() {
|
||||||
final SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory();
|
final SimpleRabbitListenerContainerFactory containerFactory = new SimpleRabbitListenerContainerFactory();
|
||||||
containerFactory.setDefaultRequeueRejected(false);
|
containerFactory.setDefaultRequeueRejected(true);
|
||||||
containerFactory.setConnectionFactory(rabbitConnectionFactory);
|
containerFactory.setConnectionFactory(rabbitConnectionFactory);
|
||||||
containerFactory.setMissingQueuesFatal(amqpProperties.isMissingQueuesFatal());
|
containerFactory.setMissingQueuesFatal(amqpProperties.isMissingQueuesFatal());
|
||||||
containerFactory.setTaskExecutor(taskExecutor);
|
containerFactory.setTaskExecutor(taskExecutor);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.amqp.AmqpRejectAndDontRequeueException;
|
||||||
import org.springframework.amqp.core.Message;
|
import org.springframework.amqp.core.Message;
|
||||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||||
import org.springframework.amqp.support.converter.AbstractJavaTypeMapper;
|
import org.springframework.amqp.support.converter.AbstractJavaTypeMapper;
|
||||||
@@ -110,7 +111,7 @@ public class BaseAmqpService {
|
|||||||
|
|
||||||
protected final void logAndThrowMessageError(final Message message, final String error) {
|
protected final void logAndThrowMessageError(final Message message, final String error) {
|
||||||
LOGGER.warn("Warning! \"{}\" reported by message: {}", error, message);
|
LOGGER.warn("Warning! \"{}\" reported by message: {}", error, message);
|
||||||
throw new IllegalArgumentException(error);
|
throw new AmqpRejectAndDontRequeueException(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected RabbitTemplate getRabbitTemplate() {
|
protected RabbitTemplate getRabbitTemplate() {
|
||||||
|
|||||||
Reference in New Issue
Block a user