== Camel Example Spring Boot XML Import

This example shows how to use Camel XML routes using the
legacy Spring XML files (`<beans>` with embedded `<camelContext>`).

This can be useful when migrating from classic Spring XML files to using Spring Boot,
and want to keep using Spring XML `<beans>` for dependency injection.

=== Camel routes

The Camel route is located in the `src/main/resources/my-camel.xml` file.

Notice how you must use the `@ImportResource("classpath:my-camel.xml")` annotation
in the Spring Boot main class to let Spring Boot load the legacy Spring XML file.

=== 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!
