Since we're on a major migration process of this website, some component documents here are out of sync right now. In the meantime you may want to look at the early version of the new website
https://camel.apache.org/staging/
We would very much like to receive any feedback on the new site, please join the discussion on the Camel user mailing list.

Just like the Java DSL, the Scala DSL has a RouteBuilder class (org.apache.camel.scala.dsl.builder.RouteBuilder) that you can extend to implement your own routes. This example shows two very simple routes:

From Camel 2.15 onwards use org.apache.camel.scala.dsl.builder.ScalaRouteBuilder and pass in the CamelContext in the constructor, which will be used by the builder. The old class RouteBuilder is deprecated.

 

 

{snippet:id=basic|lang=java|url=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala}

If you compare this to the Java DSL, you notice:

  • there is no configure() method to override
  • a route starts directly with a URI instead of from(uri)
  • is just an alias for to

Setting the route ID

To assign the unique ID to the Scala route, insert the routeId method invocation after the "from" part of the DSL.

"direct:a" routeId "route-b" to "mock:b"

Creating a new Camel Scala project

Camel offers Maven archetypes that allow you to quickly setup a new project.

To do this, you can execute the following Maven goal from the command line (using Maven 3.0.3 or better):

mvn archetype:generate

This runs Maven interactively - just type camel and press <Enter> to filter for Camel-related archetypes.
From the list, pick the number for camel-archetype-scala, then fill in the remaining details (such as the Camel version, et cetera).

The generated project has a "readme" file with more instructions, and is ready to compile and run from Maven using:

mvn compile exec:java
© 2004-2015 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram