== Camel Kafka Connector

image:https://img.shields.io/gitter/room/apache/camel-kafka-connector["Chat on Gitter", link="https://gitter.im/apache/camel-kafka-connector"]

=== Introduction
[NOTE]
====
*The project is WIP!*
====

This is a "Camel Kafka connector adapter" that aims to provide a user friendly way to use all Apache Camel components in Kafka Connect.
For more information about Kafka Connect take a look http://kafka.apache.org/documentation/#connect[here].

=== Build the project
[source,bash]
----
mvn clean package
----

=== Build the project and run integration tests
To build the project it is sufficient to:
[source,bash]
----
mvn clean install
----
To run the integration tests it is required to:

  * have Docker version 17.05 or higher running
  * run:
+
[source,bash]
----
mvn -DskipIntegrationTests=false clean verify package
----

It is also possible to point the tests to use an external Kafka broker. To do so, run the tests using:

----
mvn -Dkafka.bootstrap.servers=host1:port -Dkafka.instance.type=remote -DskipIntegrationTests=false clean verify package
----

=== Try it out locally

You can use Camel Kafka connectors with local Apache Kafka installation.
For more details see the link:./docs/try-it-out-locally.adoc[local guide].

=== Try it out on OpenShift with Strimzi

You can also use Camel Kafka connectors on OpenShift.
For more details see the link:./docs/try-it-out-on-openshift-with-strimzi.adoc[OpenShift guide].

=== Known limitations
In order to use other Camel components you need to add them as dependencies in the project `pom.xml`.
