== Camel Example Main Artemis

This example shows how to run Camel standalone via the built-in Main class.
The example requires a running Apache ActiveMQ Artemis broker running.

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.

=== Build

You will need to compile this example first:

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

=== How to run

First install https://activemq.apache.org/components/artemis/[Apache ActiveMQ Artemis]
and create a broker, such as `mybroker`, and create the admin user as `admin` as username
and `admin` as password:

[source,sh]
----
$ bin/artemis create mybroker
$ cd mybroker
$ bin/artemis 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!
