== Camel Example Compiled Simple

This example shows using csimple (compiled simple) scripting language in your Camel routes.

A maven plugin (configured in pom.xml) detects the csimple scripts from the project source code and then generate Java source code in `src/generated/java` folder which then gets compiled with the regular Java compiler.

This makes the csimple language native Java compiled, with no runtime overhead.
The generated source code in `src/generated/java` is just regular Java source code and you can therefore debug the code. You can try this by loading the project into a Java IDE, and then launch the application in debug mode from the `MyApplication` class. You can then set breakpoints in the generated source code in the `src/generated/java` folder.


=== Build

You will need to compile this example first:

[source,sh]
----
$ mvn compile
----

=== Run

To run the example execute

[source,sh]
----
$ mvn camel:run
----

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/community/support/[let us know].

We also love contributors, so
https://camel.apache.org/community/contributing/[get involved] :-)

The Camel riders!
