== Camel Example Spring Boot

This example shows how to work with a simple Apache Camel application using Spring Boot.

The example generates messages using timer trigger, writes them to standard output.

=== Camel routes

The Camel route is located in the `SampleCamelRouter` class. In this class the route
starts from a timer, that triggers every 2nd second and calls a Spring Bean `SampleBean`
which returns a message, that is routed to a stream endpoint which writes to standard output.

=== Using Camel components

Apache Camel provides 200+ components which you can use to integrate and route messages between many systems
and data formats. To use any of these Camel components, add the component as a dependency to your project.

=== How to run

You can run this example using

    mvn spring-boot:run

=== To get info about the routes

To show a summary of all the routes

----
curl -XGET -s http://localhost:8080/actuator/camelroutes
----

To show detailed information for a specific route

----
curl -XGET -s http://localhost:8080/actuator/camelroutes/{id}/info
----

=== Help and contributions

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

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

The Camel riders!
