== 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_.

=== Build

First compile the example by executing:

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

=== How to run

Then you can run this example using

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