Make sure endpoint settings override default factory settings

Issue: SPR-16338
This commit is contained in:
Stephane Nicoll
2018-01-15 15:42:50 +01:00
parent 0a30b71dc3
commit 0747cd6a70
2 changed files with 18 additions and 3 deletions
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2015 the original author or authors. * Copyright 2002-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -200,8 +200,8 @@ public abstract class AbstractJmsListenerContainerFactory<C extends AbstractMess
instance.setAutoStartup(this.autoStartup); instance.setAutoStartup(this.autoStartup);
} }
endpoint.setupListenerContainer(instance);
initializeContainer(instance); initializeContainer(instance);
endpoint.setupListenerContainer(instance);
return instance; return instance;
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2015 the original author or authors. * Copyright 2002-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@@ -149,6 +149,21 @@ public class JmsListenerContainerFactoryTests {
assertSame(backOff, new DirectFieldAccessor(container).getPropertyValue("backOff")); assertSame(backOff, new DirectFieldAccessor(container).getPropertyValue("backOff"));
} }
@Test
public void endpointConcurrencyTakesPrecedence() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConcurrency("2-10");
SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
MessageListener messageListener = new MessageListenerAdapter();
endpoint.setMessageListener(messageListener);
endpoint.setDestination("myQueue");
endpoint.setConcurrency("4-6");
DefaultMessageListenerContainer container = factory.createListenerContainer(endpoint);
assertEquals(4, container.getConcurrentConsumers());
assertEquals(6, container.getMaxConcurrentConsumers());
}
private void setDefaultJmsConfig(AbstractJmsListenerContainerFactory<?> factory) { private void setDefaultJmsConfig(AbstractJmsListenerContainerFactory<?> factory) {
factory.setConnectionFactory(connectionFactory); factory.setConnectionFactory(connectionFactory);