org.springframework.integration.config
Class MessageEndpointAnnotationPostProcessor

java.lang.Object
  extended by org.springframework.integration.config.MessageEndpointAnnotationPostProcessor
All Implemented Interfaces:
org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.InitializingBean

public class MessageEndpointAnnotationPostProcessor
extends java.lang.Object
implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.InitializingBean

A BeanPostProcessor implementation that generates endpoints for classes annotated with @MessageEndpoint.

Author:
Mark Fisher, Marius Bogoevici

Field Summary
private  java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,MessageHandlerCreator> handlerCreators
           
private  org.apache.commons.logging.Log logger
           
private  MessageBus messageBus
           
 
Constructor Summary
MessageEndpointAnnotationPostProcessor(MessageBus messageBus)
           
 
Method Summary
 void afterPropertiesSet()
           
private  void configureCompletionStrategy(java.lang.Object bean, HandlerEndpoint endpoint)
           
private  void configureInput(java.lang.Object bean, java.lang.String beanName, MessageEndpoint annotation, Polled polledAnnotation, HandlerEndpoint endpoint)
           
private  void configureOutput(java.lang.Object bean, java.lang.String beanName, HandlerEndpoint endpoint)
           
private  MessageHandlerChain createHandlerChain(java.lang.Object bean, java.lang.String outputChannelName)
           
private  java.lang.Class<?> getBeanClass(java.lang.Object bean)
           
private  boolean isHandlerAnnotation(java.lang.annotation.Annotation annotation)
           
 java.lang.Object postProcessAfterInitialization(java.lang.Object bean, java.lang.String beanName)
           
 java.lang.Object postProcessBeforeInitialization(java.lang.Object bean, java.lang.String beanName)
           
 void setCustomHandlerCreators(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,MessageHandlerCreator> customHandlerCreators)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private final org.apache.commons.logging.Log logger

handlerCreators

private final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,MessageHandlerCreator> handlerCreators

messageBus

private final MessageBus messageBus
Constructor Detail

MessageEndpointAnnotationPostProcessor

public MessageEndpointAnnotationPostProcessor(MessageBus messageBus)
Method Detail

setCustomHandlerCreators

public void setCustomHandlerCreators(java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,MessageHandlerCreator> customHandlerCreators)

afterPropertiesSet

public void afterPropertiesSet()
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean

postProcessBeforeInitialization

public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean,
                                                        java.lang.String beanName)
                                                 throws org.springframework.beans.BeansException
Specified by:
postProcessBeforeInitialization in interface org.springframework.beans.factory.config.BeanPostProcessor
Throws:
org.springframework.beans.BeansException

postProcessAfterInitialization

public java.lang.Object postProcessAfterInitialization(java.lang.Object bean,
                                                       java.lang.String beanName)
                                                throws org.springframework.beans.BeansException
Specified by:
postProcessAfterInitialization in interface org.springframework.beans.factory.config.BeanPostProcessor
Throws:
org.springframework.beans.BeansException

configureInput

private void configureInput(java.lang.Object bean,
                            java.lang.String beanName,
                            MessageEndpoint annotation,
                            Polled polledAnnotation,
                            HandlerEndpoint endpoint)

configureOutput

private void configureOutput(java.lang.Object bean,
                             java.lang.String beanName,
                             HandlerEndpoint endpoint)

configureCompletionStrategy

private void configureCompletionStrategy(java.lang.Object bean,
                                         HandlerEndpoint endpoint)

createHandlerChain

private MessageHandlerChain createHandlerChain(java.lang.Object bean,
                                               java.lang.String outputChannelName)

getBeanClass

private java.lang.Class<?> getBeanClass(java.lang.Object bean)

isHandlerAnnotation

private boolean isHandlerAnnotation(java.lang.annotation.Annotation annotation)