== 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"]
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]
====
*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 services. To do so, you must set
properties for the services that you want to run. This causes the tests to not launch the local
container and use existing remote instances. At the moment, the following properties can be set
for remote testing:

* kafka.instance.type
** kafka.bootstrap.servers
* aws-service.instance.type
** access.key: AWS access key (mandatory for remote testing)
** secret.key: AWS secret key (mandatory for remote testing)
** aws.region: AWS region (optional)
** aws.host: AWS host (optional)
* aws-service.kinesis.instance.type
** access.key: AWS access key (mandatory for remote testing)
** secret.key: AWS secret key (mandatory for remote testing)
** aws.region: AWS region (optional)
** aws.host: AWS host (optional)
* elasticsearch.instance.type
** elasticsearch.host
** elasticsearch.port
* cassandra.instance.type
** cassandra.host
** cassandra.cql3.port
* jdbc.instance.type
** jdbc.connection.url
* jms-service.instance.type
** jms.broker.address
* hdfs.instance.type
** hdfs.host
** hdfs.port
* mongodb.instance.type
** mongodb.host
** mongodb.port

Additionally, a few manual tests can be enabled and executed with adequate configuration on the accounts and
environments used by those services. This is very specific to the nature of each of those services, therefore
please consult the comments on each of those test cases for the details related to their setup.

The following manual or semi-automated tests are available under these circumstances. They can be enabled with
these flags along with others that are specific to that service:

* it.test.salesforce.enable
* it.test.slack.enable

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

It's possible to use a properties file to set these properties. To do so use `-Dtest.properties=/path/to/file.properties`.


=== Try it out locally

You can use Camel Kafka connectors with local Apache Kafka installation.
For more details see the link:./docs/modules/ROOT/pages/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/modules/ROOT/pages/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`.
