Skip to content

JmsListener/ScheduledAnnotationBeanPostProcessor should use SmartInitializingSingleton instead of ContextRefreshedEvent [SPR-12039] #16655

@spring-projects-issues

Description

@spring-projects-issues

Juergen Hoeller opened SPR-12039 and commented

Both JmsListenerAnnotationBeanPostProcessor and ScheduledAnnotationBeanPostProcessor traditionally implement ApplicationListener<ContextRefreshedEvent> to perform their registration tasks as late as possible. The new SmartInitializingSingleton mechanism in Spring 4.1 is a better fit since it kicks in right after the singleton pre-instantiation phase but before the phased lifecycle startup phase.

In the case of JmsListenerAnnotationBeanPostProcessor, this is particularly important since JmsListenerEndpointRegistry otherwise misses to propagate its phased start signal to the listener containers that it manages. This currently shows in the form that an explicit context.start() call is needed for annotated JMS endpoints.


Affects: 4.1 RC1

Issue Links:

Referenced from: commits 92c657e

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions