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.




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
  • No labels