org.springframework.integration.gateway
Class GatewayProxyFactoryBean

java.lang.Object
  extended by org.springframework.integration.gateway.MessagingGatewaySupport
      extended by org.springframework.integration.gateway.SimpleMessagingGateway
          extended by org.springframework.integration.gateway.GatewayProxyFactoryBean
All Implemented Interfaces:
org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.FactoryBean, org.springframework.beans.factory.InitializingBean, MessageBusAware, MessagingGateway

public class GatewayProxyFactoryBean
extends SimpleMessagingGateway
implements org.springframework.beans.factory.FactoryBean, org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware

Generates a proxy for the provided service interface to enable interaction with messaging components without application code being aware of them.

Author:
Mark Fisher

Field Summary
private  java.lang.ClassLoader beanClassLoader
           
private  java.lang.Object initializationMonitor
           
private  boolean initialized
           
private  java.lang.Class<?> serviceInterface
           
private  java.lang.Object serviceProxy
           
private  org.springframework.beans.TypeConverter typeConverter
           
 
Constructor Summary
GatewayProxyFactoryBean()
           
 
Method Summary
 void afterPropertiesSet()
           
 java.lang.Object getObject()
           
 java.lang.Class<?> getObjectType()
           
 java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
           
private  java.lang.Object invokeGatewayMethod(org.aopalliance.intercept.MethodInvocation invocation)
           
 boolean isSingleton()
           
 void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)
           
 void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
           
 void setServiceInterface(java.lang.Class<?> serviceInterface)
           
 void setTypeConverter(org.springframework.beans.TypeConverter typeConverter)
           
 
Methods inherited from class org.springframework.integration.gateway.SimpleMessagingGateway
receive, receiveAndForward, send, sendAndReceive, sendAndReceiveMessage, setMessageBus, setMessageCreator, setMessageMapper, setReplyChannel, setReplyMapCapacity, setReplyTimeout, setRequestChannel
 
Methods inherited from class org.springframework.integration.gateway.MessagingGatewaySupport
getMessageExchangeTemplate, setRequestTimeout
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serviceInterface

private volatile java.lang.Class<?> serviceInterface

typeConverter

private volatile org.springframework.beans.TypeConverter typeConverter

beanClassLoader

private volatile java.lang.ClassLoader beanClassLoader

serviceProxy

private volatile java.lang.Object serviceProxy

initialized

private volatile boolean initialized

initializationMonitor

private final java.lang.Object initializationMonitor
Constructor Detail

GatewayProxyFactoryBean

public GatewayProxyFactoryBean()
Method Detail

setServiceInterface

public void setServiceInterface(java.lang.Class<?> serviceInterface)

setTypeConverter

public void setTypeConverter(org.springframework.beans.TypeConverter typeConverter)

setBeanClassLoader

public void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)
Specified by:
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAware

setBeanFactory

public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
Specified by:
setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware

afterPropertiesSet

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

getObject

public java.lang.Object getObject()
                           throws java.lang.Exception
Specified by:
getObject in interface org.springframework.beans.factory.FactoryBean
Throws:
java.lang.Exception

getObjectType

public java.lang.Class<?> getObjectType()
Specified by:
getObjectType in interface org.springframework.beans.factory.FactoryBean

isSingleton

public boolean isSingleton()
Specified by:
isSingleton in interface org.springframework.beans.factory.FactoryBean

invoke

public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation)
                        throws java.lang.Throwable
Specified by:
invoke in interface org.aopalliance.intercept.MethodInterceptor
Throws:
java.lang.Throwable

invokeGatewayMethod

private java.lang.Object invokeGatewayMethod(org.aopalliance.intercept.MethodInvocation invocation)
                                      throws java.lang.Throwable
Throws:
java.lang.Throwable