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/27 14:00:36 UTC

[camel] 01/03: CAMEL-14715 - Removed Camel-Kura now in camel-karaf (camel-karaf migration)

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 a2f9e7d414f502f41d383e527c89776bd2249764
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Mar 27 14:03:12 2020 +0100

    CAMEL-14715 - Removed Camel-Kura now in camel-karaf (camel-karaf migration)
---
 apache-camel/src/main/descriptors/common-bin.xml   |   1 -
 bom/camel-bom/pom.xml                              |   5 -
 components/camel-kura/pom.xml                      | 125 ---------
 .../services/org/apache/camel/other.properties     |   7 -
 .../camel-kura/src/generated/resources/kura.json   |  14 -
 components/camel-kura/src/main/docs/kura.adoc      | 298 ---------------------
 .../apache/camel/component/kura/KuraRouter.java    | 149 -----------
 .../camel/component/kura/KuraRouterTest.java       | 144 ----------
 .../src/test/resources/log4j2.properties           |  30 ---
 components/camel-kura/src/test/resources/route.xml |  25 --
 components/pom.xml                                 |   1 -
 parent/pom.xml                                     |   5 -
 12 files changed, 804 deletions(-)

diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index 9b565f5..686c96e 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -237,7 +237,6 @@
         <include>org.apache.camel:camel-kafka</include>
         <include>org.apache.camel:camel-kubernetes</include>
         <include>org.apache.camel:camel-kudu</include>
-        <include>org.apache.camel:camel-kura</include>
         <include>org.apache.camel:camel-language</include>
         <include>org.apache.camel:camel-ldap</include>
         <include>org.apache.camel:camel-ldif</include>
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index d87e649..d67c336 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -1084,11 +1084,6 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-kura</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
         <artifactId>camel-language</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-kura/pom.xml b/components/camel-kura/pom.xml
deleted file mode 100644
index c23df0e..0000000
--- a/components/camel-kura/pom.xml
+++ /dev/null
@@ -1,125 +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/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.camel</groupId>
-        <artifactId>components</artifactId>
-        <version>3.2.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-kura</artifactId>
-    <packaging>jar</packaging>
-    <name>Camel :: Kura</name>
-    <description>Using Camel with Eclipse Kura (OSGi)</description>
-
-    <properties>
-        <firstVersion>2.15.0</firstVersion>
-        <label>iot,osgi</label>
-
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core-osgi</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.framework</artifactId>
-            <version>${felix-framework-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.configadmin</artifactId>
-            <version>${felix-configadmin-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr</artifactId>
-            <version>${felix-scr-version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.scr.annotations</artifactId>
-            <version>${felix-scr-annotations-version}</version>
-        </dependency>
-
-        <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>
-
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-xml-jaxb</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-mock</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-direct</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-io</groupId>
-            <artifactId>commons-io</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git a/components/camel-kura/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/components/camel-kura/src/generated/resources/META-INF/services/org/apache/camel/other.properties
deleted file mode 100644
index 343cb4c..0000000
--- a/components/camel-kura/src/generated/resources/META-INF/services/org/apache/camel/other.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-name=kura
-groupId=org.apache.camel
-artifactId=camel-kura
-version=3.2.0-SNAPSHOT
-projectName=Camel :: Kura
-projectDescription=Using Camel with Eclipse Kura (OSGi)
diff --git a/components/camel-kura/src/generated/resources/kura.json b/components/camel-kura/src/generated/resources/kura.json
deleted file mode 100644
index 1d8e69d..0000000
--- a/components/camel-kura/src/generated/resources/kura.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "other": {
-    "kind": "other",
-    "name": "kura",
-    "title": "Kura",
-    "description": "Using Camel with Eclipse Kura (OSGi)",
-    "deprecated": false,
-    "firstVersion": "2.15.0",
-    "label": "iot,osgi",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-kura",
-    "version": "3.2.0-SNAPSHOT"
-  }
-}
diff --git a/components/camel-kura/src/main/docs/kura.adoc b/components/camel-kura/src/main/docs/kura.adoc
deleted file mode 100644
index 43945d5..0000000
--- a/components/camel-kura/src/main/docs/kura.adoc
+++ /dev/null
@@ -1,298 +0,0 @@
-[[Kura-EclipseKuracomponent]]
-= Eclipse Kura component
-
-*Since Camel 2.15*
-
-This documentation page covers the integration options of Camel with the
-https://eclipse.org/kura/[Eclipse Kura] M2M gateway. The common reason
-to deploy Camel routes into the Eclipse Kura is to provide enterprise
-integration patterns and Camel components to the messaging M2M gateway.
-For example you might want to install Kura on Raspberry PI, then read
-temperature from the sensor attached to that Raspberry PI using Kura
-services and finally forward the current temperature value to your data
-center service using Camel EIP and components.
-
-[[Kura-KuraRouteractivator]]
-== KuraRouter activator
-
-Bundles deployed to the Eclipse Kura are usually
-http://eclipse.github.io/kura/doc/hello-example.html#create-java-class[developed
-as bundle activators]. So the easiest way to deploy Apache Camel routes
-into the Kura is to create an OSGi bundle containing the class extending
-`org.apache.camel.kura.KuraRouter` class:
-
-[source,java]
--------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-  @Override
-  public void configure() throws Exception {
-    from("timer:trigger").
-      to("netty-http:http://app.mydatacenter.com/api");
-  }
-
-}
--------------------------------------------------------
-
-Keep in mind that `KuraRouter` implements
-the `org.osgi.framework.BundleActivator` interface, so you need to
-register its `start` and `stop` lifecycle methods
-while http://eclipse.github.io/kura/doc/hello-example.html#create-component-class[creating
-Kura bundle component class].
-
-Kura router starts its own OSGi-aware `CamelContext`. It means that for
-every class extending `KuraRouter`, there will be a dedicated
-`CamelContext` instance. Ideally we recommend to deploy one `KuraRouter`
-per OSGi bundle.
-
-[[Kura-DeployingKuraRouter]]
-=== Deploying KuraRouter
-
-Bundle containing your Kura router class should import the following
-packages in the OSGi manifest:
-
-[source,xml]
---------------------------------------------------------------------------------------------------------------------
-Import-Package: org.osgi.framework;version="1.3.0",
-  org.slf4j;version="1.6.4",
-  org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model,
-  org.apache.camel.component.kura
---------------------------------------------------------------------------------------------------------------------
-
-Keep in mind that you don't have to import every Camel component bundle
-you plan to use in your routes, as Camel components are resolved as the
-services on the runtime level.
-
-Before you deploy your router bundle, be sure that you have deployed
-(and started) the following Camel core bundles (using Kura GoGo
-shell)...
-
-[source,xml]
------------------------------------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/org/apache/camel/camel-core/2.15.0/camel-core-2.15.0.jar
-start <camel-core-bundle-id>
-install file:///home/user/.m2/repository/org/apache/camel/camel-core-osgi/2.15.0/camel-core-osgi-2.15.0.jar
-start <camel-core-osgi-bundle-id>
-install file:///home/user/.m2/repository/org/apache/camel/camel-kura/2.15.0/camel-kura-2.15.0.jar 
-start <camel-kura-bundle-id>
------------------------------------------------------------------------------------------------------------
-
-...and all the components you plan to use in your routes:
-
-[source,xml]
------------------------------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar
-start <camel-stream-bundle-id>
------------------------------------------------------------------------------------------------------
-
-Then finally deploy your router bundle:
-
-[source,xml]
-----------------------------------------------------------------------------------
-install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar
-start <your-bundle-id>
-----------------------------------------------------------------------------------
-
-[[Kura-KuraRouterutilities]]
-=== KuraRouter utilities 
-
- Kura router base class provides many useful utilities. This section
-explores each of them.
-
-[[Kura-SLF4Jlogger]]
-==== SLF4J logger
-
-Kura uses SLF4J facade for logging purposes. Protected member `log`
-returns SLF4J logger instance associated with the given Kura router.
-
-[source,java]
-----------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        log.info("Configuring Camel routes!");
-        ...
-    }
-
-}
-----------------------------------------------
-
-[[Kura-BundleContext]]
-==== BundleContext
-
-Protected member `bundleContext` returns bundle context associated with
-the given Kura router.
-
-[source,java]
----------------------------------------------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        ServiceReference<MyService> serviceRef = bundleContext.getServiceReference(LogService.class.getName());
-        MyService myService = bundleContext.getService(serviceRef);
-        ...
-    }
-
-}
----------------------------------------------------------------------------------------------------------------
-
-[[Kura-CamelContext]]
-==== CamelContext
-
-Protected member `camelContext` is the `CamelContext` associated with
-the given Kura router.
-
-[source,java]
-----------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        camelContext.getStatus();
-        ...
-    }
-
-}
-----------------------------------------------
-
-[[Kura-ProducerTemplate]]
-==== ProducerTemplate
-
-Protected member `producerTemplate` is the `ProducerTemplate` instance
-associated with the given Camel context.
-
-[source,java]
------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        producerTemplate.sendBody("jms:temperature", 22.0);
-        ...
-    }
-
-}
------------------------------------------------------------
-
-[[Kura-ConsumerTemplate]]
-==== ConsumerTemplate
-
-Protected member `consumerTemplate` is the `ConsumerTemplate` instance
-associated with the given Camel context.
-
-[source,java]
---------------------------------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        double currentTemperature = producerTemplate.receiveBody("jms:temperature", Double.class);
-        ...
-    }
-
-}
---------------------------------------------------------------------------------------------------
-
-[[Kura-OSGiserviceresolver]]
-==== OSGi service resolver
-
-OSGi service resolver (`service(Class<T> serviceType)`) can be used to
-easily retrieve service by type from the OSGi bundle context.
-
-[source,java]
--------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        MyService myService = service(MyService.class);
-        ...
-    }
-
-}
--------------------------------------------------------
-
-If service is not found, a `null` value is returned. If you want your
-application to fail if the service is not available, use
-`requiredService(Class)` method instead. The `requiredService` throws
-`IllegalStateException` if a service cannot be found.
-
-[source,java]
----------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
-
-    @Override
-    public void configure() throws Exception {
-        MyService myService = requiredService(MyService.class);
-        ...
-    }
-
-}
----------------------------------------------------------------
-
-[[Kura-KuraRouteractivatorcallbacks]]
-=== KuraRouter activator callbacks
-
-Kura router comes with the lifecycle callbacks that can be used to
-customize the way the Camel router works. For example to configure the
-`CamelContext` instance associated with the router just before the
-former is started, override `beforeStart` method of the `KuraRouter`
-class:
-
-[source,java]
---------------------------------------------------------------------------
-public class MyKuraRouter extends KuraRouter {
- 
-  ...
-
-  protected void beforeStart(CamelContext camelContext) {
-    OsgiDefaultCamelContext osgiContext = (OsgiCamelContext) camelContext;
-    osgiContext.setName("NameOfTheRouter");
-  }
-
-}
---------------------------------------------------------------------------
-
-[[Kura-LoadingXMLroutesfromConfigurationAdmin]]
-=== Loading XML routes from ConfigurationAdmin
-
-Sometimes it is desired to read the XML definition of the routes from
-the server configuration. This a common scenario for IoT gateways where
-over-the-air redeployment cost may be significant. To address this
-requirement each `KuraRouter` looks for the
-`kura.camel.BUNDLE-SYMBOLIC-NAME.route` property from the `kura.camel`
-PID using the OSGi ConfigurationAdmin. This approach allows you to
-define Camel XML routes file per deployed `KuraRouter`. In order to
-update a route, just edit an appropriate configuration property and
-restart a bundle associated with it. The content of
-the `kura.camel.BUNDLE-SYMBOLIC-NAME.route` property is expected to be
-Camel XML route file, for example:
-
-[source,java]
-------------------------------------------------------
-<routes xmlns="http://camel.apache.org/schema/spring">
-    <route id="loaded">
-        <from uri="direct:bar"/>
-        <to uri="mock:bar"/>
-    </route>
-</routes>
-------------------------------------------------------
-
- 
-
-[[Kura-DeployingKurarouterasadeclarativeOSGiservice]]
-=== Deploying Kura router as a declarative OSGi service
-
-If you would like to deploy your Kura router as a declarative OSGi
-service, you can use `activate` and `deactivate` methods provided by
-`KuraRouter`.
-
-[source,java]
-----------------------------------------------------------------------------------------------------------------------------------------------
-<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true">
-  <implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/>
-</scr:component>
-----------------------------------------------------------------------------------------------------------------------------------------------
-
diff --git a/components/camel-kura/src/main/java/org/apache/camel/component/kura/KuraRouter.java b/components/camel-kura/src/main/java/org/apache/camel/component/kura/KuraRouter.java
deleted file mode 100644
index 6f48073..0000000
--- a/components/camel-kura/src/main/java/org/apache/camel/component/kura/KuraRouter.java
+++ /dev/null
@@ -1,149 +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.component.kura;
-
-import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.ConsumerTemplate;
-import org.apache.camel.ExtendedCamelContext;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.core.osgi.OsgiDefaultCamelContext;
-import org.apache.camel.model.Model;
-import org.apache.camel.model.RoutesDefinition;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.component.ComponentContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public abstract class KuraRouter extends RouteBuilder implements BundleActivator {
-
-    // Member collaborators
-
-    protected final Logger log = LoggerFactory.getLogger(getClass());
-
-    protected BundleContext bundleContext;
-
-    protected CamelContext camelContext;
-
-    protected ProducerTemplate producerTemplate;
-
-    protected ConsumerTemplate consumerTemplate;
-
-    // Lifecycle
-
-    @Override
-    public void start(BundleContext bundleContext) throws Exception {
-        try {
-            this.bundleContext = bundleContext;
-            log.debug("Initializing bundle {}.", bundleContext.getBundle().getBundleId());
-            camelContext = createCamelContext();
-
-            camelContext.addRoutes(this);
-            ConfigurationAdmin configurationAdmin = requiredService(ConfigurationAdmin.class);
-            Configuration camelKuraConfig = configurationAdmin.getConfiguration(camelXmlRoutesPid());
-            if (camelKuraConfig != null && camelKuraConfig.getProperties() != null) {
-                Object routePropertyValue = camelKuraConfig.getProperties().get(camelXmlRoutesProperty());
-                if (routePropertyValue != null) {
-                    InputStream routesXml = new ByteArrayInputStream(routePropertyValue.toString().getBytes());
-                    ExtendedCamelContext ecc = camelContext.adapt(ExtendedCamelContext.class);
-                    RoutesDefinition routes = (RoutesDefinition) ecc.getXMLRoutesDefinitionLoader().loadRoutesDefinition(ecc, routesXml);
-                    camelContext.getExtension(Model.class).addRouteDefinitions(routes.getRoutes());
-                }
-            }
-
-            beforeStart(camelContext);
-            log.debug("About to start Camel Kura router: {}", getClass().getName());
-            camelContext.start();
-            producerTemplate = camelContext.createProducerTemplate();
-            consumerTemplate = camelContext.createConsumerTemplate();
-            log.debug("Bundle {} started.", bundleContext.getBundle().getBundleId());
-        } catch (Throwable e) {
-            String errorMessage = "Problem when starting Kura module " + getClass().getName() + ":";
-            log.warn(errorMessage, e);
-
-            // Print error to the Kura console.
-            System.err.println(errorMessage);
-            e.printStackTrace();
-
-            throw e;
-        }
-    }
-
-    @Override
-    public void stop(BundleContext bundleContext) throws Exception {
-        log.debug("Stopping bundle {}.", bundleContext.getBundle().getBundleId());
-        camelContext.stop();
-        log.debug("Bundle {} stopped.", bundleContext.getBundle().getBundleId());
-    }
-
-    protected void activate(ComponentContext componentContext, Map<String, Object> properties) throws Exception {
-        start(componentContext.getBundleContext());
-    }
-
-    protected void deactivate(ComponentContext componentContext) throws Exception {
-        stop(componentContext.getBundleContext());
-    }
-
-    // Callbacks
-
-    @Override
-    public void configure() throws Exception {
-        log.debug("No programmatic routes configuration found.");
-    }
-
-    protected CamelContext createCamelContext() {
-        return new OsgiDefaultCamelContext(bundleContext);
-    }
-
-    protected void beforeStart(CamelContext camelContext) {
-        log.debug("Empty KuraRouter CamelContext before start configuration - skipping.");
-    }
-
-    // API Helpers
-
-    protected <T> T service(Class<T> serviceType) {
-        ServiceReference reference = bundleContext.getServiceReference(serviceType.getName());
-        return reference == null ? null : (T) bundleContext.getService(reference);
-    }
-
-    protected <T> T requiredService(Class<T> serviceType) {
-        ServiceReference reference = bundleContext.getServiceReference(serviceType.getName());
-        if (reference == null) {
-            throw new IllegalStateException("Cannot find service: " + serviceType.getName());
-        }
-        return (T) bundleContext.getService(reference);
-    }
-
-    // Private helpers
-
-    protected String camelXmlRoutesPid() {
-        return "kura.camel";
-    }
-
-    protected String camelXmlRoutesProperty() {
-        return "kura.camel." + bundleContext.getBundle().getSymbolicName() + ".route";
-    }
-
-}
diff --git a/components/camel-kura/src/test/java/org/apache/camel/component/kura/KuraRouterTest.java b/components/camel-kura/src/test/java/org/apache/camel/component/kura/KuraRouterTest.java
deleted file mode 100644
index 7cb653b..0000000
--- a/components/camel-kura/src/test/java/org/apache/camel/component/kura/KuraRouterTest.java
+++ /dev/null
@@ -1,144 +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.component.kura;
-
-import java.nio.charset.StandardCharsets;
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.ServiceStatus;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.model.Model;
-import org.apache.commons.io.IOUtils;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
-import static org.mockito.Mockito.mock;
-
-public class KuraRouterTest extends Assert {
-
-    TestKuraRouter router = new TestKuraRouter();
-
-    BundleContext bundleContext = mock(BundleContext.class, RETURNS_DEEP_STUBS);
-
-    ConfigurationAdmin configurationAdmin = mock(ConfigurationAdmin.class);
-
-    Configuration configuration = mock(Configuration.class);
-
-    @Before
-    public void before() throws Exception {
-        given(bundleContext.getBundle().getVersion().toString()).willReturn("version");
-        given(bundleContext.getBundle().getSymbolicName()).willReturn("symbolic_name");
-        given(bundleContext.getService(any(ServiceReference.class))).willReturn(configurationAdmin);
-
-        router.start(bundleContext);
-    }
-
-    @After
-    public void after() throws Exception {
-        router.stop(bundleContext);
-    }
-
-    @Test
-    public void shouldCloseCamelContext() throws Exception {
-        // When
-        router.stop(bundleContext);
-
-        // Then
-        Assert.assertEquals(ServiceStatus.Stopped, router.camelContext.getStatus());
-    }
-
-    @Test
-    public void shouldStartCamelContext() throws Exception {
-        // Given
-        String message = "foo";
-        MockEndpoint mockEndpoint = router.camelContext.getEndpoint("mock:test", MockEndpoint.class);
-        mockEndpoint.expectedBodiesReceived(message);
-
-        // When
-        router.producerTemplate.sendBody("direct:start", message);
-
-        // Then
-        mockEndpoint.assertIsSatisfied();
-    }
-
-    @Test
-    public void shouldCreateConsumerTemplate() throws Exception {
-        assertNotNull(router.consumerTemplate);
-    }
-
-    @Test
-    public void shouldReturnNoService() {
-        given(bundleContext.getServiceReference(any(String.class))).willReturn(null);
-        assertNull(router.service(ConfigurationAdmin.class));
-    }
-
-    @Test
-    public void shouldReturnService() {
-        assertNotNull(router.service(ConfigurationAdmin.class));
-    }
-
-    @Test(expected = IllegalStateException.class)
-    public void shouldValidateLackOfService() {
-        given(bundleContext.getServiceReference(any(String.class))).willReturn(null);
-        router.requiredService(ConfigurationAdmin.class);
-    }
-
-    @Test
-    public void shouldLoadXmlRoutes() throws Exception {
-        // Given
-        given(configurationAdmin.getConfiguration(anyString())).willReturn(configuration);
-        Dictionary<String, Object> properties = new Hashtable<>();
-        String routeDefinition = IOUtils.toString(getClass().getResource("/route.xml"), StandardCharsets.UTF_8);
-        properties.put("kura.camel.symbolic_name.route", routeDefinition);
-        given(configuration.getProperties()).willReturn(properties);
-
-        // When
-        router.start(router.bundleContext);
-
-        // Then
-        assertNotNull(router.camelContext.getExtension(Model.class).getRouteDefinition("loaded"));
-    }
-
-    static class TestKuraRouter extends KuraRouter {
-
-        @Override
-        public void configure() throws Exception {
-            from("direct:start").to("mock:test");
-        }
-
-        @Override
-        protected CamelContext createCamelContext() {
-            return new DefaultCamelContext();
-        }
-
-    }
-
-}
-
diff --git a/components/camel-kura/src/test/resources/log4j2.properties b/components/camel-kura/src/test/resources/log4j2.properties
deleted file mode 100644
index d3198e9..0000000
--- a/components/camel-kura/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,30 +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.
-## ---------------------------------------------------------------------------
-
-appender.console.type = Console
-appender.console.name = console
-appender.console.layout.type = PatternLayout
-appender.console.layout.pattern = %d %-5p %c{1} - %m %n
-appender.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-kura.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d %-5p %c{1} - %m %n
-logger.kura.name = org.apache.camel.component.kura
-logger.kura.level = DEBUG
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-kura/src/test/resources/route.xml b/components/camel-kura/src/test/resources/route.xml
deleted file mode 100644
index 3999ef3..0000000
--- a/components/camel-kura/src/test/resources/route.xml
+++ /dev/null
@@ -1,25 +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.
-
--->
-<routes xmlns="http://camel.apache.org/schema/spring">
-    <route id="loaded">
-        <from uri="direct:bar"/>
-        <to uri="mock:bar"/>
-    </route>
-</routes>
diff --git a/components/pom.xml b/components/pom.xml
index 7df6ae9..b29a4ae 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -251,7 +251,6 @@
         <module>camel-kafka</module>
         <module>camel-kubernetes</module>
         <module>camel-kudu</module>
-        <module>camel-kura</module>
         <module>camel-ldap</module>
         <module>camel-ldif</module>
         <module>camel-leveldb</module>
diff --git a/parent/pom.xml b/parent/pom.xml
index b277e28..d766bff 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -1826,11 +1826,6 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
-        <artifactId>camel-kura</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.camel</groupId>
         <artifactId>camel-language</artifactId>
         <version>${project.version}</version>
       </dependency>