[[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 link:dsl.html[DSL], but it adds Scala syntax sugar to make
building routes even more convenient.

[[ScalaDSL-Documentation]]
Documentation
^^^^^^^^^^^^^

* link:scala-dsl-getting-started.html[Scala DSL - Getting Started] gives
you basic information on how to use the Scala DSL.
* link:scala-dsl-eip.html[Scala DSL - EIP] shows you the Scala DSL
syntax for every EIP supported. link:scala-dsl.html[Scala DSL] supports
every EIP from the link:dsl.html[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 link:message-filter.html[Message Filter] EIP
within the link:scala-dsl.html[Scala DSL], as well as how to use
link:camel-test.html[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.
