Kamelet Main

Since Camel 3.11

A main class that is opinionated to boostrap and run Camel standalone with Kamelets (or plain YAML routes) for development and demo purposes.

Initial configuration

The KameletMain is pre-configured with the following properties:

camel.component.kamelet.location = classpath:/kamelets,github:apache:camel-kamelets/kamelets
camel.main.routes-include-pattern = classpath:camel/*
camel.main.routes-reload-enabled = true
camel.main.routes-reload-directory = src/main/resources
camel.main.routes-reload-pattern = camel/*.yaml
camel.main.shutdown-timeout = 5
camel.main.lightweight = false

These settings can be overridden by configuration in application.properties.

Automatic dependencies downloading

The Kamelet Main can automatically download Kamelet YAML files from a remote location over http/https, and from github as well.

The official Kamelets from the Apache Camel Kamelet Catalog is stored on github and they can be used out of the box as-is.

For example a Camel route can be coded in YAML which uses the Earthquake Kamelet from the catalog, as shown below:

- route:
    from: "kamelet:earthquake-source"
      - unmarshal:
          json: {}
      - log: "Earthquake with magnitude ${body[properties][mag]} at ${body[properties][place]}"

In this use-case the earthquake kamelet will be downloaded from github, and as well its required dependencies.

The dependencies are downloaded to ~/.groovy/grapes directory. To force re-download then this directory can be deleted.

You can find an example with this at kamelet-main.