You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Messaging systems

Pipeline

There is a simple syntax available for specifying pipeline, by simple putting to or between the different steps in the pipeline.

Error formatting macro: snippet: java.lang.NullPointerException

For more advanced use cases, you can also use a block-based syntax, where every step in the pipeline starts with either to or .

Error formatting macro: snippet: java.lang.NullPointerException

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.

Error formatting macro: snippet: java.lang.NullPointerException

Once again, if you need to specify a more advanced route, you can use the more elaborate syntax.

Error formatting macro: snippet: java.lang.NullPointerException

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.

Error formatting macro: snippet: java.lang.NullPointerException

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.

Error formatting macro: snippet: java.lang.NullPointerException
Error formatting macro: snippet: java.lang.NullPointerException

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
  • No labels