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">