Add New Component Guide
Skip to end of metadata
Go to start of metadata

How to add a new component

1. Open an JIRA issue

Open a JIRA issue at https://issues.apache.org/jira/browse/CAMEL, if does not already exist.
The issue type should be "New Feature". A sample can be found here: https://issues.apache.org/jira/browse/CAMEL-3468

2. Check the license of all dependencies

You have to check whether or not all required dependencies have an Apache compatible license.
Please refer to Third-Party Licensing Policy for detailed information and acceptable licenses.
This doesn't mean, if one of the dependencies are not compatible with the Apache license we can't accept the component. In this case, we might have to add the component to the Camel-Extra repository.

3. Providing a patch

If you would like to contribute a new component as a patch (we love contributions), please refer to Contributing (look for Creating patches) for instructions.

4. Add the new component

Add the new component into the components pom modules section (note the alphabetical order of the project names).
After that, add the new component to the components folder.

5. Check the sources and resources

The source and resources have to follow some Apache/Camel coding rules:

  • Make sure every added source and resource contains the Apache license header.
  • Make sure the new component has an adequate test coverage.
  • Run a build with checkstyle to ensure the sources are conform with the Apache Camel coding rules: Building Camel (look for Building with checkstyle)
  • Make sure the log output is adequate on the INFO log level.

6. Check whether all dependencies are available as OSGI bundles

If a dependency is not available as an OSGI bundle, ask the Apache Servicemix guys for an OSGI-fied version of this dependency. You should do this by opening a JIRA issue at https://issues.apache.org/jira/browse/SMX4
The issue type should be "Task". A sample can be found here: https://issues.apache.org/jira/browse/SMX4-723

7. Add a new feature

Add a new feature definition for this component to the feature file (under platforms/karaf/features).
Next, validate the correctness of this feature file as described in Working with features (look for Working with features)

8. Add the wiki page

Each component requires its own wiki page to document the component. If you don't have the karma to edit the wiki pages, plese refer to how do I edit the website.
Add the new component wiki page to the Components list by editing Component List wiki page.
Add a reference to the new component to the Manual wiki page.
Update the release notes for the version the development is in progress.
Check whether other sites needs to be updated.

9. Run a complete build

To ensure you do not break the build, run a complete build from the new component directory:

10. Add the component to distribution

Add the new component to the following files

  • parent/pom.xml
  • apache-camel/src/main/descriptors/common-bin.xml

Build the kit by running the following maven goal from the apache-camel directory:

Check the generated .zip file in the target folder contains the new component.

Labels
  • No labels