From 8c139ef444335c38450f698030fb93bb33856244 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 4 May 2016 17:37:30 +0200 Subject: [PATCH] Polishing --- .../JmsListenerAnnotationBeanPostProcessor.java | 4 ++-- .../jms/config/JmsListenerEndpointRegistrar.java | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-jms/src/main/java/org/springframework/jms/annotation/JmsListenerAnnotationBeanPostProcessor.java b/spring-jms/src/main/java/org/springframework/jms/annotation/JmsListenerAnnotationBeanPostProcessor.java index 06ee981e536..dad78130dfd 100644 --- a/spring-jms/src/main/java/org/springframework/jms/annotation/JmsListenerAnnotationBeanPostProcessor.java +++ b/spring-jms/src/main/java/org/springframework/jms/annotation/JmsListenerAnnotationBeanPostProcessor.java @@ -205,8 +205,8 @@ public class JmsListenerAnnotationBeanPostProcessor new MethodIntrospector.MetadataLookup>() { @Override public Set inspect(Method method) { - Set listenerMethods = - AnnotatedElementUtils.getMergedRepeatableAnnotations(method, JmsListener.class, JmsListeners.class); + Set listenerMethods = AnnotatedElementUtils.getMergedRepeatableAnnotations( + method, JmsListener.class, JmsListeners.class); return (!listenerMethods.isEmpty() ? listenerMethods : null); } }); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerEndpointRegistrar.java b/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerEndpointRegistrar.java index f965a64d1fd..af540e59a7b 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerEndpointRegistrar.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/JmsListenerEndpointRegistrar.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-2016 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. @@ -136,7 +136,7 @@ public class JmsListenerEndpointRegistrar implements BeanFactoryAware, Initializ this.endpointRegistry.registerListenerContainer( descriptor.endpoint, resolveContainerFactory(descriptor)); } - startImmediately = true; // trigger immediate startup + this.startImmediately = true; // trigger immediate startup } } @@ -149,9 +149,10 @@ public class JmsListenerEndpointRegistrar implements BeanFactoryAware, Initializ } else if (this.containerFactoryBeanName != null) { Assert.state(this.beanFactory != null, "BeanFactory must be set to obtain container factory by bean name"); + // Consider changing this if live change of the factory is required... this.containerFactory = this.beanFactory.getBean( this.containerFactoryBeanName, JmsListenerContainerFactory.class); - return this.containerFactory; // Consider changing this if live change of the factory is required + return this.containerFactory; } else { throw new IllegalStateException("Could not resolve the " + @@ -169,10 +170,12 @@ public class JmsListenerEndpointRegistrar implements BeanFactoryAware, Initializ public void registerEndpoint(JmsListenerEndpoint endpoint, JmsListenerContainerFactory factory) { Assert.notNull(endpoint, "Endpoint must be set"); Assert.hasText(endpoint.getId(), "Endpoint id must be set"); + // Factory may be null, we defer the resolution right before actually creating the container JmsListenerEndpointDescriptor descriptor = new JmsListenerEndpointDescriptor(endpoint, factory); + synchronized (this.mutex) { - if (startImmediately) { // Register and start immediately + if (this.startImmediately) { // register and start immediately this.endpointRegistry.registerListenerContainer(descriptor.endpoint, resolveContainerFactory(descriptor), true); }