blob: 8db7b266410bc4f762bed9199c063f5de8e8e1f2 [file] [log] [blame]
Just like the link:dsl.html[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:
[source,java]
----------------------------------------------------------
class MyRouteBuilder extends RouteBuilder {
"direct:a" --> "mock:a"
"direct:b" to "mock:b"
}
----------------------------------------------------------
INFO: 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 link:dsl.html[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`
[[ScalaDSL-GettingStarted-SettingtherouteID]]
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.
[source,java]
-----------------------------------------
"direct:a" routeId "route-b" to "mock:b"
-----------------------------------------
[[ScalaDSL-GettingStarted-CreatinganewCamelScalaproject]]
Creating a new Camel Scala project
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Camel offers link:camel-maven-archetypes.html[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):
[source,java]
----------------------
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:
[source,java]
---------------------
mvn compile exec:java
---------------------