diff --git a/org.springframework.jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java b/org.springframework.jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java index 784e8f502d1..566cccb5b86 100644 --- a/org.springframework.jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java +++ b/org.springframework.jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2009 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. @@ -83,6 +83,8 @@ abstract class AbstractListenerContainerParser implements BeanDefinitionParser { protected static final String CONCURRENCY_ATTRIBUTE = "concurrency"; + protected static final String PHASE_ATTRIBUTE = "phase"; + protected static final String PREFETCH_ATTRIBUTE = "prefetch"; 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 930b10d996c..cc2767fc7bd 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-2007 the original author or authors. + * Copyright 2002-2009 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. @@ -93,6 +93,11 @@ class JcaListenerContainerParser extends AbstractListenerContainerParser { configDef.getPropertyValues().add("maxConcurrency", concurrency[1]); } + String phase = containerEle.getAttribute(PHASE_ATTRIBUTE); + if (StringUtils.hasText(phase)) { + containerDef.getPropertyValues().add("phase", phase); + } + String prefetch = containerEle.getAttribute(PREFETCH_ATTRIBUTE); if (StringUtils.hasText(prefetch)) { configDef.getPropertyValues().add("prefetchSize", new Integer(prefetch)); 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 950316c44ed..554c79baf6c 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 @@ -44,8 +44,6 @@ class JmsListenerContainerParser extends AbstractListenerContainerParser { private static final String ERROR_HANDLER_ATTRIBUTE = "error-handler"; - private static final String PHASE_ATTRIBUTE = "phase"; - private static final String CACHE_ATTRIBUTE = "cache"; diff --git a/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd b/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd index 4ee34a8d003..fa50a57cd6a 100644 --- a/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd +++ b/org.springframework.jms/src/main/resources/org/springframework/jms/config/spring-jms-3.0.xsd @@ -391,6 +391,16 @@ ]]> + + + + + diff --git a/org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java b/org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java index 0480804277c..6955b6fc398 100644 --- a/org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java +++ b/org.springframework.jms/src/test/java/org/springframework/jms/config/JmsNamespaceHandlerTests.java @@ -153,8 +153,8 @@ public class JmsNamespaceHandlerTests extends TestCase { int defaultPhase = getPhase(DefaultMessageListenerContainer.class.getName() + "#0"); assertEquals(99, phase1); assertEquals(99, phase2); - assertEquals(Integer.MAX_VALUE, phase3); - assertEquals(Integer.MAX_VALUE, phase4); + assertEquals(77, phase3); + assertEquals(77, phase4); assertEquals(Integer.MAX_VALUE, defaultPhase); } diff --git a/org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml b/org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml index 0aa40c42265..5634d157a70 100644 --- a/org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml +++ b/org.springframework.jms/src/test/java/org/springframework/jms/config/jmsNamespaceHandlerTests.xml @@ -18,7 +18,7 @@ + message-converter="testMessageConverter" phase="77">