Spring Integration Reference Manual

Mark Fisher

Marius Bogoevici

Iwein Fuld

Jonas Partner

Oleg Zhurakousky

Gary Russell

Josh Long

2.0.0.RC1

© SpringSource Inc., 2010


Table of Contents

1. Spring Integration Overview
1.1. Background
1.2. Goals and Principles
1.3. Main Components
1.3.1. Message
1.3.2. Message Channel
1.3.3. Message Endpoint
1.4. Message Endpoints
1.4.1. Transformer
1.4.2. Filter
1.4.3. Router
1.4.4. Splitter
1.4.5. Aggregator
1.4.6. Service Activator
1.4.7. Channel Adapter
2. Message Construction
2.1. The Message Interface
2.2. Message Headers
2.3. Message Implementations
2.4. The MessageBuilder Helper Class
3. Message Channels
3.1. The MessageChannel Interface
3.1.1. PollableChannel
3.1.2. SubscribableChannel
3.2. Message Channel Implementations
3.2.1. PublishSubscribeChannel
3.2.2. QueueChannel
3.2.3. PriorityChannel
3.2.4. RendezvousChannel
3.2.5. DirectChannel
3.2.6. ExecutorChannel
3.2.7. ThreadLocalChannel
3.3. Channel Interceptors
3.4. MessagingTemplate
3.5. Configuring Message Channels
3.5.1. DirectChannel Configuration
3.5.2. QueueChannel Configuration
3.5.3. PublishSubscribeChannel Configuration
3.5.4. ExecutorChannel
3.5.5. PriorityChannel Configuration
3.5.6. RendezvousChannel Configuration
3.5.7. ThreadLocalChannel Configuration
3.5.8. Channel Interceptor Configuration
3.5.9. Global Channel Interceptor Configuration
3.5.10. Wire Tap
4. Message Endpoints
4.1. Message Handler
4.2. Event Driven Consumer
4.3. Polling Consumer
4.4. Namespace Support
4.5. Payload Type Conversion
4.6. Asynchronous polling
5. Service Activator
5.1. Introduction
5.2. The <service-activator/> Element
6. Channel Adapter
6.1. The <inbound-channel-adapter> element
6.2. The <outbound-channel-adapter/> element
7. Router
7.1. Router Implementations
7.1.1. PayloadTypeRouter
7.1.2. HeaderValueRouter
7.1.3. RecipientListRouter
7.2. The <router> element
7.3. The @Router Annotation
7.4. Dynamic Routers
8. Filter
8.1. Introduction
8.2. The <filter> Element
9. Transformer
9.1. Introduction
9.2. The <transformer> Element
9.3. The @Transformer Annotation
10. Splitter
10.1. Introduction
10.2. Programming model
10.3. Configuring a Splitter using XML
10.4. Configuring a Splitter with Annotations
11. Aggregator
11.1. Introduction
11.2. Functionality
11.3. Programming model
11.3.1. CorrelatingMessageHandler
11.3.2. ReleaseStrategy
11.3.3. CorrelationStrategy
11.4. Configuring an Aggregator with XML
11.5. Managing State in an Aggregator: MessageGroupStore
11.6. Configuring an Aggregator with Annotations
12. Resequencer
12.1. Introduction
12.2. Functionality
12.3. Configuring a Resequencer with XML
13. Delayer
13.1. Introduction
13.2. The <delayer> Element
14. Message Handler Chain
14.1. Introduction
14.2. The <chain> Element
15. Messaging Bridge
15.1. Introduction
15.2. The <bridge> Element
16. Inbound Messaging Gateways
16.1. GatewayProxyFactoryBean
16.2. Asynchronous Gateway
16.3. Gateway behavior when no response is coming
17. Message Publishing
17.1. Message Publishing Configuration
17.1.1. Annotation-driven approach via @Publisher annotation
17.1.2. XML-based approach via <publishing-interceptor> element
17.1.3. Producing and publishing messages based on a scheduled trigger
18. Transaction Support
18.1. Understanding Transactions in Message flows
18.1.1. Poller Transaction Support
18.2. Transaction Boundaries
19. Message History
19.1. Message History Configuration
20. File Support
20.1. Introduction
20.2. Reading Files
20.3. Writing files
20.4. File Transformers
21. JDBC Support
21.1. Inbound Channel Adapter
21.1.1. Polling and Transactions
21.2. Outbound Channel Adapter
21.3. Outbound Gateway
21.4. Message Store
21.4.1. Initializing the Database
21.4.2. Partitioning a Message Store
22. JMS Support
22.1. Inbound Channel Adapter
22.2. Message-Driven Channel Adapter
22.3. Outbound Channel Adapter
22.4. Inbound Gateway
22.5. Outbound Gateway
22.6. Message Conversion, Marshalling and Unmarshalling
22.7. JMS Backed Message Channels
22.8. JMS Samples
23. Web Services Support
23.1. Outbound Web Service Gateways
23.2. Inbound Web Service Gateways
23.3. Web Service Namespace Support
24. RMI Support
24.1. Introduction
24.2. Outbound RMI
24.3. Inbound RMI
24.4. RMI namespace support
25. HttpInvoker Support
25.1. Introduction
25.2. HttpInvoker Inbound Gateway
25.3. HttpInvoker Outbound Gateway
25.4. HttpInvoker Namespace Support
26. HTTP Support
26.1. Introduction
26.2. Http Inbound Gateway
26.3. Http Outbound Gateway
26.4. HTTP Namespace Support
26.5. HTTP Samples
26.5.1. Multipart HTTP request - RestTemplate (client) and Http Inbound Gateway (server)
27. TCP and UDP Support
27.1. Introduction
27.2. UDP Adapters
27.3. TCP Connection Factories
27.4. Tcp Connection Interceptors
27.5. TCP Adapters
27.6. TCP Gateways
27.7. IP Configuration Attributes
28. Mail Support
28.1. Mail-Sending Channel Adapter
28.2. Mail-Receiving Channel Adapter
28.3. Mail Namespace Support
29. JMX Support
29.1. Notification Listening Channel Adapter
29.2. Notification Publishing Channel Adapter
29.3. Attribute Polling Channel Adapter
29.4. Operation Invoking Channel Adapter
29.5. Operation Invoking outbound Gateway
29.6. MBean Exporter
29.7. Control Bus
30. XMPP Support
30.1. Introduction
30.2. Using The Spring Integration XMPP Namespace
30.3. XMPP Connection
30.4. XMPP Messages
30.4.1. Inbound Message Adapter
30.4.2. Outbound Message Adapter
30.5. XMPP Presence
30.5.1. Inbound Presence Adapter
30.5.2. Outbound Presence Adapter
31. Stream Support
31.1. Introduction
31.2. Reading from streams
31.3. Writing to streams
31.4. Stream namespace support
32. Spring ApplicationEvent Support
32.1. Receiving Spring ApplicationEvents
32.2. Sending Spring ApplicationEvents
33. XML Support - Dealing with XML Payloads
33.1. Introduction
33.2. Transforming xml payloads
33.3. Namespace support for xml transformers
33.4. Splitting xml messages
33.5. Routing xml messages using XPath
33.6. Selecting xml messages using XPath
33.7. Transforming xml messages using XPath
33.8. XPath components namespace support
34. Security in Spring Integration
34.1. Introduction
34.2. Securing channels
35. Groovy support
35.1. Groovy configuration
A. Spring Integration Samples
A.1. Introduction
A.2. Where to get Samples
A.3. Samples structure
A.4. Samples
A.4.1. Loan Broker
A.4.2. The Cafe Sample
A.4.3. The XML Messaging Sample
B. Configuration
B.1. Introduction
B.2. Namespace Support
B.3. Configuring the Task Scheduler
B.4. Error Handling
B.5. Annotation Support
B.6. Message Mapping rules and conventions
B.6.1. Simple Scenarios
B.6.2. Complex Scenarios
C. Additional Resources
C.1. Spring Integration Home