== Camel Example Main

This example shows how to run Camel standalone via the built-in Main class.
The example also demonstrates how you can configure the Camel application
via Camel built-in dependency-injection that supports binding via the
`@BindToRegistry`, `@BeanInject` and `@PropertyInject` annotations.

Also notice how you can configure Camel in the `application.properties` file.

=== Alternative example

The class `StandaloneCamel` is an alternative example that uses a
_public static void main_ class and where you manually setup Camel without
any help from Camel's built-in Main class. However it shows how to do this
in a _raw style_ without using any _magic_.

=== How to run

You can run this example using

    mvn camel:run

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