You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/03/23 10:36:33 UTC

[camel-karaf] branch master updated (d8093f4 -> 2ee8c10)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git.


    from d8093f4  Added README.md
     new b617714  Added Platform parts
     new 2ee8c10  Added groovy-version and all the needed property placeholder for features

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 platforms/karaf/commands/pom.xml                   |  110 +
 .../camel/karaf/commands/AbstractRouteCommand.java |   36 +
 .../camel/karaf/commands/ContextInflight.java      |   56 +
 .../apache/camel/karaf/commands/ContextInfo.java   |   50 +
 .../apache/camel/karaf/commands/ContextList.java   |   23 +-
 .../apache/camel/karaf/commands/ContextResume.java |   41 +
 .../apache/camel/karaf/commands/ContextStart.java  |   42 +
 .../apache/camel/karaf/commands/ContextStop.java   |   42 +
 .../camel/karaf/commands/ContextSuspend.java       |   42 +
 .../apache/camel/karaf/commands/EndpointList.java  |   51 +
 .../apache/camel/karaf/commands/EndpointStats.java |   51 +
 .../apache/camel/karaf/commands/RestApiDoc.java    |   42 +
 .../camel/karaf/commands/RestRegistryList.java     |   51 +
 .../org/apache/camel/karaf/commands/RestShow.java  |   42 +
 .../org/apache/camel/karaf/commands/RouteInfo.java |   26 +-
 .../org/apache/camel/karaf/commands/RouteList.java |   42 +
 .../apache/camel/karaf/commands/RouteProfile.java  |   25 +-
 .../camel/karaf/commands/RouteResetStats.java      |   42 +
 .../apache/camel/karaf/commands/RouteResume.java   |   20 +-
 .../org/apache/camel/karaf/commands/RouteShow.java |   20 +-
 .../apache/camel/karaf/commands/RouteStart.java    |   21 +-
 .../org/apache/camel/karaf/commands/RouteStep.java |   25 +-
 .../org/apache/camel/karaf/commands/RouteStop.java |   15 +-
 .../apache/camel/karaf/commands/RouteSuspend.java  |   20 +-
 .../commands/completers/CamelContextCompleter.java |   50 +
 .../karaf/commands/completers/RouteCompleter.java  |   60 +
 .../commands/internal/CamelControllerImpl.java     |  151 ++
 .../commands/internal/KarafStringEscapeUtils.java  |  229 ++
 .../karaf/commands/internal/StringEscape.java      |   29 +-
 .../src/main}/resources/META-INF/LICENSE.txt       |    0
 .../src/main}/resources/META-INF/NOTICE.txt        |    0
 .../src/main/resources/OSGI-INF/bundle.info        |   34 +
 platforms/karaf/features/pom.xml                   |  230 ++
 .../features/src/main/resources/bundles.properties |   83 +
 .../karaf/features/src/main/resources/features.xml | 2805 ++++++++++++++++++++
 .../impl/package.html => platforms/karaf/pom.xml   |   24 +-
 .../osgi/impl/package.html => platforms/pom.xml    |   23 +-
 pom.xml                                            |  655 ++++-
 38 files changed, 5165 insertions(+), 143 deletions(-)
 create mode 100644 platforms/karaf/commands/pom.xml
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java (55%)
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java
 copy core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiFactoryFinderResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java (52%)
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java (51%)
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java (60%)
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java (59%)
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java (60%)
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java (52%)
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/other/MyOtherRouteBuilder.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java (61%)
 copy core/camel-core-osgi/src/test/java/org/apache/camel/core/osgi/CamelMockLanguageResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java (60%)
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
 create mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java
 copy core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/OsgiFactoryFinderResolver.java => platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java (57%)
 copy {core/camel-core-osgi/src/test => platforms/karaf/commands/src/main}/resources/META-INF/LICENSE.txt (100%)
 copy {core/camel-core-osgi/src/test => platforms/karaf/commands/src/main}/resources/META-INF/NOTICE.txt (100%)
 create mode 100644 platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info
 create mode 100644 platforms/karaf/features/pom.xml
 create mode 100644 platforms/karaf/features/src/main/resources/bundles.properties
 create mode 100644 platforms/karaf/features/src/main/resources/features.xml
 copy core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/package.html => platforms/karaf/pom.xml (54%)
 copy core/camel-core-osgi/src/main/java/org/apache/camel/core/osgi/impl/package.html => platforms/pom.xml (56%)


[camel-karaf] 02/02: Added groovy-version and all the needed property placeholder for features

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit 2ee8c101eee7114d066813b3341f74e38248cc67
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Mar 23 11:29:49 2020 +0100

    Added groovy-version and all the needed property placeholder for features
---
 pom.xml | 650 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 625 insertions(+), 25 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1b744aa..994bea3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -115,73 +115,673 @@
         <camel-version>3.2.0-SNAPSHOT</camel-version>
 
         <!-- versions -->
+        <!-- dependency versions -->
+        <abdera-version>1.1.3</abdera-version>
+        <!-- Note that activemq dependency is only used for testing! -->
+        <activemq-version>5.15.12</activemq-version>
+        <activemq-artemis-version>2.11.0</activemq-artemis-version>
         <aether-version>1.0.2.v20150114</aether-version>
+        <ahc-version>2.11.0</ahc-version>
+        <animal-sniffer-version>1.17</animal-sniffer-version>
+        <android-annotations-version>4.1.1.4</android-annotations-version>
+        <ant-bundle-version>1.7.0_6</ant-bundle-version>
+        <antlr-bundle-version>3.5.2_1</antlr-bundle-version>
+        <antlr-runtime-bundle-version>3.5.2_1</antlr-runtime-bundle-version>
+        <apacheds-version>2.0.0.AM25</apacheds-version>
+        <apache-any23-version>2.3</apache-any23-version>
+        <apache-any23-bundle-version>2.3_1</apache-any23-bundle-version>
+        <apache-drill-version>1.17.0</apache-drill-version>
+        <apache-gora-version>0.9</apache-gora-version>
+        <apache-mime4j-version>0.8.3</apache-mime4j-version>
+        <aries-blueprint-api-version>1.0.1</aries-blueprint-api-version>
+        <aries-blueprint-cm-version>1.3.0</aries-blueprint-cm-version>
+        <aries-blueprint-core-version>1.10.0</aries-blueprint-core-version>
+        <aries-blueprint-proxy-version>1.1.1</aries-blueprint-proxy-version>
+        <aries-spifly-version>1.2.1</aries-spifly-version>
         <aries-util-version>1.1.3</aries-util-version>
         <arquillian-container-se-managed-version>1.0.2.Final</arquillian-container-se-managed-version>
-        <arquillian-version>1.5.0.Final</arquillian-version>
-        <asciidoctorj-version>2.1.0</asciidoctorj-version>
+        <arquillian-version>1.6.0.Final</arquillian-version>
+        <arquillian-weld-embedded-version>2.0.0.Final</arquillian-weld-embedded-version>
+        <asm-version>5.0.4</asm-version>
+        <aspectj-version>1.9.5</aspectj-version>
+        <assertj-version>3.15.0</assertj-version>
+        <asterisk-java-version>1.0.0-final</asterisk-java-version>
+        <asterisk-java-bundle-version>1.0.0-final_1</asterisk-java-bundle-version>
+        <atlassian-fugue-version>3.0.0</atlassian-fugue-version>
+        <atmos-client-version>3.1.0</atmos-client-version>
+        <atmosphere-version>2.5.13</atmosphere-version>
+        <atmosphere-version-range>[2.5,3.0)</atmosphere-version-range>
         <atomix-version>1.0.8</atomix-version>
-        <avro-version>1.8.1</avro-version>
+        <atomix-catalyst-version>1.2.1</atomix-catalyst-version>
+        <automaton-bundle-version>1.11-8_1</automaton-bundle-version>
+        <avalon-bundle-version>4.3.1_1</avalon-bundle-version>
+        <avalon-version>4.3.1</avalon-version>
+        <avro-version>1.9.1</avro-version>
+        <avro-ipc-jetty-version>1.9.1</avro-ipc-jetty-version>
+        <avro-ipc-netty-version>1.9.1</avro-ipc-netty-version>
+        <!-- these two avro bundles relates to camel-hdfs karaf feature -->
+        <avro-bundle-version>1.9.1_1</avro-bundle-version>
+        <awaitility-version>4.0.2</awaitility-version>
+        <aws-java-sdk-bundle-version>1.11.714_1</aws-java-sdk-bundle-version>
+        <aws-java-sdk-version>1.11.714</aws-java-sdk-version>
+        <aws-java-sdk2-version>2.10.90</aws-java-sdk2-version>
+        <aws-java-sdk-swf-libs>1.11.22</aws-java-sdk-swf-libs>
+        <aws-xray-version>2.4.0</aws-xray-version>
+        <axiom-version>1.2.14</axiom-version>
+        <azure-storage-java-sdk-version>8.6.0</azure-storage-java-sdk-version>
+        <azure-storage-java-sdk-bundle-version>8.6.0_1</azure-storage-java-sdk-bundle-version>
+        <azure-guava-version>20.0</azure-guava-version>
+        <backport-util-concurrent-version>3.1</backport-util-concurrent-version>
+        <bcel-bundle-version>5.2_4</bcel-bundle-version>
+        <beanio-version>2.1.0</beanio-version>
+        <beanstalkd-client-version>1.4.6</beanstalkd-client-version>
+        <bndlib-version>2.4.0</bndlib-version>
+        <bouncycastle-version>1.64</bouncycastle-version>
+        <box-java-sdk-version>2.44.1</box-java-sdk-version>
+        <braintree-gateway-version>2.107.0</braintree-gateway-version>
+        <brave-zipkin-version>5.10.2</brave-zipkin-version>
+        <build-helper-maven-plugin-version>1.12</build-helper-maven-plugin-version>
+        <c3p0-version>0.9.5.5</c3p0-version>
+        <c3p0-bundle-version>0.9.5.5_1</c3p0-bundle-version>
+        <caffeine-version>2.8.1</caffeine-version>
+        <californium-version>2.0.0</californium-version>
+        <cassandra-driver-version>3.7.2</cassandra-driver-version>
         <cassandra-driver-guava-version>19.0</cassandra-driver-guava-version>
+        <cassandra-version>3.7</cassandra-version>
+        <cassandra-unit-version>3.1.3.2</cassandra-unit-version>
+        <cdi-api-1.2-version>1.2</cdi-api-1.2-version>
         <cdi-api-2.0-version>2.0</cdi-api-2.0-version>
+        <jta-api-1.2-version>1.2</jta-api-1.2-version>
+        <cglib-version>3.2.12</cglib-version>
+        <chunk-templates-version>3.5.0</chunk-templates-version>
+        <chunk-templates-bundle-version>3.5.0_1</chunk-templates-bundle-version>
+        <citrus-version>2.8.0</citrus-version>
+        <cmis-version>1.1.0</cmis-version>
+        <cometd-java-client-version>4.0.4</cometd-java-client-version>
+        <cometd-java-server-bundle-version>2.3.1_2</cometd-java-server-bundle-version>
+        <cometd-java-server>4.0.4</cometd-java-server>
+        <commons-beanutils-version>1.9.4</commons-beanutils-version>
+        <commons-codec-version>1.14</commons-codec-version>
+        <commons-collections-version>3.2.2</commons-collections-version>
+        <commons-collections4-version>4.4</commons-collections4-version>
+        <commons-compress-version>1.19</commons-compress-version>
+        <commons-configuration-version>1.9</commons-configuration-version>
+        <commons-configuration2-version>2.7</commons-configuration2-version>
+        <commons-csv-version>1.6</commons-csv-version>
+        <commons-cli-version>1.4</commons-cli-version>
+        <commons-dbcp-version>1.4</commons-dbcp-version>
+        <commons-dbcp2-version>2.7.0</commons-dbcp2-version>
+        <commons-exec-version>1.3</commons-exec-version>
+        <commons-httpclient-bundle-version>3.1_7</commons-httpclient-bundle-version>
+        <commons-io-version>2.6</commons-io-version>
+        <commons-lang-version>2.6</commons-lang-version>
+        <commons-lang3-version>3.9</commons-lang3-version>
+        <commons-logging-version>1.2</commons-logging-version>
+        <commons-math3-version>3.6.1</commons-math3-version>
+        <commons-net-version>3.6</commons-net-version>
+        <commons-pool-version>1.6</commons-pool-version>
+        <commons-pool2-version>2.8.0</commons-pool2-version>
+        <commons-text-version>1.8</commons-text-version>
+        <compress-lzf-version>1.0.4</compress-lzf-version>
+        <conscrypt-uber-version>2.2.1</conscrypt-uber-version>
+        <consul-client-version>1.3.3</consul-client-version>
+        <consul-client-bundle-version>1.3.3_1</consul-client-bundle-version>
+        <cobertura-maven-plugin-version>2.7</cobertura-maven-plugin-version>
+        <corda-version>4.3</corda-version>
+        <couchbase-client-version>1.4.13</couchbase-client-version>
+        <couchbase-client-bundle-version>1.4.13_1</couchbase-client-bundle-version>
         <curator-version>4.3.0</curator-version>
+        <cxf-version>3.3.5</cxf-version>
+        <cxf-version-range>[3.3,4.0)</cxf-version-range>
+        <cxf-codegen-plugin-version>3.3.5</cxf-codegen-plugin-version>
+        <cxf-xjc-plugin-version>3.3.1</cxf-xjc-plugin-version>
+        <cxf-xjc-utils-version>3.3.1</cxf-xjc-utils-version>
         <deltaspike-version>1.9.0</deltaspike-version>
+        <depends-maven-plugin-version>1.4.0</depends-maven-plugin-version>
+        <derby-version>10.14.2.0</derby-version>
+        <digitalocean-api-client-version>2.17</digitalocean-api-client-version>
+        <digitalocean-api-client-bundle-version>2.17_1</digitalocean-api-client-bundle-version>
+        <digitalpetri-fsm-client>0.2</digitalpetri-fsm-client>
+        <digitalpetri-netty-client>0.3</digitalpetri-netty-client>
+        <directory-watcher-version>0.9.9</directory-watcher-version>
+        <disruptor-version>3.4.2</disruptor-version>
+        <dnsjava-version>2.1.9</dnsjava-version>
+        <dnsjava-bundle-version>2.1.9_1</dnsjava-bundle-version>
+        <docker-java-version>3.1.5</docker-java-version>
+        <docker-java-bundle-version>3.1.5_1</docker-java-bundle-version>
+        <dozer-version>6.5.0</dozer-version>
+        <drools-version>7.34.0.Final</drools-version>
+        <dropbox-version>3.1.3</dropbox-version>
+        <debezium-version>1.0.0.Final</debezium-version>
+        <debezium-mysql-connector-version>8.0.16</debezium-mysql-connector-version>
         <egit-github-core-version>2.1.5</egit-github-core-version>
+        <egit-github-core-bundle-version>2.1.5_1</egit-github-core-bundle-version>
+        <ehcache-version>2.10.6</ehcache-version>
+        <ehcache3-version>3.8.1</ehcache3-version>
+        <elasticsearch-rest-sniffer-version>7.3.2</elasticsearch-rest-sniffer-version>
+        <elasticsearch-rest-cluster-runner-version>7.3.2.0</elasticsearch-rest-cluster-runner-version>
+        <elasticsearch-rest-version>7.3.2</elasticsearch-rest-version>
+        <elasticsearch-rest-bundle-version>7.3.2_1</elasticsearch-rest-bundle-version>
+        <elsql-version>1.3</elsql-version>
+        <elytron-web>1.7.0.CR3</elytron-web>
+        <eddsa-version>0.3.0</eddsa-version>
+        <embedmongo-version>2.1.1</embedmongo-version>
+        <etcd4j-version>2.18.0</etcd4j-version>
         <exec-maven-plugin-version>1.6.0</exec-maven-plugin-version>
+        <fabric8-maven-plugin-version>4.4.0</fabric8-maven-plugin-version>
+        <facebook4j-core-version>2.4.13</facebook4j-core-version>
+        <facebook4j-core-bundle-version>2.4.13_1</facebook4j-core-bundle-version>
+        <fastjson-version>1.2.62</fastjson-version>
+        <fastjson-bundle-version>1.2.62_1</fastjson-bundle-version>
+        <felix-configadmin-version>1.8.8</felix-configadmin-version>
+        <felix-connect-version>0.2.0</felix-connect-version>
+        <felix-fileinstall-version>3.5.2</felix-fileinstall-version>
+        <felix-framework-version>3.2.2</felix-framework-version>
+        <felix-scr-annotations-version>1.12.0</felix-scr-annotations-version>
+        <felix-scr-version>2.0.14</felix-scr-version>
+        <findbugs-maven-plugin-version>2.5.2</findbugs-maven-plugin-version>
+        <google-findbugs-jsr305-version>3.0.2</google-findbugs-jsr305-version>
+        <google-findbugs-annotations2-version>2.0.3</google-findbugs-annotations2-version>
+        <google-maps-services-version>0.10.1</google-maps-services-version>
+        <flatpack-version>4.0.4</flatpack-version>
+        <flink-version>1.10.0</flink-version>
+        <fop-bundle-version>2.3_1</fop-bundle-version>
+        <fop-version>2.3</fop-version>
+        <ftpserver-version>1.1.1</ftpserver-version>
         <freemarker-version>2.3.29</freemarker-version>
+        <generex-bundle-version>1.0.2_1</generex-bundle-version>
+        <geronimo-annotation-1.0-spec-version>1.1.1</geronimo-annotation-1.0-spec-version>
+        <geronimo-annotation-1.2-spec-version>1.0</geronimo-annotation-1.2-spec-version>
+        <geronimo-atinject-1.0-spec-version>1.0</geronimo-atinject-1.0-spec-version>
+        <geronimo-el-spec-version>1.0.1</geronimo-el-spec-version>
+        <geronimo-interceptor-1.1-spec-version>1.0</geronimo-interceptor-1.1-spec-version>
+        <geronimo-interceptor-1.2-spec-version>1.0</geronimo-interceptor-1.2-spec-version>
+        <geronimo-j2ee-connector-spec-version>2.0.0</geronimo-j2ee-connector-spec-version>
+        <geronimo-j2ee-jacc-spec-version>1.1</geronimo-j2ee-jacc-spec-version>
+        <geronimo-j2ee-management-spec-version>1.1</geronimo-j2ee-management-spec-version>
+        <geronimo-jcdi-1.0-spec-version>1.0</geronimo-jcdi-1.0-spec-version>
+        <geronimo-jcdi-1.1-spec-version>1.0</geronimo-jcdi-1.1-spec-version>
+        <geronimo-jms-spec-version>1.1.1</geronimo-jms-spec-version>
+        <geronimo-jms2-spec-version>1.0-alpha-2</geronimo-jms2-spec-version>
+        <geronimo-jpa-spec-version>1.0-alpha-1</geronimo-jpa-spec-version>
+        <geronimo-json-spec-version>1.1</geronimo-json-spec-version>
+        <geronimo-jta-spec-version>1.1.1</geronimo-jta-spec-version>
         <geronimo-ws-metadata-spec-version>1.1.3</geronimo-ws-metadata-spec-version>
-        <glassfish-jaxb-runtime-version>${jakarta-jaxb-version}</glassfish-jaxb-runtime-version>
+        <gmetric4j-version>1.0.10</gmetric4j-version>
         <google-guava-version>19.0</google-guava-version>
+        <google-pubsub-guava-version>28.2-jre</google-pubsub-guava-version>
+        <google-api-client-version>1.22.0</google-api-client-version>
+        <google-api-common-version>1.8.1</google-api-common-version>
+        <google-api-services-drive-version>v2-rev297-1.22.0</google-api-services-drive-version>
+        <google-auto-value-version>1.7</google-auto-value-version>
+        <google-api-services-calendar-version>v3-rev291-1.22.0</google-api-services-calendar-version>
+        <google-api-services-sheets-version>v4-rev551-1.22.0</google-api-services-sheets-version>
+        <google-api-services-mail-version>v1-rev81-1.22.0</google-api-services-mail-version>
+        <google-api-services-bigquery-version>v2-rev352-1.22.0</google-api-services-bigquery-version>
+        <google-api-services-pubsub-version>v1-rev12-1.22.0</google-api-services-pubsub-version>
+        <google-cloud-pubsub-version>1.102.0</google-cloud-pubsub-version>
+        <google-errorprone-version>2.3.3</google-errorprone-version>
+        <google-gax-version>1.50.1</google-gax-version>
+        <google-http-client-version>1.33.0</google-http-client-version>
+        <google-http-jackson2-version>1.32.1</google-http-jackson2-version>
+        <google-j2objc-version>1.3</google-j2objc-version>
+        <google-mail-guava-version>17.0</google-mail-guava-version>
+        <google-truth-version>0.30</google-truth-version>
+        <google-proto-common-version>1.17.0</google-proto-common-version>
+        <google-proto-pubsub-version>1.84.0</google-proto-pubsub-version>
+        <google-proto-iam-version>0.13.0</google-proto-iam-version>
+        <graphql-java-version>14.0</graphql-java-version>
+        <grizzly-websockets-version>2.3.25</grizzly-websockets-version>
         <groovy-version>3.0.2</groovy-version>
-        <grpc-guava-version>28.1-jre</grpc-guava-version>
         <grpc-version>1.27.0</grpc-version>
+        <grpc-google-auth-library-version>0.19.0</grpc-google-auth-library-version>
+        <grpc-guava-version>28.2-jre</grpc-guava-version>
+        <grpc-java-jwt-version>3.7.0</grpc-java-jwt-version>
+        <grpc-netty-tcnative-boringssl-static-version>2.0.26.Final</grpc-netty-tcnative-boringssl-static-version>
+        <grpc-bundle-version>1.27.0_1</grpc-bundle-version>
+        <grpc-errorprone-version>2.3.4</grpc-errorprone-version>
+        <!-- 2.8.6 is broken in OSGi -->
         <gson-version>2.8.5</gson-version>
-        <felix-framework-version>3.2.2</felix-framework-version>
-        <hadoop2-version>2.7.4</hadoop2-version>
+        <guava-eventbus-version>28.2-jre</guava-eventbus-version>
+        <guice3-version>3.0</guice3-version>
+        <guice-bundle-version>3.0_1</guice-bundle-version>
+        <hadoop-bundle-version>1.2.1_1</hadoop-bundle-version>
+        <hadoop2-bundle-version>2.7.7_1</hadoop2-bundle-version>
+        <hadoop2-version>2.7.7</hadoop2-version>
+        <hadoop2-protobuf-version>2.5.0</hadoop2-protobuf-version>
+        <hamcrest-version>2.2</hamcrest-version>
+        <hapi-version>2.3</hapi-version>
+        <hapi-fhir-version>4.1.0</hapi-fhir-version>
+        <hawtbuf-version>1.11</hawtbuf-version>
+        <hawtdispatch-version>1.22</hawtdispatch-version>
+        <hazelcast-version>4.0</hazelcast-version>
+        <hbase-version>2.2.3</hbase-version>
+        <hdrhistrogram-version>2.1.11</hdrhistrogram-version>
         <hibernate-validator-version>6.1.2.Final</hibernate-validator-version>
         <hibernate-version>5.4.12.Final</hibernate-version>
-        <infinispan-spring-boot-version>2.2.3.Final</infinispan-spring-boot-version>
+        <hikaricp-version>2.4.13</hikaricp-version>
+        <hk2-version>2.5.0</hk2-version>
+        <hk2-osgi-resource-version>1.0.1</hk2-osgi-resource-version>
+        <hsqldb-version>2.5.0</hsqldb-version>
+        <htmlunit-bundle-version>2.24_1</htmlunit-bundle-version>
+        <htrace-version>3.1.0-incubating</htrace-version>
+        <httpunit-version>1.7</httpunit-version>
+        <httpcore4-version>4.4.13</httpcore4-version>
+        <httpclient4-version>4.5.12</httpclient4-version>
+        <httpasyncclient-version>4.1.4</httpasyncclient-version>
+        <httpclient-version>3.1</httpclient-version>
+        <hystrix-version>1.5.18</hystrix-version>
+        <hystrix-bundle-version>1.5.18_1</hystrix-bundle-version>
+        <ibatis-bundle-version>2.3.4.726_4</ibatis-bundle-version>
+        <ical4j-version>1.0.7</ical4j-version>
+        <icu4j-version>65.1</icu4j-version>
+        <ignite-version>2.7.6</ignite-version>
+        <impsort-maven-plugin-version>1.3.2</impsort-maven-plugin-version>
+        <infinispan-version>10.1.5.Final</infinispan-version>
+        <influx-java-driver-version>2.17</influx-java-driver-version>
+        <influx-java-driver-bundle-version>2.17_1</influx-java-driver-bundle-version>
+        <influx-guava-version>20.0</influx-guava-version>
+        <irclib-bundle-version>1.10_5</irclib-bundle-version>
+        <irclib-version>1.10</irclib-version>
+        <ironmq-version>3.0.5</ironmq-version>
+        <ironmq-bundle-version>3.0.5_1</ironmq-bundle-version>
+        <isorelax-bundle-version>20050913_4</isorelax-bundle-version>
+        <isorelax-version>20090621</isorelax-version>
+        <isorelax-jaxp-bridge-version>1.1</isorelax-jaxp-bridge-version>
+        <ivy-version>2.4.0</ivy-version>
         <jackson-version>1.9.12</jackson-version>
-        <jakarta-jaxb-version>2.3.2</jakarta-jaxb-version>
-        <jandex-version>2.1.1.Final</jandex-version>
+        <jackson-spark-version>2.10.3</jackson-spark-version>
+        <jackson2-version>2.10.3</jackson2-version>
+        <jackrabbit-version>2.21.0</jackrabbit-version>
+        <jain-sip-ri-bundle-version>1.2.154_2</jain-sip-ri-bundle-version>
+        <jasminb-jsonapi-version>0.10</jasminb-jsonapi-version>
+        <jandex-version>2.1.2.Final</jandex-version>
+        <jasn1-version>1.11.3</jasn1-version>
+        <jasypt-bundle-version>1.9.3_1</jasypt-bundle-version>
+        <jasypt-version>1.9.3</jasypt-version>
+        <java-apns-bundle-version>1.0.0.Beta6_1</java-apns-bundle-version>
+        <java-apns-version>1.0.0.Beta6</java-apns-version>
+        <java-ewah-version>1.1.6</java-ewah-version>
+        <java-grok-version>0.1.9</java-grok-version>
+        <java-util-version>1.40.0</java-util-version>
+        <java-util-bundle-version>1.40.0_1</java-util-bundle-version>
+        <jnats-version>2.6.6</jnats-version>
+        <javacc-maven-plugin-version>2.6</javacc-maven-plugin-version>
+        <javacrumbs-version>0.22</javacrumbs-version>
+        <javaparser-version>3.13.10</javaparser-version>
+        <javapoet-version>1.11.1</javapoet-version>
+        <javassist-version>3.20.0-GA</javassist-version>
+        <javax-el3-version>3.0.0</javax-el3-version>
+        <javax-el-api-hibernate-validator-version>3.0.1-b04</javax-el-api-hibernate-validator-version>
+        <javax-el-hibernate-validator-version>3.0.1-b10</javax-el-hibernate-validator-version>
+        <javax-activation-version-range>[0,2)</javax-activation-version-range>
+        <javax-activation-version>1.2.0</javax-activation-version>
         <javax-annotation-api-version>1.3.2</javax-annotation-api-version>
+        <javax-inject-bundle-version>1_2</javax-inject-bundle-version>
+        <jakarta-mail-version>1.6.5</jakarta-mail-version>
+        <javax-servlet-api-version>3.1.0</javax-servlet-api-version>
         <jaxb-version>2.3.0</jaxb-version>
+        <jaxb-bundle-version>2.3.1_1</jaxb-bundle-version>
+        <jakarta-api-version>2.1.5</jakarta-api-version>
+        <jakarta-jaxb-version>2.3.2</jakarta-jaxb-version>
+        <glassfish-javax-json>1.0.4</glassfish-javax-json>
+        <glassfish-jaxb-runtime-version>2.3.2</glassfish-jaxb-runtime-version>
+        <jaxb2-maven-plugin-version>2.5.0</jaxb2-maven-plugin-version>
+        <jbpm-version>7.34.0.Final</jbpm-version>
+        <jboss-logging-version>3.4.0.Final</jboss-logging-version>
+        <jboss-marshalling-version>1.4.10.Final</jboss-marshalling-version>
+        <jboss-transaction-spi.version>7.5.1.Final</jboss-transaction-spi.version>
+        <jboss-xnio-version>3.3.8.Final</jboss-xnio-version>
+        <jcache-bundle-version>1.1.0_1</jcache-bundle-version>
+        <jclouds-version>2.1.2</jclouds-version>
+        <!-- jclouds must use this guava version -->
+        <jclouds-google-guava-version>18.0</jclouds-google-guava-version>
+        <jclouds-google-guava-version-range>[18.0,19.0)</jclouds-google-guava-version-range>
+        <jcommander-version>1.72</jcommander-version>
+        <jcr-version>2.0</jcr-version>
+        <jdom-bundle-version>2.0.6_1</jdom-bundle-version>
+        <jedis-client-version>3.1.0</jedis-client-version>
+        <jedis-client-bundle-version>3.1.0_1</jedis-client-bundle-version>
+        <jersey-version>2.28</jersey-version>
         <jetty9-version>9.4.20.v20190813</jetty9-version>
+        <jetty-version>${jetty9-version}</jetty-version>
+        <jetty-plugin-version>${jetty-version}</jetty-plugin-version>
+        <jetty-runner-groupId>org.eclipse.jetty</jetty-runner-groupId>
+        <jettison-version>1.4.1</jettison-version>
+        <jgit-version>5.7.0.202003110725-r</jgit-version>
+        <jgroups-version>4.2.0.Final</jgroups-version>
+        <jgroups-raft-version>0.5.1.Final</jgroups-raft-version>
+        <jgroups-raft-leveldbjni-version>1.8</jgroups-raft-leveldbjni-version>
+        <jgroups-raft-mapdb-version>1.0.8</jgroups-raft-mapdb-version>
+        <jira-guava-version>26.0-jre</jira-guava-version>
+        <jira-rest-client-api-version>5.1.6</jira-rest-client-api-version>
+        <libthrift-version>0.12.0</libthrift-version>
+        <jing-bundle-version>20030619_5</jing-bundle-version>
+        <jing-version>20030619</jing-version>
+        <jmh-version>1.23</jmh-version>
+        <jodatime-bundle-version>1.6.2</jodatime-bundle-version>
+        <jodatime2-bundle-version>2.10.5</jodatime2-bundle-version>
+        <jota-version>1.0.0-beta7</jota-version>
         <jolokia-version>1.6.2</jolokia-version>
-        <junit-jupiter-version>5.6.0</junit-jupiter-version>
-        <kafka-avro-serializer-version>5.2.2</kafka-avro-serializer-version>
+        <jolt-version>0.1.1</jolt-version>
+        <jolt-bundle-version>0.1.1_1</jolt-bundle-version>
+        <jool-version>0.9.12</jool-version>
+        <jooq-version>3.13.1</jooq-version>
+        <johnzon-version>1.2.3</johnzon-version>
+        <jose4j-version>0.6.4</jose4j-version>
+        <josql-bundle-version>1.5_5</josql-bundle-version>
+        <jsendnsca-version>2.1.1</jsendnsca-version>
+        <jslt-version>0.1.8</jslt-version>
+        <jsmpp-version>2.3.9</jsmpp-version>
+        <jsch-version>0.1.55</jsch-version>
+        <jsch-bundle-version>0.1.55_1</jsch-bundle-version>
+        <json-accessors-smart-version>1.2</json-accessors-smart-version>
+        <json-api>1.0</json-api>
+        <jsonassert-version>1.5.0</jsonassert-version>
+        <json-flattener-version>0.7.1</json-flattener-version>
+        <json-path-version>2.4.0</json-path-version>
+        <json-simple-version>1.1.1</json-simple-version>
+        <json-smart-version>2.3</json-smart-version>
+        <jsoup-version>1.12.2</jsoup-version>
+        <jt400-version>10.2</jt400-version>
+        <jt400-bundle-version>10.2_1</jt400-bundle-version>
+        <juel-bundle-version>2.1.3_1</juel-bundle-version>
+        <junit-bundle-version>4.11_1</junit-bundle-version>
+        <junit-toolbox-version>2.3</junit-toolbox-version>
+        <junit-version>4.12</junit-version>
+        <junit-jupiter-version>5.6.1</junit-jupiter-version>
+        <jxmpp-version>0.6.4</jxmpp-version>
+        <jython-version>2.5.3</jython-version>
+        <jython-standalone-version>2.5.3</jython-standalone-version>
+        <jzlib-version>1.1.3</jzlib-version>
+        <jzlib-bundle-version>1.1.3_2</jzlib-bundle-version>
+        <kafka-version>2.4.0</kafka-version>
+        <kafka-bundle-version>2.4.0_1</kafka-bundle-version>
         <karaf4-version>4.2.8</karaf4-version>
+        <kie-version>7.34.0.Final</kie-version>
+        <kubernetes-client-version>4.9.0</kubernetes-client-version>
+        <kubernetes-model-version>4.9.0</kubernetes-model-version>
+        <kudu-version>1.10.0</kudu-version>
+        <kxml2-bundle-version>2.3.0_3</kxml2-bundle-version>
+        <leveldbjni-version>1.8</leveldbjni-version>
+        <leveldb-api-version>0.10</leveldb-api-version>
+        <leveldb-version>0.10</leveldb-version>
+        <leveldb-guava-version>21.0</leveldb-guava-version>
+        <libphonenumber-version>8.11.3</libphonenumber-version>
+        <libphonenumber-bundle-version>8.11.3_1</libphonenumber-bundle-version>
+        <!-- virtual dependency only used by Eclipse m2e -->
+        <lifecycle-mapping-version>1.0.0</lifecycle-mapping-version>
+        <lettuce-version>5.1.0.RELEASE</lettuce-version>
+        <log4j-version>1.2.17</log4j-version>
         <log4j2-version>2.13.1</log4j2-version>
+        <logback-version>1.2.3</logback-version>
         <lucene3-version>3.6.0</lucene3-version>
-        <maven-jar-plugin-version>3.2.0</maven-jar-plugin-version>
+        <lucene-bundle-version>8.1.1_1</lucene-bundle-version>
+        <!-- lucene aligned with elasticsearch version of lucene in use -->
+        <lucene-version>8.1.1</lucene-version>
+        <lucene-version-range>[8,9)</lucene-version-range>
+        <lightcouch-version>0.2.0</lightcouch-version>
+        <lightcouch-bundle-version>0.2.0_1</lightcouch-bundle-version>
+        <lz4-version>1.6.0</lz4-version>
+        <!-- needed from tooling/archetypes -->
+        <!-- use antrun 1.6 as 1.7 fails with finding tools.jar on java on some platforms -->
+        <maven-antrun-plugin-version>1.6</maven-antrun-plugin-version>
+        <maven-archetype-plugin-version>3.0.1</maven-archetype-plugin-version>
+        <maven-archetype-packaging-version>2.3</maven-archetype-packaging-version>
+        <maven-assembly-plugin-version>3.0.0</maven-assembly-plugin-version>
         <maven-checkstyle-plugin-version>3.1.0</maven-checkstyle-plugin-version>
         <maven-checkstyle-version>8.26</maven-checkstyle-version>
         <maven-compiler-plugin-version>3.8.1</maven-compiler-plugin-version>
-        <maven-javadoc-plugin-version>3.0.1</maven-javadoc-plugin-version>
-        <maven-resources-plugin-version>3.1.0</maven-resources-plugin-version>
+        <maven-bundle-plugin-version>4.2.1</maven-bundle-plugin-version>
+        <maven-checkstyle-version>8.26</maven-checkstyle-version>
+        <maven-owasp-plugin-version>5.3.1</maven-owasp-plugin-version>
+        <maven-jar-plugin-version>3.2.0</maven-jar-plugin-version>
+        <maven-javadoc-plugin-version>3.1.1</maven-javadoc-plugin-version>
+        <maven-jboss-as-maven-plugin-version>7.9.Final</maven-jboss-as-maven-plugin-version>
+        <maven-plugin-plugin-version>3.6.0</maven-plugin-plugin-version>
+        <maven-plugin-annotations-version>3.6.0</maven-plugin-annotations-version>
+        <maven-plugin-testing-harness-version>3.3.0</maven-plugin-testing-harness-version>
+        <maven-remote-resources-plugin-version>1.5</maven-remote-resources-plugin-version>
         <maven-surefire-plugin-version>3.0.0-M4</maven-surefire-plugin-version>
+        <!-- resources plugin needed by Camel maven archetypes -->
+        <maven-resources-plugin-version>3.1.0</maven-resources-plugin-version>
+        <maven-reporting-api-version>2.2.1</maven-reporting-api-version>
+        <maven-reporting-impl-version>2.0.5</maven-reporting-impl-version>
+        <maven-shade-plugin-version>3.2.1</maven-shade-plugin-version>
+        <maven-surefire-report-plugin-version>3.0.0-M4</maven-surefire-report-plugin-version>
+        <maven-war-plugin-version>3.2.3</maven-war-plugin-version>
+        <metrics-version>3.2.6</metrics-version>
+        <micrometer-version>1.2.2</micrometer-version>
+        <microprofile-config-version>1.4</microprofile-config-version>
+        <microprofile-metrics-version>2.3</microprofile-metrics-version>
+        <microprofile-health-version>2.2</microprofile-health-version>
+        <milo-version>0.3.7</milo-version>
+        <milo-guava-version>26.0-jre</milo-guava-version>
+        <mimepull-version>1.9.12</mimepull-version>
+        <mina-version>2.1.3</mina-version>
+        <minidns-version>0.3.4</minidns-version>
+        <minimal-json-version>0.9.5</minimal-json-version>
+        <mock-javamail-version>1.9</mock-javamail-version>
+        <mockwebserver-version>0.1.7</mockwebserver-version>
+        <mockito-version>3.3.3</mockito-version>
+        <mongo3-java-driver-version>3.12.2</mongo3-java-driver-version>
+        <mongo-java-driver-version>4.0.1</mongo-java-driver-version>
+        <mongo-hadoop-version>1.5.0</mongo-hadoop-version>
+        <msv-version>2013.6.1</msv-version>
+        <mustache-java-version>0.9.6</mustache-java-version>
+        <mustache-guava-version>20.0</mustache-guava-version>
+        <mustache-bundle-version>0.9.6_1</mustache-bundle-version>
         <mvel-version>2.4.5.Final</mvel-version>
-        <mycila-license-version>3.0</mycila-license-version>
+        <mybatis-version>3.5.4</mybatis-version>
+        <narayana-version>5.10.4.Final</narayana-version>
+        <nessus-ipfs-version>1.0.0.Beta4</nessus-ipfs-version>
+        <nessus-weka-version>1.0.1</nessus-weka-version>
+        <nsq-client-version>1.0.0.RC4</nsq-client-version>
+        <neoscada-version>0.4.0</neoscada-version>
+        <netty3-version>3.10.6.Final</netty3-version>
+        <netty-version>4.1.47.Final</netty-version>
+        <netty-reactive-streams-version>2.0.3</netty-reactive-streams-version>
+        <netty40-version>4.0.56.Final</netty40-version>
+        <networknt-json-schema-validator-version>1.0.33</networknt-json-schema-validator-version>
+        <nimbus-jose-jwt>8.9</nimbus-jose-jwt>
+        <nitrite-version>3.3.0</nitrite-version>
+        <noggit-bundle-version>0.5_1</noggit-bundle-version>
+        <objenesis-version>2.6</objenesis-version>
+        <!-- should be in-sync with deltaspike -->
+        <openwebbeans1-version>1.2.7</openwebbeans1-version>
+        <openwebbeans-version>1.7.3</openwebbeans-version>
+        <okclient-version>3.14.7</okclient-version>
+        <okclient-bundle-version>3.14.1_1</okclient-bundle-version>
+        <olingo2-version>2.0.11</olingo2-version>
+        <olingo-odata2-core-bundle-version>2.0.11_1</olingo-odata2-core-bundle-version>
+        <olingo2-gson-version>2.4</olingo2-gson-version>
+        <olingo4-version>4.7.1</olingo4-version>
+        <ognl-version>3.1.12</ognl-version>
+        <ognl-bundle-version>3.1.12_1</ognl-bundle-version>
+        <opencensus-api-version>0.24.0</opencensus-api-version>
+        <oncrpc-version>1.1.3</oncrpc-version>
         <openjpa-version>3.1.1</openjpa-version>
+        <openstack4j-version>3.0.2</openstack4j-version>
+        <openstack4j-guava-version>17.0</openstack4j-guava-version>
         <opentracing-version>0.33.0</opentracing-version>
+        <opentracing-tracerresolver-version>0.1.8</opentracing-tracerresolver-version>
+        <ops4j-base-version>1.5.0</ops4j-base-version>
+        <optaplanner-version>7.34.0.Final</optaplanner-version>
+        <oro-bundle-version>2.0.8_6</oro-bundle-version>
         <os-maven-plugin-version>1.6.0</os-maven-plugin-version>
+        <osgi-version>6.0.0</osgi-version>
+        <paho-version>1.2.2</paho-version>
+        <paranamer-bundle-version>2.8_1</paranamer-bundle-version>
+        <partial-build-plugin-version>2.7</partial-build-plugin-version>
+        <pax-cdi-version>1.0.0</pax-cdi-version>
+        <pax-exam-version>4.13.2</pax-exam-version>
+        <pax-tiny-bundle-version>1.3.2</pax-tiny-bundle-version>
         <pax-logging-version>1.11.2</pax-logging-version>
-        <protobuf-maven-plugin-version>0.6.1</protobuf-maven-plugin-version>
+        <pdfbox-version>2.0.19</pdfbox-version>
+        <perfmark-version>0.17.0</perfmark-version>
+        <pgjdbc-driver-version>42.2.6</pgjdbc-driver-version>
+        <pgjdbc-ng-driver-version>0.8.3</pgjdbc-ng-driver-version>
+        <properties-maven-plugin-version>1.0-alpha-2</properties-maven-plugin-version>
         <protobuf-version>3.11.1</protobuf-version>
+        <protobuf-guava-version>28.2-jre</protobuf-guava-version>
+        <protobuf-javanano-version>3.1.0</protobuf-javanano-version>
+        <protobuf-maven-plugin-version>0.6.1</protobuf-maven-plugin-version>
+        <protonpack-version>1.8</protonpack-version>
+        <pubnub-version>4.25.0</pubnub-version>
+        <pulsar-version>2.5.0</pulsar-version>
+        <pulsar-bundle-version>2.5.0_1</pulsar-bundle-version>
+        <qpid-broker-version>8.0.0</qpid-broker-version>
+        <qpid-proton-j-version>0.33.3</qpid-proton-j-version>
+        <qpid-jms-client-version>0.50.0</qpid-jms-client-version>
+        <quartz-version>2.3.2</quartz-version>
+        <quickfixj-version>2.1.1</quickfixj-version>
+        <rabbitmq-amqp-client-version>5.8.0</rabbitmq-amqp-client-version>
+        <rdf4j-rio-version>2.4.4</rdf4j-rio-version>
+        <rdf4j-model-version>2.4.4</rdf4j-model-version>
+        <reactive-streams-version>1.0.3</reactive-streams-version>
         <reactor-version>3.2.15.RELEASE</reactor-version>
-        <roaster-version>2.20.1.Final</roaster-version>
+        <reflections-bundle-version>0.9.11_1</reflections-bundle-version>
+        <regexp-bundle-version>1.4_1</regexp-bundle-version>
+        <rescu-version>2.0.2</rescu-version>
+        <resilience4j-version>1.3.0</resilience4j-version>
+        <rest-assured-version>4.3.0</rest-assured-version>
+        <revapi-java-version>0.20.0</revapi-java-version>
+        <revapi-maven-plugin-version>0.11.2</revapi-maven-plugin-version>
+        <rhino-version>1.7.7.1</rhino-version>
+        <rhino-js-version>1.7R2</rhino-js-version>
+        <ribbon-version>2.3.0</ribbon-version>
+        <roaster-version>2.21.1.Final</roaster-version>
+        <robotframework-version>3.1.1</robotframework-version>
+        <rome-version>1.12.2</rome-version>
         <rxjava-version>1.3.8</rxjava-version>
+        <rxjava2-version>2.2.19</rxjava2-version>
+        <saxon-bundle-version>9.9.1-6_1</saxon-bundle-version>
+        <saxon-version>9.9.1-6</saxon-version>
+        <scala-version>2.11.7</scala-version>
+        <scribe-version>1.3.7</scribe-version>
+        <scribe-bundle-version>1.3.7_1</scribe-bundle-version>
+        <serp-bundle-version>1.14.1_1</serp-bundle-version>
+        <servicemix-specs-version>2.9.0</servicemix-specs-version>
+        <servlet-version-range>[3,4)</servlet-version-range>
+        <shiro-version>1.5.1</shiro-version>
+        <shrinkwrap-descriptors-version>2.0.0</shrinkwrap-descriptors-version>
         <shrinkwrap-resolver-version>3.1.3</shrinkwrap-resolver-version>
         <shrinkwrap-version>1.2.6</shrinkwrap-version>
-        <spring-cloud-commons-version>2.2.2.RELEASE</spring-cloud-commons-version>
-        <spring-cloud-consul-version>2.2.2.RELEASE</spring-cloud-consul-version>
-        <spring-cloud-netflix-version>2.2.2.RELEASE</spring-cloud-netflix-version>
-        <spring-cloud-zookeeper-version>2.2.1.RELEASE</spring-cloud-zookeeper-version>
-        <surefire.version>${maven-surefire-plugin-version}</surefire.version>
+        <sip-api-version>1.1</sip-api-version>
+        <slf4j-api-version>1.7.30</slf4j-api-version>
+        <slf4j-version>1.7.30</slf4j-version>
+        <smack-version>4.3.4</smack-version>
+        <smallrye-config-version>1.7.0</smallrye-config-version>
+        <smallrye-metrics-version>2.4.1</smallrye-metrics-version>
+        <smallrye-health-version>2.2.0</smallrye-health-version>
+        <snakeyaml-version>1.26</snakeyaml-version>
+        <snappy-version>1.1.7.3</snappy-version>
+        <snmp4j-version>2.6.3_1</snmp4j-version>
+        <solr-bundle-version>8.4.1_1</solr-bundle-version>
+        <!-- solr version aligned with lucene -->
+        <solr-version>8.4.1</solr-version>
+        <solr-version-range>[8,9)</solr-version-range>
+        <spark-version>2.4.5</spark-version>
+        <spark-rest-version>2.9.1</spark-rest-version>
+        <spark-rest-bundle-version>2.9.1_1</spark-rest-bundle-version>
+        <splunk-version>1.6.5.0_1</splunk-version>
+        <spring-batch-version>4.2.1.RELEASE</spring-batch-version>
+        <spring-batch-bundle-version>4.2.1.RELEASE_1</spring-batch-bundle-version>
+        <spring-boot-version>2.2.5.RELEASE</spring-boot-version>
+        <spring-data-commons-bundle-version>2.2.4.RELEASE_1</spring-data-commons-bundle-version>
+        <spring-data-keyvalue-bundle-version>2.2.4.RELEASE_1</spring-data-keyvalue-bundle-version>
+        <spring-data-redis-version>2.2.4.RELEASE</spring-data-redis-version>
+        <spring-data-redis-bundle-version>2.2.4.RELEASE_1</spring-data-redis-bundle-version>
+        <spring-integration-version>5.1.8.RELEASE</spring-integration-version>
+        <spring-ldap-version>2.3.2.RELEASE</spring-ldap-version>
+        <spring-ldap-bundle-version>2.3.2.RELEASE_2</spring-ldap-bundle-version>
+        <spring-version-range>[5,6)</spring-version-range>
+        <spring-version>${spring5-version}</spring-version>
+        <spring5-version>5.2.4.RELEASE</spring5-version>
+        <spring-security-version>5.3.0.RELEASE</spring-security-version>
+        <spring-ws-version>3.0.7.RELEASE</spring-ws-version>
+        <spring-ws-bundle-version>3.0.7.RELEASE_1</spring-ws-bundle-version>
+        <spring-xml-bundle-version>3.0.7.RELEASE_1</spring-xml-bundle-version>
+        <spymemcached-bundle-version>2.5_2</spymemcached-bundle-version> <!-- FIXME cmueller: not in sync! -->
+        <spymemcached-version>2.12.0</spymemcached-version>
+        <sql-maven-plugin-version>1.5</sql-maven-plugin-version>
+        <squareup-okhttp-version>3.14.7</squareup-okhttp-version>
+        <squareup-okio-version>1.17.2</squareup-okio-version>
+        <squareup-okhttp-bundle-version>2.7.5_1</squareup-okhttp-bundle-version>
+        <squareup-okio-bundle-version>1.15.0_1</squareup-okio-bundle-version>
+        <squareup-retrofit2-bundle-version>2.5.0_2</squareup-retrofit2-bundle-version>
+        <sshd-version>2.0.0</sshd-version>
+        <stompjms-version>1.19</stompjms-version>
+        <swagger-java-version>1.5.24</swagger-java-version>
+        <swagger-java-parser-version>1.0.47</swagger-java-parser-version>
+        <swagger-java-guava-version>27.1-jre</swagger-java-guava-version>
+        <apicurio-version>1.0.16.Final</apicurio-version>
+        <stax-api-version>1.0.1</stax-api-version>
+        <stax2-api-bundle-version>3.1.4</stax2-api-bundle-version>
+        <stax2v4-api-bundle-version>4.2</stax2v4-api-bundle-version>
+        <stringtemplate-bundle-version>4.0.8_1</stringtemplate-bundle-version>
+        <stringtemplate-version>4.0.8</stringtemplate-version>
+        <tagsoup-bundle-version>1.2.1_1</tagsoup-bundle-version>
+        <tagsoup-version>1.2.1</tagsoup-version>
+        <templating-maven-plugin-version>1.0.0</templating-maven-plugin-version>
         <testcontainers-version>1.13.0</testcontainers-version>
-        <tomcat-version>9.0.31</tomcat-version>
+        <threetenbp-version>1.4.0</threetenbp-version>
+        <tinybundles-version>2.1.1</tinybundles-version>
+        <tika-version>1.24</tika-version>
+        <twilio-version>7.9.1</twilio-version>
+        <twitter4j-bundle-version>4.0.7_1</twitter4j-bundle-version>
+        <twitter4j-version>4.0.7</twitter4j-version>
         <undertow-version>2.0.30.Final</undertow-version>
-        <weld3-version>3.0.5.RELEASE</weld3-version>
+        <univocity-parsers-version>2.8.4</univocity-parsers-version>
+        <unix-socket-factory-version>2015-01-27T15-02-14</unix-socket-factory-version>
+        <unix-socket-factory-bundle-version>1.0.0</unix-socket-factory-bundle-version>
+        <validation-1-api-version>1.1.0.Final</validation-1-api-version>
+        <validation-api-version>2.0.1.Final</validation-api-version>
+        <vavr-version>0.10.2</vavr-version>
+        <velocity-tools-version>2.0</velocity-tools-version>
+        <velocity-version>2.1</velocity-version>
+        <vertx-version>3.8.5</vertx-version>
+        <vysper-version>0.7</vysper-version>
+        <web3j-version>3.6.0</web3j-version>
+        <web3j-quorum-version>0.8.0</web3j-quorum-version>
+        <weld3-version>3.0.5.Final</weld3-version>
+        <werken-xpath-bundle-version>0.9.4_5</werken-xpath-bundle-version>
+        <wildfly-elytron>1.11.2.Final</wildfly-elytron>
+        <wiremock-version>2.24.1</wiremock-version>
+        <woodstox-version>4.4.1</woodstox-version>
+        <woodstox-core-version>5.2.1</woodstox-core-version>
+        <wsdl4j-bundle-version>1.6.3_1</wsdl4j-bundle-version>
+        <wsdl4j-version>1.6.3</wsdl4j-version>
+        <xalan-bundle-version>2.7.2_3</xalan-bundle-version>
+        <xalan-version>2.7.2</xalan-version>
+        <xbean-spring-version>4.14</xbean-spring-version>
+        <xbean-asm5-shaded-version>4.5</xbean-asm5-shaded-version>
+        <xchange-version>4.4.2</xchange-version>
+        <xerces-bundle-version>2.12.0_1</xerces-bundle-version>
+        <xerces-version>2.12.0</xerces-version>
+        <!-- needed to manage the xml-apis version in camel-xmljson -->
+        <xml-apis-version>1.4.01</xml-apis-version>
+        <xml-apis-ext-version>1.3.04</xml-apis-ext-version>
+        <xml-resolver-version>1.2</xml-resolver-version>
+        <xmlgraphics-commons-bundle-version>2.3_1</xmlgraphics-commons-bundle-version>
+        <xmlgraphics-batik-version>1.12</xmlgraphics-batik-version>
+        <xmlresolver-bundle-version>1.2_5</xmlresolver-bundle-version>
+        <xmlsec-version>2.1.4</xmlsec-version>
+        <xmlunit-version>2.6.3</xmlunit-version>
+        <xpp3-bundle-version>1.1.4c_7</xpp3-bundle-version>
+        <xpp3-version>1.1.4c</xpp3-version>
+        <xstream-bundle-version>1.4.11.1_1</xstream-bundle-version>
+        <xstream-version>1.4.11.1</xstream-version>
+        <yetus-audience-annotations-version>0.11.0</yetus-audience-annotations-version>
+        <zendesk-client-version>0.6.2</zendesk-client-version>
+        <zipkin-reporter-version>2.12.1</zipkin-reporter-version>
+        <zipkin-version>2.20.2</zipkin-version>
+        <zipkin-libthrift-version>0.13.0</zipkin-libthrift-version>
+        <zjsonpatch-version>0.3.0</zjsonpatch-version>
+        <zookeeper-version>3.5.7</zookeeper-version>
+        <zookeeper-guava-version>27.1-jre</zookeeper-guava-version>
+        <zxing-version>3.4.0</zxing-version>
+        <zxing-bundle-version>3.4.0_1</zxing-bundle-version>
 
         <!-- OSGi bundles properties -->
         <camel.osgi.import.camel.version>


[camel-karaf] 01/02: Added Platform parts

Posted by ac...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-karaf.git

commit b617714c229326a6091a51e5dc7305a40e5abd2f
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Mar 23 10:49:07 2020 +0100

    Added Platform parts
---
 platforms/karaf/commands/pom.xml                   |  110 +
 .../camel/karaf/commands/AbstractRouteCommand.java |   36 +
 .../camel/karaf/commands/ContextInflight.java      |   56 +
 .../apache/camel/karaf/commands/ContextInfo.java   |   50 +
 .../apache/camel/karaf/commands/ContextList.java   |   34 +
 .../apache/camel/karaf/commands/ContextResume.java |   41 +
 .../apache/camel/karaf/commands/ContextStart.java  |   42 +
 .../apache/camel/karaf/commands/ContextStop.java   |   42 +
 .../camel/karaf/commands/ContextSuspend.java       |   42 +
 .../apache/camel/karaf/commands/EndpointList.java  |   51 +
 .../apache/camel/karaf/commands/EndpointStats.java |   51 +
 .../apache/camel/karaf/commands/RestApiDoc.java    |   42 +
 .../camel/karaf/commands/RestRegistryList.java     |   51 +
 .../org/apache/camel/karaf/commands/RestShow.java  |   42 +
 .../org/apache/camel/karaf/commands/RouteInfo.java |   37 +
 .../org/apache/camel/karaf/commands/RouteList.java |   42 +
 .../apache/camel/karaf/commands/RouteProfile.java  |   36 +
 .../camel/karaf/commands/RouteResetStats.java      |   42 +
 .../apache/camel/karaf/commands/RouteResume.java   |   33 +
 .../org/apache/camel/karaf/commands/RouteShow.java |   33 +
 .../apache/camel/karaf/commands/RouteStart.java    |   32 +
 .../org/apache/camel/karaf/commands/RouteStep.java |   36 +
 .../org/apache/camel/karaf/commands/RouteStop.java |   33 +
 .../apache/camel/karaf/commands/RouteSuspend.java  |   33 +
 .../commands/completers/CamelContextCompleter.java |   50 +
 .../karaf/commands/completers/RouteCompleter.java  |   60 +
 .../commands/internal/CamelControllerImpl.java     |  151 ++
 .../commands/internal/KarafStringEscapeUtils.java  |  229 ++
 .../karaf/commands/internal/StringEscape.java      |   44 +
 .../src/main/resources/META-INF/LICENSE.txt        |  203 ++
 .../src/main/resources/META-INF/NOTICE.txt         |   11 +
 .../src/main/resources/OSGI-INF/bundle.info        |   34 +
 platforms/karaf/features/pom.xml                   |  230 ++
 .../features/src/main/resources/bundles.properties |   83 +
 .../karaf/features/src/main/resources/features.xml | 2805 ++++++++++++++++++++
 platforms/karaf/pom.xml                            |   37 +
 platforms/pom.xml                                  |   36 +
 pom.xml                                            |    7 +-
 38 files changed, 5025 insertions(+), 2 deletions(-)

diff --git a/platforms/karaf/commands/pom.xml b/platforms/karaf/commands/pom.xml
new file mode 100644
index 0000000..9e3e45f
--- /dev/null
+++ b/platforms/karaf/commands/pom.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.karaf</groupId>
+        <artifactId>karaf-platform</artifactId>
+        <version>3.2.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.camel.karaf</groupId>
+    <artifactId>camel-karaf-commands</artifactId>
+    <packaging>jar</packaging>
+    <name>Camel :: Platforms :: Apache Karaf :: Commands</name>
+
+    <properties>
+        <!-- use by camel-catalog -->
+        <firstVersion>2.8.0</firstVersion>
+        <label>tooling</label>
+
+        <camel.osgi.export.pkg>org.apache.camel.karaf.commands.*</camel.osgi.export.pkg>
+    </properties>
+
+    <dependencies>
+
+        <!-- camel -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-commands-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+
+        <!-- karaf -->
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
+            <version>${karaf4-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+            <optional>true</optional>
+        </dependency>
+
+        <!-- Test -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-bundle-plugin</artifactId>
+                <version>${project.version}</version>
+                <configuration>
+                    <instructions>
+                        <Import-Package>
+                            !org.apache.felix.utils.properties,
+                            org.apache.karaf.shell.*;version="[4,5)",
+                            org.slf4j.*;version="[1.6,2)",
+                            *
+                        </Import-Package>
+                        <Private-Package>
+                            org.apache.camel.karaf.commands.internal
+                        </Private-Package>
+                        <Karaf-Commands>*</Karaf-Commands>
+                    </instructions>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
new file mode 100644
index 0000000..16a549e
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.completers.RouteCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Completion;
+
+public abstract class AbstractRouteCommand extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The Camel context name.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Argument(index = 1, name = "route", description = "The Camel route ID or a wildcard expression", required = true, multiValued = false)
+    @Completion(RouteCompleter.class)
+    String route;
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java
new file mode 100644
index 0000000..edf6d0f
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextInflightCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.completers.RouteCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-inflight", description = "List inflight exchanges.")
+@Service
+public class ContextInflight extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The Camel context name", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Option(name = "--limit", aliases = "-l", description = "To limit the number of exchanges shown",
+            required = false, multiValued = false)
+    int limit = -1;
+
+    @Argument(index = 1, name = "route", description = "The Camel route ID", required = false, multiValued = false)
+    @Completion(RouteCompleter.class)
+    String route;
+
+    @Option(name = "--sort", aliases = "-s", description = "true = sort by longest duration, false = sort by exchange id",
+            required = false, multiValued = false, valueToShowInHelp = "false")
+    boolean sortByLongestDuration;
+
+    @Override
+    public Object execute() throws Exception {
+        ContextInflightCommand command = new ContextInflightCommand(name, route, limit, sortByLongestDuration);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
new file mode 100644
index 0000000..e786888
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextInfoCommand;
+import org.apache.camel.commands.StringEscape;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-info", description = "Display detailed information about a Camel context.")
+@Service
+public class ContextInfo extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The name of the Camel context", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Option(name = "--verbose", aliases = "-v", description = "Verbose output",
+            required = false, multiValued = false, valueToShowInHelp = "false")
+    boolean verbose;
+
+    private StringEscape stringEscape = org.apache.camel.karaf.commands.internal.StringEscape.getInstance();
+
+    @Override
+    public Object execute() throws Exception {
+        ContextInfoCommand command = new ContextInfoCommand(name, verbose);
+        command.setStringEscape(stringEscape);
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java
new file mode 100644
index 0000000..760ee69
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextListCommand;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-list", description = "Lists all Camel contexts.")
+@Service
+public class ContextList extends CamelControllerImpl implements Action {
+
+    @Override
+    public Object execute() throws Exception {
+        ContextListCommand command = new ContextListCommand();
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java
new file mode 100644
index 0000000..8c75ba6
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextResumeCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-resume", description = "Resumes a Camel context.")
+@Service
+public class ContextResume extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The name of the Camel context.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Override
+    public Object execute() throws Exception {
+        ContextResumeCommand command = new ContextResumeCommand(context);
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java
new file mode 100644
index 0000000..a71b9f3
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextStartCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-start", description = "Start a Camel context.")
+@Service
+public class ContextStart extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The name of the Camel context.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Override
+    public Object execute() throws Exception {
+        ContextStartCommand command = new ContextStartCommand(context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java
new file mode 100644
index 0000000..da6df67
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextStopCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-stop", description = "Stop a Camel context. It becomes unavailable and can not be started again.")
+@Service
+public class ContextStop extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The name of the Camel context.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Override
+    public Object execute() throws Exception {
+        ContextStopCommand command = new ContextStopCommand(context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java
new file mode 100644
index 0000000..31ac788
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.ContextSuspendCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "context-suspend", description = "Suspends a Camel context.")
+@Service
+public class ContextSuspend extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The name of the Camel context.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Override
+    public Object execute() throws Exception {
+        ContextSuspendCommand command = new ContextSuspendCommand(context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
new file mode 100644
index 0000000..626294f
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.EndpointListCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "endpoint-list", description = "Lists Camel endpoints")
+@Service
+public class EndpointList extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The name of the Camel context or a wildcard expression", required = false, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Option(name = "--decode", aliases = "-d", description = "Whether to decode the endpoint uri so its human readable",
+            required = false, multiValued = false, valueToShowInHelp = "true")
+    boolean decode = true;
+
+    @Option(name = "--verbose", aliases = "-v", description = "Verbose output which does not limit the length of the uri shown, or to explain all options (if explain selected)",
+            required = false, multiValued = false, valueToShowInHelp = "false")
+    boolean verbose;
+
+    @Override
+    public Object execute() throws Exception {
+        EndpointListCommand command = new EndpointListCommand(name, decode, verbose);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java
new file mode 100644
index 0000000..ca7913c
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.EndpointStatisticCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "endpoint-stats", description = "Display endpoint runtime statistics")
+@Service
+public class EndpointStats extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The name of the Camel context (support wildcard)", required = false, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Option(name = "--filter", aliases = "-f", description = "Filter the list by in,out,static,dynamic",
+            required = false, multiValued = true)
+    String[] filter;
+
+    @Option(name = "--decode", aliases = "-d", description = "Whether to decode the endpoint uri so its human readable",
+            required = false, multiValued = false, valueToShowInHelp = "true")
+    boolean decode = true;
+
+    @Override
+    public Object execute() throws Exception {
+        EndpointStatisticCommand command = new EndpointStatisticCommand(name, decode, filter);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java
new file mode 100644
index 0000000..35f528e
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RestApiDocCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "rest-api-doc", description = "List the Camel REST services API documentation (requires camel-swagger-java on classpath)")
+@Service
+public class RestApiDoc extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The Camel context name where to look for the REST services", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Override
+    public Object execute() throws Exception {
+        RestApiDocCommand command = new RestApiDocCommand(name);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java
new file mode 100644
index 0000000..6efc856
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RestRegistryListCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.Option;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "rest-registry-list", description = "Lists all Camel REST services enlisted in the Rest Registry from a CamelContext")
+@Service
+public class RestRegistryList extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The Camel context name where to look for the REST services", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Option(name = "--decode", aliases = "-d", description = "Whether to decode the endpoint uri so its human readable",
+            required = false, multiValued = false, valueToShowInHelp = "true")
+    Boolean decode = true;
+
+    @Option(name = "--verbose", aliases = "-v", description = "Verbose output which does not limit the length of the uri shown",
+            required = false, multiValued = false, valueToShowInHelp = "false")
+    Boolean verbose = false;
+
+    @Override
+    public Object execute() throws Exception {
+        RestRegistryListCommand command = new RestRegistryListCommand(name, decode, verbose);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java
new file mode 100644
index 0000000..be1c01e
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RestShowCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "rest-show", description = "Display the Camel REST definition in XML")
+@Service
+public class RestShow extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The name of the Camel context", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Override
+    public Object execute() throws Exception {
+        RestShowCommand command = new RestShowCommand(name);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
new file mode 100644
index 0000000..a6fe08b
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteInfoCommand;
+import org.apache.camel.commands.StringEscape;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-info", description = "Display information about a Camel route.")
+@Service
+public class RouteInfo extends AbstractRouteCommand {
+
+    private StringEscape stringEscape = org.apache.camel.karaf.commands.internal.StringEscape.getInstance();
+
+    @Override
+    public Object execute() throws Exception {
+        RouteInfoCommand command = new RouteInfoCommand(route, context);
+        command.setStringEscape(stringEscape);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java
new file mode 100644
index 0000000..38e04f3
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteListCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-list", description = "List Camel routes.")
+@Service
+public class RouteList extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "name", description = "The Camel context name where to look for the route", required = false, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String name;
+
+    @Override
+    public Object execute() throws Exception {
+        RouteListCommand command = new RouteListCommand(name);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
new file mode 100644
index 0000000..eb892ac
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteProfileCommand;
+import org.apache.camel.commands.StringEscape;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-profile", description = "Display profile information about Camel route(s).")
+@Service
+public class RouteProfile extends AbstractRouteCommand {
+
+    private StringEscape stringEscape = org.apache.camel.karaf.commands.internal.StringEscape.getInstance();
+
+    @Override
+    public Object execute() throws Exception {
+        RouteProfileCommand command = new RouteProfileCommand(route, context);
+        command.setStringEscape(stringEscape);
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
new file mode 100644
index 0000000..aa51f8a
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteResetStatsCommand;
+import org.apache.camel.karaf.commands.completers.CamelContextCompleter;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-reset-stats", description = "Reset route performance stats from a CamelContext")
+@Service
+public class RouteResetStats extends CamelControllerImpl implements Action {
+
+    @Argument(index = 0, name = "context", description = "The name of the Camel context.", required = true, multiValued = false)
+    @Completion(CamelContextCompleter.class)
+    String context;
+
+    @Override
+    public Object execute() throws Exception {
+        RouteResetStatsCommand command = new RouteResetStatsCommand(context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java
new file mode 100644
index 0000000..833b259
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteResumeCommand;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-resume", description = "Resume a Camel route")
+@Service
+public class RouteResume extends AbstractRouteCommand {
+
+    @Override
+    public Object execute() throws Exception {
+        RouteResumeCommand command = new RouteResumeCommand(route, context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java
new file mode 100644
index 0000000..b58041c
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteShowCommand;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-show", description = "Display the Camel route definition in XML")
+@Service
+public class RouteShow extends AbstractRouteCommand {
+
+    @Override
+    public Object execute() throws Exception {
+        RouteShowCommand command = new RouteShowCommand(route, context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
new file mode 100644
index 0000000..61eddc2
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteStartCommand;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-start", description = "Start a Camel route")
+@Service
+public class RouteStart extends AbstractRouteCommand {
+
+    @Override
+    public Object execute() throws Exception {
+        RouteStartCommand command = new RouteStartCommand(route, context);
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java
new file mode 100644
index 0000000..3791edd
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteStepCommand;
+import org.apache.camel.commands.StringEscape;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-step", description = "Display step information about Camel route(s).")
+@Service
+public class RouteStep extends AbstractRouteCommand {
+
+    private StringEscape stringEscape = org.apache.camel.karaf.commands.internal.StringEscape.getInstance();
+
+    @Override
+    public Object execute() throws Exception {
+        RouteStepCommand command = new RouteStepCommand(route, context);
+        command.setStringEscape(stringEscape);
+        return command.execute(this, System.out, System.err);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java
new file mode 100644
index 0000000..1127750
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteStopCommand;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-stop", description = "Stop a Camel route")
+@Service
+public class RouteStop extends AbstractRouteCommand {
+
+    @Override
+    public Object execute() throws Exception {
+        RouteStopCommand command = new RouteStopCommand(route, context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java
new file mode 100644
index 0000000..b206b91
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands;
+
+import org.apache.camel.commands.RouteSuspendCommand;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+
+@Command(scope = "camel", name = "route-suspend", description = "Suspend a Camel route")
+@Service
+public class RouteSuspend extends AbstractRouteCommand {
+
+    @Override
+    public Object execute() throws Exception {
+        RouteSuspendCommand command = new RouteSuspendCommand(route, context);
+        return command.execute(this, System.out, System.err);
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java
new file mode 100644
index 0000000..923bd86
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands.completers;
+
+import java.util.List;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
+/**
+ * A completer for the Camel contexts.
+ */
+@Service
+public class CamelContextCompleter extends CamelControllerImpl implements Completer {
+
+    @Override
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
+        try {
+            StringsCompleter delegate = new StringsCompleter();
+            List<CamelContext> camelContexts = getLocalCamelContexts();
+            for (CamelContext camelContext : camelContexts) {
+                delegate.getStrings().add(camelContext.getName());
+            }
+            return delegate.complete(session, commandLine, candidates);
+        } catch (Exception e) {
+            // nothing to do, no completion
+        }
+        return 0;
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java
new file mode 100644
index 0000000..a09f14f
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands.completers;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.camel.karaf.commands.internal.CamelControllerImpl;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
+
+/**
+ * A completer for the Camel routes.
+ */
+@Service
+public class RouteCompleter extends CamelControllerImpl implements Completer {
+
+    @Override
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
+
+        // grab selected camel context from the first argument
+        String contextName = null;
+        String[] args = commandLine.getArguments();
+        if (args != null && args.length > 1) {
+            // 0 is the command name itself
+            // 1 is the first argument which is the camel context name
+            contextName = args[1];
+        }
+
+        try {
+            StringsCompleter delegate = new StringsCompleter();
+            List<Map<String, String>> routes = getRoutes(contextName);
+            for (Map<String, String> row : routes) {
+                delegate.getStrings().add(row.get("routeId"));
+            }
+            return delegate.complete(session, commandLine, candidates);
+        } catch (Exception e) {
+            // nothing to do, no completion
+        }
+        return 0;
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
new file mode 100644
index 0000000..cb97561
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands.internal;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.api.management.ManagedCamelContext;
+import org.apache.camel.commands.AbstractLocalCamelController;
+import org.apache.camel.support.ObjectHelper;
+import org.apache.karaf.shell.api.action.lifecycle.Reference;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation of <code>CamelController</code>.
+ */
+public class CamelControllerImpl extends AbstractLocalCamelController {
+
+    private static final Logger LOG = LoggerFactory.getLogger(CamelControllerImpl.class);
+
+    @Reference
+    private BundleContext bundleContext;
+
+    public void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
+
+    @Override
+    public List<CamelContext> getLocalCamelContexts() {
+        List<CamelContext> camelContexts = new ArrayList<>();
+        try {
+            ServiceReference<?>[] references = bundleContext.getServiceReferences(CamelContext.class.getName(), null);
+            if (references != null) {
+                for (ServiceReference<?> reference : references) {
+                    if (reference != null) {
+                        CamelContext camelContext = (CamelContext) bundleContext.getService(reference);
+                        if (camelContext != null) {
+                            camelContexts.add(camelContext);
+                        }
+                    }
+                }
+            }
+        } catch (Exception e) {
+            LOG.warn("Cannot retrieve the list of Camel contexts. This exception is ignored.", e);
+        }
+
+        // sort the list
+        camelContexts.sort(Comparator.comparing(CamelContext::getName));
+
+        return camelContexts;
+    }
+
+    @Override
+    public List<Map<String, String>> getCamelContexts() throws Exception {
+        List<Map<String, String>> answer = new ArrayList<>();
+
+        List<CamelContext> camelContexts = getLocalCamelContexts();
+        for (CamelContext camelContext : camelContexts) {
+            Map<String, String> row = new LinkedHashMap<>();
+            row.put("name", camelContext.getName());
+            row.put("state", camelContext.getStatus().name());
+            row.put("uptime", camelContext.getUptime());
+            ManagedCamelContext mcc = camelContext.getExtension(ManagedCamelContext.class);
+            if (mcc != null && mcc.getManagedCamelContext() != null) {
+                row.put("exchangesTotal", "" + mcc.getManagedCamelContext().getExchangesTotal());
+                row.put("exchangesInflight", "" + mcc.getManagedCamelContext().getExchangesInflight());
+                row.put("exchangesFailed", "" + mcc.getManagedCamelContext().getExchangesFailed());
+            } else {
+                row.put("exchangesTotal", "0");
+                row.put("exchangesInflight", "0");
+                row.put("exchangesFailed", "0");
+            }
+            answer.add(row);
+        }
+
+        return answer;
+    }
+
+    @Override
+    public void startContext(String camelContextName) throws Exception {
+        final CamelContext context = getLocalCamelContext(camelContextName);
+        if (context != null) {
+            ObjectHelper.callWithTCCL(() -> {
+                context.start();
+                return null;
+            }, getClassLoader(context));
+        }
+    }
+
+    @Override
+    public void resumeContext(String camelContextName) throws Exception {
+        final CamelContext context = getLocalCamelContext(camelContextName);
+        if (context != null) {
+            ObjectHelper.callWithTCCL(() -> {
+                context.resume();
+                return null;
+            }, getClassLoader(context));
+        }
+    }
+
+    @Override
+    public void startRoute(String camelContextName, final String routeId) throws Exception {
+        final CamelContext context = getLocalCamelContext(camelContextName);
+        if (context != null) {
+            ObjectHelper.callWithTCCL(() -> {
+                context.getRouteController().startRoute(routeId);
+                return null;
+            }, getClassLoader(context));
+        }
+    }
+
+    @Override
+    public void resumeRoute(String camelContextName, final String routeId) throws Exception {
+        final CamelContext context = getLocalCamelContext(camelContextName);
+        if (context != null) {
+            ObjectHelper.callWithTCCL(() -> {
+                context.getRouteController().resumeRoute(routeId);
+                return null;
+            }, getClassLoader(context));
+        }
+    }
+
+    /**
+     * Gets classloader associated with {@link CamelContext}
+     */
+    private ClassLoader getClassLoader(CamelContext context) {
+        return context.getApplicationContextClassLoader();
+    }
+
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java
new file mode 100644
index 0000000..c0d2521
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java
@@ -0,0 +1,229 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands.internal;
+
+import java.util.Locale;
+
+/**
+ * Util class to manipulate String, especially around escape/unescape.
+ *
+ * This class is a copy of org.apache.karaf.util.StringEscapeUtils.
+ */
+public final class KarafStringEscapeUtils {
+
+    /**
+     * Constant for the radix of hex numbers.
+     */
+    private static final int HEX_RADIX = 16;
+
+    /**
+     * Constant for the length of a unicode literal.
+     */
+    private static final int UNICODE_LEN = 4;
+
+    private KarafStringEscapeUtils() {
+    }
+
+    /**
+     * <p>Unescapes any Java literals found in the <code>String</code> to a
+     * <code>Writer</code>.</p> This is a slightly modified version of the
+     * StringEscapeUtils.unescapeJava() function in commons-lang that doesn't
+     * drop escaped separators (i.e '\,').
+     *
+     * @param str the <code>String</code> to unescape, may be null
+     * @return the processed string
+     * @throws IllegalArgumentException if the Writer is <code>null</code>
+     */
+    public static String unescapeJava(String str) {
+        if (str == null) {
+            return null;
+        }
+        int sz = str.length();
+        StringBuffer out = new StringBuffer(sz);
+        StringBuffer unicode = new StringBuffer(UNICODE_LEN);
+        boolean hadSlash = false;
+        boolean inUnicode = false;
+        for (int i = 0; i < sz; i++) {
+            char ch = str.charAt(i);
+            if (inUnicode) {
+                // if in unicode, then we're reading unicode
+                // values in somehow
+                unicode.append(ch);
+                if (unicode.length() == UNICODE_LEN) {
+                    // unicode now contains the four hex digits
+                    // which represents our unicode character
+                    try {
+                        int value = Integer.parseInt(unicode.toString(), HEX_RADIX);
+                        out.append((char) value);
+                        unicode.setLength(0);
+                        inUnicode = false;
+                        hadSlash = false;
+                    } catch (NumberFormatException nfe) {
+                        throw new IllegalArgumentException("Unable to parse unicode value: " + unicode, nfe);
+                    }
+                }
+                continue;
+            }
+
+            if (hadSlash) {
+                // handle an escaped value
+                hadSlash = false;
+                switch (ch) {
+                    case '\\':
+                        out.append('\\');
+                        break;
+                    case '\'':
+                        out.append('\'');
+                        break;
+                    case '\"':
+                        out.append('"');
+                        break;
+                    case 'r':
+                        out.append('\r');
+                        break;
+                    case 'f':
+                        out.append('\f');
+                        break;
+                    case 't':
+                        out.append('\t');
+                        break;
+                    case 'n':
+                        out.append('\n');
+                        break;
+                    case 'b':
+                        out.append('\b');
+                        break;
+                    case 'u':
+                        // uh-oh, we're in unicode country....
+                        inUnicode = true;
+                        break;
+                    default:
+                        out.append(ch);
+                        break;
+                }
+                continue;
+            } else if (ch == '\\') {
+                hadSlash = true;
+                continue;
+            }
+            out.append(ch);
+        }
+
+        if (hadSlash) {
+            // then we're in the weird case of a \ at the end of the
+            // string, let's output it anyway.
+            out.append('\\');
+        }
+
+        return out.toString();
+    }
+
+    /**
+     * <p>Escapes the characters in a <code>String</code> using Java String rules.</p>
+     * <p/>
+     * <p>Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.) </p>
+     * <p/>
+     * <p>So a tab becomes the characters <code>'\\'</code> and
+     * <code>'t'</code>.</p>
+     * <p/>
+     * <p>The only difference between Java strings and JavaScript strings
+     * is that in JavaScript, a single quote must be escaped.</p>
+     * <p/>
+     * Example:
+     * <pre>
+     * input string: He didn't say, "Stop!"
+     * output string: He didn't say, \"Stop!\"
+     * </pre>
+     *
+     * @param str String to escape values in, may be null
+     * @return String with escaped values, <code>null</code> if null string input
+     */
+    public static String escapeJava(String str) {
+        if (str == null) {
+            return null;
+        }
+        int sz = str.length();
+        StringBuffer out = new StringBuffer(sz * 2);
+        for (int i = 0; i < sz; i++) {
+            char ch = str.charAt(i);
+            // handle unicode
+            if (ch > 0xfff) {
+                out.append("\\u").append(hex(ch));
+            } else if (ch > 0xff) {
+                out.append("\\u0").append(hex(ch));
+            } else if (ch > 0x7f) {
+                out.append("\\u00").append(hex(ch));
+            } else if (ch < 32) {
+                switch (ch) {
+                    case '\b':
+                        out.append('\\');
+                        out.append('b');
+                        break;
+                    case '\n':
+                        out.append('\\');
+                        out.append('n');
+                        break;
+                    case '\t':
+                        out.append('\\');
+                        out.append('t');
+                        break;
+                    case '\f':
+                        out.append('\\');
+                        out.append('f');
+                        break;
+                    case '\r':
+                        out.append('\\');
+                        out.append('r');
+                        break;
+                    default:
+                        if (ch > 0xf) {
+                            out.append("\\u00").append(hex(ch));
+                        } else {
+                            out.append("\\u000").append(hex(ch));
+                        }
+                        break;
+                }
+            } else {
+                switch (ch) {
+                    case '"':
+                        out.append('\\');
+                        out.append('"');
+                        break;
+                    case '\\':
+                        out.append('\\');
+                        out.append('\\');
+                        break;
+                    default:
+                        out.append(ch);
+                        break;
+                }
+            }
+        }
+        return out.toString();
+    }
+
+    /**
+     * <p>Returns an upper case hexadecimal <code>String</code> for the given
+     * character.</p>
+     *
+     * @param ch The character to convert.
+     * @return An upper case hexadecimal <code>String</code>
+     */
+    public static String hex(char ch) {
+        return Integer.toHexString(ch).toUpperCase(Locale.ENGLISH);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java
new file mode 100644
index 0000000..66e1189
--- /dev/null
+++ b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.karaf.commands.internal;
+
+public final class StringEscape implements org.apache.camel.commands.StringEscape {
+
+    private static StringEscape instance = new StringEscape();
+
+    private StringEscape() {
+    }
+
+    public static StringEscape getInstance() {
+        return instance;
+    }
+
+    @Override
+    public String unescapeJava(String str) {
+        return KarafStringEscapeUtils.unescapeJava(str);
+    }
+
+    @Override
+    public String escapeJava(String str) {
+        return KarafStringEscapeUtils.escapeJava(str);
+    }
+
+    @Override
+    public String hex(char ch) {
+        return KarafStringEscapeUtils.hex(ch);
+    }
+}
diff --git a/platforms/karaf/commands/src/main/resources/META-INF/LICENSE.txt b/platforms/karaf/commands/src/main/resources/META-INF/LICENSE.txt
new file mode 100644
index 0000000..6b0b127
--- /dev/null
+++ b/platforms/karaf/commands/src/main/resources/META-INF/LICENSE.txt
@@ -0,0 +1,203 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
diff --git a/platforms/karaf/commands/src/main/resources/META-INF/NOTICE.txt b/platforms/karaf/commands/src/main/resources/META-INF/NOTICE.txt
new file mode 100644
index 0000000..2e215bf
--- /dev/null
+++ b/platforms/karaf/commands/src/main/resources/META-INF/NOTICE.txt
@@ -0,0 +1,11 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache Camel distribution.                    ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   Please read the different LICENSE files present in the licenses directory of
+   this distribution.
diff --git a/platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info b/platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info
new file mode 100644
index 0000000..42f54a7
--- /dev/null
+++ b/platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info
@@ -0,0 +1,34 @@
+\u001B[1mSYNOPSIS\u001B[0m
+    ${project.name}
+
+    ${project.description}
+
+    Maven URL:
+        \u001B[33mmvn:${project.groupId}/${project.artifactId}/${project.version}\u001B[0m
+
+\u001B[1mDESCRIPTION\u001B[0m
+    This bundle provides the Karaf shell commands to manipulate and manage Camel Components.
+
+    The following commands are available:
+    \u001B[36mcamel:context-info\u001B[0m Display detailed information about a Camel context.
+    \u001B[36mcamel:context-list\u001B[0m Lists all Camel contexts.
+    \u001B[36mcamel:context-resume\u001B[0m Resumes a Camel context.
+    \u001B[36mcamel:context-start\u001B[0m Start a Camel context.
+    \u001B[36mcamel:context-stop\u001B[0m Stops a Camel context.
+    \u001B[36mcamel:context-suspend\u001B[0m Suspends a Camel context.
+    \u001B[36mcamel:endpoint-list\u001B[0m List the Camel endpoints.
+    \u001B[36mcamel:rest-registry-list\u001B[0m Lists all Camel REST services enlisted in the Rest Registry from all CamelContexts.
+    \u001B[36mcamel:rest-show\u001B[0m Display the Camel REST definition in XML..
+    \u001B[36mcamel:route-info\u001B[0m Display information about a Camel route.
+    \u001B[36mcamel:route-list\u001B[0m Lists the Camel routes.
+    \u001B[36mcamel:route-profile\u001B[0m Display profile information about Camel route(s).
+    \u001B[36mcamel:route-step\u001B[0m Display step information about Camel route(s).
+    \u001B[36mcamel:route-reset-stats\u001B[0m Reset performance stats on a route or group of routes.
+    \u001B[36mcamel:route-resume\u001B[0m Resume a Camel route.
+    \u001B[36mcamel:route-show\u001B[0m Display the Camel route definition in XML.
+    \u001B[36mcamel:route-start\u001B[0m Start a Camel route.
+    \u001B[36mcamel:route-stop\u001B[0m Stops a Camel route.
+    \u001B[36mcamel:route-suspend\u001B[0m Suspends a Camel route.
+
+\u001B[1mSEE ALSO\u001B[0m
+    \u001B[36mhttp://camel.apache.org/karaf.html\u001B[0m
\ No newline at end of file
diff --git a/platforms/karaf/features/pom.xml b/platforms/karaf/features/pom.xml
new file mode 100644
index 0000000..8afc20a
--- /dev/null
+++ b/platforms/karaf/features/pom.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.karaf</groupId>
+        <artifactId>karaf-platform</artifactId>
+        <version>3.2.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>org.apache.camel.karaf</groupId>
+    <artifactId>apache-camel</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel :: Platforms :: Apache Karaf :: Features</name>
+
+    <properties>
+        <features.file>features.xml</features.file>
+    </properties>
+
+    <!-- The validate plugin will export these provided dependencies bundles export packages first -->
+    <!-- some of the bundles is located at: https://repo1.maven.org/maven2/org/apache/servicemix/bundles/ -->
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.logging</groupId>
+            <artifactId>pax-logging-api</artifactId>
+            <version>${pax-logging-version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.ops4j.pax.logging</groupId>
+            <artifactId>pax-logging-service</artifactId>
+            <version>${pax-logging-version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.framework</artifactId>
+            <version>${felix-framework-version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.configadmin</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.aries.blueprint</groupId>
+            <artifactId>org.apache.aries.blueprint.api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.aries.blueprint</groupId>
+            <artifactId>org.apache.aries.blueprint.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.shell</groupId>
+            <artifactId>org.apache.karaf.shell.core</artifactId>
+            <version>${karaf4-version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.karaf.features</groupId>
+            <artifactId>framework</artifactId>
+            <version>${karaf4-version}</version>
+            <type>kar</type>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>${maven-resources-plugin-version}</version>
+                <executions>
+                    <execution>
+                        <id>filter</id>
+                        <phase>generate-resources</phase>
+                        <goals>
+                            <goal>resources</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-maven-plugin</artifactId>
+                <version>${karaf4-version}</version>
+                <configuration>
+                    <descriptors>
+                        <descriptor>file://${project.build.directory}/classes/${features.file}</descriptor>
+                        <!-- ideally, those profiles should be referenced in the features file -->
+                        <descriptor>mvn:org.apache.karaf.features/framework/${karaf4-version}/xml/features</descriptor>
+                        <descriptor>mvn:org.apache.karaf.features/enterprise/${karaf4-version}/xml/features</descriptor>
+                        <descriptor>mvn:org.apache.karaf.features/spring/${karaf4-version}/xml/features</descriptor>
+                    </descriptors>
+                    <distribution>org.apache.karaf.features:framework</distribution>
+                    <javase>9</javase>
+                    <framework>
+                        <feature>framework</feature>
+                    </framework>
+                    <features>
+                        <!-- camel-ignite requires to install apache ignite first -->
+                        <feature>camel|camel-(?!(ignite|nats|pgevent|script-groovy|spring-redis|spring-security|cdi))*</feature>
+                    </features>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>validate</id>
+                        <phase>process-resources</phase>
+                        <goals>
+                            <goal>verify</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.maven.wagon</groupId>
+                        <artifactId>wagon-http-lightweight</artifactId>
+                        <version>3.0.0</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>biz.aQute.bnd</groupId>
+                        <artifactId>biz.aQute.bndlib</artifactId>
+                        <version>3.5.0</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-artifacts</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>attach-artifact</goal>
+                        </goals>
+                        <configuration>
+                            <artifacts>
+                                <artifact>
+                                    <file>target/classes/features.xml</file>
+                                    <type>xml</type>
+                                    <classifier>features</classifier>
+                                </artifact>
+                            </artifacts>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+    <profiles>
+        <profile>
+            <id>snapshot</id>
+            <repositories>
+                <repository>
+                    <id>pax.snapshot.repo</id>
+                    <name>PAX SNAPSHOT Deploy Repository</name>
+                    <url>https://oss.sonatype.org/content/repositories/ops4j-snapshots/</url>
+                    <releases>
+                        <enabled>false</enabled>
+                    </releases>
+                    <snapshots>
+                        <enabled>true</enabled>
+                    </snapshots>
+                </repository>
+            </repositories>
+        </profile>
+
+        <!-- validating using karaf 4.x -->
+        <profile>
+            <id>fastinstall</id>
+            <properties>
+                <features.verify.skip>true</features.verify.skip>
+            </properties>
+        </profile>
+        <profile>
+            <id>release</id>
+            <properties>
+                <features.verify.skip>true</features.verify.skip>
+            </properties>
+        </profile>
+        <profile>
+            <id>skipTests</id>
+            <activation>
+                <property>
+                    <name>skipTests</name>
+                </property>
+            </activation>
+            <properties>
+                <features.verify.skip>true</features.verify.skip>
+            </properties>
+        </profile>
+
+    </profiles>
+
+</project>
diff --git a/platforms/karaf/features/src/main/resources/bundles.properties b/platforms/karaf/features/src/main/resources/bundles.properties
new file mode 100644
index 0000000..3e98d70
--- /dev/null
+++ b/platforms/karaf/features/src/main/resources/bundles.properties
@@ -0,0 +1,83 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+#Apache ServiceMix specs
+org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.1/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.0/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.1/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.0/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.scripting-api-1.0/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.javamail-api-1.4/${servicemix-specs-version}/jar
+org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix-specs-version}/jar
+
+#Apache ServiceMix bundles
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.abdera/${abdera-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/${antlr-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.asm/${asm-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-beanutils/${commons-beanutils-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-io/${commons-io-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.orbitz-consul-client/${consul-client-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.dom4j/${dom4j-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.flatpack/${flatpack-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.fop/${fop-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.freemarker/${freemarker-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.hamcrest/${hamcrest-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.hapi/${hapi-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.hystrix/${hystrix-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.ibatis-sqlmap/${ibatis-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.irclib/${irclib-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.isorelax/${isorelax-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jcr-api/${jcr-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-cache-api/${jcache-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/${jdom-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jettison/${jettison-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.cometd-java-server/${cometd-java-server-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.joda-time/${jodatime-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.josql/${josql-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.juel/${juel-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene/${lucene-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-analyzers-common/${lucene-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-queryparser/${lucene-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-queries/${lucene-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-sandbox/${lucene-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.ognl/${ognl-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.httpcore/${httpcore-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.jing/${jing-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.snmp4j/${snmp4j-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.spymemcached/${spymemcached-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.stringtemplate/${stringtemplate-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.tagsoup/${tagsoup-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.werken-xpath/${werken-xpath-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${wsdl4j-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${xalan-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan-serializer/${xalan-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlsec/${xmlsec-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}/jar
+org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}/jar
+
+#Apache CXF bundle
+org.apache.cxf/cxf-bundle/${cxf-version}/jar
diff --git a/platforms/karaf/features/src/main/resources/features.xml b/platforms/karaf/features/src/main/resources/features.xml
new file mode 100644
index 0000000..9e2b9f6
--- /dev/null
+++ b/platforms/karaf/features/src/main/resources/features.xml
@@ -0,0 +1,2805 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<features xmlns="http://karaf.apache.org/xmlns/features/v1.5.0" name='camel-${project.version}'>
+  <repository>mvn:org.apache.cxf.karaf/apache-cxf/${cxf-version}/xml/features</repository>
+  <repository>mvn:org.apache.jclouds.karaf/jclouds-karaf/${jclouds-version}/xml/features</repository>
+  <repository>mvn:org.ops4j.pax.cdi/pax-cdi-features/${pax-cdi-version}/xml/features</repository>
+  <repository>mvn:org.apache.karaf.features/spring-legacy/${karaf4-version}/xml/features</repository>
+  <repository>mvn:org.hibernate.validator/hibernate-validator-osgi-karaf-features/${hibernate-validator-version}/xml/features</repository>
+  <repository>mvn:org.infinispan/infinispan-commons/${infinispan-version}/xml/features</repository>
+  <repository>mvn:org.infinispan/infinispan-core/${infinispan-version}/xml/features</repository>
+  <repository>mvn:org.infinispan/infinispan-jboss-marshalling/${infinispan-version}/xml/features</repository>
+  <repository>mvn:org.infinispan/infinispan-client-hotrod/${infinispan-version}/xml/features</repository>
+
+  <feature name='xml-specs-api' version='${servicemix-specs-version}' start-level='10'>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.activation-api-1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${servicemix-specs-version}</bundle>
+    <bundle dependency="true">mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxrs-api-2.1/${servicemix-specs-version}</bundle>
+    <bundle>mvn:org.codehaus.woodstox/stax2-api/${stax2-api-bundle-version}</bundle>
+    <bundle>mvn:org.codehaus.woodstox/woodstox-core-asl/${woodstox-version}</bundle>
+    <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-runtime/${jaxb-bundle-version}</bundle>
+  </feature>
+
+  <feature name='camel' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-blueprint</feature>
+    <!-- we no longer install camel-spring by default -->
+  </feature>
+  <feature name='camel-core' version='${project.version}' start-level='50'>
+    <feature version='${servicemix-specs-version}'>xml-specs-api</feature>
+    <bundle dependency='true'>mvn:com.github.ben-manes.caffeine/caffeine/${caffeine-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-management-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-util/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-util-json/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-support/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-management/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-core-engine/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-core-languages/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-core-osgi/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-core-catalog/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cloud/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cluster/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xml-jaxp/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xml-jaxb/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-main/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-caffeine-lrucache/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-tooling-model/${project.version}</bundle>
+    <!-- core components -->
+    <bundle>mvn:org.apache.camel/camel-bean/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-browse/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-controlbus/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-dataformat/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-dataset/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-direct/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-directvm/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-file/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-language/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-log/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mock/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ref/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-rest/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-saga/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-scheduler/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-seda/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-stub/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-timer/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-validator/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-vm/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xpath/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xslt/${project.version}</bundle>
+    <conditional>
+      <condition>shell</condition>
+      <bundle>mvn:org.apache.camel/camel-commands-core/${project.version}</bundle>
+      <bundle>mvn:org.apache.camel.karaf/camel-karaf-commands/${project.version}</bundle>
+    </conditional>
+    <!-- allow camel to access its own mbeans for karaf commands and other needs -->
+    <config name="jmx.acl.org.apache.camel">
+      * = *
+    </config>
+  </feature>
+  <feature name='camel-blueprint' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-core-xml/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-blueprint/${project.version}</bundle>
+    <feature>aries-blueprint</feature>
+  </feature>
+  <feature name='camel-spring' version='${project.version}' start-level='50'>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-core-xml/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-spring/${project.version}</bundle>
+  </feature>
+
+  <!-- the following features are sorted A..Z -->
+  <feature name='camel-activemq' version='${project.version}' start-level='50'>
+    <feature prerequisite='true'>wrap</feature>
+    <feature version='${project.version}'>camel-jms</feature>
+    <feature version="[5,6)">spring</feature>
+    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/1.1.1</bundle>
+    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
+    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/1.1.1</bundle>
+    <bundle dependency="true">mvn:org.apache.geronimo.specs/geronimo-j2ee-management_1.1_spec/1.0.1</bundle>
+    <bundle dependency="true">mvn:org.jvnet.jaxb2_commons/jaxb2-basics-runtime/0.12.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle>
+    <bundle dependency='true'>mvn:commons-net/commons-net/${commons-net-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper/${zookeeper-version}$Export-Package=org.apache.zookeeper;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper-jute/${zookeeper-version}$Export-Package=org.apache.jute;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle>wrap:mvn:org.apache.activemq/activemq-osgi/${activemq-version}$overwrite=merge&amp;Import-Package=org.springframework.*;resolution:=optional;version="[5,6)",*;resolution:=optional</bundle>
+    <bundle>mvn:org.apache.camel/camel-activemq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ahc' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client/${ahc-version}$Export-Package=org.asynchttpclient.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client-netty-utils/${ahc-version}$Export-Package=org.asynchttpclient.netty.util.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.typesafe.netty/netty-reactive-streams/${netty-reactive-streams-version}</bundle>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ahc/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ahc-ws' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-ahc</feature>
+    <bundle>mvn:org.apache.camel/camel-ahc-ws/${project.version}</bundle>
+  </feature>
+  <feature name='camel-amqp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-jms</feature>
+    <bundle dependency='true'>mvn:org.apache.qpid/qpid-jms-client/${qpid-jms-client-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.qpid/proton-j/${qpid-proton-j-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-amqp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-any23' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.any23/${apache-any23-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-model/${rdf4j-model-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.eclipse.rdf4j/rdf4j-rio-api/${rdf4j-rio-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-any23/${project.version}</bundle>
+  </feature>
+  <feature name='camel-apns' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.java-apns/${java-apns-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-apns/${project.version}</bundle>
+  </feature>
+  <feature name='camel-as2' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.velocity/velocity-engine-core/${velocity-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-as2-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-as2/${project.version}</bundle>
+  </feature>
+  <feature name='camel-asn1' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.beanit/jasn1/${jasn1-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-asn1/${project.version}</bundle>
+  </feature>
+  <feature name='camel-asterisk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.asterisk-java/${asterisk-java-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-asterisk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-atmosphere-websocket' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-servlet</feature>
+    <bundle dependency='true'>mvn:org.atmosphere/atmosphere-runtime/${atmosphere-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-atmosphere-websocket/${project.version}</bundle>
+  </feature>
+  <feature name='camel-atom' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.abdera/abdera-core/${abdera-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.abdera/abdera-extensions-main/${abdera-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.abdera/abdera-i18n/${abdera-version}</bundle>
+    <bundle>mvn:org.apache.abdera/abdera-parser/${abdera-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.james/apache-mime4j-core/${apache-mime4j-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-atom/${project.version}</bundle>
+  </feature>
+  <feature name='camel-atomix' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.atomix/atomix-all/${atomix-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-atomix/${project.version}</bundle>
+  </feature>
+  <feature name='camel-avro' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>jetty</feature>
+    <bundle dependency='true'>mvn:org.apache.avro/avro/${avro-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.avro/avro-ipc-jetty/${avro-ipc-jetty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.avro/avro-ipc-netty/${avro-ipc-netty-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-compress/${commons-compress-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty/${netty3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-avro/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws' version='${project.version}' start-level='50'>
+     <feature version='${project.version}'>camel-aws-cw</feature>
+     <feature version='${project.version}'>camel-aws-s3</feature>
+     <feature version='${project.version}'>camel-aws-ddb</feature>
+     <feature version='${project.version}'>camel-aws-ec2</feature>
+     <feature version='${project.version}'>camel-aws-ecs</feature>
+     <feature version='${project.version}'>camel-aws-eks</feature>
+     <feature version='${project.version}'>camel-aws-iam</feature>
+     <feature version='${project.version}'>camel-aws-kinesis</feature>
+     <feature version='${project.version}'>camel-aws-kms</feature>
+     <feature version='${project.version}'>camel-aws-lambda</feature>
+     <feature version='${project.version}'>camel-aws-mq</feature>
+     <feature version='${project.version}'>camel-aws-msk</feature>
+     <feature version='${project.version}'>camel-aws-sdb</feature>
+     <feature version='${project.version}'>camel-aws-ses</feature>
+     <feature version='${project.version}'>camel-aws-sns</feature>
+     <feature version='${project.version}'>camel-aws-sqs</feature>
+     <feature version='${project.version}'>camel-aws-swf</feature>
+     <feature version='${project.version}'>camel-aws-translate</feature>
+  </feature>
+  <feature name='camel-aws-s3' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-s3/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-cw' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-cw/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-ddb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-ddb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-ec2' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-ec2/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-ecs' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-ecs/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-eks' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-eks/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-iam' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-iam/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-kinesis' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-kinesis/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-kms' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-kms/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-lambda' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-lambda/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-mq' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-mq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-msk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-msk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-sdb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-sdb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-ses' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-ses/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-sns' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-sns/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-sqs' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-sqs/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-swf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-swf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-translate' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.stax-api-1.0/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aws-java-sdk/${aws-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-translate/${project.version}</bundle>
+  </feature>
+  <feature name='camel-aws-xray' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-core/${aws-xray-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-apache-http/${aws-xray-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-aws-sdk/${aws-xray-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-aws-sdk-instrumentor/${aws-xray-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-sql-postgres/${aws-xray-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.amazonaws/aws-xray-recorder-sdk-sql-mysql/${aws-xray-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-aws-xray/${project.version}</bundle>
+  </feature>
+  <feature name='camel-azure' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${azure-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.azure-storage/${azure-storage-java-sdk-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-azure/${project.version}</bundle>
+  </feature>
+  <feature name='camel-base64' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-base64/${project.version}</bundle>
+  </feature>
+  <feature name='camel-bean-validator' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${hibernate-validator-version}'>hibernate-validator</feature>
+    <bundle>mvn:org.apache.camel/camel-bean-validator/${project.version}</bundle>
+  </feature>
+  <feature name='camel-beanio' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.beanio/beanio/${beanio-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-beanio/${project.version}</bundle>
+  </feature>
+  <feature name='camel-beanstalk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.surftools/BeanstalkClient/${beanstalkd-client-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-beanstalk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-barcode' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.zxing/${zxing-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.beust/jcommander/${jcommander-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-barcode/${project.version}</bundle>
+  </feature>
+  <feature name='camel-bindy' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:com.ibm.icu/icu4j/${icu4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-bindy/${project.version}</bundle>
+  </feature>
+  <feature name='camel-box' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>pax-http-whiteboard</feature>
+    <bundle dependency='true'>mvn:org.eclipse.jetty.websocket/websocket-api/${jetty-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.jetty.websocket/websocket-common/${jetty-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.jetty.websocket/websocket-client/${jetty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.httpcomponents/httpmime/${httpclient4-version}$Export-Package=org.apache.http.*;version=${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.htmlunit/${htmlunit-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.w3c.css/sac/1.3</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/${bcel-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:org.jsoup/jsoup/${jsoup-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${xalan-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:com.eclipsesource.minimal-json/minimal-json/${minimal-json-version}</bundle>
+    <bundle dependency='true'>mvn:org.bitbucket.b_c/jose4j/${jose4j-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.box/box-java-sdk/${box-java-sdk-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.camel/camel-box-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-box/${project.version}</bundle>
+  </feature>
+  <feature name='camel-braintree' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jr/jackson-jr-objects/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.braintreepayments.gateway/braintree-java/${braintree-gateway-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-csv/${commons-csv-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-braintree/${project.version}</bundle>
+  </feature>
+  <feature name='camel-caffeine' version='${project.version}' start-level='50'>
+    <feature version="${project.version}">camel-core</feature>
+    <bundle dependency="true">mvn:com.github.ben-manes.caffeine/caffeine/${caffeine-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-caffeine/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cassandraql' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${cassandra-driver-guava-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.dropwizard.metrics/metrics-core/${metrics-version}</bundle>
+    <bundle dependency='true'>mvn:io.dropwizard.metrics/metrics-json/${metrics-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.datastax.cassandra/cassandra-driver-core/${cassandra-driver-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cassandraql/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cbor' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cbor/${project.version}</bundle>
+  </feature>
+  <feature name='camel-chatscript' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-chatscript/${project.version}</bundle>
+  </feature>
+  <feature name='camel-chunk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:net.minidev/json-smart/${json-smart-version}</bundle>
+    <bundle dependency='true'>mvn:net.minidev/accessors-smart/${json-accessors-smart-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.chunk-templates/${chunk-templates-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-chunk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cm-sms' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${cxf-version-range}'>cxf-specs</feature>
+    <feature version='${hibernate-validator-version}'>hibernate-validator</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.libphonenumber/${libphonenumber-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cm-sms/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cmis' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${cxf-version-range}'>cxf-specs</feature>
+    <bundle dependency='true'>mvn:org.apache.chemistry.opencmis/chemistry-opencmis-osgi-client/${cmis-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cmis/${project.version}</bundle>
+  </feature>
+  <feature name='camel-coap' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle>wrap:mvn:org.eclipse.californium/californium-core/${californium-version}</bundle>
+    <bundle>wrap:mvn:org.eclipse.californium/element-connector/${californium-version}</bundle>
+    <bundle>wrap:mvn:org.eclipse.californium/element-connector-tcp-netty/${californium-version}</bundle>
+    <bundle>wrap:mvn:org.eclipse.californium/scandium/${californium-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-coap/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cometd' version='${project.version}' start-level='50'>
+    <details>camel-cometd currently requires jetty 9</details>
+    <feature version="[9,10)">jetty</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/cometd-java-server/${cometd-java-server}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/bayeux-api/${cometd-java-server}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/cometd-java-common/${cometd-java-server}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cometd/${project.version}</bundle>
+  </feature>
+  <feature name='camel-consul' version='${project.version}' start-level='50'>
+    <feature prerequisite='true'>wrap</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/27.1-jre</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.fasterxml.jackson.datatype/jackson-datatype-guava/${jackson2-version}$overwrite=merge&amp;Import-Package=com.google.*;version="[27.1,28.0)",*</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jdk8/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.retrofit/${squareup-retrofit2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.orbitz-consul-client/${consul-client-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-consul/${project.version}</bundle>
+  </feature>
+  <feature name='camel-corda' version='${project.version}' start-level='50'>
+    <feature prerequisite='true'>wrap</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.reactivex/rxjava/${rxjava-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:net.corda/corda-core/${corda-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:net.corda/corda-node-api/${corda-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:net.corda/corda-rpc/${corda-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-corda/${project.version}</bundle>
+  </feature>
+  <feature name='camel-couchdb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lightcouch/${lightcouch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-couchdb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-couchbase' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:net.spy/spymemcached/${spymemcached-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.couchbase-client/${couchbase-client-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-couchbase/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cron' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-cron/${project.version}</bundle>
+  </feature>
+  <feature name='camel-crypto' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpg-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-crypto/${project.version}</bundle>
+  </feature>
+  <feature name='camel-crypto-cms' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-crypto-cms/${project.version}</bundle>
+  </feature>
+  <feature name='camel-csv' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-csv/${commons-csv-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-csv/${project.version}</bundle>
+  </feature>
+  <feature name='camel-cxf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-blueprint</feature>
+    <feature version='${project.version}'>camel-spring</feature>
+    <feature version='${cxf-version-range}'>cxf-core</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxws</feature>
+    <feature version='${cxf-version-range}'>cxf-http-provider</feature>
+    <feature version='${cxf-version-range}'>cxf-databinding-jaxb</feature>
+    <feature version='${cxf-version-range}'>cxf-bindings-soap</feature>
+    <feature version='${cxf-version-range}'>cxf-features-logging</feature>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cxf-transport/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-cxf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-digitalocean' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.digitalocean-api-client/${digitalocean-api-client-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-digitalocean/${project.version}</bundle>
+  </feature>
+  <feature name='camel-disruptor' version='${project.version}' start-level='50'>
+    <details>The camel-disruptor feature can only run on a SUN JVM. You need to add the package sun.misc to the java platform packages in the etc/jre.properties file.</details>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.lmax/disruptor/${disruptor-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-disruptor/${project.version}</bundle>
+  </feature>
+  <feature name='camel-dns' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.dnsjava/${dnsjava-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-dns/${project.version}</bundle>
+  </feature>
+  <feature name='camel-docker' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.docker-java/${docker-java-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-annotation_1.2_spec/${geronimo-annotation-1.2-spec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxrs-api-2.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-compress/${commons-compress-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcmail-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.github.luben/zstd-jni/1.3.3-3</bundle>
+    <bundle dependency='true'>wrap:mvn:de.gesellix/unix-socket-factory/${unix-socket-factory-version}$Bundle-SymbolicName=de.gesellix.unix-socket-factory&amp;Bundle-Version=${unix-socket-factory-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-docker/${project.version}</bundle>
+  </feature>
+  <feature name='camel-drill' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring-jdbc</feature>
+	<bundle dependency='true'>wrap:mvn:org.apache.drill.exec/drill-jdbc-all/${apache-drill-version}$Export-Package=org.apache.drill.*&amp;Import-Package=!org.apache.drill.*,!oadd.*&amp;Private-Package=oadd.*</bundle>
+    <bundle>mvn:org.apache.camel/camel-drill/${project.version}</bundle>
+  </feature>
+  <feature name='camel-dozer' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>war</feature>
+    <bundle dependency='true'>mvn:com.github.dozermapper/dozer-core/${dozer-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:commons-beanutils/commons-beanutils/${commons-beanutils-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:javax.el/javax.el-api/${javax-el3-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish/javax.el/${javax-el3-version}</bundle>
+    <bundle dependency='true'>mvn:org.objenesis/objenesis/${objenesis-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-dozer/${project.version}</bundle>
+  </feature>
+  <feature name='camel-dropbox' version='${project.version}' start-level='50'>
+    <feature version="${project.version}">camel-core</feature>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.dropbox.core/dropbox-core-sdk/${dropbox-version}</bundle>
+    <!-- sadly dropbox-core-sdk include test scoped dependencies in its MANIFEST.MF OSGi import
+         so we need a bunch of other bundles here -->
+    <bundle dependency='true'>wrap:mvn:com.google.android/android/4.1.1.4</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.appengine/appengine-api-1.0-sdk/1.9.38</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${squareup-okhttp-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/okhttp/3.5.0</bundle>
+    <bundle>mvn:org.apache.camel/camel-dropbox/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ehcache' version='${project.version}' start-level='50'>
+    <feature>scr</feature>
+    <feature version="${project.version}">camel-core</feature>
+    <bundle dependency="true">mvn:org.ehcache/ehcache/${ehcache3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ehcache/${project.version}</bundle>
+  </feature>
+  <feature name='camel-elsql' version='${project.version}' start-level='50'>
+    <feature version="${project.version}">camel-sql</feature>
+    <bundle dependency="true">mvn:com.opengamma/elsql/${elsql-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-elsql/${project.version}</bundle>
+  </feature>
+  <feature name='camel-elasticsearch-rest' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>http</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-cbor/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-smile/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.ning/compress-lzf/${compress-lzf-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpasyncclient-osgi/${httpasyncclient-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch/${elasticsearch-rest-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.elasticsearch-client/${elasticsearch-rest-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.logging.log4j/log4j-core/${log4j2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.logging.log4j/log4j-api/${log4j2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-elasticsearch-rest/${project.version}</bundle>
+  </feature>
+  <feature name='camel-etcd' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jzlib/${jzlib-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-afterburner/${jackson2-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.github.wnameless/json-flattener/${json-flattener-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:org.mousio/etcd4j/${etcd4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-etcd/${project.version}</bundle>
+  </feature>
+  <feature name='camel-eventadmin' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>eventadmin</feature>
+    <bundle>mvn:org.apache.camel/camel-eventadmin/${project.version}</bundle>
+  </feature>
+  <feature name='camel-exec' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-exec/${commons-exec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-exec/${project.version}</bundle>
+  </feature>
+  <feature name='camel-facebook' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.facebook4j/${facebook4j-core-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-facebook/${project.version}</bundle>
+  </feature>
+  <feature name='camel-fastjson' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fastjson/${fastjson-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-fastjson/${project.version}</bundle>
+  </feature>
+  <feature name='camel-file-watch' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:io.methvin/directory-watcher/${directory-watcher-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-file-watch/${project.version}</bundle>
+  </feature>
+  <feature name='camel-flatpack' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:net.sf.flatpack/flatpack/${flatpack-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-flatpack/${project.version}</bundle>
+  </feature>
+  <feature name='camel-fop' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${xalan-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avalon-framework/${avalon-bundle-version}</bundle>
+    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlgraphics-commons/${xmlgraphics-commons-bundle-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-svg-dom/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-svg-dom&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-anim/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-anim&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-css/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-css&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-dom/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-dom&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-parser/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-parser&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-util/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-util&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-bridge/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-bridge&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-script/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-script&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-xml/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-xml&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-awt-util/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-awt-util&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-gvt/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-gvt&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-transcoder/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-transcoder&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-svggen/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-svggen&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-extension/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-extension&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:org.apache.xmlgraphics/batik-ext/${xmlgraphics-batik-version}$Bundle-SymbolicName=org.apache.xmlgraphics.batik-ext&amp;Bundle-Version=${xmlgraphics-batik-version}</bundle>
+    <bundle dependency="true">wrap:mvn:xml-apis/xml-apis-ext/${xml-apis-ext-version}$Bundle-SymbolicName=xml-apis-ext&amp;Bundle-Version=${xml-apis-ext-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/${bcel-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.fop/${fop-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-fop/${project.version}</bundle>
+  </feature>
+  <feature name='camel-freemarker' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.freemarker/freemarker/${freemarker-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-freemarker/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ftp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-net/commons-net/${commons-net-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ftp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ganglia' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.acplt.remotetea/remotetea-oncrpc/${oncrpc-version}</bundle>
+    <bundle dependency='true'>mvn:info.ganglia.gmetric4j/gmetric4j/${gmetric4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ganglia/${project.version}</bundle>
+  </feature>
+  <feature name='camel-geocoder' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.google.maps/google-maps-services/${google-maps-services-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-geocoder/${project.version}</bundle>
+  </feature>
+  <feature name='camel-git' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.eclipse.jgit/org.eclipse.jgit/${jgit-version}</bundle>
+    <bundle dependency='true'>mvn:com.googlecode.javaewah/JavaEWAH/${java-ewah-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpg-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-git/${project.version}</bundle>
+  </feature>
+  <feature name='camel-github' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <!--the latest gson version of github core supports is 2.2.2 -->
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/2.2.2</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.egit.github.core/${egit-github-core-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-github/${project.version}</bundle>
+   </feature>
+  <feature name='camel-google-bigquery' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.google.apis/google-api-services-bigquery/${google-api-services-bigquery-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.api-client/google-api-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client-jackson2/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-java6/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-jetty/${google-api-client-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-google-bigquery/${project.version}</bundle>
+  </feature>
+   <feature name='camel-google-calendar' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.api-client/google-api-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.apis/google-api-services-calendar/${google-api-services-calendar-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client-jackson2/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-java6/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-jetty/${google-api-client-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-google-calendar/${project.version}</bundle>
+  </feature>
+  <feature name='camel-google-sheets' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.api-client/google-api-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.apis/google-api-services-sheets/${google-api-services-sheets-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client-jackson2/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-java6/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-jetty/${google-api-client-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-google-sheets/${project.version}</bundle>
+  </feature>
+  <feature name='camel-google-drive' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.api-client/google-api-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.apis/google-api-services-drive/${google-api-services-drive-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client-jackson2/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-java6/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-jetty/${google-api-client-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-google-drive/${project.version}</bundle>
+  </feature>
+  <feature name='camel-google-mail' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.api-client/google-api-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.apis/google-api-services-gmail/${google-api-services-mail-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.http-client/google-http-client-jackson2/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-java6/${google-api-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.oauth-client/google-oauth-client-jetty/${google-api-client-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-mail-guava-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-google-mail/${project.version}</bundle>
+  </feature>
+  <feature name='camel-grape' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.codehaus.groovy/groovy/${groovy-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-grape/${project.version}</bundle>
+  </feature>
+  <feature name='camel-graphql' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-graphql/${project.version}</bundle>
+  </feature>
+  <feature name='camel-groovy' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.groovy/groovy/${groovy-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-groovy/${project.version}</bundle>
+  </feature>
+  <feature name='camel-grok' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:io.krakens/java-grok/${java-grok-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-grok/${project.version}</bundle>
+  </feature>
+  <feature name='camel-grpc' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <!-- gRPC netty dependencies -->
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.grpc/${grpc-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http2/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-tcnative-boringssl-static/${grpc-netty-tcnative-boringssl-static-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${grpc-guava-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.errorprone/error_prone_annotations/${grpc-errorprone-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <!-- Third party dependencies -->
+    <bundle dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.perfmark/perfmark-api/${perfmark-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.auth0/java-jwt/${grpc-java-jwt-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.auth/google-auth-library-credentials/${grpc-google-auth-library-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.google.auth/google-auth-library-oauth2-http/${grpc-google-auth-library-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf.nano/protobuf-javanano/${protobuf-javanano-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java-util/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${squareup-okhttp-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.opencensus/opencensus-contrib-grpc-metrics/${opencensus-api-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.opencensus/opencensus-api/${opencensus-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-grpc/${project.version}</bundle>
+  </feature>
+  <feature name='camel-gson' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-gson/${project.version}</bundle>
+  </feature>
+  <feature name='camel-guava-eventbus' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${guava-eventbus-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle>mvn:org.apache.camel/camel-guava-eventbus/${project.version}</bundle>
+  </feature>
+  <feature name='camel-hazelcast' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <bundle dependency='true'>mvn:com.eclipsesource.minimal-json/minimal-json/${minimal-json-version}</bundle>
+    <bundle dependency='true'>mvn:com.hazelcast/hazelcast/${hazelcast-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-hazelcast/${project.version}</bundle>
+  </feature>
+  <feature name='camel-hdfs' version='${project.version}' start-level='50'>
+    <details>The camel-hdfs feature can only run if you have libsnappyjava.dylib in java.library.path</details>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java/${hadoop2-protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.guice/${guice-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jsch/${jsch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.paranamer/${paranamer-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.avro/${avro-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-compress/${commons-compress-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-math3/${commons-math3-version}</bundle>
+    <bundle dependency='true'>mvn:commons-cli/commons-cli/${commons-cli-version}</bundle>
+    <bundle dependency='true'>mvn:commons-configuration/commons-configuration/${commons-configuration-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty/${netty3-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-core-asl/${jackson-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-jaxrs/${jackson-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.jackson/jackson-xc/${jackson-version}</bundle>
+    <bundle dependency='true'>mvn:org.xerial.snappy/snappy-java/${snappy-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:commons-net/commons-net/${commons-net-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper/${zookeeper-version}$Export-Package=org.apache.zookeeper;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper-jute/${zookeeper-version}$Export-Package=org.apache.jute;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlenc/0.52_1</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.htrace/htrace-core/${htrace-version}$Bundle-SymbolicName=Apache-HTrace-Core</bundle>
+    <bundle>mvn:org.apache.camel/camel-hdfs/${project.version}</bundle>
+    <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.hadoop-client/${hadoop2-bundle-version}</bundle>
+  </feature>
+  <feature name='camel-headersmap' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.java-util/${java-util-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-headersmap/${project.version}</bundle>
+  </feature>
+  <feature name='camel-hipchat' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-hipchat/${project.version}</bundle>
+  </feature>
+  <feature name='camel-hl7' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-netty</feature>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle dependency='true'>mvn:ca.uhn.hapi/hapi-osgi-base/${hapi-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-hl7/${project.version}</bundle>
+  </feature>
+  <feature name='camel-http' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-common/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http/${project.version}</bundle>
+  </feature>
+  <feature name='camel-hystrix' version='${project.version}' start-level='50'>
+    <feature prerequisite='true'>wrap</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.hystrix/${hystrix-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.hystrix-event-stream/${hystrix-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:commons-configuration/commons-configuration/${commons-configuration-version}</bundle>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:io.reactivex/rxjava/${rxjava-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-hystrix/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ical' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:backport-util-concurrent/backport-util-concurrent/${backport-util-concurrent-version}$Bundle-SymbolicName=backport-util-concurrent.backport-util-concurrent&amp;Bundle-Version=${backport-util-concurrent-version}</bundle>
+    <bundle dependency='true'>mvn:org.mnode.ical4j/ical4j/${ical4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ical/${project.version}</bundle>
+  </feature>
+  <feature name='camel-iec60870' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.protocols/org.eclipse.neoscada.protocol.iec60870/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.protocols/org.eclipse.neoscada.protocol.iec60870.client/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.protocols/org.eclipse.neoscada.protocol.iec60870.client.data/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.protocols/org.eclipse.neoscada.protocol.iec60870.server/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.protocols/org.eclipse.neoscada.protocol.iec60870.server.data/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.neoscada.utils/org.eclipse.scada.utils/${neoscada-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-iec60870/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ignite' version='${project.version}' start-level='50'>
+    <details>
+        <![CDATA[For performance reasons, Apache Ignite requires a JRE with the sun.nio.ch and com.sun.management low-level package.
+
+        You need to add this package to the list of packages exported by the system bundle in the etc/jre.properties file.
+
+        Additionally, you must provision the Ignite Karaf features repository in your container: mvn:org.apache.ignite/ignite-osgi-karaf/${ignite-version}.
+
+        Please refer to the component page (https://camel.apache.org/ignite.html) and to the Ignite docs (https://apacheignite.readme.io/docs/osgi-installation-in-karaf#preparatory-steps) for more information.]]>
+    </details>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${ignite-version}'>ignite-core</feature>
+    <bundle>mvn:org.apache.camel/camel-ignite/${project.version}</bundle>
+  </feature>
+  <feature name='camel-infinispan' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version="${infinispan-version}">infinispan-commons</feature>
+    <feature version="${infinispan-version}">infinispan-core</feature>
+    <feature version="${infinispan-version}">infinispan-jboss-marshalling</feature>
+    <feature version="${infinispan-version}">infinispan-client-hotrod-with-query</feature>
+    <bundle>mvn:org.apache.camel/camel-infinispan/${project.version}</bundle>
+  </feature>
+  <feature name='camel-influxdb' version='${project.version}' start-level='50'>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.influxdb-java/${influx-java-driver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${influx-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.retrofit/${squareup-retrofit2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-influxdb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-iota' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.iota/jota/${jota-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-iota/${project.version}</bundle>
+  </feature>
+  <feature name='camel-irc' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.irclib/${irclib-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-irc/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ironmq' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ironmq/${ironmq-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ironmq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jackson' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jackson/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jacksonxml' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.woodstox/stax2-api/${stax2v4-api-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jacksonxml/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jasypt' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-jasypt/${project.version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jasypt/${jasypt-bundle-version}</bundle>
+  </feature>
+  <feature name='camel-jaxb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-jaxb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jbpm' version='${project.version}' start-level='50'>
+    <details>The camel-jbpm feature can only run on a SUN JVM. You need to add the package com.sun.tools.xjc to the java platform packages in the etc/jre.properties file.</details>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
+    <bundle dependency='true'>mvn:org.kie.server/kie-server-api/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.server/kie-server-common/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.server/kie-server-client/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-maven-support/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-project-datamodel-api/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-project-datamodel-commons/${jbpm-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.jbpm/jbpm-workitems-core/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-commons/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-api/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-internal/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-core/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-core-reflective/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-canonical-model/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-model-compiler/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-mvel-compiler/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-mvel-parser/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:com.github.javaparser/javaparser-core/${javaparser-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-compiler/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/kie-pmml/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.mvel/mvel2/${mvel-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-dmn-model/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-dmn-api/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-core/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-common/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-jaxb/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-jackson/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-xstream/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-math3/${commons-math3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${jaxb-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jbpm/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jcache' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-cache-api/${jcache-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jcache/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jclouds' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${jclouds-version}'>jclouds</feature>
+    <feature version='${jclouds-version}'>jclouds-blobstore</feature>
+    <feature version='${jclouds-version}'>jclouds-compute</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jclouds/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jcr' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:javax.jcr/jcr/${jcr-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.jackrabbit/jackrabbit-jcr-commons/${jackrabbit-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jcr/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jdbc' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring-jdbc</feature>
+    <bundle>mvn:org.apache.camel/camel-jdbc/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jetty' version='${project.version}' start-level='50'>
+    <feature>jetty</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-common/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jetty-common/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jetty/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jgroups' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-jgroups/${project.version}</bundle>
+    <bundle dependency='true'>mvn:org.jgroups/jgroups/${jgroups-version}</bundle>
+  </feature>
+  <feature name='camel-jgroups-raft' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jgroups-raft/${project.version}</bundle>
+    <bundle dependency='true'>mvn:org.jgroups/jgroups/${jgroups-version}</bundle>
+    <bundle dependency='true'>mvn:org.jgroups/jgroups-raft/${jgroups-raft-version}</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.leveldbjni/leveldbjni-all/${jgroups-raft-leveldbjni-version}</bundle>
+    <bundle dependency='true'>mvn:org.mapdb/mapdb/${jgroups-raft-mapdb-version}</bundle>
+  </feature>
+  <feature name='camel-jing' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.isorelax/${isorelax-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jing/${jing-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jing/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jms' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-jms</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/${geronimo-jms2-spec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jms/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jmx' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-jmx/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jolt' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bazaarvoice-jolt/${jolt-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jolt/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jooq' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.jooq/jooq/${jooq-version}</bundle>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jooq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-johnzon' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm-commons/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm-tree/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.aries/org.apache.aries.util/${aries-util-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/${aries-spifly-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.johnzon/johnzon-core/${johnzon-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.johnzon/johnzon-mapper/${johnzon-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-json_1.1_spec/${geronimo-json-spec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-johnzon/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jpa' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring-jdbc</feature>
+    <feature version='${spring-version-range}'>spring-orm</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-annotation_1.0_spec/${geronimo-annotation-1.0-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jpa_2.1_spec/${geronimo-jpa-spec-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-el_1.0_spec/${geronimo-el-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/${serp-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.xbean/xbean-asm5-shaded/${xbean-asm5-shaded-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jpa/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jsch' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-ftp</feature>
+    <bundle>mvn:org.apache.camel/camel-jsch/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jslt' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.schibsted.spt.data/jslt/${jslt-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jslt/${project.version}</bundle>
+  </feature>
+  <feature name='camel-json-validator' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.networknt/json-schema-validator/${networknt-json-schema-validator-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-json-validator/${project.version}</bundle>
+  </feature>
+  <feature name='camel-json-api' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.github.jasminb/jsonapi-converter/${jasminb-jsonapi-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jsonapi/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jsonpath' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:com.jayway.jsonpath/json-path/${json-path-version}</bundle>
+    <bundle>mvn:net.minidev/json-smart/${json-smart-version}</bundle>
+    <bundle>mvn:net.minidev/accessors-smart/${json-accessors-smart-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jsonpath/${project.version}</bundle>
+  </feature>
+  <feature name='camel-jt400' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jt400/${jt400-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-jt400/${project.version}</bundle>
+  </feature>
+  <feature name='camel-kafka' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kafka-clients/${kafka-bundle-version}</bundle>
+
+    <bundle dependency='true'>wrap:mvn:org.lz4/lz4-java/${lz4-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-kafka/${project.version}</bundle>
+    <feature dependency='true'>snappy</feature>
+  </feature>
+  <feature name='snappy'>
+    <requirement>osgi.native;filter:="(|(osgi.native.osname~=aix)(osgi.native.osname~=linux)(osgi.native.osname~=macosx)(osgi.native.osname~=win32))"</requirement>
+    <bundle>mvn:org.xerial.snappy/snappy-java/${snappy-version}</bundle>
+  </feature>
+  <feature name='camel-kubernetes' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.generex/${generex-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.automaton/${automaton-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:io.fabric8/zjsonpatch/${zjsonpatch-version}</bundle>
+    <bundle dependency='true'>mvn:io.fabric8/kubernetes-model/${kubernetes-model-version}</bundle>
+    <bundle dependency='true'>mvn:io.fabric8/kubernetes-client/${kubernetes-client-version}/jar/bundle</bundle>
+    <bundle dependency='true'>mvn:io.fabric8/openshift-client/${kubernetes-client-version}/jar/bundle</bundle>
+    <bundle>mvn:org.apache.camel/camel-kubernetes/${project.version}</bundle>
+  </feature>
+  <feature name='camel-kudu' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.apache.kudu/kudu-client/${kudu-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.yetus/audience-annotations/${yetus-audience-annotations-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-kudu/${project.version}</bundle>
+  </feature>
+  <feature name='camel-kura' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>scr</feature>
+    <bundle>mvn:org.apache.camel/camel-kura/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ldap' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-ldap/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ldif' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-i18n/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-asn1-api/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-asn1-ber/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-client-api/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-codec-core/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-extras-aci/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-extras-codec/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-extras-codec-api/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-extras-util/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-model/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-ldap-schema-data/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.api/api-util/2.0.0</bundle>
+    <bundle dependency='true'>mvn:org.apache.directory.server/apacheds-core-api/${apacheds-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/2.7.7_5</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-collections4/${commons-collections4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ldif/${project.version}</bundle>
+  </feature>
+  <feature name='camel-leveldb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.fusesource.leveldbjni/leveldbjni-all/${leveldbjni-version}$Bundle-Version=${leveldbjni-version}&amp;Export-Package=*;-noimport:=true;version="${leveldbjni-version}"</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.hawtbuf/hawtbuf/${hawtbuf-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-leveldb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-leveldb-java' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${leveldb-guava-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.iq80.leveldb/leveldb-api/${leveldb-api-version}$Bundle-Version=${leveldb-api-version}&amp;Export-Package=*;-noimport:=true;version="${leveldb-api-version}"</bundle>
+    <bundle dependency='true'>wrap:mvn:org.iq80.leveldb/leveldb/${leveldb-version}$Bundle-Version=${leveldb-version}&amp;Export-Package=*;-noimport:=true;version="${leveldb-version}"</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.hawtbuf/hawtbuf/${hawtbuf-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-leveldb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-lra' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${cxf-version-range}'>cxf-core</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
+    <bundle>mvn:org.apache.camel/camel-lra/${project.version}</bundle>
+  </feature>
+  <feature name='camel-lucene' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene/${lucene-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-analyzers-common/${lucene-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-queryparser/${lucene-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-queries/${lucene-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene-sandbox/${lucene-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jakarta-regexp/${regexp-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-lucene/${project.version}</bundle>
+  </feature>
+  <feature name='camel-lumberjack' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-lumberjack/${project.version}</bundle>
+  </feature>
+  <feature name='camel-lzf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.ning/compress-lzf/${compress-lzf-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-lzf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mail' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.sun.mail/jakarta.mail/${jakarta-mail-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mail/${project.version}</bundle>
+  </feature>
+  <feature name='camel-master' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-master/${project.version}</bundle>
+  </feature>
+  <feature name='camel-metrics' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.dropwizard.metrics/metrics-core/${metrics-version}</bundle>
+    <bundle dependency='true'>mvn:io.dropwizard.metrics/metrics-json/${metrics-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-metrics/${project.version}</bundle>
+  </feature>
+  <feature name='camel-micrometer' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:io.micrometer/micrometer-core/${micrometer-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-micrometer/${project.version}</bundle>
+  </feature>
+  <feature name='camel-milo' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.codepoetics/protonpack/${protonpack-version}</bundle>
+    <bundle dependency='true'>mvn:io.dropwizard.metrics/metrics-core/${metrics-version}</bundle>
+    <bundle dependency='true'>mvn:org.jooq/jool/${jool-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/annotations/${google-findbugs-annotations2-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>     
+    <bundle dependency='true'>mvn:org.bouncycastle/bcmail-jdk15on/${bouncycastle-version}</bundle>    
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>    
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>    
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.digitalpetri.fsm/strict-machine/${digitalpetri-fsm-client}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.digitalpetri.netty/netty-channel-fsm/${digitalpetri-netty-client}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${milo-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/stack-core/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/stack-server/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/stack-client/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/sdk-core/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/sdk-server/${milo-version}</bundle>    
+    <bundle dependency='true'>mvn:org.eclipse.milo/bsd-parser-core/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/sdk-client/${milo-version}</bundle>
+    <bundle dependency='true'>mvn:org.eclipse.milo/bsd-parser-gson/${milo-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-milo/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mina' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mina/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mllp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-mllp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mongodb' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-jackson</feature>
+    <bundle dependency='true'>mvn:org.mongodb/bson/${mongo-java-driver-version}</bundle>
+    <bundle dependency='true'>mvn:org.mongodb/mongodb-driver-core/${mongo-java-driver-version}</bundle>
+    <bundle dependency='true'>mvn:org.mongodb/mongodb-driver-sync/${mongo-java-driver-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mongodb/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mongodb-gridfs' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-jackson</feature>
+    <bundle dependency='true'>mvn:org.mongodb/mongo-java-driver/${mongo3-java-driver-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mongodb-gridfs/${project.version}</bundle>
+  </feature>
+  <feature name='camel-msv' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <!-- xerces is an optional dependency from isorelax -->
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ant/${ant-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.isorelax/${isorelax-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-msv/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mustache' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.mustache-compiler/${mustache-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${mustache-guava-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mustache/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mvel' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.mvel/mvel2/${mvel-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mvel/${project.version}</bundle>
+  </feature>
+  <feature name='camel-mybatis' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.mybatis/mybatis/${mybatis-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-mybatis/${project.version}</bundle>
+  </feature>
+  <feature name='camel-nagios' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.github.jsendnsca/jsendnsca/${jsendnsca-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-nagios/${project.version}</bundle>
+  </feature>
+  <feature name='camel-nats' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.nats/jnats/${jnats-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:net.i2p.crypto/eddsa/${eddsa-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-nats/${project.version}</bundle>
+  </feature>
+  <feature name='camel-netty' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-netty/${project.version}</bundle>
+  </feature>
+  <feature name='camel-netty-http' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-netty</feature>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-netty-http/${project.version}</bundle>
+  </feature>
+  <feature name='camel-nitrite' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.dizitart/nitrite/${nitrite-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-nitrite/${project.version}</bundle>
+  </feature>
+  <feature name='camel-nsq' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.github.brainlag/nsq-client/${nsq-client-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-nsq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ognl' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ognl/${ognl-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ognl/${project.version}</bundle>
+  </feature>
+  <feature name='camel-olingo2' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>http</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpasyncclient-osgi/${httpasyncclient-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${olingo2-gson-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.olingo/olingo-odata2-api/${olingo2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.olingo-odata2-core/${olingo-odata2-core-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.camel/camel-olingo2-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-olingo2/${project.version}</bundle>
+  </feature>
+  <feature name='camel-olingo4' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>http</feature>
+    <bundle dependency='true'>mvn:org.apache.olingo/odata-commons-api/${olingo4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.olingo/odata-commons-core/${olingo4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.olingo/odata-client-api/${olingo4-version}</bundle>
+    <!--TODO remove wrap protocol when https://issues.apache.org/jira/browse/OLINGO-1206 is resolved-->
+    <bundle dependency='true'>wrap:mvn:org.apache.olingo/odata-server-api/${olingo4-version}$overwrite=merge&amp;Export-Package=org.apache.olingo.server.api;version=${olingo4-version},org.apache.olingo.server.api.uri;version=${olingo4-version},org.apache.olingo.server.api.processor;version=${olingo4-version},org.apache.olingo.server.api.batch;version=${olingo4-version},org.apache.olingo.server.api.debug;version=${olingo4-version},org.apache.olingo.server.api.deserializer;version=${olingo [...]
+    <bundle dependency='true'>wrap:mvn:org.apache.olingo/odata-server-core/${olingo4-version}$overwrite=merge&amp;Export-Package=org.apache.olingo.server.core;version=${olingo4-version},org.apache.olingo.server.core.uri.parser;version=${olingo4-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.olingo/odata-client-core/${olingo4-version}$overwrite=merge&amp;Export-Package=org.apache.olingo.client.core;version=${olingo4-version},org.apache.olingo.client.core.domain;version=${olingo4-version},org.apache.olingo.client.core.http;version=${olingo4-version},org.apache.olingo.client.core.communication.request.batch;version=${olingo4-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpasyncclient-osgi/${httpasyncclient-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.woodstox/stax2-api/${stax2v4-api-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml/aalto-xml/0.9.10</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.camel/camel-olingo4-api/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-olingo4/${project.version}</bundle>
+  </feature>
+  <feature name='camel-optaplanner' version='${project.version}' start-level='50'>
+    <details>The camel-optaplanner feature can only run on a SUN JVM. You need to add the package com.sun.tools.xjc to the java platform packages in the etc/jre.properties file.</details>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-math3/${commons-math3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.aries/org.apache.aries.util/${aries-util-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-core/${optaplanner-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-common/${optaplanner-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-jaxb/${optaplanner-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-jackson/${optaplanner-version}</bundle>
+    <bundle dependency='true'>mvn:org.optaplanner/optaplanner-persistence-xstream/${optaplanner-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-maven-support/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-project-datamodel-api/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-project-datamodel-commons/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie.soup/kie-soup-commons/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-api/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.kie/kie-internal/${kie-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-core/${drools-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-core-reflective/${drools-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-canonical-model/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-model-compiler/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-mvel-compiler/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-mvel-parser/${jbpm-version}</bundle>
+    <bundle dependency='true'>mvn:com.github.javaparser/javaparser-core/${javaparser-version}</bundle>
+    <bundle dependency='true'>mvn:org.drools/drools-compiler/${drools-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-xjc/${jaxb-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.mvel/mvel2/${mvel-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${google-guava-version}</bundle>
+    <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/${javax-inject-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-optaplanner/${project.version}</bundle>
+  </feature>
+  <feature name='camel-openstack' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${openstack4j-guava-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.aries/org.apache.aries.util/${aries-util-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.aries.spifly/org.apache.aries.spifly.dynamic.bundle/${aries-spifly-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm-commons/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.ow2.asm/asm-tree/${asm-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>mvn:org.pacesys/openstack4j-core/${openstack4j-version}</bundle>
+    <bundle dependency='true'>mvn:org.pacesys.openstack4j.connectors/openstack4j-okhttp/${openstack4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-openstack/${project.version}</bundle>
+  </feature>
+  <feature name='camel-opentracing' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:io.opentracing/opentracing-api/${opentracing-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.opentracing/opentracing-noop/${opentracing-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.opentracing.contrib/opentracing-tracerresolver/${opentracing-tracerresolver-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-opentracing/${project.version}</bundle>
+  </feature>
+  <feature name='camel-paho' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.eclipse.paho/org.eclipse.paho.client.mqttv3/${paho-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-paho/${project.version}</bundle>
+  </feature>
+  <feature name='camel-paxlogging' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-paxlogging/${project.version}</bundle>
+  </feature>
+  <feature name='camel-pdf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcmail-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.pdfbox/pdfbox/${pdfbox-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.pdfbox/fontbox/${pdfbox-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-pdf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-pg-replication-slot' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>jdbc</feature>
+    <bundle dependency='true'>mvn:org.postgresql/postgresql/${pgjdbc-driver-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-pg-replication-slot/${project.version}</bundle>
+  </feature>
+  <feature name='camel-pgevent' version='${project.version}' start-level='50'>
+    <details>installing camel-pgevent may output an error in the log but it is installed correctly</details>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <feature>jdbc</feature>
+    <bundle dependency='true'>wrap:mvn:com.impossibl.pgjdbc-ng/pgjdbc-ng/${pgjdbc-ng-driver-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-pgevent/${project.version}</bundle>
+  </feature>
+  <feature name='camel-printer' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-printer/${project.version}</bundle>
+  </feature>
+  <feature name='camel-protobuf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.protobuf/protobuf-java-util/${protobuf-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${protobuf-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle>mvn:org.apache.camel/camel-protobuf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-pubnub' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.pubnub/pubnub-gson/${pubnub-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.gson/gson/${gson-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.retrofit/${squareup-retrofit2-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-pubnub/${project.version}</bundle>
+  </feature>
+  <feature name='camel-pulsar' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.pulsar-client/${pulsar-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.pulsar-client-admin/${pulsar-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-pulsar/${project.version}</bundle>
+  </feature>
+  <feature name='camel-quartz' version='${project.version}' start-level='50'>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.c3p0/${c3p0-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.zaxxer/HikariCP-java7/${hikaricp-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.quartz-scheduler/quartz/${quartz-version}$overwrite=merge&amp;DynamicImport-Package=org.apache.camel.component.quartz</bundle>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-quartz/${project.version}</bundle>
+  </feature>
+  <feature name='camel-quickfix' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}</bundle>
+    <bundle>mvn:org.quickfixj/quickfixj-all/${quickfixj-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-quickfix/${project.version}</bundle>
+  </feature>
+  <feature name='camel-rabbitmq' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.rabbitmq/amqp-client/${rabbitmq-amqp-client-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-rabbitmq/${project.version}</bundle>
+  </feature>
+  <feature name='camel-reactive-streams' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-reactive-streams/${project.version}</bundle>
+  </feature>
+  <feature name='camel-reactor' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-reactive-streams</feature>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle dependency='true'>mvn:io.projectreactor/reactor-core/${reactor-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.micrometer/micrometer-core/${micrometer-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-reactor/${project.version}</bundle>
+  </feature>
+  <!-- does not work in OSGi: https://github.com/resilience4j/resilience4j/issues/750
+  <feature name='camel-resilience4j' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.github.resilience4j/resilience4j-core/${resilience4j-version}</bundle>
+    <bundle dependency='true'>mvn:io.github.resilience4j/resilience4j-circuitbreaker/${resilience4j-version}</bundle>
+    <bundle dependency='true'>mvn:io.github.resilience4j/resilience4j-bulkhead/${resilience4j-version}</bundle>
+    <bundle dependency='true'>mvn:io.github.resilience4j/resilience4j-timelimiter/${resilience4j-version}</bundle>
+    <bundle dependency='true'>mvn:io.vavr/vavr/${vavr-version}</bundle>
+    <bundle dependency='true'>mvn:io.vavr/vavr-match/${vavr-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-resilience4j/${project.version}</bundle>
+  </feature> -->
+  <feature name='camel-rest-openapi' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-http</feature>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-csv/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-smile/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jsonSchema/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.apicurio/apicurio-data-models/${apicurio-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-rest-openapi/${project.version}</bundle>
+  </feature>
+
+  <feature name='camel-rest-swagger' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-http</feature>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-csv/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-smile/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jsonSchema/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${swagger-java-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-core/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-annotations/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-models/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-jaxrs/${swagger-java-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.swagger/swagger-parser/${swagger-java-parser-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-rest-swagger/${project.version}</bundle>
+  </feature>
+    <feature name='camel-robotframework' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.robotframework/robotframework/${robotframework-version}</bundle>
+	<bundle dependency='true'>wrap:mvn:org.python/jython/${jython-version}</bundle>
+	<bundle dependency='true'>wrap:mvn:org.python/jython-standalone/${jython-standalone-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-robotframework/${project.version}</bundle>
+  </feature>
+  <feature name='camel-rss' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-atom</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jdom/${jdom-bundle-version}</bundle>
+    <bundle dependency="true">mvn:com.rometools/rome/${rome-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-rss/${project.version}</bundle>
+  </feature>
+  <feature name='camel-sap-netweaver' version='${project.version}' start-level='50'>
+    <feature>http</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-sap-netweaver/${project.version}</bundle>
+  </feature>
+  <feature name='camel-salesforce' version='${project.version}' start-level='50'>
+    <feature>jetty</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jsonSchema/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/cometd-java-client/${cometd-java-client-version}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/bayeux-api/${cometd-java-client-version}</bundle>
+    <bundle dependency='true'>mvn:org.cometd.java/cometd-java-common/${cometd-java-client-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-salesforce/${project.version}</bundle>
+  </feature>
+  <feature name='camel-saxon' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-saxon/${project.version}</bundle>
+  </feature>
+  <feature name='camel-schematron' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-schematron/${project.version}</bundle>
+  </feature>
+  <feature name='camel-service' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-service/${project.version}</bundle>
+  </feature>
+  <feature name='camel-servicenow' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${cxf-version-range}'>cxf-core</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
+    <feature version='${cxf-version-range}'>cxf-rs-security-oauth2</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jsr310/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.datatype/jackson-datatype-jdk8/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-servicenow/${project.version}</bundle>
+  </feature>
+  <feature name='camel-servlet' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>http</feature>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-common/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-servlet/${project.version}</bundle>
+  </feature>
+  <feature name='camel-shiro' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle>
+    <bundle dependency='true'>mvn:commons-beanutils/commons-beanutils/${commons-beanutils-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-configuration2/${commons-configuration2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-text/${commons-text-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.shiro/shiro-core/${shiro-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-shiro/${project.version}</bundle>
+  </feature>
+  <feature name='camel-sip' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jain-sip-api-1.2.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jain-sip-ri/${jain-sip-ri-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-sip/${project.version}</bundle>
+  </feature>
+  <feature name='camel-sjms' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <!-- JTA is not currently supported by SJMS but is a required dependency of the Geronimo JMS Bundle -->
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-sjms/${project.version}</bundle>
+  </feature>
+  <feature name='camel-sjms2' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <!-- JTA is not currently supported by SJMS but is a required dependency of the Geronimo JMS Bundle -->
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_2.0_spec/${geronimo-jms2-spec-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.camel/camel-sjms/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-sjms2/${project.version}</bundle>
+  </feature>
+  <feature name='camel-slack' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.camel/camel-util-json/${project.version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-slack/${project.version}</bundle>
+  </feature>
+  <feature name='camel-smpp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.jsmpp/jsmpp/${jsmpp-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-smpp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-snakeyaml' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-snakeyaml/${project.version}</bundle>
+  </feature>
+  <feature name='camel-snmp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.snmp4j/${snmp4j-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-snmp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-soap' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-jaxb</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/${geronimo-ws-metadata-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix-specs-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-soap/${project.version}</bundle>
+  </feature>
+  <feature name='camel-solr' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.noggit/${noggit-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.solr-solrj/${solr-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-solr/${project.version}</bundle>
+  </feature>
+  <feature name='camel-soroush' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.core/jersey-client/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:jakarta.ws.rs/jakarta.ws.rs-api/${jakarta-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.core/jersey-common/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2/osgi-resource-locator/${hk2-osgi-resource-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2.external/jakarta.inject/${hk2-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.media/jersey-media-json-jackson/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.ext/jersey-entity-filtering/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okhttp/${okclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.okio/${squareup-okio-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.code.findbugs/jsr305/${google-findbugs-jsr305-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.squareup.okhttp3/okhttp-sse/${okclient-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.inject/jersey-hk2/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2/hk2-locator/${hk2-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2.external/aopalliance-repackaged/${hk2-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2/hk2-api/${hk2-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.hk2/hk2-utils/${hk2-version}</bundle>
+    <bundle dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.media/jersey-media-sse/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:org.glassfish.jersey.media/jersey-media-multipart/${jersey-version}</bundle>
+    <bundle dependency='true'>mvn:org.jvnet.mimepull/mimepull/${mimepull-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-soroush/${project.version}</bundle>
+  </feature>
+  <feature name='camel-splunk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.splunk/${splunk-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-splunk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-spring-batch' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-batch-core/${spring-batch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-batch-infrastructure/${spring-batch-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-spring-batch/${project.version}</bundle>
+  </feature>
+  <feature name='camel-spring-ldap' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature>transaction</feature>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-jdbc</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version}</bundle>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-ldap/${spring-ldap-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-batch-core/${spring-batch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-batch-infrastructure/${spring-batch-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-data-commons/${spring-data-commons-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-spring-ldap/${project.version}</bundle>
+  </feature>
+  <feature name='camel-spring-redis' version='${project.version}' start-level='50'>
+    <details>Does not work with in OSGi actually</details>
+    <feature prerequisite='true'>wrap</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <bundle dependency='true'>mvn:commons-pool/commons-pool/${commons-pool-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.lettuce/lettuce-core/${lettuce-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-data-redis/${spring-data-redis-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-data-keyvalue/${spring-data-keyvalue-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-data-commons/${spring-data-commons-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.jedis/${jedis-client-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-pool2/${commons-pool2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-spring-redis/${project.version}</bundle>
+  </feature>
+  <feature name='camel-spring-ws' version='${project.version}' start-level='50'>
+    <feature>http</feature>
+    <feature version='${project.version}'>camel-xslt-saxon</feature>
+    <feature version='${spring-version-range}'>spring</feature>
+    <feature version='${spring-version-range}'>spring-jms</feature>
+    <feature version='${spring-version-range}'>spring-oxm</feature>
+    <feature version='${spring-version-range}'>spring-web</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.wsdl4j/${wsdl4j-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-ws-core/${spring-ws-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-ws-support/${spring-ws-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-ws-security/${spring-ws-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.spring-xml/${spring-xml-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/${servicemix-specs-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-spring-ws/${project.version}</bundle>
+  </feature>
+  <feature name='camel-sql' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${spring-version-range}'>spring-tx</feature>
+    <feature version='${spring-version-range}'>spring-jdbc</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-sql/${project.version}</bundle>
+  </feature>
+  <feature name='camel-ssh' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.mina/mina-core/${mina-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.sshd/sshd-core/${sshd-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcprov-jdk15on/${bouncycastle-version}</bundle>
+    <bundle dependency='true'>mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-ssh/${project.version}</bundle>
+  </feature>
+  <feature name='camel-stax' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.woodstox/woodstox-core/${woodstox-core-version}</bundle>
+    <bundle>mvn:org.codehaus.woodstox/stax2-api/${stax2v4-api-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-stax/${project.version}</bundle>
+  </feature>
+  <feature name='camel-stream' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-stream/${project.version}</bundle>
+  </feature>
+  <feature name='camel-stomp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/${geronimo-jta-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.geronimo.specs/geronimo-jms_1.1_spec/${geronimo-jms-spec-version}</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.stompjms/stompjms-client/${stompjms-version}</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.hawtbuf/hawtbuf/${hawtbuf-version}</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.hawtdispatch/hawtdispatch/${hawtdispatch-version}</bundle>
+    <bundle dependency='true'>mvn:org.fusesource.hawtdispatch/hawtdispatch-transport/${hawtdispatch-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-stomp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-string-template' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr/${antlr-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.antlr-runtime/${antlr-runtime-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.stringtemplate/${stringtemplate-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-stringtemplate/${project.version}</bundle>
+  </feature>
+  <feature name='camel-swagger-java' version='${project.version}' start-level='50'>
+    <feature>http</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${swagger-java-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-core/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-annotations/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-models/${swagger-java-version}</bundle>
+    <bundle dependency='true'>mvn:io.swagger/swagger-jaxrs/${swagger-java-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.swagger/swagger-parser/${swagger-java-parser-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-swagger-java/${project.version}</bundle>
+  </feature>
+  <feature name='camel-openapi-java' version='${project.version}' start-level='50'>
+    <feature>http</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.jsr311-api-1.1.1/${servicemix-specs-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.yaml/snakeyaml/${snakeyaml-version}</bundle>
+    <bundle dependency='true'>mvn:javax.validation/validation-api/${validation-1-api-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.apicurio/apicurio-data-models/${apicurio-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-openapi-java/${project.version}</bundle>
+  </feature>
+  <feature name='camel-syslog' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-netty</feature>
+    <bundle>mvn:org.apache.camel/camel-syslog/${project.version}</bundle>
+  </feature>
+  <feature name='camel-tagsoup' version='${project.version}' start-level='50'>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.tagsoup/${tagsoup-bundle-version}</bundle>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-tagsoup/${project.version}</bundle>
+  </feature>
+  <feature name='camel-tarfile' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-tarfile/${project.version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-compress/${commons-compress-version}</bundle>
+  </feature>
+  <feature name='camel-telegram' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <feature version='${project.version}'>camel-webhook</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client/${ahc-version}$Export-Package=org.asynchttpclient.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client-netty-utils/${ahc-version}$Export-Package=org.asynchttpclient.netty.util.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.typesafe.netty/netty-reactive-streams/${netty-reactive-streams-version}</bundle>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-telegram/${project.version}</bundle>
+  </feature>
+  <feature name='camel-test' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-test/${project.version}</bundle>
+  </feature>
+  <feature name='camel-test-karaf' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-test</feature>
+    <bundle>mvn:biz.aQute.bnd/bndlib/${bndlib-version}</bundle>
+    <bundle>mvn:org.ops4j.base/ops4j-base-io/${ops4j-base-version}</bundle>
+    <bundle>mvn:org.ops4j.base/ops4j-base-lang/${ops4j-base-version}</bundle>
+    <bundle>mvn:org.ops4j.base/ops4j-base-monitors/${ops4j-base-version}</bundle>
+    <bundle>mvn:org.ops4j.base/ops4j-base-store/${ops4j-base-version}</bundle>
+    <bundle>mvn:org.ops4j.pax.tinybundles/tinybundles/${tinybundles-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-test-karaf/${project.version}</bundle>
+  </feature>
+  <feature name='camel-test-spring' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-spring</feature>
+    <feature version='${spring-version-range}'>spring-test</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.junit/${junit-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-test/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-test-spring/${project.version}</bundle>
+  </feature>
+  <feature name='camel-thrift' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.thrift/libthrift/${libthrift-version}</bundle>
+    <bundle dependency='true'>mvn:commons-io/commons-io/${commons-io-version}</bundle>
+    <bundle dependency='true'>mvn:org.javassist/javassist/${javassist-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-thrift/${project.version}</bundle>
+  </feature>
+  <feature name='camel-tika' version='${project.version}' start-level='50'>
+    <bundle dependency='true'>mvn:org.apache.tika/tika-core/${tika-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.tika/tika-bundle/${tika-version}</bundle>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-tika/${project.version}</bundle>
+  </feature>
+  <feature name='camel-twilio' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.twilio.sdk/twilio/${twilio-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-twilio/${project.version}</bundle>
+  </feature>
+  <feature name='camel-twitter' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.twitter4j/${twitter4j-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-twitter/${project.version}</bundle>
+  </feature>
+  <feature name='camel-undertow' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.undertow/undertow-core/${undertow-version}</bundle>
+    <bundle dependency='true'>mvn:org.jboss.xnio/xnio-api/${jboss-xnio-version}</bundle>
+    <bundle dependency='true'>mvn:org.jboss.xnio/xnio-nio/${jboss-xnio-version}</bundle>
+    <bundle dependency='true'>mvn:org.jboss.logging/jboss-logging/${jboss-logging-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-attachments/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-http-base/${project.version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-undertow/${project.version}</bundle>
+  </feature>
+  <feature name='camel-univocity-parsers' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.univocity/univocity-parsers/${univocity-parsers-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-univocity-parsers/${project.version}</bundle>
+  </feature>
+  <feature name='camel-vertx' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http2/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver-dns/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:com.hazelcast/hazelcast/${hazelcast-version}</bundle>
+    <bundle dependency='true'>mvn:com.eclipsesource.minimal-json/minimal-json/${minimal-json-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.vertx/vertx-core/${vertx-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-vertx/${project.version}</bundle>
+  </feature>
+  <feature name='camel-velocity' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.velocity/velocity-engine-core/${velocity-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.commons/commons-lang3/${commons-lang3-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-velocity/${project.version}</bundle>
+  </feature>
+  <feature name='camel-weather' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.commons-httpclient/${commons-httpclient-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-weather/${project.version}</bundle>
+  </feature>
+  <feature name='camel-websocket' version='${project.version}' start-level='50'>
+    <feature>jetty</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:javax.servlet/javax.servlet-api/${javax-servlet-api-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-websocket/${project.version}</bundle>
+  </feature>
+  <feature name='camel-websocket-jsr356' version='${project.version}' start-level='50'>
+    <feature>jetty</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-websocket-jsr356/${project.version}</bundle>
+  </feature>
+  <feature name='camel-web3j' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.web3j/core/${web3j-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.web3j/geth/${web3j-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.web3j/parity/${web3j-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.web3j/quorum/${web3j-quorum-version}</bundle>
+    <bundle dependency='true'>mvn:io.reactivex/rxjava/${rxjava-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-web3j/${project.version}</bundle>
+  </feature>
+  <feature name='camel-webhook' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-webhook/${project.version}</bundle>
+  </feature>
+  <feature name='camel-wordpress' version='${project.version}' start-level='50'>
+    <feature version='${cxf-version-range}'>cxf-core</feature>
+    <feature version='${cxf-version-range}'>cxf-jaxrs</feature>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.dataformat/jackson-dataformat-xml/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-base/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.module/jackson-module-jaxb-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.codehaus.woodstox/stax2-api/${stax2v4-api-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${guava-eventbus-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle>mvn:org.apache.camel/camel-wordpress/${project.version}</bundle>
+  </feature>
+  <feature name='camel-workday' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpcore-osgi/${httpcore4-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.httpcomponents/httpclient-osgi/${httpclient4-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.httpcomponents/httpmime/${httpclient4-version}$Export-Package=org.apache.http.*;version=${httpclient4-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-workday/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xchange' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.knowm.xchange/xchange-core/${xchange-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.github.mmazi/rescu/${rescu-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xchange/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xj' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-xslt-saxon</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xj/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xmlsecurity' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/${xalan-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.santuario/xmlsec/${xmlsec-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xerces/${xerces-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/${bcel-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xmlsecurity/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xmpp' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.jxmpp/jxmpp-core/${jxmpp-version}</bundle>
+    <bundle dependency='true'>mvn:org.jxmpp/jxmpp-jid/${jxmpp-version}</bundle>
+    <bundle dependency='true'>mvn:org.jxmpp/jxmpp-util-cache/${jxmpp-version}</bundle>
+    <bundle dependency='true'>mvn:org.igniterealtime.smack/smack-core/${smack-version}</bundle>
+    <bundle dependency='true'>mvn:org.igniterealtime.smack/smack-extensions/${smack-version}</bundle>
+    <bundle dependency='true'>mvn:org.igniterealtime.smack/smack-java7/${smack-version}</bundle>
+    <bundle dependency='true'>mvn:org.igniterealtime.smack/smack-im/${smack-version}</bundle>
+    <bundle dependency='true'>mvn:org.igniterealtime.smack/smack-tcp/${smack-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.minidns/minidns-core/${minidns-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xmpp/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xslt-saxon' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xmlresolver/${xmlresolver-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/${saxon-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xslt-saxon/${project.version}</bundle>
+  </feature>
+  <feature name='camel-xstream' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:org.codehaus.jettison/jettison/${jettison-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xpp3/${xpp3-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:joda-time/joda-time/${jodatime-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.kxml2/${kxml2-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xstream/${xstream-bundle-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-xstream/${project.version}</bundle>
+  </feature>
+  <feature name='camel-yammer' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.scribe/${scribe-bundle-version}</bundle>
+    <bundle dependency='true'>mvn:commons-codec/commons-codec/${commons-codec-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-yammer/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zendesk' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:com.cloudbees.thirdparty/zendesk-java-client/${zendesk-client-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client/${ahc-version}$Export-Package=org.asynchttpclient.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.asynchttpclient/async-http-client-netty-utils/${ahc-version}$Export-Package=org.asynchttpclient.netty.util.*;version=${ahc-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-resolver/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-buffer/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-epoll/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-unix-common/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-transport-native-kqueue/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-http/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-codec-socks/${netty-version}</bundle>
+    <bundle dependency='true'>mvn:io.netty/netty-handler-proxy/${netty-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:com.typesafe.netty/netty-reactive-streams/${netty-reactive-streams-version}</bundle>
+    <bundle dependency='true'>mvn:org.reactivestreams/reactive-streams/${reactive-streams-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-zendesk/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zip-deflater' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-zip-deflater/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zipfile' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle>mvn:org.apache.camel/camel-zipfile/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zipkin' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>mvn:io.zipkin.brave/brave/${brave-zipkin-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:io.zipkin.brave/brave-context-slf4j/${brave-zipkin-version}</bundle>
+    <bundle dependency='true'>mvn:io.zipkin.zipkin2/zipkin/${zipkin-version}</bundle>
+    <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-reporter/${zipkin-reporter-version}</bundle>
+    <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-sender-urlconnection/${zipkin-reporter-version}</bundle>
+    <bundle dependency='true'>mvn:io.zipkin.reporter2/zipkin-sender-libthrift/${zipkin-reporter-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.thrift/libthrift/${zipkin-libthrift-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-zipkin/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zookeeper' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper/${zookeeper-version}$Export-Package=org.apache.zookeeper;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper-jute/${zookeeper-version}$Export-Package=org.apache.jute;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-framework/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-client/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-recipes/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-x-discovery/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${zookeeper-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-zookeeper/${project.version}</bundle>
+  </feature>
+  <feature name='camel-zookeeper-master' version='${project.version}' start-level='50'>
+    <feature version='${project.version}'>camel-core</feature>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper/${zookeeper-version}$Export-Package=org.apache.zookeeper;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>wrap:mvn:org.apache.zookeeper/zookeeper-jute/${zookeeper-version}$Export-Package=org.apache.jute;version=${zookeeper-version},org.apache.zookeeper.*;version=${zookeeper-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-framework/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-client/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:org.apache.curator/curator-recipes/${curator-version}</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/failureaccess/1.0.1</bundle>
+    <bundle dependency='true'>mvn:com.google.guava/guava/${zookeeper-guava-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-core/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-databind/${jackson2-version}</bundle>
+    <bundle dependency='true'>mvn:com.fasterxml.jackson.core/jackson-annotations/${jackson2-version}</bundle>
+    <bundle>mvn:org.apache.camel/camel-zookeeper-master/${project.version}</bundle>
+  </feature>
+
+</features>
diff --git a/platforms/karaf/pom.xml b/platforms/karaf/pom.xml
new file mode 100644
index 0000000..6ce2f4c
--- /dev/null
+++ b/platforms/karaf/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.karaf</groupId>
+        <artifactId>platforms</artifactId>
+        <version>3.2.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>karaf-platform</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel Karaf :: Platforms :: Karaf</name>
+
+    <modules>
+        <module>commands</module>
+        <module>features</module>
+    </modules>
+</project>
diff --git a/platforms/pom.xml b/platforms/pom.xml
new file mode 100644
index 0000000..058c6a6
--- /dev/null
+++ b/platforms/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel.karaf</groupId>
+        <artifactId>karaf</artifactId>
+        <version>3.2.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>platforms</artifactId>
+    <packaging>pom</packaging>
+    <name>Camel Karaf :: Platforms </name>
+
+    <modules>
+        <module>karaf</module>
+    </modules>
+</project>
diff --git a/pom.xml b/pom.xml
index 0c47c81..1b744aa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,8 +75,8 @@
         <!--<module>tooling</module>-->
         <module>core</module>
         <module>components</module>
-        <!--<module>catalog</module>
-        <module>tests</module>
+        <module>platforms</module>
+        <!--<module>tests</module>
         <module>examples</module>
         <module>docs</module>-->
     </modules>
@@ -116,6 +116,7 @@
 
         <!-- versions -->
         <aether-version>1.0.2.v20150114</aether-version>
+        <aries-util-version>1.1.3</aries-util-version>
         <arquillian-container-se-managed-version>1.0.2.Final</arquillian-container-se-managed-version>
         <arquillian-version>1.5.0.Final</arquillian-version>
         <asciidoctorj-version>2.1.0</asciidoctorj-version>
@@ -135,6 +136,7 @@
         <grpc-guava-version>28.1-jre</grpc-guava-version>
         <grpc-version>1.27.0</grpc-version>
         <gson-version>2.8.5</gson-version>
+        <felix-framework-version>3.2.2</felix-framework-version>
         <hadoop2-version>2.7.4</hadoop2-version>
         <hibernate-validator-version>6.1.2.Final</hibernate-validator-version>
         <hibernate-version>5.4.12.Final</hibernate-version>
@@ -148,6 +150,7 @@
         <jolokia-version>1.6.2</jolokia-version>
         <junit-jupiter-version>5.6.0</junit-jupiter-version>
         <kafka-avro-serializer-version>5.2.2</kafka-avro-serializer-version>
+        <karaf4-version>4.2.8</karaf4-version>
         <log4j2-version>2.13.1</log4j2-version>
         <lucene3-version>3.6.0</lucene3-version>
         <maven-jar-plugin-version>3.2.0</maven-jar-plugin-version>