SchedulingConfigurer and JmsListenerConfigurer respect @Order

Issue: SPR-16090
This commit is contained in:
Juergen Hoeller
2017-10-23 19:03:30 +02:00
parent 268ccb6b6b
commit 40f3fb20c2
4 changed files with 25 additions and 16 deletions

View File

@@ -17,7 +17,9 @@
package org.springframework.jms.annotation;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -41,6 +43,7 @@ import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.core.MethodIntrospector;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.jms.config.JmsListenerConfigUtils;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerEndpointRegistrar;
@@ -166,9 +169,11 @@ public class JmsListenerAnnotationBeanPostProcessor
if (this.beanFactory instanceof ListableBeanFactory) {
// Apply JmsListenerConfigurer beans from the BeanFactory, if any
Map<String, JmsListenerConfigurer> instances =
Map<String, JmsListenerConfigurer> beans =
((ListableBeanFactory) this.beanFactory).getBeansOfType(JmsListenerConfigurer.class);
for (JmsListenerConfigurer configurer : instances.values()) {
List<JmsListenerConfigurer> configurers = new ArrayList<JmsListenerConfigurer>(beans.values());
AnnotationAwareOrderComparator.sort(configurers);
for (JmsListenerConfigurer configurer : configurers) {
configurer.configureJmsListeners(this.registrar);
}
}