= Apache Camel extensions for Quarkus

image:https://img.shields.io/maven-central/v/org.apache.camel.quarkus/camel-quarkus-bom.svg["Maven Central", link="http://search.maven.org/#search%7Cga%7C1%7Corg.apache.camel.quarkus"]
image:https://img.shields.io/travis/apache/camel-quarkus/master.svg?logo=travis&color=white&label=Travis+CI["Travis CI build status", link="http://travis-ci.org/apache/camel-quarkus"]
image:https://img.shields.io/github/license/openshift/origin.svg?maxAge=2592000["Licensed under Apache License version 2.0", link="https://www.apache.org/licenses/LICENSE-2.0"]
image:https://badges.gitter.im/apache/camel-quarkus.svg["Chat on Gitter", link="https://gitter.im/apache/camel-quarkus"]


== What is this

This project hosts the efforts to port and package the 280+ Camel components as Quarkus extensions.

http://camel.apache.org/[Apache Camel] is the Swiss knife of integrating heterogeneous systems with more than a decade
of history and a lively community of users and developers.

https://quarkus.io/[Quarkus] is a Java platform offering fast boot times and low memory footprint. It targets both stock
JVMs (OpenJDK in the first place) and https://www.graalvm.org/[GraalVM].

https://quarkus.io/extensions/[Quarkus extensions] are units of Quarkus distribution. They configure, boot and integrate
a technology (in our case Camel components) into your Quarkus application. You will typically use them as dependencies
in your project.


== How to build

Prerequisites:

* Java 8
* Maven 3.5.4+ or you can use the provided Maven Wrapper, a.k.a. `mvnw`
* Docker

Fast build without tests:

[source,shell]
----
./mvnw clean install -DskipTests
----

Build with tests only in JVM mode:

[source,shell]
----
./mvnw clean install
----

Build with tests in JVM mode and native mode:

[source,shell]
----
./mvnw clean install -Dnative -Dnative-image.docker-build=true -Dnative-image.xmx=5g
----


== Licensing

This software is licensed under the terms you may find in the file named `LICENSE.txt` in this directory.
