Delete *.project* file in sample project: * control-bus * http Delete also: * applications/cafe/.springBeans * applications/loan-broker/.springBeans * applications/loanshark/.springBeans * basic/feed/.springBeans * basic/file/.springBeans * basic/ftp/.springBeans * basic/helloworld/.springBeans * basic/http/.springBeans * basic/jms/.springBeans * basic/jmx/.springBeans * basic/mail/.springBeans * basic/oddeven/.springBeans * basic/quote/.springBeans * basic/sftp/.springBeans * basic/tcp-client-server/.springBeans * basic/twitter/.springBeans * basic/ws-inbound-gateway/.springBeans * basic/ws-outbound-gateway/.springBeans * basic/xml/.springBeans * basic/xmpp/.springBeans * intermediate/async-gateway/.springBeans * intermediate/errorhandling/.springBeans * intermediate/file-processing/.springBeans * intermediate/multipart-http/.springBeans * intermediate/travel/.springBeans
JMX Sample
This example demonstrates the following aspects of the JMX support available with Spring Integration:
- JMX Attribute Polling Channel
- JMX Operation Invoking Channel Adapter
StopWatch is a Managed Bean. It is bootstraped and deployed using annotation support (@Component, @ManagedResource) and component scanning functionality provided by Spring JMX. Internally StopWatch simply runs a task that increments the value of its seconds attribute by 1 every second.
The JMX Attribute Polling Channel Adapter simply polls a managed attribute seconds of the StopWatch MBean identified by the name:
org.springframework.integration.samples.jmx:type=StopWatch,name=stopWatch
It sends its value to a seconds channel. The interesting part is that the seconds channel is a publish-subscribe-channel and has two subscribers:
- Stdout Channel Adapter which prints the value of the polled attribute to the console
- Filter which essentially waits till the payload value is 10
Once the payload value is 10, the filter sends the Message to a reset channel, which is represented as JMX Operation Invoking Channel Adapter. That adapter simply invokes the reset operation on the same StopWatch MBean resetting the seconds attribute value back to 1 and the process repeats.
To run the JMX Adapter sample simply execute JmxAdapterDemoTest. You will see output similar to this, which will loop for ~20 seconds:
1
2
3
4
5
6
7
8
9
10
1
2
3
. . .