= Camel Kafka Connector

image:https://img.shields.io/badge/zulip-join_chat-brightgreen.svg["Chat on Zulip", link="https://camel.zulipchat.com"]
image:https://github.com/apache/camel-kafka-connector/workflows/master%20build/badge.svg[Master Build, link="https://github.com/apache/camel-kafka-connector/actions?query=workflow%3A%22master+build%22"]

== Introduction
[NOTE]
====
This project is still in its infancy. Is it relatively stable and leverages more than a decade of Apache Camel
experience and maturity. At the same time, it is in constant evolution. Almost every week new features are implemented
and current ones adjusted to integrate better with both Camel and Kafka Connect.
====

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

== Run integration tests
To run the integration tests it is required to:

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

It is also possible to point the tests to use an external services. Please check the
link:./docs/modules/ROOT/pages/testing.adoc[testing guide].

== Documentation

Read the https://camel.apache.org/camel-kafka-connector/latest/index.html[Official latest documentation] or try the local link:./docs/modules/ROOT/pages/getting-started.adoc[Getting started guide].
