Messaging systems
Pipeline
There is a simple syntax available for specifying pipeline, by simple putting to
or →
between the different steps in the pipeline.
For more advanced use cases, you can also use a block-based syntax, where every step in the pipeline starts with either to
or →
.
Filter
For a message filter, use the when()
method with a parameter of type The Exchange ⇒ Boolean
. In the example below, we use a Scala convenience method named in
to access the 'in' message body; only messages where the 'in' message is <hello/>
will arrive at the mock:a
endpoint.
Once again, if you need to specify a more advanced route, you can use the more elaborate syntax.
Message routing
Content based router
Similar to the Filter , the content based router uses when
methods with Exchange ⇒ Boolean
function literals and an optional otherwise
. The function literal can contain plain Scala code as well as any of the supported languages . The example below routes a given message based on the language of the message body.
Splitter
To handle large message in smaller chunks, you can write a Scala Exchange ⇒ Any*
method and add it to your route with the splitter
method. As with many other EIPs, we support a short, in-line version as well as a more elaborate block based one.
The above examples also show you how other languages like XPath can be within the Scala DSL.
TODO
TODO: Create a Scala alternative and example for every EIP available on http://activemq.apache.org/camel/enterprise-integration-patterns.html
- Message Channel
- Message
- Message Router
- Message Translator
- Message Endpoint
- Point to Point Channel
- Publish Subscribe Channel
- Dead Letter Channel
- Guaranteed Delivery
- Message Bus
- Correlation Identifier
- Recipient List
- Aggregator
- Resequencer
- Routing Slip
- Throttler
- Delayer
- Load Balancer
- Multicast
- Content Enricher
- Content Filter
- Normalizer
- Messaging Mapper
- Event Driven Consumer
- Polling Consumer
- Competing Consumers
- Message Dispatcher
- Selective Consumer
- Durable Subscriber
- Idempotent Consumer
- Transactional Client
- Messaging Gateway
- Service Activator
- Wire Tap