Contributing to Camel-Kafka-connector

First of all, thank you for having an interest in contributing to Camel-Kafka-connector.

The Apache Camel community is a great group of contributors and Camel-Kafka-connector is the newer subproject in the ecosystem.

There are multiple areas in which camel-kafka-connector could be improved. Here are some examples:

  • Surfing the basic documentation - if something is not clear, let us know or fix it yourself.

  • Try the Getting started guide

  • Digging in the codebase and tune some operations or add new features.

  • Take a look at the open issues and leave a comment on the issue to let us know you are working on it.

Getting in touch

Apache Camel Kafka Connector is an Apache Software Foundation project.

All communication is subject to the ASF Code of Conduct.

There are various ways of communicating with the Camel community.

We can also be reached on the Gitter chat at https://gitter.im/apache/camel-kafka-connector/.

We track issues using the issues tracker in Github

When you’re ready to contribute create a Pull request to the camel-kafka-connector repository

Expect that your Pull request will receive a review and that you will need to respond and correspond to that via comments at GitHub.

Building the project

Basically you could run

mvn clean package

Build the project and run integration tests

To build the project it is sufficient to:

mvn clean install

To run the integration tests it is required to:

  • have Docker version 17.05 or higher running

  • run:

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

  • jms-service.instance.type

    • jms.broker.address

For example you can run

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.