Place holder resolution in @JmsListener arguments
This commit allows to use place holder definitions for JmsListener attributes, effectively allowing to externalize those settings from the code. Issue: SPR-12134
This commit is contained in:
@@ -55,6 +55,9 @@ public abstract class AbstractJmsAnnotationDrivenTests {
|
||||
@Test
|
||||
public abstract void fullConfiguration();
|
||||
|
||||
@Test
|
||||
public abstract void fullConfigurableConfiguration();
|
||||
|
||||
@Test
|
||||
public abstract void customConfiguration();
|
||||
|
||||
@@ -107,13 +110,25 @@ public abstract class AbstractJmsAnnotationDrivenTests {
|
||||
assertEquals("queueIn", endpoint.getDestination());
|
||||
assertEquals("mySelector", endpoint.getSelector());
|
||||
assertEquals("mySubscription", endpoint.getSubscription());
|
||||
assertEquals("1-10", endpoint.getConcurrency());
|
||||
}
|
||||
|
||||
@Component
|
||||
static class FullBean {
|
||||
|
||||
@JmsListener(id = "listener1", containerFactory = "simpleFactory", destination = "queueIn",
|
||||
selector = "mySelector", subscription = "mySubscription")
|
||||
selector = "mySelector", subscription = "mySubscription", concurrency = "1-10")
|
||||
public String fullHandle(String msg) {
|
||||
return "reply";
|
||||
}
|
||||
}
|
||||
|
||||
@Component
|
||||
static class FullConfigurableBean {
|
||||
|
||||
@JmsListener(id = "${jms.listener.id}", containerFactory = "${jms.listener.containerFactory}",
|
||||
destination = "${jms.listener.destination}", selector = "${jms.listener.selector}",
|
||||
subscription = "${jms.listener.subscription}", concurrency = "${jms.listener.concurrency}")
|
||||
public String fullHandle(String msg) {
|
||||
return "reply";
|
||||
}
|
||||
|
||||
@@ -51,6 +51,13 @@ public class AnnotationDrivenNamespaceTests extends AbstractJmsAnnotationDrivenT
|
||||
testFullConfiguration(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fullConfigurableConfiguration() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"annotation-driven-full-configurable-config.xml", getClass());
|
||||
testFullConfiguration(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
public void customConfiguration() {
|
||||
|
||||
@@ -29,6 +29,8 @@ import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||
import org.springframework.messaging.handler.annotation.support.DefaultMessageHandlerMethodFactory;
|
||||
import org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory;
|
||||
import org.springframework.jms.config.JmsListenerContainerTestFactory;
|
||||
@@ -63,6 +65,13 @@ public class EnableJmsTests extends AbstractJmsAnnotationDrivenTests {
|
||||
testFullConfiguration(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fullConfigurableConfiguration() {
|
||||
ConfigurableApplicationContext context = new AnnotationConfigApplicationContext(
|
||||
EnableJmsFullConfigurableConfig.class, FullConfigurableBean.class);
|
||||
testFullConfiguration(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Test
|
||||
public void customConfiguration() {
|
||||
@@ -131,6 +140,22 @@ public class EnableJmsTests extends AbstractJmsAnnotationDrivenTests {
|
||||
}
|
||||
}
|
||||
|
||||
@EnableJms
|
||||
@Configuration
|
||||
@PropertySource("classpath:/org/springframework/jms/annotation/jms-listener.properties")
|
||||
static class EnableJmsFullConfigurableConfig {
|
||||
|
||||
@Bean
|
||||
public JmsListenerContainerTestFactory simpleFactory() {
|
||||
return new JmsListenerContainerTestFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
|
||||
return new PropertySourcesPlaceholderConfigurer();
|
||||
}
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@EnableJms
|
||||
static class EnableJmsCustomConfig implements JmsListenerConfigurer {
|
||||
|
||||
Reference in New Issue
Block a user