diff --git a/org.springframework.jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java b/org.springframework.jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java index 9f415bd8fb..1faf7d715e 100644 --- a/org.springframework.jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java +++ b/org.springframework.jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -108,6 +108,7 @@ class JcaListenerContainerParser extends AbstractListenerContainerParser { return containerDef; } + @Override protected boolean indicatesPubSub(BeanDefinition containerDef) { BeanDefinition configDef = (BeanDefinition) containerDef.getPropertyValues().getPropertyValue("activationSpecConfig").getValue(); diff --git a/org.springframework.jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java b/org.springframework.jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java index 444eb9a757..e66a857155 100644 --- a/org.springframework.jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java +++ b/org.springframework.jms/src/main/java/org/springframework/jms/config/JmsListenerContainerParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -47,6 +47,8 @@ class JmsListenerContainerParser extends AbstractListenerContainerParser { private static final String CACHE_ATTRIBUTE = "cache"; + private static final String RECEIVE_TIMEOUT_ATTRIBUTE = "receive-timeout"; + protected BeanDefinition parseContainer(Element listenerEle, Element containerEle, ParserContext parserContext) { RootBeanDefinition containerDef = new RootBeanDefinition(); @@ -156,6 +158,13 @@ class JmsListenerContainerParser extends AbstractListenerContainerParser { } } + String receiveTimeout = containerEle.getAttribute(RECEIVE_TIMEOUT_ATTRIBUTE); + if (StringUtils.hasText(receiveTimeout)) { + if (containerType.startsWith("default")) { + containerDef.getPropertyValues().add("receiveTimeout", new Integer(receiveTimeout)); + } + } + String phase = containerEle.getAttribute(PHASE_ATTRIBUTE); if (StringUtils.hasText(phase)) { containerDef.getPropertyValues().add("phase", phase); @@ -164,10 +173,12 @@ class JmsListenerContainerParser extends AbstractListenerContainerParser { return containerDef; } + @Override protected boolean indicatesPubSub(BeanDefinition containerDef) { return indicatesPubSubConfig(containerDef); } + @Override protected boolean indicatesJms102(BeanDefinition containerDef) { return containerDef.getBeanClassName().endsWith("102"); } diff --git a/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.1.xsd b/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.1.xsd index b4cfb626ed..08f9d634c9 100644 --- a/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.1.xsd +++ b/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.1.xsd @@ -233,6 +233,14 @@ ]]> + + + + + + http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd"> + transaction-manager="testTransactionManager" error-handler="testErrorHandler" + concurrency="1-2" prefetch="50" receive-timeout="100" phase="99">