[[ScalaDSL-AbouttheScalaDSL]]
==== About the Scala DSL

http://www.scala-lang.org/[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.

[[ScalaDSL-Documentation]]
==== 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.
* link:scala-dsl-supported-languages.html[Scala DSL - Supported
languages] explains the usage of traits to add support for other
languages (e.g. XPath)

[[ScalaDSL-References]]
==== References

* At http://www.eu.apachecon.com[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.
http://www.anova.be/files/camel-scala.pdf[Here are the presentation
slides] .
* Here's a
http://davsclaus.blogspot.se/2011/12/apache-camel-little-scala-dsl-example.html[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.

[[ScalaDSL-Dependencies]]
==== 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).

[source,xml]
----------------------------------------------------------
<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.

[source,xml]
----------------------------------------------------------
<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.
