Warning | ||
---|---|---|
| ||
The Scala DSL for Apache Camel is currently under development and it only supports part of what is available in the Java-based DSL or Xml Configuration syntax. |
About the Scala DSL
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.
...
- 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 .
Enterprise integration patterns
Pipeline
There is a simple syntax available for specifying pipeline, by simple putting to
or →
between the different steps in the pipeline.
Wiki Markup |
---|
{snippet:id=simple|lang=java|url=activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala} |
For more advanced use cases, you can also use a block-based syntax, where every step in the pipeline starts with either to
or →
.
Wiki Markup |
---|
{snippet:id=block|lang=java|url=activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala} |
TODO
TODO: Create a Scala alternative and example for every EIP available on http://activemq.apache.org/camel/enterprise-integration-patterns.html
...
- 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).
Code Block | ||||
---|---|---|---|---|
| ||||
<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.
Code Block | ||||
---|---|---|---|---|
| ||||
<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.
...