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

The example also demonstrates how you can configure the ActiveMQ Artemis JMS `ConnectionFactory`
via two different styles

- via `@BindToRegistry` from Java source code in the `MyConfiguration.java` source file
- via `application.properties` and the `camel-main-maven-plugin`
  that performs classpath scanning to auto-detect the JMS client and prepare for autowiring
  by generating the `META-INF/services/org/apache/camel/autowire.properties` file.

== Generating tooling meta-data

The `camel-main-maven-plugin` is used for pre-scanning your project and prepare
autowiring and sprint boot tooling support by classpath scanning.

You can run manually via

    mvn camel-main:generate

However this example is using this plugin to generate autowiring for Apache Artemis,
which are generated in `target/classes/META-INF/services/org/apache/camel/autowire.properties`.

See also more details in `application.properties`

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

    bin/artemis create mybroker
    cd mybroker
    bin/artemis run

Then you can run this example using

    mvn camel-main:generate camel:run

== More information

You can find more information about Apache Camel at the website: http://camel.apache.org/
