Skip to content

Commit eaa9371

Browse files
LIBS-807 - endless retries in case of connection problems (#11)
1 parent eb62d8a commit eaa9371

File tree

5 files changed

+20
-2
lines changed

5 files changed

+20
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<dependency>
1313
<groupId>com.avides.spring</groupId>
1414
<artifactId>spring-rabbit</artifactId>
15-
<version>2.3.0</version>
15+
<version>2.4.0</version>
1616
</dependency>
1717
```
1818

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
<groupId>com.avides.spring</groupId>
55
<artifactId>spring-rabbit</artifactId>
6-
<version>2.3.0</version>
6+
<version>2.4.0</version>
77

88
<name>spring-rabbit</name>
99
<description>Makes configuring RabbitMQ for Spring Boot applications more comfortable</description>

src/main/java/com/avides/spring/rabbit/configuration/IsSpringRabbitEnabled.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ public IsSpringRabbitEnabled()
2020
@ConditionalOnProperty("spring.rabbitmq.addresses")
2121
static class HasSingleConnection
2222
{
23+
// not necessary
2324
}
2425

2526
@ConditionalOnProperty("spring.rabbitmq.connections[0].addresses")
2627
static class HasMultipleConnections
2728
{
29+
// not necessary
2830
}
2931
}

src/main/java/com/avides/spring/rabbit/listener/container/DefaultMessageListenerContainer.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.springframework.amqp.core.MessageListener;
55
import org.springframework.amqp.rabbit.connection.Connection;
66
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
7+
import org.springframework.amqp.rabbit.listener.BlockingQueueConsumer;
78
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
89
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
910
import org.springframework.amqp.support.converter.MessageConverter;
@@ -37,6 +38,15 @@ public DefaultMessageListenerContainer(ConnectionFactory connectionFactory)
3738
setErrorHandler(new ValidationErrorHandler());
3839
setDefaultRequeueRejected(false);
3940
setPrefetchCount(500);
41+
setMissingQueuesFatal(false);
42+
}
43+
44+
@Override
45+
protected BlockingQueueConsumer createBlockingQueueConsumer()
46+
{
47+
var consumer = super.createBlockingQueueConsumer();
48+
consumer.setDeclarationRetries(1000000); // infinity
49+
return consumer;
4050
}
4151

4252
/**

src/test/java/com/avides/spring/rabbit/listener/container/DefaultMessageListenerContainerTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import org.powermock.modules.junit4.PowerMockRunner;
1111
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
1212
import org.springframework.amqp.support.converter.MessageConverter;
13+
import org.springframework.test.util.ReflectionTestUtils;
1314

15+
import com.avides.spring.rabbit.configuration.ValidationErrorHandler;
1416
import com.avides.spring.rabbit.listener.ContextAwareRabbitListener;
1517
import com.avides.spring.rabbit.listener.RabbitListener;
1618
import com.avides.spring.rabbit.listener.SpringRabbitListener;
@@ -41,6 +43,10 @@ public void testConstructor()
4143
{
4244
var listenerContainer = new DefaultMessageListenerContainer<>(connectionFactory);
4345
assertThat(listenerContainer.getConnectionFactory()).isSameAs(connectionFactory);
46+
assertThat(ReflectionTestUtils.getField(listenerContainer, "errorHandler")).isInstanceOf(ValidationErrorHandler.class);
47+
assertThat(ReflectionTestUtils.getField(listenerContainer, "defaultRequeueRejected")).isEqualTo(Boolean.FALSE);
48+
assertThat(ReflectionTestUtils.getField(listenerContainer, "prefetchCount")).isEqualTo(Integer.valueOf(500));
49+
assertThat(ReflectionTestUtils.getField(listenerContainer, "missingQueuesFatal")).isEqualTo(Boolean.FALSE);
4450
}
4551

4652
@Test

0 commit comments

Comments
 (0)