Scala DSL

Since Camel 1.4

Deprecated

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It integrates very well with the Java platform. Our Scala DSL implementation is built on top of the existing Java-based DSL, but it adds Scala syntax sugar to make building routes even more convenient.

Documentation

  • Scala DSL - Getting Started gives you basic information on how to use the Scala DSL.

  • Scala DSL - EIP shows you the Scala DSL syntax for every EIP supported. Scala DSL supports every EIP from the Java DSL.

  • Scala DSL - Supported languages explains the usage of traits to add support for other languages (e.g. XPath)

References

  • At ApacheCon Europe 2008 there was a Fast Feather talk that introduced some of the basic Scala language concepts that are being used for building the Scala DSL. Here are the presentation slides .

  • Here’s a blog post demonstrating the Message Filter EIP within the Scala DSL, as well as how to use Camel’s test kit to test the example.

Dependencies

To use the Scala DSL in your camel routes you need to add the a dependency on camel-scala which implements the Scala DSL.

If you use maven you could just add the following to your pom.xml, substituting the version number for the latest & greatest release (see the download page for the latest versions).

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-scala</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Starting from version 2.11 Camel Scala DSL is compiled against Scala 2.10. If you plan to use Scala 2.9 with Camel 2.11, add the following to your pom.xml file instead.

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-scala_2.9</artifactId>
  <version>2.11.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Support for Scala 2.9 is deprecated and will be removed starting from the Camel 2.12 and 3.0.