Some handlers get a componentName, but not a beanName. For example the TransformerFactoryBean may create a Transformer that's not a bean, to wrap a POJO, or expression. The AbstractSimpleMessageHandlerFactoryBean transfers the component name to the transformer but it has a null beanName. It would not be appropriate for the FB to change the beanName. The IntegrationMBeanExporter's fallback, when it can't find the handler as part of a stand-alone endpoint, is to use the handler's toString(). IntegrationObjectSupport (IOS) toString delegates to Object.toString() if there is no beanName. IOS's getComponentName() falls back to the beanName if there is no component name. Change the IMBE to use the componentName as the first fallback and, if null, fallback to the current fallback. One side effect is that handlers that do have a bean name will no longer have '.handler' at the end of their name; but this is not really an issue because the MBean is designated as a handler anyway (via the bean component of the ObjectName). However, identifying chain components is new in 3.0 so this is not really a breaking change.
Spring Integration
Checking out and Building
To check out the project and build from source, do the following:
git clone git://github.com/SpringSource/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://www.springsource.org/spring-integration