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/26 13:09:07 UTC

[camel] branch master updated (ac89c08 -> 6ef1d09)

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


    from ac89c08  CAMEL-14789: camel-rabbitmq - Automatic recovery of temporary reply queue is not handled correctly - Add QueueRecoveryListener to update replyTo and rebind the new temporary queue - Add integration test using RabbitMQ Management HTTP API
     new 51b7d69  CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)
     new 7f5597e  CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)
     new 6ef1d09  Regen

The 3 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:
 catalog/camel-catalog-maven/pom.xml                |    6 -
 .../catalog/maven/MavenVersionManagerTest.java     |   38 -
 catalog/camel-catalog-provider-karaf/pom.xml       |   98 -
 .../camel/catalog/karaf/KarafRuntimeProvider.java  |  159 --
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../catalog/karaf/KarafRuntimeProviderTest.java    |  109 -
 catalog/pom.xml                                    |    1 -
 .../modules/ROOT/pages/weather-component.adoc      |   15 +-
 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                            |   53 -
 platforms/pom.xml                                  |    1 -
 .../maven/packaging/PrepareCatalogKarafMojo.java   |  568 ----
 47 files changed, 3 insertions(+), 6206 deletions(-)
 delete mode 100644 catalog/camel-catalog-provider-karaf/pom.xml
 delete mode 100644 catalog/camel-catalog-provider-karaf/src/main/java/org/apache/camel/catalog/karaf/KarafRuntimeProvider.java
 delete mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/LICENSE.txt
 delete mode 100644 catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/NOTICE.txt
 delete mode 100644 catalog/camel-catalog-provider-karaf/src/test/java/org/apache/camel/catalog/karaf/KarafRuntimeProviderTest.java
 delete mode 100644 platforms/karaf/commands/pom.xml
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java
 delete mode 100644 platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java
 delete mode 100644 platforms/karaf/commands/src/main/resources/META-INF/LICENSE.txt
 delete mode 100644 platforms/karaf/commands/src/main/resources/META-INF/NOTICE.txt
 delete mode 100644 platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info
 delete mode 100644 platforms/karaf/features/pom.xml
 delete mode 100644 platforms/karaf/features/src/main/resources/bundles.properties
 delete mode 100644 platforms/karaf/features/src/main/resources/features.xml
 delete mode 100644 platforms/karaf/pom.xml
 delete mode 100644 tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java


[camel] 01/03: CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)

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

commit 51b7d691f5c317a2c422575b2e8ce2520b6ecff5
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 26 13:11:07 2020 +0100

    CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)
---
 catalog/camel-catalog-maven/pom.xml                |    6 -
 catalog/camel-catalog-provider-karaf/pom.xml       |   98 -
 .../camel/catalog/karaf/KarafRuntimeProvider.java  |  159 --
 .../src/main/resources/META-INF/LICENSE.txt        |  203 --
 .../src/main/resources/META-INF/NOTICE.txt         |   11 -
 .../catalog/karaf/KarafRuntimeProviderTest.java    |  109 -
 catalog/pom.xml                                    |    1 -
 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                            |   53 -
 platforms/pom.xml                                  |    1 -
 .../maven/packaging/PrepareCatalogKarafMojo.java   |  568 ----
 45 files changed, 6156 deletions(-)

diff --git a/catalog/camel-catalog-maven/pom.xml b/catalog/camel-catalog-maven/pom.xml
index 8d3848d..520119a 100644
--- a/catalog/camel-catalog-maven/pom.xml
+++ b/catalog/camel-catalog-maven/pom.xml
@@ -69,12 +69,6 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-catalog-provider-karaf</artifactId>
-            <version>${project.version}</version>
-            <scope>test</scope>
-        </dependency>
 
         <!-- logging -->
         <dependency>
diff --git a/catalog/camel-catalog-provider-karaf/pom.xml b/catalog/camel-catalog-provider-karaf/pom.xml
deleted file mode 100644
index e299c1b..0000000
--- a/catalog/camel-catalog-provider-karaf/pom.xml
+++ /dev/null
@@ -1,98 +0,0 @@
-<?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</groupId>
-        <artifactId>catalog</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-catalog-provider-karaf</artifactId>
-    <packaging>jar</packaging>
-    <name>Camel :: Catalog :: Provider Karaf</name>
-    <description>Camel Catalog Karaf</description>
-
-    <properties>
-        <firstVersion>2.18.1</firstVersion>
-        <label>tooling</label>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-catalog</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <!-- logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-    <build>
-        <plugins>
-
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-bundle-plugin</artifactId>
-            </plugin>
-
-            <!-- generate and include all components in the catalog -->
-            <plugin>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-package-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>prepare-catalog-karaf</goal>
-                        </goals>
-                        <phase>process-resources</phase>
-                    </execution>
-                </executions>
-            </plugin>
-
-        </plugins>
-
-    </build>
-
-</project>
diff --git a/catalog/camel-catalog-provider-karaf/src/main/java/org/apache/camel/catalog/karaf/KarafRuntimeProvider.java b/catalog/camel-catalog-provider-karaf/src/main/java/org/apache/camel/catalog/karaf/KarafRuntimeProvider.java
deleted file mode 100644
index 943aa0d..0000000
--- a/catalog/camel-catalog-provider-karaf/src/main/java/org/apache/camel/catalog/karaf/KarafRuntimeProvider.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * 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.catalog.karaf;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.camel.catalog.CamelCatalog;
-import org.apache.camel.catalog.RuntimeProvider;
-import org.apache.camel.catalog.impl.CatalogHelper;
-
-/**
- * A karaf based {@link RuntimeProvider} which only includes the supported Camel
- * components, data formats, languages and others which can be installed in
- * Karaf using the Camel Karaf features.xml descriptor.
- */
-public class KarafRuntimeProvider implements RuntimeProvider {
-
-    private static final String COMPONENT_DIR = "org/apache/camel/catalog/karaf/components";
-    private static final String DATAFORMAT_DIR = "org/apache/camel/catalog/karaf/dataformats";
-    private static final String LANGUAGE_DIR = "org/apache/camel/catalog/karaf/languages";
-    private static final String OTHER_DIR = "org/apache/camel/catalog/karaf/others";
-    private static final String COMPONENTS_CATALOG = "org/apache/camel/catalog/karaf/components.properties";
-    private static final String DATA_FORMATS_CATALOG = "org/apache/camel/catalog/karaf/dataformats.properties";
-    private static final String LANGUAGE_CATALOG = "org/apache/camel/catalog/karaf/languages.properties";
-    private static final String OTHER_CATALOG = "org/apache/camel/catalog/karaf/others.properties";
-
-    private CamelCatalog camelCatalog;
-
-    @Override
-    public CamelCatalog getCamelCatalog() {
-        return camelCatalog;
-    }
-
-    @Override
-    public void setCamelCatalog(CamelCatalog camelCatalog) {
-        this.camelCatalog = camelCatalog;
-    }
-
-    @Override
-    public String getProviderName() {
-        return "karaf";
-    }
-
-    @Override
-    public String getProviderGroupId() {
-        return "org.apache.camel";
-    }
-
-    @Override
-    public String getProviderArtifactId() {
-        return "camel-catalog-provider-karaf";
-    }
-
-    @Override
-    public String getComponentJSonSchemaDirectory() {
-        return COMPONENT_DIR;
-    }
-
-    @Override
-    public String getDataFormatJSonSchemaDirectory() {
-        return DATAFORMAT_DIR;
-    }
-
-    @Override
-    public String getLanguageJSonSchemaDirectory() {
-        return LANGUAGE_DIR;
-    }
-
-    @Override
-    public String getOtherJSonSchemaDirectory() {
-        return OTHER_DIR;
-    }
-
-    @Override
-    public List<String> findComponentNames() {
-        List<String> names = new ArrayList<>();
-        try (InputStream is = camelCatalog.getVersionManager().getResourceAsStream(COMPONENTS_CATALOG)) {
-            if (is != null) {
-                try {
-                    CatalogHelper.loadLines(is, names);
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-        } catch (IOException e1) {
-            // ignore
-        }
-        return names;
-    }
-
-    @Override
-    public List<String> findDataFormatNames() {
-        List<String> names = new ArrayList<>();
-        try (InputStream is = camelCatalog.getVersionManager().getResourceAsStream(DATA_FORMATS_CATALOG)) {
-            if (is != null) {
-                try {
-                    CatalogHelper.loadLines(is, names);
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-        } catch (IOException e1) {
-            // ignore
-        }
-        return names;
-    }
-
-    @Override
-    public List<String> findLanguageNames() {
-        List<String> names = new ArrayList<>();
-        try (InputStream is = camelCatalog.getVersionManager().getResourceAsStream(LANGUAGE_CATALOG)) {
-            if (is != null) {
-                try {
-                    CatalogHelper.loadLines(is, names);
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-        } catch (IOException e1) {
-            // ignore
-        }
-        return names;
-    }
-
-    @Override
-    public List<String> findOtherNames() {
-        List<String> names = new ArrayList<>();
-        try (InputStream is = camelCatalog.getVersionManager().getResourceAsStream(OTHER_CATALOG)) {
-            if (is != null) {
-                try {
-                    CatalogHelper.loadLines(is, names);
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-        } catch (IOException e1) {
-            // ignore
-        }
-        return names;
-    }
-
-}
diff --git a/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/LICENSE.txt b/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/LICENSE.txt
deleted file mode 100644
index 6b0b127..0000000
--- a/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 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/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/NOTICE.txt b/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/NOTICE.txt
deleted file mode 100644
index 2e215bf..0000000
--- a/catalog/camel-catalog-provider-karaf/src/main/resources/META-INF/NOTICE.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-   =========================================================================
-   ==  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/catalog/camel-catalog-provider-karaf/src/test/java/org/apache/camel/catalog/karaf/KarafRuntimeProviderTest.java b/catalog/camel-catalog-provider-karaf/src/test/java/org/apache/camel/catalog/karaf/KarafRuntimeProviderTest.java
deleted file mode 100644
index 606aa76..0000000
--- a/catalog/camel-catalog-provider-karaf/src/test/java/org/apache/camel/catalog/karaf/KarafRuntimeProviderTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * 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.catalog.karaf;
-
-import java.util.List;
-
-import org.apache.camel.catalog.CamelCatalog;
-import org.apache.camel.catalog.DefaultCamelCatalog;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-@Ignore("TODO: move to camel-karaf")
-public class KarafRuntimeProviderTest {
-
-    static CamelCatalog catalog;
-
-    @BeforeClass
-    public static void createCamelCatalog() {
-        catalog = new DefaultCamelCatalog();
-        catalog.setRuntimeProvider(new KarafRuntimeProvider());
-    }
-
-    @Test
-    public void testGetVersion() throws Exception {
-        String version = catalog.getCatalogVersion();
-        assertNotNull(version);
-
-        String loaded = catalog.getLoadedVersion();
-        assertNotNull(loaded);
-        assertEquals(version, loaded);
-    }
-
-    @Test
-    public void testProviderName() throws Exception {
-        assertEquals("karaf", catalog.getRuntimeProvider().getProviderName());
-    }
-
-    @Test
-    public void testFindComponentNames() throws Exception {
-        List<String> names = catalog.findComponentNames();
-
-        assertNotNull(names);
-        assertFalse(names.isEmpty());
-
-        assertTrue(names.contains("ftp"));
-        assertTrue(names.contains("paxlogging"));
-    }
-
-    @Test
-    public void testFindDataFormatNames() throws Exception {
-        List<String> names = catalog.findDataFormatNames();
-
-        assertNotNull(names);
-        assertFalse(names.isEmpty());
-
-        assertTrue(names.contains("bindy-csv"));
-        assertTrue(names.contains("zipdeflater"));
-        assertTrue(names.contains("zipfile"));
-    }
-
-    @Test
-    public void testFindLanguageNames() throws Exception {
-        List<String> names = catalog.findLanguageNames();
-
-        assertNotNull(names);
-        assertFalse(names.isEmpty());
-
-        assertTrue(names.contains("bean"));
-        assertTrue(names.contains("simple"));
-        assertTrue(names.contains("spel"));
-        assertTrue(names.contains("xpath"));
-    }
-
-    @Test
-    public void testFindOtherNames() throws Exception {
-        List<String> names = catalog.findOtherNames();
-
-        assertNotNull(names);
-        assertFalse(names.isEmpty());
-
-        assertTrue(names.contains("blueprint"));
-        assertTrue(names.contains("hystrix"));
-        assertTrue(names.contains("swagger-java"));
-        assertTrue(names.contains("zipkin"));
-
-        assertFalse(names.contains("spring-boot"));
-    }
-
-}
diff --git a/catalog/pom.xml b/catalog/pom.xml
index 49b41ba..6b9f434 100644
--- a/catalog/pom.xml
+++ b/catalog/pom.xml
@@ -38,7 +38,6 @@
         <module>dummy-component</module>
         <!-- catalog -->
         <module>camel-catalog</module>
-        <module>camel-catalog-provider-karaf</module>
         <module>camel-catalog-lucene</module>
         <module>camel-catalog-maven</module>
         <!-- tooling that depends on catalog -->
diff --git a/platforms/karaf/commands/pom.xml b/platforms/karaf/commands/pom.xml
deleted file mode 100644
index b67e336..0000000
--- a/platforms/karaf/commands/pom.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?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</groupId>
-        <artifactId>karaf</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
deleted file mode 100644
index 16a549e..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/AbstractRouteCommand.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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
deleted file mode 100644
index edf6d0f..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInflight.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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
deleted file mode 100644
index e786888..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 760ee69..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextList.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 8c75ba6..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextResume.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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
deleted file mode 100644
index a71b9f3..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStart.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index da6df67..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextStop.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 31ac788..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextSuspend.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 626294f..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointList.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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
deleted file mode 100644
index ca7913c..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/EndpointStats.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 35f528e..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestApiDoc.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 6efc856..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestRegistryList.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * 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
deleted file mode 100644
index be1c01e..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RestShow.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index a6fe08b..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 38e04f3..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteList.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index eb892ac..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteProfile.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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
deleted file mode 100644
index aa51f8a..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResetStats.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 833b259..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteResume.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
deleted file mode 100644
index b58041c..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteShow.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 61eddc2..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStart.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 3791edd..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStep.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 1127750..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteStop.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
deleted file mode 100644
index b206b91..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteSuspend.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 923bd86..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/CamelContextCompleter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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
deleted file mode 100644
index a09f14f..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/completers/RouteCompleter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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
deleted file mode 100644
index cb97561..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * 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
deleted file mode 100644
index c0d2521..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/KarafStringEscapeUtils.java
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 66e1189..0000000
--- a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/StringEscape.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 6b0b127..0000000
--- a/platforms/karaf/commands/src/main/resources/META-INF/LICENSE.txt
+++ /dev/null
@@ -1,203 +0,0 @@
-
-                                 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
deleted file mode 100644
index 2e215bf..0000000
--- a/platforms/karaf/commands/src/main/resources/META-INF/NOTICE.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-   =========================================================================
-   ==  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
deleted file mode 100644
index 42f54a7..0000000
--- a/platforms/karaf/commands/src/main/resources/OSGI-INF/bundle.info
+++ /dev/null
@@ -1,34 +0,0 @@
-\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
deleted file mode 100644
index f3d70db..0000000
--- a/platforms/karaf/features/pom.xml
+++ /dev/null
@@ -1,230 +0,0 @@
-<?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</groupId>
-        <artifactId>karaf</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
deleted file mode 100644
index 3e98d70..0000000
--- a/platforms/karaf/features/src/main/resources/bundles.properties
+++ /dev/null
@@ -1,83 +0,0 @@
-## ---------------------------------------------------------------------------
-## 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
deleted file mode 100644
index 9e2b9f6..0000000
--- a/platforms/karaf/features/src/main/resources/features.xml
+++ /dev/null
@@ -1,2805 +0,0 @@
-<?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
deleted file mode 100644
index 21b4f92..0000000
--- a/platforms/karaf/pom.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?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</groupId>
-        <artifactId>platforms</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>karaf</artifactId>
-    <packaging>pom</packaging>
-    <name>Camel :: Platforms :: Apache Karaf</name>
-
-    <modules>
-        <module>commands</module>
-        <module>features</module>
-    </modules>
-
-    <!-- Needed when using SNAPSHOT version of Karaf
-        <pluginRepositories>
-          <pluginRepository>
-            <snapshots>
-              <enabled>true</enabled>
-            </snapshots>
-            <releases>
-              <enabled>false</enabled>
-            </releases>
-            <id>apache.snapshots</id>
-            <name>Apache Snapshot Repository</name>
-            <url>https://repository.apache.org/snapshots</url>
-          </pluginRepository>
-        </pluginRepositories>
-    -->
-</project>
diff --git a/platforms/pom.xml b/platforms/pom.xml
index dbbbe0c..fc30818 100644
--- a/platforms/pom.xml
+++ b/platforms/pom.xml
@@ -35,7 +35,6 @@
 
     <modules>
         <module>commands</module>
-        <module>karaf</module>
     </modules>
 
 </project>
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java
deleted file mode 100644
index 2ea477f..0000000
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareCatalogKarafMojo.java
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * 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.maven.packaging;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Collection;
-import java.util.LinkedHashSet;
-import java.util.Set;
-import java.util.TreeSet;
-
-import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-import org.apache.camel.tooling.util.FileUtil;
-import org.apache.camel.tooling.util.PackageHelper;
-import org.apache.maven.plugin.AbstractMojo;
-import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
-import org.apache.maven.plugins.annotations.Mojo;
-import org.apache.maven.plugins.annotations.Parameter;
-import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectHelper;
-
-/**
- * Prepares the Karaf provider camel catalog to include component it supports
- */
-@Mojo(name = "prepare-catalog-karaf", threadSafe = true)
-public class PrepareCatalogKarafMojo extends AbstractMojo {
-
-    // TODO: move to camel-karaf and rework this catalog maven plugin
-
-    /**
-     * The maven project.
-     */
-    @Parameter(property = "project", required = true, readonly = true)
-    protected MavenProject project;
-
-    /**
-     * The output directory for components catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/components")
-    protected File componentsOutDir;
-
-    /**
-     * The output directory for dataformats catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/dataformats")
-    protected File dataFormatsOutDir;
-
-    /**
-     * The output directory for languages catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/languages")
-    protected File languagesOutDir;
-
-    /**
-     * The output directory for others catalog
-     */
-    @Parameter(defaultValue = "${project.build.directory}/classes/org/apache/camel/catalog/karaf/others")
-    protected File othersOutDir;
-
-    /**
-     * The karaf features directory
-     */
-    @Parameter(defaultValue = "${project.build.directory}/../../../platforms/karaf/features/src/main/resources/")
-    protected File featuresDir;
-
-    /**
-     * The components directory where all the Apache Camel components are
-     */
-    @Parameter(defaultValue = "${project.build.directory}/../../../components")
-    protected File componentsDir;
-
-    /**
-     * The camel-core directory
-     */
-    @Parameter(defaultValue = "${project.build.directory}/../../../core/camel-core-engine")
-    protected File coreDir;
-
-    /**
-     * The camel-base directory
-     */
-    @Parameter(defaultValue = "${project.build.directory}/../../../core/camel-base")
-    protected File baseDir;
-
-    /**
-     * Maven ProjectHelper.
-     */
-    @Component
-    private MavenProjectHelper projectHelper;
-
-    /**
-     * Execute goal.
-     *
-     * @throws MojoExecutionException execution of the main class or one of the
-     *             threads it generated failed.
-     * @throws MojoFailureException something bad happened...
-     */
-    @Override
-    public void execute() throws MojoExecutionException, MojoFailureException {
-        Set<String> features = findKarafFeatures();
-        executeComponents(features);
-        executeDataFormats(features);
-        executeLanguages(features);
-        executeOthers(features);
-    }
-
-    protected void executeComponents(Set<String> features) throws MojoExecutionException, MojoFailureException {
-        getLog().info("Copying all Camel component json descriptors");
-
-        // lets use sorted set/maps
-        Set<File> jsonFiles = new TreeSet<>();
-        Set<File> componentFiles = new TreeSet<>();
-
-        // find all json files in components and camel-core
-        if (componentsDir != null && componentsDir.isDirectory()) {
-            File[] components = componentsDir.listFiles();
-            if (components != null) {
-                for (File dir : components) {
-                    if (dir.isDirectory() && !"target".equals(dir.getName())) {
-                        File target = new File(dir, "target/classes");
-
-                        // the directory must be in the list of known features
-                        if (!features.contains(dir.getName())) {
-                            continue;
-                        }
-
-                        // special for some components which is in a sub dir
-                        if ("camel-as2".equals(dir.getName())) {
-                            target = new File(dir, "camel-as2-component/target/classes");
-                        } else if ("camel-box".equals(dir.getName())) {
-                            target = new File(dir, "camel-box-component/target/classes");
-                        } else if ("camel-salesforce".equals(dir.getName())) {
-                            target = new File(dir, "camel-salesforce-component/target/classes");
-                        } else if ("camel-servicenow".equals(dir.getName())) {
-                            target = new File(dir, "camel-servicenow-component/target/classes");
-                        } else {
-                            // this module must be active with a source folder
-                            File src = new File(dir, "src");
-                            boolean active = src.isDirectory() && src.exists();
-                            if (!active) {
-                                continue;
-                            }
-                        }
-
-                        findComponentFilesRecursive(target, jsonFiles, componentFiles, new CamelComponentsFileFilter());
-                    }
-                }
-            }
-        }
-        if (coreDir != null && coreDir.isDirectory()) {
-            File target = new File(coreDir, "target/classes");
-            findComponentFilesRecursive(target, jsonFiles, componentFiles, new CamelComponentsFileFilter());
-        }
-
-        getLog().info("Found " + componentFiles.size() + " component.properties files");
-        getLog().info("Found " + jsonFiles.size() + " component json files");
-
-        // copy json files
-        Path outDir = componentsOutDir.toPath();
-        copyFiles(outDir, jsonFiles);
-        generateJsonList(outDir, "../components.properties");
-    }
-
-    protected void executeDataFormats(Set<String> features) throws MojoExecutionException, MojoFailureException {
-        getLog().info("Copying all Camel dataformat json descriptors");
-
-        // lets use sorted set/maps
-        Set<File> jsonFiles = new TreeSet<>();
-        Set<File> dataFormatFiles = new TreeSet<>();
-
-        // find all data formats from the components directory
-        if (componentsDir != null && componentsDir.isDirectory()) {
-            File[] dataFormats = componentsDir.listFiles();
-            if (dataFormats != null) {
-                for (File dir : dataFormats) {
-                    if (dir.isDirectory() && !"target".equals(dir.getName())) {
-                        // the directory must be in the list of known features
-                        if (!features.contains(dir.getName())) {
-                            continue;
-                        }
-
-                        // this module must be active with a source folder
-                        File src = new File(dir, "src");
-                        boolean active = src.isDirectory() && src.exists();
-                        if (!active) {
-                            continue;
-                        }
-
-                        File target = new File(dir, "target/classes");
-                        findDataFormatFilesRecursive(target, jsonFiles, dataFormatFiles, new CamelDataFormatsFileFilter());
-                    }
-                }
-            }
-        }
-        if (coreDir != null && coreDir.isDirectory()) {
-            File target = new File(coreDir, "target/classes");
-            findDataFormatFilesRecursive(target, jsonFiles, dataFormatFiles, new CamelDataFormatsFileFilter());
-        }
-
-        getLog().info("Found " + dataFormatFiles.size() + " dataformat.properties files");
-        getLog().info("Found " + jsonFiles.size() + " dataformat json files");
-
-        // copy json files
-        Path outDir = dataFormatsOutDir.toPath();
-        copyFiles(outDir, jsonFiles);
-        generateJsonList(outDir, "../dataformats.properties");
-    }
-
-    protected void executeLanguages(Set<String> features) throws MojoExecutionException, MojoFailureException {
-        getLog().info("Copying all Camel language json descriptors");
-
-        // lets use sorted set/maps
-        Set<File> jsonFiles = new TreeSet<>();
-        Set<File> languageFiles = new TreeSet<>();
-
-        // find all languages from the components directory
-        if (componentsDir != null && componentsDir.isDirectory()) {
-            File[] languages = componentsDir.listFiles();
-            if (languages != null) {
-                for (File dir : languages) {
-                    // the directory must be in the list of known features (or
-                    // known languages)
-                    if (!features.contains(dir.getName()) && !dir.getName().equals("camel-bean") && !dir.getName().equals("camel-xpath")) {
-                        continue;
-                    }
-
-                    // this module must be active with a source folder
-                    File src = new File(dir, "src");
-                    boolean active = src.isDirectory() && src.exists();
-                    if (!active) {
-                        continue;
-                    }
-
-                    if (dir.isDirectory() && !"target".equals(dir.getName())) {
-                        File target = new File(dir, "target/classes");
-                        findLanguageFilesRecursive(target, jsonFiles, languageFiles, new CamelLanguagesFileFilter());
-                    }
-                }
-            }
-        }
-        if (baseDir != null && baseDir.isDirectory()) {
-            File target = new File(baseDir, "target/classes");
-            findLanguageFilesRecursive(target, jsonFiles, languageFiles, new CamelLanguagesFileFilter());
-            // also look in camel-xml-jaxp
-            target = new File(baseDir, "../camel-xml-jaxp/target/classes");
-            findLanguageFilesRecursive(target, jsonFiles, languageFiles, new CamelLanguagesFileFilter());
-        }
-
-        getLog().info("Found " + languageFiles.size() + " language.properties files");
-        getLog().info("Found " + jsonFiles.size() + " language json files");
-
-        // copy json files
-        Path outDir = languagesOutDir.toPath();
-        copyFiles(outDir, jsonFiles);
-        generateJsonList(outDir, "../languages.properties");
-    }
-
-    protected void executeOthers(Set<String> features) throws MojoExecutionException, MojoFailureException {
-        getLog().info("Copying all Camel other json descriptors");
-
-        // lets use sorted set/maps
-        Set<File> jsonFiles = new TreeSet<>();
-        Set<File> otherFiles = new TreeSet<>();
-
-        // find all languages from the components directory
-        if (componentsDir != null && componentsDir.isDirectory()) {
-            File[] others = componentsDir.listFiles();
-            if (others != null) {
-                for (File dir : others) {
-                    // the directory must be in the list of known features
-                    if (!features.contains(dir.getName())) {
-                        continue;
-                    }
-
-                    // skip these special cases
-                    boolean special = "camel-core-osgi".equals(dir.getName()) || "camel-core-xml".equals(dir.getName()) || "camel-http-base".equals(dir.getName())
-                                      || "camel-http-common".equals(dir.getName()) || "camel-jetty-common".equals(dir.getName());
-                    boolean special2 = "camel-as2".equals(dir.getName()) || "camel-box".equals(dir.getName()) || "camel-olingo2".equals(dir.getName())
-                                       || "camel-olingo4".equals(dir.getName()) || "camel-servicenow".equals(dir.getName()) || "camel-salesforce".equals(dir.getName());
-                    boolean special3 = "camel-debezium-common".equals(dir.getName());
-                    if (special || special2 || special3) {
-                        continue;
-                    }
-
-                    // this module must be active with a source folder
-                    File src = new File(dir, "src");
-                    boolean active = src.isDirectory() && src.exists();
-                    if (!active) {
-                        continue;
-                    }
-
-                    if (dir.isDirectory() && !"target".equals(dir.getName())) {
-                        File target = new File(dir, "target/classes");
-                        findOtherFilesRecursive(target, jsonFiles, otherFiles, new CamelOthersFileFilter());
-                    }
-                }
-            }
-        }
-        getLog().info("Found " + otherFiles.size() + " other.properties files");
-        getLog().info("Found " + jsonFiles.size() + " other json files");
-
-        // copy json files
-        Path outDir = othersOutDir.toPath();
-        copyFiles(outDir, jsonFiles);
-        generateJsonList(outDir, "../others.properties");
-    }
-
-    private void findComponentFilesRecursive(File dir, Set<File> found, Set<File> components, FileFilter filter) {
-        File[] files = dir.listFiles(filter);
-        if (files != null) {
-            for (File file : files) {
-                // skip files in root dirs as Camel does not store information
-                // there but others may do
-                boolean rootDir = "classes".equals(dir.getName()) || "META-INF".equals(dir.getName());
-                boolean jsonFile = !rootDir && file.isFile() && file.getName().endsWith(PackageHelper.JSON_SUFIX);
-                boolean componentFile = !rootDir && file.isFile() && file.getName().equals("component.properties");
-                if (jsonFile) {
-                    found.add(file);
-                } else if (componentFile) {
-                    components.add(file);
-                } else if (file.isDirectory()) {
-                    findComponentFilesRecursive(file, found, components, filter);
-                }
-            }
-        }
-    }
-
-    private void findDataFormatFilesRecursive(File dir, Set<File> found, Set<File> dataFormats, FileFilter filter) {
-        File[] files = dir.listFiles(filter);
-        if (files != null) {
-            for (File file : files) {
-                // skip files in root dirs as Camel does not store information
-                // there but others may do
-                boolean rootDir = "classes".equals(dir.getName()) || "META-INF".equals(dir.getName());
-                boolean jsonFile = !rootDir && file.isFile() && file.getName().endsWith(PackageHelper.JSON_SUFIX);
-                boolean dataFormatFile = !rootDir && file.isFile() && file.getName().equals("dataformat.properties");
-                if (jsonFile) {
-                    found.add(file);
-                } else if (dataFormatFile) {
-                    dataFormats.add(file);
-                } else if (file.isDirectory()) {
-                    findDataFormatFilesRecursive(file, found, dataFormats, filter);
-                }
-            }
-        }
-    }
-
-    private void findLanguageFilesRecursive(File dir, Set<File> found, Set<File> languages, FileFilter filter) {
-        File[] files = dir.listFiles(filter);
-        if (files != null) {
-            for (File file : files) {
-                // skip files in root dirs as Camel does not store information
-                // there but others may do
-                boolean rootDir = "classes".equals(dir.getName()) || "META-INF".equals(dir.getName());
-                boolean jsonFile = !rootDir && file.isFile() && file.getName().endsWith(PackageHelper.JSON_SUFIX);
-                boolean languageFile = !rootDir && file.isFile() && file.getName().equals("language.properties");
-                if (jsonFile) {
-                    found.add(file);
-                } else if (languageFile) {
-                    languages.add(file);
-                } else if (file.isDirectory()) {
-                    findLanguageFilesRecursive(file, found, languages, filter);
-                }
-            }
-        }
-    }
-
-    private void findOtherFilesRecursive(File dir, Set<File> found, Set<File> others, FileFilter filter) {
-        File[] files = dir.listFiles(filter);
-        if (files != null) {
-            for (File file : files) {
-                // skip files in root dirs as Camel does not store information
-                // there but others may do
-                boolean rootDir = "classes".equals(dir.getName()) || "META-INF".equals(dir.getName());
-                boolean jsonFile = rootDir && file.isFile() && file.getName().endsWith(PackageHelper.JSON_SUFIX);
-                boolean otherFile = !rootDir && file.isFile() && file.getName().equals("other.properties");
-                if (jsonFile) {
-                    found.add(file);
-                } else if (otherFile) {
-                    others.add(file);
-                } else if (file.isDirectory()) {
-                    findOtherFilesRecursive(file, found, others, filter);
-                }
-            }
-        }
-    }
-
-    private static class CamelComponentsFileFilter implements FileFilter {
-
-        @Override
-        public boolean accept(File pathname) {
-            if (pathname.isDirectory() && pathname.getName().equals("model")) {
-                // do not check the camel-core model packages as there is no
-                // components there
-                return false;
-            }
-            if (pathname.isFile() && pathname.getName().endsWith(PackageHelper.JSON_SUFIX)) {
-                // must be a components json file
-                try {
-                    String json = PackageHelper.loadText(pathname);
-                    return "component".equals(PackageHelper.getSchemaKind(json));
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-            return pathname.isDirectory() || (pathname.isFile() && pathname.getName().equals("component.properties"));
-        }
-    }
-
-    private static class CamelDataFormatsFileFilter implements FileFilter {
-
-        @Override
-        public boolean accept(File pathname) {
-            if (pathname.isDirectory() && pathname.getName().equals("model")) {
-                // do not check the camel-core model packages as there is no
-                // components there
-                return false;
-            }
-            if (pathname.isFile() && pathname.getName().endsWith(PackageHelper.JSON_SUFIX)) {
-                // must be a dataformat json file
-                try {
-                    String json = PackageHelper.loadText(pathname);
-                    return "dataformat".equals(PackageHelper.getSchemaKind(json));
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-            return pathname.isDirectory() || (pathname.isFile() && pathname.getName().equals("dataformat.properties"));
-        }
-    }
-
-    private static class CamelLanguagesFileFilter implements FileFilter {
-
-        @Override
-        public boolean accept(File pathname) {
-            if (pathname.isDirectory() && pathname.getName().equals("model")) {
-                // do not check the camel-core model packages as there is no
-                // components there
-                return false;
-            }
-            if (pathname.isFile() && pathname.getName().endsWith(PackageHelper.JSON_SUFIX)) {
-                // must be a language json file
-                try {
-                    String json = PackageHelper.loadText(pathname);
-                    return "language".equals(PackageHelper.getSchemaKind(json));
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-            return pathname.isDirectory() || (pathname.isFile() && pathname.getName().equals("language.properties"));
-        }
-    }
-
-    private static class CamelOthersFileFilter implements FileFilter {
-
-        @Override
-        public boolean accept(File pathname) {
-            if (pathname.isFile() && pathname.getName().endsWith(PackageHelper.JSON_SUFIX)) {
-                // must be a language json file
-                try {
-                    String json = PackageHelper.loadText(pathname);
-                    return "other".equals(PackageHelper.getSchemaKind(json));
-                } catch (IOException e) {
-                    // ignore
-                }
-            }
-            return pathname.isDirectory() || (pathname.isFile() && pathname.getName().equals("other.properties"));
-        }
-    }
-
-    public static void copyFiles(Path outDir, Collection<File> files) throws MojoFailureException {
-        for (File file : files) {
-            Path to = outDir.resolve(file.getName());
-            try {
-                FileUtil.updateFile(file.toPath(), to);
-            } catch (IOException e) {
-                throw new MojoFailureException("Cannot copy file from " + file + " -> " + to, e);
-            }
-        }
-    }
-
-    public static Set<String> generateJsonList(Path outDir, String outFile) throws MojoFailureException {
-        Path all = outDir.resolve(outFile);
-        try {
-            Set<String> answer = Files.list(outDir).filter(p -> p.getFileName().toString().endsWith(PackageHelper.JSON_SUFIX)).map(p -> p.getFileName().toString())
-                // strip out .json from the name
-                .map(n -> n.substring(0, n.length() - PackageHelper.JSON_SUFIX.length())).sorted().collect(LinkedHashSet::new, LinkedHashSet::add, LinkedHashSet::addAll);
-            String data = String.join("\n", answer) + "\n";
-            FileUtil.updateFile(all, data);
-            return answer;
-        } catch (IOException e) {
-            throw new MojoFailureException("Error writing to file " + all);
-        }
-    }
-
-    public static void copyFile(File from, File to) throws IOException {
-        FileUtil.updateFile(from.toPath(), to.toPath());
-    }
-
-    private Set<String> findKarafFeatures() throws MojoExecutionException, MojoFailureException {
-        // load features.xml file and parse it
-
-        Set<String> answer = new LinkedHashSet<>();
-        File file = new File(featuresDir, "features.xml");
-        try (InputStream is = new FileInputStream(file)) {
-            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
-            dbf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
-            dbf.setIgnoringComments(true);
-            dbf.setIgnoringElementContentWhitespace(true);
-            dbf.setNamespaceAware(false);
-            dbf.setValidating(false);
-            dbf.setXIncludeAware(false);
-            dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, Boolean.TRUE);
-            Document dom = dbf.newDocumentBuilder().parse(is);
-
-            NodeList children = dom.getElementsByTagName("features");
-            for (int i = 0; i < children.getLength(); i++) {
-                Node child = children.item(i);
-                if (child.getNodeType() == Node.ELEMENT_NODE) {
-                    NodeList children2 = child.getChildNodes();
-                    for (int j = 0; j < children2.getLength(); j++) {
-                        Node child2 = children2.item(j);
-                        if ("feature".equals(child2.getNodeName())) {
-                            String artifactId = child2.getAttributes().getNamedItem("name").getTextContent();
-                            if (artifactId != null && artifactId.startsWith("camel-")) {
-                                answer.add(artifactId);
-                            }
-                        }
-                    }
-                }
-            }
-
-            getLog().info("Found " + answer.size() + " Camel features in file: " + file);
-
-        } catch (Exception e) {
-            throw new MojoExecutionException("Error reading features.xml file", e);
-        }
-
-        return answer;
-    }
-
-}


[camel] 02/03: CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)

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

commit 7f5597ec7b05d6e127e0d89860cce33926f8745d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 26 14:03:55 2020 +0100

    CAMEL-14715 - First steps to remove Karaf support from main repo (camel-karaf migration)
---
 .../catalog/maven/MavenVersionManagerTest.java     | 38 ----------------------
 1 file changed, 38 deletions(-)

diff --git a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java
index e3c74e2..6e8bafe 100644
--- a/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java
+++ b/catalog/camel-catalog-maven/src/test/java/org/apache/camel/catalog/maven/MavenVersionManagerTest.java
@@ -23,7 +23,6 @@ import org.apache.camel.catalog.CamelCatalog;
 import org.apache.camel.catalog.DefaultCamelCatalog;
 import org.apache.camel.catalog.DefaultRuntimeProvider;
 import org.apache.camel.catalog.impl.CatalogHelper;
-import org.apache.camel.catalog.karaf.KarafRuntimeProvider;
 import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -136,43 +135,6 @@ public class MavenVersionManagerTest extends Assert {
     }
 
     @Test
-    public void testCatalogKarafRuntimeProviderVersionSwitch() throws Exception {
-        CamelCatalog catalog = new DefaultCamelCatalog(true);
-        MavenVersionManager mvm = new MavenVersionManager();
-        mvm.addMavenRepository("asf-ga", "https://repo.maven.apache.org/maven2");
-        mvm.addMavenRepository("asf-snapshots", "https://repository.apache.org/content/groups/snapshots");
-        catalog.setVersionManager(mvm);
-        catalog.setRuntimeProvider(new KarafRuntimeProvider());
-
-        boolean loaded = catalog.loadVersion("2.18.1");
-        assertTrue("Unable to load Camel Catalog 2.18.1", loaded);
-        loaded = catalog.loadRuntimeProviderVersion("org.apache.camel", "camel-catalog-provider-karaf", "2.18.1");
-        assertTrue("Unable to load Karaf Provider Camel Catalog 2.18.1", loaded);
-        int components = catalog.findComponentNames().size();
-        System.out.println("2.18.1 has " + components + " components");
-        assertFalse("Should not have ejb component", catalog.findComponentNames().contains("ejb"));
-
-        loaded = catalog.loadVersion("2.19.1");
-        assertTrue("Unable to switch to Camel Catalog 2.19.1", loaded);
-        loaded = catalog.loadRuntimeProviderVersion("org.apache.camel", "camel-catalog-provider-karaf", "2.19.1");
-        assertTrue("Unable to load Karaf Provider Camel Catalog 2.19.1", loaded);
-        int componentsNewer = catalog.findComponentNames().size();
-        assertTrue("Both catalog versions shouldn't have the same count of components.", components != componentsNewer);
-        System.out.println("2.19.1 has " + componentsNewer + " components");
-        assertFalse("Should not have ejb component", catalog.findComponentNames().contains("ejb"));
-
-        loaded = catalog.loadVersion("2.18.1");
-        assertTrue("Unable to load Camel Catalog 2.18.1", loaded);
-        loaded = catalog.loadRuntimeProviderVersion("org.apache.camel", "camel-catalog-provider-karaf", "2.18.1");
-        assertTrue("Unable to load Karaf Provider Camel Catalog 2.18.1", loaded);
-        int components3 = catalog.findComponentNames().size();
-        assertTrue("Newer load does not match older one", components == components3);
-        assertFalse("Should not have ejb component", catalog.findComponentNames().contains("ejb"));
-
-        System.out.println("2.18.1 has " + components3 + " components");
-    }
-
-    @Test
     public void testLoadUnknownVersion() throws Exception {
         MavenVersionManager manager = new MavenVersionManager();
         String current = manager.getLoadedVersion();


[camel] 03/03: Regen

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

commit 6ef1d098340d999e1dca27ace921dc8901d56f9d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Mar 26 14:08:23 2020 +0100

    Regen
---
 docs/components/modules/ROOT/pages/weather-component.adoc | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/docs/components/modules/ROOT/pages/weather-component.adoc b/docs/components/modules/ROOT/pages/weather-component.adoc
index 1e0f826..139c1f0 100644
--- a/docs/components/modules/ROOT/pages/weather-component.adoc
+++ b/docs/components/modules/ROOT/pages/weather-component.adoc
@@ -53,18 +53,17 @@ from where you're using the API now on.
 
 
 // component options: START
-The Weather component supports 5 options, which are listed below.
+The Weather component supports 4 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *geolocationAccessKey* (common) | The geolocation service now needs an accessKey to be used |  | String
-| *geolocationRequestHostIP* (common) | The geolocation service now needs to specify the IP associated to the accessKey you're using |  | String
 | *bridgeErrorHandler* (consumer) | Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored. | false | boolean
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *httpClient* (advanced) | To use an existing configured http client (for example with http proxy) |  | CloseableHttpClient
 |===
 // component options: END
 
@@ -89,7 +88,7 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (48 parameters):
+=== Query Parameters (40 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -109,7 +108,6 @@ with the following path and query parameters:
 | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. |  | PollingConsumerPollStrategy
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
-| *httpConnectionManager* (advanced) | To use a custom HttpConnectionManager to manage connections |  | HttpConnectionManager
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
 | *cnt* (filter) | Number of results to be found |  | Integer
 | *ids* (filter) | List of id's of city/stations. You can separate multiple ids by comma. |  | String
@@ -120,13 +118,6 @@ with the following path and query parameters:
 | *topLat* (filter) | For boxed queries this is the top latitude. Needs to be used in combination with rightLon and zoom. |  | String
 | *zip* (filter) | Zip-code, e.g. 94040,us |  | String
 | *zoom* (filter) | For boxed queries this is the zoom. Needs to be used in combination with rightLon and topLat. |  | Integer
-| *proxyAuthDomain* (proxy) | Domain for proxy NTLM authentication |  | String
-| *proxyAuthHost* (proxy) | Optional host for proxy NTLM authentication |  | String
-| *proxyAuthMethod* (proxy) | Authentication method for proxy, either as Basic, Digest or NTLM. |  | String
-| *proxyAuthPassword* (proxy) | Password for proxy authentication |  | String
-| *proxyAuthUsername* (proxy) | Username for proxy authentication |  | String
-| *proxyHost* (proxy) | The proxy host name |  | String
-| *proxyPort* (proxy) | The proxy port number |  | Integer
 | *backoffErrorThreshold* (scheduler) | The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in. |  | int
 | *backoffIdleThreshold* (scheduler) | The number of subsequent idle polls that should happen before the backoffMultipler should kick-in. |  | int
 | *backoffMultiplier* (scheduler) | To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then backoffIdleThreshold and/or backoffErrorThreshold must also be configured. |  | int