JIRA: https://jira.spring.io/browse/INT-3701 Allow Spring Boot to determine type created by GatewayProxyFactoryBean Spring Boot's @ConditionalOnBean can be used to activate some configuration when a bean of a particular type is present in the application context. To avoid early initialization, the search for beans is performed without instantiating them, i.e. it relies on the information that's available from the bean's class and its bean definition. This causes a problem with GatewayProxyFactoryBean as its a FactoryBean<Object> so Boot's best guess is that the bean that's produced by the factory will be an Object. For cases where the bean's type signiture does not contain enougn information to determine its type, Boot looks at an attribute, factoryBeanObjectType, on the factory bean's definition. The value of this attribute can be a Class or a String class name. This commit updates MessagingGatewayRegistrar to set the value of factoryBeanObjectType attribute to be the configured service interface for the gateway.
Spring Integration 
Checking out and Building
To check out the project and build from source, do the following:
git clone git://github.com/spring-projects/spring-integration.git
cd spring-integration
./gradlew build
If you encounter out of memory errors during the build, increase available heap and permgen for Gradle:
GRADLE_OPTS='-XX:MaxPermSize=1024m -Xmx1024m'
To build and install jars into your local Maven cache:
./gradlew install
To build api Javadoc (results will be in build/api):
./gradlew api
To build reference documentation (results will be in build/reference):
./gradlew reference
To build complete distribution including -dist, -docs, and -schema zip files (results will be in build/distributions)
./gradlew dist
Using Eclipse
To generate Eclipse metadata (.classpath and .project files), do the following:
./gradlew eclipse
Once complete, you may then import the projects into Eclipse as usual:
File -> Import -> Existing projects into workspace
Browse to the 'spring-integration' root directory. All projects should import free of errors.
Using IntelliJ IDEA
To generate IDEA metadata (.iml and .ipr files), do the following:
./gradlew idea
Resources
For more information, please visit the Spring Integration website at: http://projects.spring.io/spring-integration