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 2021/02/24 13:11:11 UTC

[camel] 01/05: CAMEL-16115 - Remove Camel-AWS-* components - AWS-DDB

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 e1f0190733fcae4173c95cf6b1e7057e651cf701
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Wed Feb 24 13:25:31 2021 +0100

    CAMEL-16115 - Remove Camel-AWS-* components - AWS-DDB
---
 components/camel-aws-ddb/pom.xml                   |  77 -----
 .../component/aws/ddb/DdbComponentConfigurer.java  | 143 --------
 .../component/aws/ddb/DdbEndpointConfigurer.java   | 127 -------
 .../component/aws/ddb/DdbEndpointUriFactory.java   |  79 -----
 .../ddbstream/DdbStreamComponentConfigurer.java    | 128 -------
 .../aws/ddbstream/DdbStreamEndpointConfigurer.java | 220 ------------
 .../aws/ddbstream/DdbStreamEndpointUriFactory.java |  94 -----
 .../StringSequenceNumberConverterLoader.java       |  40 ---
 .../services/org/apache/camel/TypeConverterLoader  |   2 -
 .../services/org/apache/camel/component.properties |   7 -
 .../services/org/apache/camel/component/aws-ddb    |   2 -
 .../org/apache/camel/component/aws-ddbstream       |   2 -
 .../org/apache/camel/configurer/aws-ddb-component  |   2 -
 .../org/apache/camel/configurer/aws-ddb-endpoint   |   2 -
 .../camel/configurer/aws-ddbstream-component       |   2 -
 .../apache/camel/configurer/aws-ddbstream-endpoint |   2 -
 .../org/apache/camel/urifactory/aws-ddb-endpoint   |   2 -
 .../apache/camel/urifactory/aws-ddbstream-endpoint |   2 -
 .../apache/camel/component/aws/ddb/aws-ddb.json    |  62 ----
 .../component/aws/ddbstream/aws-ddbstream.json     |  74 ----
 .../src/main/docs/aws-ddb-component.adoc           | 381 ---------------------
 .../src/main/docs/aws-ddbstream-component.adoc     | 226 ------------
 .../component/aws/ddb/AbstractDdbCommand.java      | 100 ------
 .../component/aws/ddb/BatchGetItemsCommand.java    |  49 ---
 .../camel/component/aws/ddb/DdbComponent.java      |  83 -----
 .../aws/ddb/DdbComponentVerifierExtension.java     | 103 ------
 .../camel/component/aws/ddb/DdbConfiguration.java  | 241 -------------
 .../camel/component/aws/ddb/DdbConstants.java      |  66 ----
 .../camel/component/aws/ddb/DdbEndpoint.java       | 204 -----------
 .../camel/component/aws/ddb/DdbOperations.java     |  30 --
 .../camel/component/aws/ddb/DdbProducer.java       |  95 -----
 .../camel/component/aws/ddb/DeleteItemCommand.java |  40 ---
 .../component/aws/ddb/DeleteTableCommand.java      |  49 ---
 .../component/aws/ddb/DescribeTableCommand.java    |  49 ---
 .../camel/component/aws/ddb/GetItemCommand.java    |  39 ---
 .../camel/component/aws/ddb/PutItemCommand.java    |  40 ---
 .../camel/component/aws/ddb/QueryCommand.java      |  72 ----
 .../camel/component/aws/ddb/ScanCommand.java       |  55 ---
 .../camel/component/aws/ddb/UpdateItemCommand.java |  50 ---
 .../component/aws/ddb/UpdateTableCommand.java      |  48 ---
 .../component/aws/ddbstream/BigIntComparisons.java |  44 ---
 .../aws/ddbstream/DdbStreamComponent.java          |  83 -----
 .../DdbStreamComponentVerifierExtension.java       |  92 -----
 .../aws/ddbstream/DdbStreamConfiguration.java      | 179 ----------
 .../component/aws/ddbstream/DdbStreamConsumer.java | 138 --------
 .../component/aws/ddbstream/DdbStreamEndpoint.java | 163 ---------
 .../aws/ddbstream/SequenceNumberProvider.java      |  21 --
 .../aws/ddbstream/ShardIteratorHandler.java        | 138 --------
 .../camel/component/aws/ddbstream/ShardList.java   | 147 --------
 .../ddbstream/StaticSequenceNumberProvider.java    |  31 --
 .../ddbstream/StringSequenceNumberConverter.java   |  32 --
 .../component/aws/ddb/AmazonDDBClientMock.java     | 205 -----------
 .../aws/ddb/BatchGetItemsCommandTest.java          |  74 ----
 .../aws/ddb/DdbComponentConfigurationTest.java     |  71 ----
 .../aws/ddb/DdbComponentRegistryClientTest.java    |  68 ----
 .../camel/component/aws/ddb/DdbComponentTest.java  |  73 ----
 .../aws/ddb/DdbComponentVerifierExtensionTest.java |  74 ----
 .../component/aws/ddb/DeleteItemCommandTest.java   |  70 ----
 .../component/aws/ddb/DeleteTableCommandTest.java  |  64 ----
 .../aws/ddb/DescribeTableCommandTest.java          |  64 ----
 .../component/aws/ddb/GetItemCommandTest.java      |  68 ----
 .../component/aws/ddb/PutItemCommandTest.java      |  67 ----
 .../camel/component/aws/ddb/QueryCommandTest.java  |  87 -----
 .../camel/component/aws/ddb/ScanCommandTest.java   |  75 ----
 .../component/aws/ddb/UpdateItemCommandTest.java   |  79 -----
 .../component/aws/ddb/UpdateTableCommandTest.java  |  54 ---
 .../integration/DdbComponentIntegrationTest.java   | 151 --------
 .../DdbStreamComponentConfigurationTest.java       |  82 -----
 .../DdbStreamComponentVerifierExtensionTest.java   |  74 ----
 .../aws/ddbstream/DdbStreamConsumerTest.java       | 214 ------------
 .../aws/ddbstream/DdbStreamEndpointTest.java       | 102 ------
 .../aws/ddbstream/ShardIteratorHandlerTest.java    | 191 -----------
 .../ShardListAfterSequenceParametrisedTest.java    |  64 ----
 .../ShardListAtSequenceParametrisedTest.java       |  59 ----
 .../component/aws/ddbstream/ShardListTest.java     | 149 --------
 .../src/test/resources/log4j2.properties           |  28 --
 components/pom.xml                                 |   1 -
 77 files changed, 6465 deletions(-)

diff --git a/components/camel-aws-ddb/pom.xml b/components/camel-aws-ddb/pom.xml
deleted file mode 100644
index 77c2c3d..0000000
--- a/components/camel-aws-ddb/pom.xml
+++ /dev/null
@@ -1,77 +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>components</artifactId>
-        <version>3.9.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>camel-aws-ddb</artifactId>
-    <packaging>jar</packaging>
-
-    <name>Camel :: AWS DDB (deprecated)</name>
-    <description>A Camel Amazon DynamoDB Web Service Component</description>
-
-    <properties>
-        <deprecatedSince>3.8.0</deprecatedSince>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-support</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk-dynamodb</artifactId>
-            <version>${aws-java-sdk-version}</version>
-        </dependency>
-
-        <!-- for testing -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-test-spring-junit5</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-core-catalog</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-slf4j-impl</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-junit-jupiter</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java
deleted file mode 100644
index 3706643..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurer.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddb;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class DdbComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    private org.apache.camel.component.aws.ddb.DdbConfiguration getOrCreateConfiguration(DdbComponent target) {
-        if (target.getConfiguration() == null) {
-            target.setConfiguration(new org.apache.camel.component.aws.ddb.DdbConfiguration());
-        }
-        return target.getConfiguration();
-    }
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        DdbComponent target = (DdbComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "amazonddbclient":
-        case "amazonDDBClient": getOrCreateConfiguration(target).setAmazonDDBClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": getOrCreateConfiguration(target).setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "autowiredenabled":
-        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.ddb.DdbConfiguration.class, value)); return true;
-        case "consistentread":
-        case "consistentRead": getOrCreateConfiguration(target).setConsistentRead(property(camelContext, boolean.class, value)); return true;
-        case "keyattributename":
-        case "keyAttributeName": getOrCreateConfiguration(target).setKeyAttributeName(property(camelContext, java.lang.String.class, value)); return true;
-        case "keyattributetype":
-        case "keyAttributeType": getOrCreateConfiguration(target).setKeyAttributeType(property(camelContext, java.lang.String.class, value)); return true;
-        case "lazystartproducer":
-        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws.ddb.DdbOperations.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "readcapacity":
-        case "readCapacity": getOrCreateConfiguration(target).setReadCapacity(property(camelContext, java.lang.Long.class, value)); return true;
-        case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "writecapacity":
-        case "writeCapacity": getOrCreateConfiguration(target).setWriteCapacity(property(camelContext, java.lang.Long.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "amazonddbclient":
-        case "amazonDDBClient": return com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "autowiredenabled":
-        case "autowiredEnabled": return boolean.class;
-        case "configuration": return org.apache.camel.component.aws.ddb.DdbConfiguration.class;
-        case "consistentread":
-        case "consistentRead": return boolean.class;
-        case "keyattributename":
-        case "keyAttributeName": return java.lang.String.class;
-        case "keyattributetype":
-        case "keyAttributeType": return java.lang.String.class;
-        case "lazystartproducer":
-        case "lazyStartProducer": return boolean.class;
-        case "operation": return org.apache.camel.component.aws.ddb.DdbOperations.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "readcapacity":
-        case "readCapacity": return java.lang.Long.class;
-        case "region": return java.lang.String.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        case "writecapacity":
-        case "writeCapacity": return java.lang.Long.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        DdbComponent target = (DdbComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
-        case "amazonddbclient":
-        case "amazonDDBClient": return getOrCreateConfiguration(target).getAmazonDDBClient();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return getOrCreateConfiguration(target).isAutoDiscoverClient();
-        case "autowiredenabled":
-        case "autowiredEnabled": return target.isAutowiredEnabled();
-        case "configuration": return target.getConfiguration();
-        case "consistentread":
-        case "consistentRead": return getOrCreateConfiguration(target).isConsistentRead();
-        case "keyattributename":
-        case "keyAttributeName": return getOrCreateConfiguration(target).getKeyAttributeName();
-        case "keyattributetype":
-        case "keyAttributeType": return getOrCreateConfiguration(target).getKeyAttributeType();
-        case "lazystartproducer":
-        case "lazyStartProducer": return target.isLazyStartProducer();
-        case "operation": return getOrCreateConfiguration(target).getOperation();
-        case "proxyhost":
-        case "proxyHost": return getOrCreateConfiguration(target).getProxyHost();
-        case "proxyport":
-        case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
-        case "readcapacity":
-        case "readCapacity": return getOrCreateConfiguration(target).getReadCapacity();
-        case "region": return getOrCreateConfiguration(target).getRegion();
-        case "secretkey":
-        case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
-        case "writecapacity":
-        case "writeCapacity": return getOrCreateConfiguration(target).getWriteCapacity();
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointConfigurer.java
deleted file mode 100644
index 1e4b6c5..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointConfigurer.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddb;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class DdbEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        DdbEndpoint target = (DdbEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "amazonddbclient":
-        case "amazonDDBClient": target.getConfiguration().setAmazonDDBClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "consistentread":
-        case "consistentRead": target.getConfiguration().setConsistentRead(property(camelContext, boolean.class, value)); return true;
-        case "keyattributename":
-        case "keyAttributeName": target.getConfiguration().setKeyAttributeName(property(camelContext, java.lang.String.class, value)); return true;
-        case "keyattributetype":
-        case "keyAttributeType": target.getConfiguration().setKeyAttributeType(property(camelContext, java.lang.String.class, value)); return true;
-        case "lazystartproducer":
-        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws.ddb.DdbOperations.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": target.getConfiguration().setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": target.getConfiguration().setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": target.getConfiguration().setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "readcapacity":
-        case "readCapacity": target.getConfiguration().setReadCapacity(property(camelContext, java.lang.Long.class, value)); return true;
-        case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "writecapacity":
-        case "writeCapacity": target.getConfiguration().setWriteCapacity(property(camelContext, java.lang.Long.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "amazonddbclient":
-        case "amazonDDBClient": return com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "consistentread":
-        case "consistentRead": return boolean.class;
-        case "keyattributename":
-        case "keyAttributeName": return java.lang.String.class;
-        case "keyattributetype":
-        case "keyAttributeType": return java.lang.String.class;
-        case "lazystartproducer":
-        case "lazyStartProducer": return boolean.class;
-        case "operation": return org.apache.camel.component.aws.ddb.DdbOperations.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "readcapacity":
-        case "readCapacity": return java.lang.Long.class;
-        case "region": return java.lang.String.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        case "writecapacity":
-        case "writeCapacity": return java.lang.Long.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        DdbEndpoint target = (DdbEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return target.getConfiguration().getAccessKey();
-        case "amazonddbclient":
-        case "amazonDDBClient": return target.getConfiguration().getAmazonDDBClient();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
-        case "consistentread":
-        case "consistentRead": return target.getConfiguration().isConsistentRead();
-        case "keyattributename":
-        case "keyAttributeName": return target.getConfiguration().getKeyAttributeName();
-        case "keyattributetype":
-        case "keyAttributeType": return target.getConfiguration().getKeyAttributeType();
-        case "lazystartproducer":
-        case "lazyStartProducer": return target.isLazyStartProducer();
-        case "operation": return target.getConfiguration().getOperation();
-        case "proxyhost":
-        case "proxyHost": return target.getConfiguration().getProxyHost();
-        case "proxyport":
-        case "proxyPort": return target.getConfiguration().getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
-        case "readcapacity":
-        case "readCapacity": return target.getConfiguration().getReadCapacity();
-        case "region": return target.getConfiguration().getRegion();
-        case "secretkey":
-        case "secretKey": return target.getConfiguration().getSecretKey();
-        case "writecapacity":
-        case "writeCapacity": return target.getConfiguration().getWriteCapacity();
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointUriFactory.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointUriFactory.java
deleted file mode 100644
index 3d10758..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddb/DdbEndpointUriFactory.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddb;
-
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.camel.spi.EndpointUriFactory;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-public class DdbEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
-
-    private static final String BASE = ":tableName";
-
-    private static final Set<String> PROPERTY_NAMES;
-    private static final Set<String> SECRET_PROPERTY_NAMES;
-    static {
-        Set<String> props = new HashSet<>(16);
-        props.add("amazonDDBClient");
-        props.add("autoDiscoverClient");
-        props.add("proxyProtocol");
-        props.add("readCapacity");
-        props.add("secretKey");
-        props.add("keyAttributeType");
-        props.add("proxyHost");
-        props.add("tableName");
-        props.add("proxyPort");
-        props.add("keyAttributeName");
-        props.add("lazyStartProducer");
-        props.add("accessKey");
-        props.add("consistentRead");
-        props.add("region");
-        props.add("operation");
-        props.add("writeCapacity");
-        PROPERTY_NAMES = Collections.unmodifiableSet(props);
-        Set<String> secretProps = new HashSet<>(2);
-        secretProps.add("secretKey");
-        secretProps.add("accessKey");
-        SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
-    }
-
-    @Override
-    public boolean isEnabled(String scheme) {
-        return "aws-ddb".equals(scheme);
-    }
-
-    @Override
-    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
-        String syntax = scheme + BASE;
-        String uri = syntax;
-
-        Map<String, Object> copy = new HashMap<>(properties);
-
-        uri = buildPathParameter(syntax, uri, "tableName", null, true, copy);
-        uri = buildQueryParameters(uri, copy, encode);
-        return uri;
-    }
-
-    @Override
-    public Set<String> propertyNames() {
-        return PROPERTY_NAMES;
-    }
-
-    @Override
-    public Set<String> secretPropertyNames() {
-        return SECRET_PROPERTY_NAMES;
-    }
-
-    @Override
-    public boolean isLenientProperties() {
-        return false;
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java
deleted file mode 100644
index c77bcfc..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurer.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddbstream;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class DdbStreamComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    private org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration getOrCreateConfiguration(DdbStreamComponent target) {
-        if (target.getConfiguration() == null) {
-            target.setConfiguration(new org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration());
-        }
-        return target.getConfiguration();
-    }
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        DdbStreamComponent target = (DdbStreamComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": getOrCreateConfiguration(target).setAmazonDynamoDbStreamsClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": getOrCreateConfiguration(target).setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "autowiredenabled":
-        case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class, value)); return true;
-        case "iteratortype":
-        case "iteratorType": getOrCreateConfiguration(target).setIteratorType(property(camelContext, com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class, value)); return true;
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": getOrCreateConfiguration(target).setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "secretkey":
-        case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": getOrCreateConfiguration(target).setSequenceNumberProvider(property(camelContext, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": return com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "autowiredenabled":
-        case "autowiredEnabled": return boolean.class;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
-        case "configuration": return org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class;
-        case "iteratortype":
-        case "iteratorType": return com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class;
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": return int.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "region": return java.lang.String.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": return org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        DdbStreamComponent target = (DdbStreamComponent) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": return getOrCreateConfiguration(target).getAmazonDynamoDbStreamsClient();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return getOrCreateConfiguration(target).isAutoDiscoverClient();
-        case "autowiredenabled":
-        case "autowiredEnabled": return target.isAutowiredEnabled();
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
-        case "configuration": return target.getConfiguration();
-        case "iteratortype":
-        case "iteratorType": return getOrCreateConfiguration(target).getIteratorType();
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": return getOrCreateConfiguration(target).getMaxResultsPerRequest();
-        case "proxyhost":
-        case "proxyHost": return getOrCreateConfiguration(target).getProxyHost();
-        case "proxyport":
-        case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
-        case "region": return getOrCreateConfiguration(target).getRegion();
-        case "secretkey":
-        case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": return getOrCreateConfiguration(target).getSequenceNumberProvider();
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointConfigurer.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointConfigurer.java
deleted file mode 100644
index 0c0bdd1..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointConfigurer.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddbstream;
-
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.spi.ExtendedPropertyConfigurerGetter;
-import org.apache.camel.spi.PropertyConfigurerGetter;
-import org.apache.camel.spi.ConfigurerStrategy;
-import org.apache.camel.spi.GeneratedPropertyConfigurer;
-import org.apache.camel.util.CaseInsensitiveMap;
-import org.apache.camel.support.component.PropertyConfigurerSupport;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public class DdbStreamEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
-
-    @Override
-    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
-        DdbStreamEndpoint target = (DdbStreamEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": target.getConfiguration().setAmazonDynamoDbStreamsClient(property(camelContext, com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class, value)); return true;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
-        case "backofferrorthreshold":
-        case "backoffErrorThreshold": target.setBackoffErrorThreshold(property(camelContext, int.class, value)); return true;
-        case "backoffidlethreshold":
-        case "backoffIdleThreshold": target.setBackoffIdleThreshold(property(camelContext, int.class, value)); return true;
-        case "backoffmultiplier":
-        case "backoffMultiplier": target.setBackoffMultiplier(property(camelContext, int.class, value)); return true;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
-        case "delay": target.setDelay(property(camelContext, long.class, value)); return true;
-        case "exceptionhandler":
-        case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
-        case "exchangepattern":
-        case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
-        case "greedy": target.setGreedy(property(camelContext, boolean.class, value)); return true;
-        case "initialdelay":
-        case "initialDelay": target.setInitialDelay(property(camelContext, long.class, value)); return true;
-        case "iteratortype":
-        case "iteratorType": target.getConfiguration().setIteratorType(property(camelContext, com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class, value)); return true;
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": target.getConfiguration().setMaxResultsPerRequest(property(camelContext, int.class, value)); return true;
-        case "pollstrategy":
-        case "pollStrategy": target.setPollStrategy(property(camelContext, org.apache.camel.spi.PollingConsumerPollStrategy.class, value)); return true;
-        case "proxyhost":
-        case "proxyHost": target.getConfiguration().setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
-        case "proxyport":
-        case "proxyPort": target.getConfiguration().setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
-        case "proxyprotocol":
-        case "proxyProtocol": target.getConfiguration().setProxyProtocol(property(camelContext, com.amazonaws.Protocol.class, value)); return true;
-        case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
-        case "repeatcount":
-        case "repeatCount": target.setRepeatCount(property(camelContext, long.class, value)); return true;
-        case "runlogginglevel":
-        case "runLoggingLevel": target.setRunLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true;
-        case "scheduledexecutorservice":
-        case "scheduledExecutorService": target.setScheduledExecutorService(property(camelContext, java.util.concurrent.ScheduledExecutorService.class, value)); return true;
-        case "scheduler": target.setScheduler(property(camelContext, java.lang.Object.class, value)); return true;
-        case "schedulerproperties":
-        case "schedulerProperties": target.setSchedulerProperties(property(camelContext, java.util.Map.class, value)); return true;
-        case "secretkey":
-        case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "sendemptymessagewhenidle":
-        case "sendEmptyMessageWhenIdle": target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, value)); return true;
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": target.getConfiguration().setSequenceNumberProvider(property(camelContext, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class, value)); return true;
-        case "startscheduler":
-        case "startScheduler": target.setStartScheduler(property(camelContext, boolean.class, value)); return true;
-        case "timeunit":
-        case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true;
-        case "usefixeddelay":
-        case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true;
-        default: return false;
-        }
-    }
-
-    @Override
-    public Class<?> getOptionType(String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return java.lang.String.class;
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": return com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class;
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return boolean.class;
-        case "backofferrorthreshold":
-        case "backoffErrorThreshold": return int.class;
-        case "backoffidlethreshold":
-        case "backoffIdleThreshold": return int.class;
-        case "backoffmultiplier":
-        case "backoffMultiplier": return int.class;
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return boolean.class;
-        case "delay": return long.class;
-        case "exceptionhandler":
-        case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
-        case "exchangepattern":
-        case "exchangePattern": return org.apache.camel.ExchangePattern.class;
-        case "greedy": return boolean.class;
-        case "initialdelay":
-        case "initialDelay": return long.class;
-        case "iteratortype":
-        case "iteratorType": return com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class;
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": return int.class;
-        case "pollstrategy":
-        case "pollStrategy": return org.apache.camel.spi.PollingConsumerPollStrategy.class;
-        case "proxyhost":
-        case "proxyHost": return java.lang.String.class;
-        case "proxyport":
-        case "proxyPort": return java.lang.Integer.class;
-        case "proxyprotocol":
-        case "proxyProtocol": return com.amazonaws.Protocol.class;
-        case "region": return java.lang.String.class;
-        case "repeatcount":
-        case "repeatCount": return long.class;
-        case "runlogginglevel":
-        case "runLoggingLevel": return org.apache.camel.LoggingLevel.class;
-        case "scheduledexecutorservice":
-        case "scheduledExecutorService": return java.util.concurrent.ScheduledExecutorService.class;
-        case "scheduler": return java.lang.Object.class;
-        case "schedulerproperties":
-        case "schedulerProperties": return java.util.Map.class;
-        case "secretkey":
-        case "secretKey": return java.lang.String.class;
-        case "sendemptymessagewhenidle":
-        case "sendEmptyMessageWhenIdle": return boolean.class;
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": return org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class;
-        case "startscheduler":
-        case "startScheduler": return boolean.class;
-        case "timeunit":
-        case "timeUnit": return java.util.concurrent.TimeUnit.class;
-        case "usefixeddelay":
-        case "useFixedDelay": return boolean.class;
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
-        DdbStreamEndpoint target = (DdbStreamEndpoint) obj;
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "accesskey":
-        case "accessKey": return target.getConfiguration().getAccessKey();
-        case "amazondynamodbstreamsclient":
-        case "amazonDynamoDbStreamsClient": return target.getConfiguration().getAmazonDynamoDbStreamsClient();
-        case "autodiscoverclient":
-        case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
-        case "backofferrorthreshold":
-        case "backoffErrorThreshold": return target.getBackoffErrorThreshold();
-        case "backoffidlethreshold":
-        case "backoffIdleThreshold": return target.getBackoffIdleThreshold();
-        case "backoffmultiplier":
-        case "backoffMultiplier": return target.getBackoffMultiplier();
-        case "bridgeerrorhandler":
-        case "bridgeErrorHandler": return target.isBridgeErrorHandler();
-        case "delay": return target.getDelay();
-        case "exceptionhandler":
-        case "exceptionHandler": return target.getExceptionHandler();
-        case "exchangepattern":
-        case "exchangePattern": return target.getExchangePattern();
-        case "greedy": return target.isGreedy();
-        case "initialdelay":
-        case "initialDelay": return target.getInitialDelay();
-        case "iteratortype":
-        case "iteratorType": return target.getConfiguration().getIteratorType();
-        case "maxresultsperrequest":
-        case "maxResultsPerRequest": return target.getConfiguration().getMaxResultsPerRequest();
-        case "pollstrategy":
-        case "pollStrategy": return target.getPollStrategy();
-        case "proxyhost":
-        case "proxyHost": return target.getConfiguration().getProxyHost();
-        case "proxyport":
-        case "proxyPort": return target.getConfiguration().getProxyPort();
-        case "proxyprotocol":
-        case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
-        case "region": return target.getConfiguration().getRegion();
-        case "repeatcount":
-        case "repeatCount": return target.getRepeatCount();
-        case "runlogginglevel":
-        case "runLoggingLevel": return target.getRunLoggingLevel();
-        case "scheduledexecutorservice":
-        case "scheduledExecutorService": return target.getScheduledExecutorService();
-        case "scheduler": return target.getScheduler();
-        case "schedulerproperties":
-        case "schedulerProperties": return target.getSchedulerProperties();
-        case "secretkey":
-        case "secretKey": return target.getConfiguration().getSecretKey();
-        case "sendemptymessagewhenidle":
-        case "sendEmptyMessageWhenIdle": return target.isSendEmptyMessageWhenIdle();
-        case "sequencenumberprovider":
-        case "sequenceNumberProvider": return target.getConfiguration().getSequenceNumberProvider();
-        case "startscheduler":
-        case "startScheduler": return target.isStartScheduler();
-        case "timeunit":
-        case "timeUnit": return target.getTimeUnit();
-        case "usefixeddelay":
-        case "useFixedDelay": return target.isUseFixedDelay();
-        default: return null;
-        }
-    }
-
-    @Override
-    public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
-        switch (ignoreCase ? name.toLowerCase() : name) {
-        case "schedulerproperties":
-        case "schedulerProperties": return java.lang.Object.class;
-        default: return null;
-        }
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointUriFactory.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointUriFactory.java
deleted file mode 100644
index 64cbbb0..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointUriFactory.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddbstream;
-
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.camel.spi.EndpointUriFactory;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-public class DdbStreamEndpointUriFactory extends org.apache.camel.support.component.EndpointUriFactorySupport implements EndpointUriFactory {
-
-    private static final String BASE = ":tableName";
-
-    private static final Set<String> PROPERTY_NAMES;
-    private static final Set<String> SECRET_PROPERTY_NAMES;
-    static {
-        Set<String> props = new HashSet<>(31);
-        props.add("backoffMultiplier");
-        props.add("initialDelay");
-        props.add("amazonDynamoDbStreamsClient");
-        props.add("tableName");
-        props.add("scheduler");
-        props.add("proxyPort");
-        props.add("bridgeErrorHandler");
-        props.add("useFixedDelay");
-        props.add("runLoggingLevel");
-        props.add("backoffErrorThreshold");
-        props.add("greedy");
-        props.add("scheduledExecutorService");
-        props.add("repeatCount");
-        props.add("timeUnit");
-        props.add("autoDiscoverClient");
-        props.add("proxyProtocol");
-        props.add("secretKey");
-        props.add("iteratorType");
-        props.add("sendEmptyMessageWhenIdle");
-        props.add("schedulerProperties");
-        props.add("exchangePattern");
-        props.add("proxyHost");
-        props.add("sequenceNumberProvider");
-        props.add("backoffIdleThreshold");
-        props.add("delay");
-        props.add("pollStrategy");
-        props.add("startScheduler");
-        props.add("accessKey");
-        props.add("maxResultsPerRequest");
-        props.add("region");
-        props.add("exceptionHandler");
-        PROPERTY_NAMES = Collections.unmodifiableSet(props);
-        Set<String> secretProps = new HashSet<>(2);
-        secretProps.add("secretKey");
-        secretProps.add("accessKey");
-        SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
-    }
-
-    @Override
-    public boolean isEnabled(String scheme) {
-        return "aws-ddbstream".equals(scheme);
-    }
-
-    @Override
-    public String buildUri(String scheme, Map<String, Object> properties, boolean encode) throws URISyntaxException {
-        String syntax = scheme + BASE;
-        String uri = syntax;
-
-        Map<String, Object> copy = new HashMap<>(properties);
-
-        uri = buildPathParameter(syntax, uri, "tableName", null, true, copy);
-        uri = buildQueryParameters(uri, copy, encode);
-        return uri;
-    }
-
-    @Override
-    public Set<String> propertyNames() {
-        return PROPERTY_NAMES;
-    }
-
-    @Override
-    public Set<String> secretPropertyNames() {
-        return SECRET_PROPERTY_NAMES;
-    }
-
-    @Override
-    public boolean isLenientProperties() {
-        return false;
-    }
-}
-
diff --git a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverterLoader.java b/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverterLoader.java
deleted file mode 100644
index 7af3ddf..0000000
--- a/components/camel-aws-ddb/src/generated/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverterLoader.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws.ddbstream;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.TypeConversionException;
-import org.apache.camel.TypeConverterLoaderException;
-import org.apache.camel.spi.TypeConverterLoader;
-import org.apache.camel.spi.TypeConverterRegistry;
-import org.apache.camel.support.SimpleTypeConverter;
-import org.apache.camel.support.TypeConverterSupport;
-import org.apache.camel.util.DoubleMap;
-
-/**
- * Generated by camel build tools - do NOT edit this file!
- */
-@SuppressWarnings("unchecked")
-public final class StringSequenceNumberConverterLoader implements TypeConverterLoader {
-
-    public StringSequenceNumberConverterLoader() {
-    }
-
-    @Override
-    public void load(TypeConverterRegistry registry) throws TypeConverterLoaderException {
-        try {
-            registerConverters(registry);
-        } catch (Throwable e) {
-            // ignore on load error
-        }
-    }
-
-    private void registerConverters(TypeConverterRegistry registry) {
-        addTypeConverter(registry, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class, java.lang.String.class, false,
-            (type, exchange, value) -> org.apache.camel.component.aws.ddbstream.StringSequenceNumberConverter.toSequenceNumberProvider((java.lang.String) value));
-    }
-
-    private static void addTypeConverter(TypeConverterRegistry registry, Class<?> toType, Class<?> fromType, boolean allowNull, SimpleTypeConverter.ConversionMethod method) { 
-        registry.addTypeConverter(toType, fromType, new SimpleTypeConverter(allowNull, method));
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
deleted file mode 100644
index 9d632ae..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/TypeConverterLoader
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-org.apache.camel.component.aws.ddbstream.StringSequenceNumberConverterLoader
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component.properties
deleted file mode 100644
index c9d2180..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-components=aws-ddb aws-ddbstream
-groupId=org.apache.camel
-artifactId=camel-aws-ddb
-version=3.9.0-SNAPSHOT
-projectName=Camel :: AWS DDB (deprecated)
-projectDescription=A Camel Amazon DynamoDB Web Service Component
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddb b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddb
deleted file mode 100644
index dd227b1..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddb
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddb.DdbComponent
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddbstream b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddbstream
deleted file mode 100644
index d4855b2..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/component/aws-ddbstream
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddbstream.DdbStreamComponent
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-component b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-component
deleted file mode 100644
index 10e9a1c..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-component
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddb.DdbComponentConfigurer
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-endpoint b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-endpoint
deleted file mode 100644
index 550e520..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddb-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddb.DdbEndpointConfigurer
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-component b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-component
deleted file mode 100644
index fad2217..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-component
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddbstream.DdbStreamComponentConfigurer
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-endpoint b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-endpoint
deleted file mode 100644
index 3a3feb2..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws-ddbstream-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddbstream.DdbStreamEndpointConfigurer
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddb-endpoint b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddb-endpoint
deleted file mode 100644
index b399213..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddb-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddb.DdbEndpointUriFactory
diff --git a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddbstream-endpoint b/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddbstream-endpoint
deleted file mode 100644
index 8390606..0000000
--- a/components/camel-aws-ddb/src/generated/resources/META-INF/services/org/apache/camel/urifactory/aws-ddbstream-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws.ddbstream.DdbStreamEndpointUriFactory
diff --git a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json
deleted file mode 100644
index 9717615..0000000
--- a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddb/aws-ddb.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
-  "component": {
-    "kind": "component",
-    "name": "aws-ddb",
-    "title": "AWS DynamoDB",
-    "description": "Store and retrieve data from AWS DynamoDB service.",
-    "deprecated": true,
-    "deprecatedSince": "3.8.0",
-    "firstVersion": "2.10.0",
-    "label": "cloud,database,nosql",
-    "javaType": "org.apache.camel.component.aws.ddb.DdbComponent",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-aws-ddb",
-    "version": "3.9.0-SNAPSHOT",
-    "scheme": "aws-ddb",
-    "extendsScheme": "",
-    "syntax": "aws-ddb:tableName",
-    "async": false,
-    "api": false,
-    "consumerOnly": false,
-    "producerOnly": true,
-    "lenientProperties": false
-  },
-  "componentProperties": {
-    "amazonDDBClient": { "kind": "property", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDB", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instan [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddb.DdbConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
-    "consistentRead": { "kind": "property", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Determines whether or not strong consistency should be enforced when data is read." },
-    "keyAttributeName": { "kind": "property", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute name when creating table" },
-    "keyAttributeType": { "kind": "property", "displayName": "Key Attribute Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute type when creating table" },
-    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 star [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddb.DdbOperations", "enum": [ "BatchGetItems", "DeleteItem", "DeleteTable", "DescribeTable", "GetItem", "PutItem", "Query", "Scan", "UpdateItem", "UpdateTable" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws.ddb.DdbC [...]
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDB client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitalize [...]
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDB client" },
-    "readCapacity": { "kind": "property", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserve for reading resources from your table" },
-    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The region in which DDB client needs to work" },
-    "writeCapacity": { "kind": "property", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserved for writing resources to your table" },
-    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
-  },
-  "properties": {
-    "tableName": { "kind": "path", "displayName": "Table Name", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The name of the table currently worked with." },
-    "amazonDDBClient": { "kind": "parameter", "displayName": "Amazon DDBClient", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDB", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To use the AmazonDynamoDB as the client" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client insta [...]
-    "consistentRead": { "kind": "parameter", "displayName": "Consistent Read", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Determines whether or not strong consistency should be enforced when data is read." },
-    "keyAttributeName": { "kind": "parameter", "displayName": "Key Attribute Name", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute name when creating table" },
-    "keyAttributeType": { "kind": "parameter", "displayName": "Key Attribute Type", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Attribute type when creating table" },
-    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 sta [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddb.DdbOperations", "enum": [ "BatchGetItems", "DeleteItem", "DeleteTable", "DescribeTable", "GetItem", "PutItem", "Query", "Scan", "UpdateItem", "UpdateTable" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "PutItem", "configurationClass": "org.apache.camel.component.aws.ddb.Ddb [...]
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDB client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitaliz [...]
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the DDB client" },
-    "readCapacity": { "kind": "parameter", "displayName": "Read Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserve for reading resources from your table" },
-    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The region in which DDB client needs to work" },
-    "writeCapacity": { "kind": "parameter", "displayName": "Write Capacity", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "The provisioned throughput to reserved for writing resources to your table" },
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddb.DdbConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
-  }
-}
diff --git a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json b/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json
deleted file mode 100644
index a188783..0000000
--- a/components/camel-aws-ddb/src/generated/resources/org/apache/camel/component/aws/ddbstream/aws-ddbstream.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
-  "component": {
-    "kind": "component",
-    "name": "aws-ddbstream",
-    "title": "AWS DynamoDB Streams",
-    "description": "Receive messages from AWS DynamoDB Stream service.",
-    "deprecated": true,
-    "deprecatedSince": "3.8.0",
-    "firstVersion": "2.17.0",
-    "label": "cloud,messaging,streams",
-    "javaType": "org.apache.camel.component.aws.ddbstream.DdbStreamComponent",
-    "supportLevel": "Stable",
-    "groupId": "org.apache.camel",
-    "artifactId": "camel-aws-ddb",
-    "version": "3.9.0-SNAPSHOT",
-    "scheme": "aws-ddbstream",
-    "extendsScheme": "",
-    "syntax": "aws-ddbstream:tableName",
-    "async": false,
-    "api": false,
-    "consumerOnly": true,
-    "producerOnly": false,
-    "lenientProperties": false
-  },
-  "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a c [...]
-    "amazonDynamoDbStreamsClient": { "kind": "property", "displayName": "Amazon Dynamo Db Streams Client", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon DynamoDB client to use for [...]
-    "bridgeErrorHandler": { "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 me [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "The component configuration" },
-    "iteratorType": { "kind": "property", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.model.ShardIteratorType", "enum": [ "TRIM_HORIZON", "LATEST", "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "LATEST", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configu [...]
-    "maxResultsPerRequest": { "kind": "property", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDBStreams client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDBStreams client" },
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the D [...]
-    "region": { "kind": "property", "displayName": "Region", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "The region in which DDBStreams client needs to work" },
-    "sequenceNumberProvider": { "kind": "property", "displayName": "Sequence Number Provider", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddbstream.SequenceNumberProvider", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Provider for the sequence number when [...]
-    "autowiredEnabled": { "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which t [...]
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
-  },
-  "properties": {
-    "tableName": { "kind": "path", "displayName": "Table Name", "group": "consumer", "label": "consumer", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Name of the dynamodb table" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a  [...]
-    "amazonDynamoDbStreamsClient": { "kind": "parameter", "displayName": "Amazon Dynamo Db Streams Client", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon DynamoDB client to use fo [...]
-    "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "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 m [...]
-    "iteratorType": { "kind": "parameter", "displayName": "Iterator Type", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "com.amazonaws.services.dynamodbv2.model.ShardIteratorType", "enum": [ "TRIM_HORIZON", "LATEST", "AT_SEQUENCE_NUMBER", "AFTER_SEQUENCE_NUMBER" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "LATEST", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "config [...]
-    "maxResultsPerRequest": { "kind": "parameter", "displayName": "Max Results Per Request", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Maximum number of records that will be fetched in each poll" },
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the DDBStreams client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "consumer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the DDBStreams client" },
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "com.amazonaws.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the  [...]
-    "region": { "kind": "parameter", "displayName": "Region", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "The region in which DDBStreams client needs to work" },
-    "sendEmptyMessageWhenIdle": { "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." },
-    "sequenceNumberProvider": { "kind": "parameter", "displayName": "Sequence Number Provider", "group": "consumer", "label": "consumer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws.ddbstream.SequenceNumberProvider", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Provider for the sequence number whe [...]
-    "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...]
-    "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
-    "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation  [...]
-    "backoffErrorThreshold": { "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
-    "backoffIdleThreshold": { "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
-    "backoffMultiplier": { "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "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 agai [...]
-    "delay": { "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
-    "greedy": { "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
-    "initialDelay": { "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
-    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
-    "runLoggingLevel": { "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the logging level  [...]
-    "scheduledExecutorService": { "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
-    "scheduler": { "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
-    "schedulerProperties": { "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler." },
-    "startScheduler": { "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." },
-    "timeUnit": { "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." },
-    "useFixedDelay": { "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
-  }
-}
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
deleted file mode 100644
index 9d5f675..0000000
--- a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
+++ /dev/null
@@ -1,381 +0,0 @@
-[[aws-ddb-component]]
-= AWS DynamoDB Component (deprecated)
-:docTitle: AWS DynamoDB
-:artifactId: camel-aws-ddb
-:description: Store and retrieve data from AWS DynamoDB service.
-:since: 2.10
-:supportLevel: Stable-deprecated
-:deprecated: *deprecated*
-:component-header: Only producer is supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-ddb.adoc[opts=optional]
-//Manually maintained attributes
-:group: AWS
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The DynamoDB component supports storing and retrieving data from/to
-https://aws.amazon.com/dynamodb[Amazon's DynamoDB] service.
-
-Prerequisites
-
-You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon DynamoDB. More information is available at
-https://aws.amazon.com/dynamodb[Amazon DynamoDB].
-
-== URI Format
-
-[source,java]
-------------------------------
-aws-ddb://domainName[?options]
-------------------------------
-
-You can append query options to the URI in the following format,
-?options=value&option2=value&...
-
-== URI Options
-
-
-// component options: START
-The AWS DynamoDB component supports 17 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonDDBClient* (producer) | To use the AmazonDynamoDB as the client |  | AmazonDynamoDB
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (producer) | The component configuration |  | DdbConfiguration
-| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
-| *keyAttributeName* (producer) | Attribute name when creating table |  | String
-| *keyAttributeType* (producer) | Attribute type when creating table |  | String
-| *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 [...]
-| *operation* (producer) | What operation to perform. There are 10 enums and the value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | DdbOperations
-| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
-| *proxyPort* (producer) | To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | Integer
-| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
-| *region* (producer) | The region in which DDB client needs to work |  | String
-| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// component options: END
-
-
-
-
-// endpoint options: START
-The AWS DynamoDB endpoint is configured using URI syntax:
-
-----
-aws-ddb:tableName
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *tableName* | *Required* The name of the table currently worked with. |  | String
-|===
-
-
-=== Query Parameters (15 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *amazonDDBClient* (producer) | To use the AmazonDynamoDB as the client |  | AmazonDynamoDB
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *consistentRead* (producer) | Determines whether or not strong consistency should be enforced when data is read. | false | boolean
-| *keyAttributeName* (producer) | Attribute name when creating table |  | String
-| *keyAttributeType* (producer) | Attribute type when creating table |  | String
-| *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 [...]
-| *operation* (producer) | What operation to perform. There are 10 enums and the value can be one of: BatchGetItems, DeleteItem, DeleteTable, DescribeTable, GetItem, PutItem, Query, Scan, UpdateItem, UpdateTable | PutItem | DdbOperations
-| *proxyHost* (producer) | To define a proxy host when instantiating the DDB client |  | String
-| *proxyPort* (producer) | To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name Regions.EU_WEST_1.name() |  | Integer
-| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the DDB client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *readCapacity* (producer) | The provisioned throughput to reserve for reading resources from your table |  | Long
-| *region* (producer) | The region in which DDB client needs to work |  | String
-| *writeCapacity* (producer) | The provisioned throughput to reserved for writing resources to your table |  | Long
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// endpoint options: END
-
-
-
-
-Required DDB component options
-
-You have to provide the amazonDDBClient in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/dynamodb[Amazon's DynamoDB].
-
-== Usage
-
-=== Message headers evaluated by the DDB producer
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbBatchItems` |`Map<String, KeysAndAttributes>` |A map of the table name and corresponding items to get by primary key.
-
-|`CamelAwsDdbTableName` |`String` |Table Name for this operation.
-
-|`CamelAwsDdbKey` |`Key` |The primary key that uniquely identifies each item in a table.
-
-|`CamelAwsDdbReturnValues` |`String` |Use this parameter if you want to get the attribute name-value pairs
-before or after they are modified(NONE, ALL_OLD, UPDATED_OLD, ALL_NEW,
-UPDATED_NEW).
-
-|`CamelAwsDdbUpdateCondition` |`Map<String, ExpectedAttributeValue>` |Designates an attribute for a conditional modification.
-
-|`CamelAwsDdbAttributeNames` |`Collection<String>` |If attribute names are not specified then all attributes will be
-returned.
-
-|`CamelAwsDdbConsistentRead` |`Boolean` |If set to true, then a consistent read is issued, otherwise eventually
-consistent is used.
-
-|`CamelAwsDdbIndexName` |`String` |If set will be used as Secondary Index for Query operation.
-
-|`CamelAwsDdbItem` |`Map<String, AttributeValue>` |A map of the attributes for the item, and must include the primary key
-values that define the item.
-
-|`CamelAwsDdbExactCount` |`Boolean` |If set to true, Amazon DynamoDB returns a total number of items that
-match the query parameters, instead of a list of the matching items and
-their attributes.
-
-|`CamelAwsDdbKeyConditions` |`Map<String, Condition>` |This header specify the selection criteria for the
-query, and merge together the two old headers *CamelAwsDdbHashKeyValue*
-and *CamelAwsDdbScanRangeKeyCondition*
-
-|`CamelAwsDdbStartKey` |`Key` |Primary key of the item from which to continue an earlier query.
-
-|`CamelAwsDdbHashKeyValue` |`AttributeValue` |Value of the hash component of the composite primary key.
-
-|`CamelAwsDdbLimit` |`Integer` |The maximum number of items to return.
-
-|`CamelAwsDdbScanRangeKeyCondition` |`Condition` |A container for the attribute values and comparison operators to use for
-the query.
-
-|`CamelAwsDdbScanIndexForward` |`Boolean` |Specifies forward or backward traversal of the index.
-
-|`CamelAwsDdbScanFilter` |`Map<String, Condition>` |Evaluates the scan results and returns only the desired values.
-
-|`CamelAwsDdbUpdateValues` |`Map<String, AttributeValueUpdate>` |Map of attribute name to the new value and action for the update.
-|=======================================================================
-
-=== Message headers set during BatchGetItems operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbBatchResponse` |`Map<String,BatchResponse>` |Table names and the respective item attributes from the tables.
-
-|`CamelAwsDdbUnprocessedKeys` |`Map<String,KeysAndAttributes>` |Contains a map of tables and their respective keys that were not
-processed with the current response.
-|=======================================================================
-
-=== Message headers set during DeleteItem operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
-|=======================================================================
-
-=== Message headers set during DeleteTable operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbProvisionedThroughput`| | 
-
-|`ProvisionedThroughputDescription` | |The value of the ProvisionedThroughput property for this table
-
-|`CamelAwsDdbCreationDate` |`Date` |Creation DateTime of this table.
-
-|`CamelAwsDdbTableItemCount` |`Long` |Item count for this table.
-
-|`CamelAwsDdbKeySchema` |`KeySchema` |The KeySchema that identifies the primary key for this table. 
-*From Camel 2.16.0 the type of this header is List<KeySchemaElement> and not KeySchema*
-
-|`CamelAwsDdbTableName` |`String` |The table name. 
-
-|`CamelAwsDdbTableSize` |`Long` |The table size in bytes. 
-
-|`CamelAwsDdbTableStatus` |`String` |The status of the table: CREATING, UPDATING, DELETING, ACTIVE
-|=======================================================================
-
-=== Message headers set during DescribeTable operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbProvisionedThroughput` |{\{ProvisionedThroughputDescription}} |The value of the ProvisionedThroughput property for this table
-
-|`CamelAwsDdbCreationDate` |`Date` |Creation DateTime of this table.
-
-|`CamelAwsDdbTableItemCount` |`Long` |Item count for this table.
-
-|`CamelAwsDdbKeySchema` |{\{KeySchema}} |The KeySchema that identifies the primary key for this table.
-
-
-|`CamelAwsDdbTableName` |`String` |The table name.
-
-|`CamelAwsDdbTableSize` |`Long` |The table size in bytes.
-
-|`CamelAwsDdbTableStatus` |`String` |The status of the table: CREATING, UPDATING, DELETING, ACTIVE
-
-|`CamelAwsDdbReadCapacity` |`Long` |ReadCapacityUnits property of this table.
-
-|`CamelAwsDdbWriteCapacity` |`Long` |WriteCapacityUnits property of this table.
-|=======================================================================
-
-=== Message headers set during GetItem operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
-
-|=======================================================================
-
-=== Message headers set during PutItem operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
-
-|=======================================================================
-
-=== Message headers set during Query operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>` |The list of attributes returned by the operation.
-
-|`CamelAwsDdbLastEvaluatedKey` |`Key` |Primary key of the item where the query operation stopped, inclusive of
-the previous result set.
-
-|`CamelAwsDdbConsumedCapacity` |`Double` |The number of Capacity Units of the provisioned throughput of the table
-consumed during the operation.
-
-|`CamelAwsDdbCount` |`Integer` |Number of items in the response.
-|=======================================================================
-
-=== Message headers set during Scan operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>` |The list of attributes returned by the operation.
-
-|`CamelAwsDdbLastEvaluatedKey` |`Key` |Primary key of the item where the query operation stopped, inclusive of
-the previous result set.
-
-|`CamelAwsDdbConsumedCapacity` |`Double` |The number of Capacity Units of the provisioned throughput of the table
-consumed during the operation.
-
-|`CamelAwsDdbCount` |`Integer` |Number of items in the response.
-
-|`CamelAwsDdbScannedCount` |`Integer` |Number of items in the complete scan before any filters are applied.
-|=======================================================================
-
-=== Message headers set during UpdateItem operation
-
-[width="100%",cols="10%,10%,80%",options="header",]
-|=======================================================================
-|Header |Type |Description
-
-|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>` |The list of attributes returned by the operation.
-
-|=======================================================================
-
-=== Advanced AmazonDynamoDB configuration
-
-If you need more control over the `AmazonDynamoDB` instance
-configuration you can create your own instance and refer to it from the
-URI:
-
-[source,java]
-----------------------------------------------------
-from("direct:start")
-.to("aws-ddb://domainName?amazonDDBClient=#client");
-----------------------------------------------------
-
-The `#client` refers to a `AmazonDynamoDB` in the
-Registry.
-
-For example if your Camel Application is running behind a firewall:
-
-[source,java]
---------------------------------------------------------------------------------------
-AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
-ClientConfiguration clientConfiguration = new ClientConfiguration();
-clientConfiguration.setProxyHost("http://myProxyHost");
-clientConfiguration.setProxyPort(8080);
-
-AmazonDynamoDB client = new AmazonDynamoDBClient(awsCredentials, clientConfiguration);
-
-registry.bind("client", client);
---------------------------------------------------------------------------------------
-
-== Supported producer operations
-
-- BatchGetItems
-- DeleteItem
-- DeleteTable
-- DescribeTable
-- GetItem
-- PutItem
-- Query
-- Scan
-- UpdateItem
-- UpdateTable
-
-== Automatic detection of AmazonDynamoDB client in registry
-
-The component is capable of detecting the presence of an AmazonDynamoDB bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-== Dependencies
-
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
-
-[source,xml]
----------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws-ddb</artifactId>
-    <version>${camel-version}</version>
-</dependency>
----------------------------------------
-
-where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-
-include::camel-spring-boot::page$aws-ddb-starter.adoc[]
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
deleted file mode 100644
index 0f070fe..0000000
--- a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
+++ /dev/null
@@ -1,226 +0,0 @@
-[[aws-ddbstream-component]]
-= AWS DynamoDB Streams Component (deprecated)
-:docTitle: AWS DynamoDB Streams
-:artifactId: camel-aws-ddb
-:description: Receive messages from AWS DynamoDB Stream service.
-:since: 2.17
-:supportLevel: Stable-deprecated
-:deprecated: *deprecated*
-:component-header: Only consumer is supported
-include::{cq-version}@camel-quarkus:ROOT:partial$reference/components/aws-ddbstream.adoc[opts=optional]
-//Manually maintained attributes
-:group: AWS
-
-*Since Camel {since}*
-
-*{component-header}*
-
-The DynamoDB Stream component supports receiving messages from
-Amazon DynamoDB Stream service.
-
-Prerequisites
-
-You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon DynamoDB Streams. More information are available
-at https://aws.amazon.com/dynamodb/[AWS DynamoDB]
-
-== URI Format
-
-[source,java]
-------------------------------------
-aws-ddbstream://table-name[?options]
-------------------------------------
-
-The stream needs to be created prior to it being used. +
- You can append query options to the URI in the following format,
-?options=value&option2=value&...
-
-== URI Options
-
-
-// component options: START
-The AWS DynamoDB Streams component supports 14 options, which are listed below.
-
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | boolean
-| *amazonDynamoDbStreamsClient* (consumer) | Amazon DynamoDB client to use for all requests for this endpoint |  | AmazonDynamoDBStreams
-| *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
-| *configuration* (consumer) | The component configuration |  | DdbStreamConfiguration
-| *iteratorType* (consumer) | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. There are 4 enums and the value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER | LATEST | ShardIteratorType
-| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
-| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
-| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
-| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *region* (consumer) | The region in which DDBStreams client needs to work |  | String
-| *sequenceNumberProvider* (consumer) | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. |  | SequenceNumberProvider
-| *autowiredEnabled* (advanced) | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// component options: END
-
-
-
-
-
-
-// endpoint options: START
-The AWS DynamoDB Streams endpoint is configured using URI syntax:
-
-----
-aws-ddbstream:tableName
-----
-
-with the following path and query parameters:
-
-=== Path Parameters (1 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *tableName* | *Required* Name of the dynamodb table |  | String
-|===
-
-
-=== Query Parameters (30 parameters):
-
-
-[width="100%",cols="2,5,^1,2",options="header"]
-|===
-| Name | Description | Default | Type
-| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking | true | boolean
-| *amazonDynamoDbStreamsClient* (consumer) | Amazon DynamoDB client to use for all requests for this endpoint |  | AmazonDynamoDBStreams
-| *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
-| *iteratorType* (consumer) | Defines where in the DynaboDB stream to start getting records. Note that using TRIM_HORIZON can cause a significant delay before the stream has caught up to real-time. if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider MUST be supplied. There are 4 enums and the value can be one of: TRIM_HORIZON, LATEST, AT_SEQUENCE_NUMBER, AFTER_SEQUENCE_NUMBER | LATEST | ShardIteratorType
-| *maxResultsPerRequest* (consumer) | Maximum number of records that will be fetched in each poll |  | int
-| *proxyHost* (consumer) | To define a proxy host when instantiating the DDBStreams client |  | String
-| *proxyPort* (consumer) | To define a proxy port when instantiating the DDBStreams client |  | Integer
-| *proxyProtocol* (consumer) | To define a proxy protocol when instantiating the DDBStreams client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
-| *region* (consumer) | The region in which DDBStreams client needs to work |  | String
-| *sendEmptyMessageWhenIdle* (consumer) | If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead. | false | boolean
-| *sequenceNumberProvider* (consumer) | Provider for the sequence number when using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER iterator types. Can be a registry reference or a literal sequence number. |  | SequenceNumberProvider
-| *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. |  | ExceptionHandler
-| *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut |  | ExchangePattern
-| *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
-| *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
-| *delay* (scheduler) | Milliseconds before the next poll. | 500 | long
-| *greedy* (scheduler) | If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. | false | boolean
-| *initialDelay* (scheduler) | Milliseconds before the first poll starts. | 1000 | long
-| *repeatCount* (scheduler) | Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever. | 0 | long
-| *runLoggingLevel* (scheduler) | The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. There are 6 enums and the value can be one of: TRACE, DEBUG, INFO, WARN, ERROR, OFF | TRACE | LoggingLevel
-| *scheduledExecutorService* (scheduler) | Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. |  | ScheduledExecutorService
-| *scheduler* (scheduler) | To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler | none | Object
-| *schedulerProperties* (scheduler) | To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. |  | Map
-| *startScheduler* (scheduler) | Whether the scheduler should be auto started. | true | boolean
-| *timeUnit* (scheduler) | Time unit for initialDelay and delay options. There are 7 enums and the value can be one of: NANOSECONDS, MICROSECONDS, MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS | MILLISECONDS | TimeUnit
-| *useFixedDelay* (scheduler) | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details. | true | boolean
-| *accessKey* (security) | Amazon AWS Access Key |  | String
-| *secretKey* (security) | Amazon AWS Secret Key |  | String
-|===
-// endpoint options: END
-
-
-
-
-
-
-Required DynampDBStream component options
-
-You have to provide the amazonDynamoDbStreamsClient in the
-Registry with proxies and relevant credentials
-configured.
-
-== Sequence Numbers
-
-You can provide a literal string as the sequence number or provide a
-bean in the registry. An example of using the bean would be to save your
-current position in the change feed and restore it on Camel startup.
-
-It is an error to provide a sequence number that is greater than the
-largest sequence number in the describe-streams result, as this will
-lead to the AWS call returning an HTTP 400.
-
-== Batch Consumer
-
-This component implements the Batch Consumer.
-
-This allows you for instance to know how many messages exists in this
-batch and for instance let the Aggregator
-aggregate this number of messages.
-
-== Usage
-
-=== AmazonDynamoDBStreamsClient configuration
-
-You will need to create an instance of AmazonDynamoDBStreamsClient and
-bind it to the registry
-
-[source,java]
---------------------------------------------------------------------------------------------------------------------
-ClientConfiguration clientConfiguration = new ClientConfiguration();
-clientConfiguration.setProxyHost("http://myProxyHost");
-clientConfiguration.setProxyPort(8080);
-
-Region region = Region.getRegion(Regions.fromName(region));
-region.createClient(AmazonDynamoDBStreamsClient.class, null, clientConfiguration);
-// the 'null' here is the AWSCredentialsProvider which defaults to an instance of DefaultAWSCredentialsProviderChain
-
-registry.bind("kinesisClient", client);
---------------------------------------------------------------------------------------------------------------------
-
-=== Providing AWS Credentials
-
-It is recommended that the credentials are obtained by using the
-http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html[DefaultAWSCredentialsProviderChain]
-that is the default when creating a new ClientConfiguration instance,
-however, a
-different http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWSCredentialsProvider.html[AWSCredentialsProvider]
-can be specified when calling createClient(...).
-
-== Coping with Downtime
-
-=== AWS DynamoDB Streams outage of less than 24 hours
-
-The consumer will resume from the last seen sequence number (as
-implemented
-for https://issues.apache.org/jira/browse/CAMEL-9515[CAMEL-9515]), so
-you should receive a flood of events in quick succession, as long as the
-outage did not also include DynamoDB itself.
-
-=== AWS DynamoDB Streams outage of more than 24 hours
-
-Given that AWS only retain 24 hours worth of changes, you will have
-missed change events no matter what mitigations are in place.
-
-== Automatic detection of AmazonDynamoDBStreams client in registry
-
-The component is capable of detecting the presence of an AmazonDynamoDBStreams bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-== Dependencies
-
-Maven users will need to add the following dependency to their pom.xml.
-
-*pom.xml*
-
-[source,xml]
----------------------------------------
-<dependency>
-    <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws</artifactId>
-    <version>${camel-version}</version>
-</dependency>
----------------------------------------
-
-where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-
-include::camel-spring-boot::page$aws-ddb-starter.adoc[]
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
deleted file mode 100644
index 2e65379..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/AbstractDdbCommand.java
+++ /dev/null
@@ -1,100 +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.aws.ddb;
-
-import java.util.Collection;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-
-public abstract class AbstractDdbCommand {
-    protected DdbConfiguration configuration;
-    protected Exchange exchange;
-    protected AmazonDynamoDB ddbClient;
-
-    public AbstractDdbCommand(AmazonDynamoDB ddbClient,
-                              DdbConfiguration configuration, Exchange exchange) {
-
-        this.ddbClient = ddbClient;
-        this.configuration = configuration;
-        this.exchange = exchange;
-    }
-
-    public abstract void execute();
-
-    protected Message getMessageForResponse(Exchange exchange) {
-        return exchange.getMessage();
-    }
-
-    protected String determineTableName() {
-        String tableName = exchange.getIn().getHeader(DdbConstants.TABLE_NAME, String.class);
-        return tableName != null ? tableName : configuration.getTableName();
-    }
-
-    @SuppressWarnings("unchecked")
-    protected Map<String, ExpectedAttributeValue> determineUpdateCondition() {
-        return exchange.getIn().getHeader(DdbConstants.UPDATE_CONDITION, Map.class);
-    }
-
-    @SuppressWarnings("unchecked")
-    protected Map<String, AttributeValue> determineItem() {
-        return exchange.getIn().getHeader(DdbConstants.ITEM, Map.class);
-    }
-
-    protected String determineReturnValues() {
-        return exchange.getIn().getHeader(DdbConstants.RETURN_VALUES, String.class);
-    }
-
-    protected void addAttributesToResult(Map<String, AttributeValue> attributes) {
-        Message msg = getMessageForResponse(exchange);
-        msg.setHeader(DdbConstants.ATTRIBUTES, attributes);
-    }
-
-    protected void addToResults(Map<String, Object> map) {
-        Message msg = getMessageForResponse(exchange);
-        for (Map.Entry<String, Object> en : map.entrySet()) {
-            msg.setHeader(en.getKey(), en.getValue());
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    protected Map<String, AttributeValue> determineKey() {
-        return exchange.getIn().getHeader(DdbConstants.KEY, Map.class);
-    }
-
-    @SuppressWarnings("unchecked")
-    protected Collection<String> determineAttributeNames() {
-        return exchange.getIn().getHeader(DdbConstants.ATTRIBUTE_NAMES, Collection.class);
-    }
-
-    protected Boolean determineConsistentRead() {
-        return exchange.getIn().getHeader(DdbConstants.CONSISTENT_READ, configuration.isConsistentRead(), Boolean.class);
-    }
-
-    @SuppressWarnings("unchecked")
-    protected Map<String, AttributeValue> determineExclusiveStartKey() {
-        return exchange.getIn().getHeader(DdbConstants.START_KEY, Map.class);
-    }
-
-    protected Integer determineLimit() {
-        return exchange.getIn().getHeader(DdbConstants.LIMIT, Integer.class);
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
deleted file mode 100644
index 6436cf8..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommand.java
+++ /dev/null
@@ -1,49 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.BatchGetItemRequest;
-import com.amazonaws.services.dynamodbv2.model.BatchGetItemResult;
-import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
-import org.apache.camel.Exchange;
-
-public class BatchGetItemsCommand extends AbstractDdbCommand {
-
-    public BatchGetItemsCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        BatchGetItemResult result = ddbClient.batchGetItem(
-                new BatchGetItemRequest().withRequestItems(determineBatchItems()));
-
-        Map tmp = new HashMap<>();
-        tmp.put(DdbConstants.BATCH_RESPONSE, result.getResponses());
-        tmp.put(DdbConstants.UNPROCESSED_KEYS, result.getUnprocessedKeys());
-        addToResults(tmp);
-    }
-
-    @SuppressWarnings("unchecked")
-    private Map<String, KeysAndAttributes> determineBatchItems() {
-        return exchange.getIn().getHeader(DdbConstants.BATCH_ITEMS, Map.class);
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java
deleted file mode 100644
index 91c1b7c..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponent.java
+++ /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.
- */
-package org.apache.camel.component.aws.ddb;
-
-import java.util.Map;
-import java.util.Set;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.annotations.Component;
-import org.apache.camel.support.DefaultComponent;
-
-@Component("aws-ddb")
-public class DdbComponent extends DefaultComponent {
-
-    @Metadata
-    private DdbConfiguration configuration = new DdbConfiguration();
-
-    public DdbComponent() {
-        this(null);
-    }
-
-    public DdbComponent(CamelContext context) {
-        super(context);
-
-        registerExtension(new DdbComponentVerifierExtension());
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-
-        if (remaining == null || remaining.trim().length() == 0) {
-            throw new IllegalArgumentException("Table name must be specified.");
-        }
-        DdbConfiguration configuration = this.configuration != null ? this.configuration.copy() : new DdbConfiguration();
-        configuration.setTableName(remaining);
-        DdbEndpoint endpoint = new DdbEndpoint(uri, this, configuration);
-        setProperties(endpoint, parameters);
-        if (endpoint.getConfiguration().isAutoDiscoverClient()) {
-            checkAndSetRegistryClient(configuration);
-        }
-        if (configuration.getAmazonDDBClient() == null
-                && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
-            throw new IllegalArgumentException("amazonDDBClient or accessKey and secretKey must be specified");
-        }
-
-        return endpoint;
-    }
-
-    public DdbConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    /**
-     * The component configuration
-     */
-    public void setConfiguration(DdbConfiguration configuration) {
-        this.configuration = configuration;
-    }
-
-    private void checkAndSetRegistryClient(DdbConfiguration configuration) {
-        Set<AmazonDynamoDB> clients = getCamelContext().getRegistry().findByType(AmazonDynamoDB.class);
-        if (clients.size() == 1) {
-            configuration.setAmazonDDBClient(clients.stream().findFirst().get());
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtension.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtension.java
deleted file mode 100644
index f9a77f4..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtension.java
+++ /dev/null
@@ -1,103 +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.aws.ddb;
-
-import java.util.Map;
-
-import com.amazonaws.SdkClientException;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
-import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
-import org.apache.camel.component.extension.verifier.ResultBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorHelper;
-
-public class DdbComponentVerifierExtension extends DefaultComponentVerifierExtension {
-
-    public DdbComponentVerifierExtension() {
-        this("aws-ddb");
-    }
-
-    public DdbComponentVerifierExtension(String scheme) {
-        super(scheme);
-    }
-
-    // *********************************
-    // Parameters validation
-    // *********************************
-
-    /**
-     * Basic check of the parameters (they are not empty)
-     *
-     * @param  parameters
-     * @return
-     */
-    @Override
-    protected Result verifyParameters(Map<String, Object> parameters) {
-
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
-                .error(ResultErrorHelper.requiresOption("accessKey", parameters))
-                .error(ResultErrorHelper.requiresOption("secretKey", parameters))
-                .error(ResultErrorHelper.requiresOption("region", parameters));
-
-        // Validate using the catalog
-
-        super.verifyParametersAgainstCatalog(builder, parameters);
-
-        return builder.build();
-    }
-
-    // *********************************
-    // Connectivity validation
-    // *********************************
-
-    /**
-     * To verify the connectivity, we will try a basic test connection to extract the list of tables and see if it fails
-     *
-     * @param  parameters
-     * @return
-     */
-    @Override
-    protected Result verifyConnectivity(Map<String, Object> parameters) {
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.CONNECTIVITY);
-
-        try {
-            DdbConfiguration configuration = setProperties(new DdbConfiguration(), parameters);
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().withCredentials(credentialsProvider)
-                    .withRegion(Regions.valueOf(configuration.getRegion())).build();
-            client.listTables();
-        } catch (SdkClientException e) {
-            ResultErrorBuilder errorBuilder
-                    = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getMessage())
-                            .detail("aws_ddb_exception_message", e.getMessage())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_CLASS, e.getClass().getName())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE, e);
-
-            builder.error(errorBuilder.build());
-        } catch (Exception e) {
-            builder.error(ResultErrorBuilder.withException(e).build());
-        }
-        return builder.build();
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
deleted file mode 100644
index eeb72bd..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
+++ /dev/null
@@ -1,241 +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.aws.ddb;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.spi.UriPath;
-
-@UriParams
-public class DdbConfiguration implements Cloneable {
-
-    @UriPath
-    @Metadata(required = true)
-    private String tableName;
-    @UriParam(label = "security", secret = true)
-    private String accessKey;
-    @UriParam(label = "security", secret = true)
-    private String secretKey;
-    @UriParam
-    private AmazonDynamoDB amazonDDBClient;
-    @UriParam
-    private boolean consistentRead;
-    @UriParam(defaultValue = "PutItem")
-    private DdbOperations operation = DdbOperations.PutItem;
-    @UriParam
-    private Long readCapacity;
-    @UriParam
-    private Long writeCapacity;
-    @UriParam
-    private String keyAttributeName;
-    @UriParam
-    private String keyAttributeType;
-    @UriParam(enums = "HTTP,HTTPS", defaultValue = "HTTPS")
-    private Protocol proxyProtocol = Protocol.HTTPS;
-    @UriParam
-    private String proxyHost;
-    @UriParam
-    private Integer proxyPort;
-    @UriParam
-    private String region;
-    @UriParam(label = "common", defaultValue = "true")
-    private boolean autoDiscoverClient = true;
-
-    public String getAccessKey() {
-        return accessKey;
-    }
-
-    /**
-     * Amazon AWS Access Key
-     */
-    public void setAccessKey(String accessKey) {
-        this.accessKey = accessKey;
-    }
-
-    public String getSecretKey() {
-        return secretKey;
-    }
-
-    /**
-     * Amazon AWS Secret Key
-     */
-    public void setSecretKey(String secretKey) {
-        this.secretKey = secretKey;
-    }
-
-    public AmazonDynamoDB getAmazonDDBClient() {
-        return amazonDDBClient;
-    }
-
-    /**
-     * To use the AmazonDynamoDB as the client
-     */
-    public void setAmazonDDBClient(AmazonDynamoDB amazonDDBClient) {
-        this.amazonDDBClient = amazonDDBClient;
-    }
-
-    public String getTableName() {
-        return tableName;
-    }
-
-    /**
-     * The name of the table currently worked with.
-     */
-    public void setTableName(String tableName) {
-        this.tableName = tableName;
-    }
-
-    public DdbOperations getOperation() {
-        return operation;
-    }
-
-    /**
-     * What operation to perform
-     */
-    public void setOperation(DdbOperations operation) {
-        this.operation = operation;
-    }
-
-    public boolean isConsistentRead() {
-        return consistentRead;
-    }
-
-    /**
-     * Determines whether or not strong consistency should be enforced when data is read.
-     */
-    public void setConsistentRead(boolean consistentRead) {
-        this.consistentRead = consistentRead;
-    }
-
-    public Long getReadCapacity() {
-        return readCapacity;
-    }
-
-    /**
-     * The provisioned throughput to reserve for reading resources from your table
-     */
-    public void setReadCapacity(Long readCapacity) {
-        this.readCapacity = readCapacity;
-    }
-
-    public Long getWriteCapacity() {
-        return writeCapacity;
-    }
-
-    /**
-     * The provisioned throughput to reserved for writing resources to your table
-     */
-    public void setWriteCapacity(Long writeCapacity) {
-        this.writeCapacity = writeCapacity;
-    }
-
-    public String getKeyAttributeName() {
-        return keyAttributeName;
-    }
-
-    /**
-     * Attribute name when creating table
-     */
-    public void setKeyAttributeName(String keyAttributeName) {
-        this.keyAttributeName = keyAttributeName;
-    }
-
-    public String getKeyAttributeType() {
-        return keyAttributeType;
-    }
-
-    /**
-     * Attribute type when creating table
-     */
-    public void setKeyAttributeType(String keyAttributeType) {
-        this.keyAttributeType = keyAttributeType;
-    }
-
-    public Protocol getProxyProtocol() {
-        return proxyProtocol;
-    }
-
-    /**
-     * To define a proxy protocol when instantiating the DDB client
-     */
-    public void setProxyProtocol(Protocol proxyProtocol) {
-        this.proxyProtocol = proxyProtocol;
-    }
-
-    public String getProxyHost() {
-        return proxyHost;
-    }
-
-    /**
-     * To define a proxy host when instantiating the DDB client
-     */
-    public void setProxyHost(String proxyHost) {
-        this.proxyHost = proxyHost;
-    }
-
-    public Integer getProxyPort() {
-        return proxyPort;
-    }
-
-    /**
-     * To define a proxy port when instantiating the DDB client. When using this parameter, the configuration will
-     * expect the capitalized name of the region (for example AP_EAST_1) You'll need to use the name
-     * Regions.EU_WEST_1.name()
-     */
-    public void setProxyPort(Integer proxyPort) {
-        this.proxyPort = proxyPort;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-
-    /**
-     * The region in which DDB client needs to work
-     */
-    public void setRegion(String region) {
-        this.region = region;
-    }
-
-    public boolean isAutoDiscoverClient() {
-        return autoDiscoverClient;
-    }
-
-    /**
-     * Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry
-     * automatically otherwise it will skip that checking.
-     */
-    public void setAutoDiscoverClient(boolean autoDiscoverClient) {
-        this.autoDiscoverClient = autoDiscoverClient;
-    }
-
-    // *************************************************
-    //
-    // *************************************************
-
-    public DdbConfiguration copy() {
-        try {
-            return (DdbConfiguration) super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new RuntimeCamelException(e);
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
deleted file mode 100644
index 32bbe69..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbConstants.java
+++ /dev/null
@@ -1,66 +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.aws.ddb;
-
-/**
- * Constants used in Camel AWS DynamoDB component
- */
-public interface DdbConstants {
-    String ATTRIBUTES = "CamelAwsDdbAttributes";
-    String ATTRIBUTE_NAMES = "CamelAwsDdbAttributeNames";
-    String BATCH_ITEMS = "CamelAwsDdbBatchItems";
-    String BATCH_RESPONSE = "CamelAwsDdbBatchResponse";
-    String CONSISTENT_READ = "CamelAwsDdbConsistentRead";
-    String CONSUMED_CAPACITY = "CamelAwsDdbConsumedCapacity";
-    String COUNT = "CamelAwsDdbCount";
-    String CREATION_DATE = "CamelAwsDdbCreationDate";
-    // Removed from DynamoDB v1 to v2
-    // String EXACT_COUNT = "CamelAwsDdbExactCount";
-    // Removed from DynamoDB v1 to v2
-    // String HASH_KEY_VALUE = "CamelAwsDdbHashKeyValue";
-    // Added INDEX_NAME for querying secondary indexes
-    String INDEX_NAME = "CamelAwsDdbIndexName";
-    String ITEM = "CamelAwsDdbItem";
-    String ITEMS = "CamelAwsDdbItems";
-    String ITEM_COUNT = "CamelAwsDdbTableItemCount";
-    String ITEM_NAME = "CamelAwsDdbItemName";
-    String MESSAGE_ID = "CamelAwsDdbMessageId";
-    String NEXT_TOKEN = "CamelAwsDdbNextToken";
-    String KEY = "CamelAwsDdbKey";
-    // Added from DynamoDB v1 to v2
-    String KEY_CONDITIONS = "CamelAwsDdbKeyConditions";
-    String KEY_SCHEMA = "CamelAwsDdbKeySchema";
-    String LAST_EVALUATED_KEY = "CamelAwsDdbLastEvaluatedKey";
-    String LIMIT = "CamelAwsDdbLimit";
-    String OPERATION = "CamelAwsDdbOperation";
-    String PROVISIONED_THROUGHPUT = "CamelAwsDdbProvisionedThroughput";
-    String READ_CAPACITY = "CamelAwsDdbReadCapacity";
-    String RETURN_VALUES = "CamelAwsDdbReturnValues";
-    String SCANNED_COUNT = "CamelAwsDdbScannedCount";
-    String SCAN_INDEX_FORWARD = "CamelAwsDdbScanIndexForward";
-    // Removed from DynamoDB v1 to v2
-    // String SCAN_RANGE_KEY_CONDITION = "CamelAwsDdbScanRangeKeyCondition";
-    String SCAN_FILTER = "CamelAwsDdbScanFilter";
-    String START_KEY = "CamelAwsDdbStartKey";
-    String TABLE_NAME = "CamelAwsDdbTableName";
-    String TABLE_SIZE = "CamelAwsDdbTableSize";
-    String TABLE_STATUS = "CamelAwsDdbTableStatus";
-    String UPDATE_CONDITION = "CamelAwsDdbUpdateCondition";
-    String UPDATE_VALUES = "CamelAwsDdbUpdateValues";
-    String UNPROCESSED_KEYS = "CamelAwsDdbUnprocessedKeys";
-    String WRITE_CAPACITY = "CamelAwsDdbWriteCapacity";
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
deleted file mode 100644
index ddc0680..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
+++ /dev/null
@@ -1,204 +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.aws.ddb;
-
-import com.amazonaws.AmazonServiceException;
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
-import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
-import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
-import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
-import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException;
-import com.amazonaws.services.dynamodbv2.model.TableDescription;
-import com.amazonaws.services.dynamodbv2.model.TableStatus;
-import org.apache.camel.Category;
-import org.apache.camel.Component;
-import org.apache.camel.Consumer;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.support.ScheduledPollEndpoint;
-import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Store and retrieve data from AWS DynamoDB service.
- */
-@UriEndpoint(firstVersion = "2.10.0", scheme = "aws-ddb", title = "AWS DynamoDB", syntax = "aws-ddb:tableName",
-             producerOnly = true, category = { Category.CLOUD, Category.DATABASE, Category.NOSQL })
-public class DdbEndpoint extends ScheduledPollEndpoint {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DdbEndpoint.class);
-
-    @UriParam
-    private DdbConfiguration configuration;
-
-    private AmazonDynamoDB ddbClient;
-
-    public DdbEndpoint(String uri, Component component, DdbConfiguration configuration) {
-        super(uri, component);
-        this.configuration = configuration;
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        return new DdbProducer(this);
-    }
-
-    @Override
-    public void doStart() throws Exception {
-        super.doStart();
-
-        ddbClient = configuration.getAmazonDDBClient() != null
-                ? configuration.getAmazonDDBClient()
-                : createDdbClient();
-
-        String tableName = getConfiguration().getTableName();
-        LOG.trace("Querying whether table [{}] already exists...", tableName);
-
-        try {
-            DescribeTableRequest request = new DescribeTableRequest().withTableName(tableName);
-            TableDescription tableDescription = ddbClient.describeTable(request).getTable();
-            if (!isTableActive(tableDescription)) {
-                waitForTableToBecomeAvailable(tableName);
-            }
-
-            LOG.trace("Table [{}] already exists", tableName);
-            return;
-        } catch (ResourceNotFoundException e) {
-            LOG.trace("Table [{}] doesn't exist yet", tableName);
-            LOG.trace("Creating table [{}]...", tableName);
-            TableDescription tableDescription = createTable(tableName);
-            if (!isTableActive(tableDescription)) {
-                waitForTableToBecomeAvailable(tableName);
-            }
-
-            LOG.trace("Table [{}] created", tableName);
-        }
-    }
-
-    @Override
-    public void doStop() throws Exception {
-        if (ObjectHelper.isEmpty(configuration.getAmazonDDBClient())) {
-            if (ddbClient != null) {
-                ddbClient.shutdown();
-            }
-        }
-        super.doStop();
-    }
-
-    private TableDescription createTable(String tableName) {
-        CreateTableRequest createTableRequest = new CreateTableRequest().withTableName(tableName)
-                .withKeySchema(
-                        new KeySchemaElement().withAttributeName(
-                                configuration.getKeyAttributeName())
-                                .withKeyType(configuration.getKeyAttributeType()))
-                .withProvisionedThroughput(
-                        new ProvisionedThroughput().withReadCapacityUnits(configuration.getReadCapacity())
-                                .withWriteCapacityUnits(configuration.getWriteCapacity()));
-        return getDdbClient().createTable(createTableRequest).getTableDescription();
-    }
-
-    public DdbConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    public AmazonDynamoDB getDdbClient() {
-        return ddbClient;
-    }
-
-    AmazonDynamoDB createDdbClient() {
-        AmazonDynamoDB client = null;
-        ClientConfiguration clientConfiguration = null;
-        AmazonDynamoDBClientBuilder clientBuilder = null;
-        boolean isClientConfigFound = false;
-        if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
-            clientConfiguration = new ClientConfiguration();
-            clientConfiguration.setProxyProtocol(configuration.getProxyProtocol());
-            clientConfiguration.setProxyHost(configuration.getProxyHost());
-            clientConfiguration.setProxyPort(configuration.getProxyPort());
-            isClientConfigFound = true;
-        }
-        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            if (isClientConfigFound) {
-                clientBuilder = AmazonDynamoDBClientBuilder.standard().withClientConfiguration(clientConfiguration)
-                        .withCredentials(credentialsProvider);
-            } else {
-                clientBuilder = AmazonDynamoDBClientBuilder.standard().withCredentials(credentialsProvider);
-            }
-        } else {
-            if (isClientConfigFound) {
-                clientBuilder = AmazonDynamoDBClientBuilder.standard();
-            } else {
-                clientBuilder = AmazonDynamoDBClientBuilder.standard().withClientConfiguration(clientConfiguration);
-            }
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
-            clientBuilder = clientBuilder.withRegion(Regions.valueOf(configuration.getRegion()));
-        }
-        client = clientBuilder.build();
-        return client;
-    }
-
-    private void waitForTableToBecomeAvailable(String tableName) {
-        LOG.trace("Waiting for [{}] to become ACTIVE...", tableName);
-
-        long waitTime = 5 * 60 * 1000;
-        while (waitTime > 0) {
-            try {
-                Thread.sleep(1000 * 5);
-                waitTime -= 5000;
-            } catch (Exception e) {
-            }
-            try {
-                DescribeTableRequest request = new DescribeTableRequest().withTableName(tableName);
-                TableDescription tableDescription = getDdbClient().describeTable(request).getTable();
-                if (isTableActive(tableDescription)) {
-                    LOG.trace("Table [{}] became active", tableName);
-                    return;
-                }
-                LOG.trace("Table [{}] not active yet", tableName);
-            } catch (AmazonServiceException ase) {
-                if (!ase.getErrorCode().equalsIgnoreCase("ResourceNotFoundException")) {
-                    throw ase;
-                }
-            }
-        }
-
-        throw new RuntimeException("Table " + tableName + " never went active");
-    }
-
-    private boolean isTableActive(TableDescription tableDescription) {
-        return tableDescription.getTableStatus().equals(TableStatus.ACTIVE.toString());
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbOperations.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbOperations.java
deleted file mode 100644
index cdb4320..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbOperations.java
+++ /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.
- */
-package org.apache.camel.component.aws.ddb;
-
-public enum DdbOperations {
-    BatchGetItems,
-    DeleteItem,
-    DeleteTable,
-    DescribeTable,
-    GetItem,
-    PutItem,
-    Query,
-    Scan,
-    UpdateItem,
-    UpdateTable
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbProducer.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbProducer.java
deleted file mode 100644
index 1a526bc..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DdbProducer.java
+++ /dev/null
@@ -1,95 +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.aws.ddb;
-
-import org.apache.camel.Endpoint;
-import org.apache.camel.Exchange;
-import org.apache.camel.support.DefaultProducer;
-import org.apache.camel.util.URISupport;
-
-/**
- * A Producer which stores data into the Amazon DynamoDB Service <a href="http://aws.amazon.com/dynamodb/">AWS
- * DynamoDB</a>
- */
-public class DdbProducer extends DefaultProducer {
-
-    private transient String ddbProducerToString;
-
-    public DdbProducer(Endpoint endpoint) {
-        super(endpoint);
-    }
-
-    @Override
-    public void process(Exchange exchange) throws Exception {
-        switch (determineOperation(exchange)) {
-            case BatchGetItems:
-                new BatchGetItemsCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case DeleteItem:
-                new DeleteItemCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case DeleteTable:
-                new DeleteTableCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case DescribeTable:
-                new DescribeTableCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case GetItem:
-                new GetItemCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case PutItem:
-                new PutItemCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case Query:
-                new QueryCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case Scan:
-                new ScanCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case UpdateItem:
-                new UpdateItemCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            case UpdateTable:
-                new UpdateTableCommand(getEndpoint().getDdbClient(), getConfiguration(), exchange).execute();
-                break;
-            default:
-                throw new IllegalArgumentException("Unsupported operation");
-        }
-    }
-
-    private DdbOperations determineOperation(Exchange exchange) {
-        DdbOperations operation = exchange.getIn().getHeader(DdbConstants.OPERATION, DdbOperations.class);
-        return operation != null ? operation : getConfiguration().getOperation();
-    }
-
-    protected DdbConfiguration getConfiguration() {
-        return getEndpoint().getConfiguration();
-    }
-
-    @Override
-    public String toString() {
-        if (ddbProducerToString == null) {
-            ddbProducerToString = "DdbProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
-        }
-        return ddbProducerToString;
-    }
-
-    @Override
-    public DdbEndpoint getEndpoint() {
-        return (DdbEndpoint) super.getEndpoint();
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
deleted file mode 100644
index 140b2d6..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteItemCommand.java
+++ /dev/null
@@ -1,40 +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.aws.ddb;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest;
-import com.amazonaws.services.dynamodbv2.model.DeleteItemResult;
-import org.apache.camel.Exchange;
-
-public class DeleteItemCommand extends AbstractDdbCommand {
-
-    public DeleteItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        DeleteItemResult result = ddbClient.deleteItem(new DeleteItemRequest()
-                .withTableName(determineTableName())
-                .withKey(determineKey())
-                .withReturnValues(determineReturnValues())
-                .withExpected(determineUpdateCondition()));
-
-        addAttributesToResult(result.getAttributes());
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
deleted file mode 100644
index 2a4fe19..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DeleteTableCommand.java
+++ /dev/null
@@ -1,49 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
-import com.amazonaws.services.dynamodbv2.model.TableDescription;
-import org.apache.camel.Exchange;
-
-public class DeleteTableCommand extends AbstractDdbCommand {
-
-    public DeleteTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration,
-                              Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        TableDescription tableDescription = ddbClient
-                .deleteTable(new DeleteTableRequest(determineTableName())).getTableDescription();
-
-        Map tmp = new HashMap<>();
-        tmp.put(DdbConstants.PROVISIONED_THROUGHPUT, tableDescription.getProvisionedThroughput());
-        tmp.put(DdbConstants.CREATION_DATE, tableDescription.getCreationDateTime());
-        tmp.put(DdbConstants.ITEM_COUNT, tableDescription.getItemCount());
-        tmp.put(DdbConstants.KEY_SCHEMA, tableDescription.getKeySchema());
-        tmp.put(DdbConstants.TABLE_NAME, tableDescription.getTableName());
-        tmp.put(DdbConstants.TABLE_SIZE, tableDescription.getTableSizeBytes());
-        tmp.put(DdbConstants.TABLE_STATUS, tableDescription.getTableStatus());
-        addToResults(tmp);
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
deleted file mode 100644
index a6e6b64..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/DescribeTableCommand.java
+++ /dev/null
@@ -1,49 +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.aws.ddb;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodbv2.model.DescribeTableResult;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
-
-public class DescribeTableCommand extends AbstractDdbCommand {
-
-    public DescribeTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration,
-                                Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        DescribeTableResult result = ddbClient.describeTable(new DescribeTableRequest()
-                .withTableName(determineTableName()));
-
-        Message msg = getMessageForResponse(exchange);
-        msg.setHeader(DdbConstants.TABLE_NAME, result.getTable().getTableName());
-        msg.setHeader(DdbConstants.TABLE_STATUS, result.getTable().getTableStatus());
-        msg.setHeader(DdbConstants.CREATION_DATE, result.getTable().getCreationDateTime());
-        msg.setHeader(DdbConstants.ITEM_COUNT, result.getTable().getItemCount());
-        msg.setHeader(DdbConstants.KEY_SCHEMA, result.getTable().getKeySchema());
-        msg.setHeader(DdbConstants.READ_CAPACITY,
-                result.getTable().getProvisionedThroughput().getReadCapacityUnits());
-        msg.setHeader(DdbConstants.WRITE_CAPACITY,
-                result.getTable().getProvisionedThroughput().getWriteCapacityUnits());
-        msg.setHeader(DdbConstants.TABLE_SIZE, result.getTable().getTableSizeBytes());
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
deleted file mode 100644
index f023d86..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/GetItemCommand.java
+++ /dev/null
@@ -1,39 +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.aws.ddb;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.GetItemRequest;
-import com.amazonaws.services.dynamodbv2.model.GetItemResult;
-import org.apache.camel.Exchange;
-
-public class GetItemCommand extends AbstractDdbCommand {
-
-    public GetItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        GetItemResult result = ddbClient.getItem(new GetItemRequest()
-                .withKey(determineKey())
-                .withTableName(determineTableName())
-                .withAttributesToGet(determineAttributeNames())
-                .withConsistentRead(determineConsistentRead()));
-        addAttributesToResult(result.getItem());
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
deleted file mode 100644
index 560565a..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/PutItemCommand.java
+++ /dev/null
@@ -1,40 +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.aws.ddb;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
-import com.amazonaws.services.dynamodbv2.model.PutItemResult;
-import org.apache.camel.Exchange;
-
-public class PutItemCommand extends AbstractDdbCommand {
-
-    public PutItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        PutItemResult result = ddbClient.putItem(new PutItemRequest()
-                .withTableName(determineTableName())
-                .withItem(determineItem())
-                .withExpected(determineUpdateCondition())
-                .withReturnValues(determineReturnValues()));
-
-        addAttributesToResult(result.getAttributes());
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
deleted file mode 100644
index 05d3b82..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/QueryCommand.java
+++ /dev/null
@@ -1,72 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.QueryRequest;
-import com.amazonaws.services.dynamodbv2.model.QueryResult;
-import org.apache.camel.Exchange;
-
-public class QueryCommand extends AbstractDdbCommand {
-
-    public QueryCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        QueryRequest query = new QueryRequest()
-                .withTableName(determineTableName())
-                .withAttributesToGet(determineAttributeNames())
-                .withConsistentRead(determineConsistentRead())
-                .withExclusiveStartKey(determineStartKey())
-                .withKeyConditions(determineKeyConditions())
-                .withExclusiveStartKey(determineStartKey())
-                .withLimit(determineLimit())
-                .withScanIndexForward(determineScanIndexForward());
-
-        // Check if we have set an Index Name
-        if (exchange.getIn().getHeader(DdbConstants.INDEX_NAME, String.class) != null) {
-            query.withIndexName(exchange.getIn().getHeader(DdbConstants.INDEX_NAME, String.class));
-        }
-
-        QueryResult result = ddbClient.query(query);
-
-        Map tmp = new HashMap<>();
-        tmp.put(DdbConstants.ITEMS, result.getItems());
-        tmp.put(DdbConstants.LAST_EVALUATED_KEY, result.getLastEvaluatedKey());
-        tmp.put(DdbConstants.CONSUMED_CAPACITY, result.getConsumedCapacity());
-        tmp.put(DdbConstants.COUNT, result.getCount());
-        addToResults(tmp);
-    }
-
-    private Map<String, AttributeValue> determineStartKey() {
-        return exchange.getIn().getHeader(DdbConstants.START_KEY, Map.class);
-    }
-
-    private Boolean determineScanIndexForward() {
-        return exchange.getIn().getHeader(DdbConstants.SCAN_INDEX_FORWARD, Boolean.class);
-    }
-
-    private Map determineKeyConditions() {
-        return exchange.getIn().getHeader(DdbConstants.KEY_CONDITIONS, Map.class);
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
deleted file mode 100644
index aa09a7a..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/ScanCommand.java
+++ /dev/null
@@ -1,55 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.Condition;
-import com.amazonaws.services.dynamodbv2.model.ScanRequest;
-import com.amazonaws.services.dynamodbv2.model.ScanResult;
-import org.apache.camel.Exchange;
-
-public class ScanCommand extends AbstractDdbCommand {
-
-    public ScanCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        ScanResult result = ddbClient.scan(new ScanRequest()
-                .withTableName(determineTableName())
-                .withLimit(determineLimit())
-                .withExclusiveStartKey(determineExclusiveStartKey())
-                .withScanFilter(determineScanFilter()));
-
-        Map tmp = new HashMap<>();
-        tmp.put(DdbConstants.ITEMS, result.getItems());
-        tmp.put(DdbConstants.LAST_EVALUATED_KEY, result.getLastEvaluatedKey());
-        tmp.put(DdbConstants.CONSUMED_CAPACITY, result.getConsumedCapacity());
-        tmp.put(DdbConstants.COUNT, result.getCount());
-        tmp.put(DdbConstants.SCANNED_COUNT, result.getScannedCount());
-        addToResults(tmp);
-    }
-
-    @SuppressWarnings("unchecked")
-    private Map<String, Condition> determineScanFilter() {
-        return exchange.getIn().getHeader(DdbConstants.SCAN_FILTER, Map.class);
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.java
deleted file mode 100644
index 4b015d3..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateItemCommand.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.component.aws.ddb;
-
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate;
-import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest;
-import com.amazonaws.services.dynamodbv2.model.UpdateItemResult;
-import org.apache.camel.Exchange;
-
-public class UpdateItemCommand extends AbstractDdbCommand {
-
-    public UpdateItemCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        UpdateItemResult result = ddbClient.updateItem(new UpdateItemRequest()
-                .withTableName(determineTableName())
-                .withKey(determineKey())
-                .withAttributeUpdates(determineUpdateValues())
-                .withExpected(determineUpdateCondition())
-                .withReturnValues(determineReturnValues()));
-
-        addAttributesToResult(result.getAttributes());
-    }
-
-    @SuppressWarnings("unchecked")
-    private Map<String, AttributeValueUpdate> determineUpdateValues() {
-        return exchange.getIn().getHeader(DdbConstants.UPDATE_VALUES, Map.class);
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
deleted file mode 100644
index 45ce87b..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddb/UpdateTableCommand.java
+++ /dev/null
@@ -1,48 +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.aws.ddb;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
-import com.amazonaws.services.dynamodbv2.model.UpdateTableRequest;
-import org.apache.camel.Exchange;
-
-public class UpdateTableCommand extends AbstractDdbCommand {
-
-    public UpdateTableCommand(AmazonDynamoDB ddbClient, DdbConfiguration configuration, Exchange exchange) {
-        super(ddbClient, configuration, exchange);
-    }
-
-    @Override
-    public void execute() {
-        ddbClient.updateTable(new UpdateTableRequest()
-                .withTableName(determineTableName())
-                .withProvisionedThroughput(new ProvisionedThroughput()
-                        .withReadCapacityUnits(determineReadCapacity())
-                        .withWriteCapacityUnits(determineWriteCapacity())));
-    }
-
-    private Long determineReadCapacity() {
-        Long readCapacity = exchange.getIn().getHeader(DdbConstants.READ_CAPACITY, Long.class);
-        return readCapacity != null ? readCapacity : configuration.getReadCapacity();
-    }
-
-    private Long determineWriteCapacity() {
-        Long writeCapacity = exchange.getIn().getHeader(DdbConstants.WRITE_CAPACITY, Long.class);
-        return writeCapacity != null ? writeCapacity : configuration.getWriteCapacity();
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/BigIntComparisons.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/BigIntComparisons.java
deleted file mode 100644
index 5c46135..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/BigIntComparisons.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.component.aws.ddbstream;
-
-import java.math.BigInteger;
-
-interface BigIntComparisons {
-
-    /**
-     * @return true if the first parameter is LT/LTEQ/EQ/GTEQ/GT the second
-     */
-    boolean matches(BigInteger first, BigInteger second);
-
-    enum Conditions implements BigIntComparisons {
-        LT() {
-            @Override
-            public boolean matches(BigInteger first, BigInteger second) {
-                return first.compareTo(second) < 0;
-            }
-        },
-
-        LTEQ() {
-            @Override
-            public boolean matches(BigInteger first, BigInteger second) {
-                return first.compareTo(second) <= 0;
-            }
-        }
-        // TODO Add EQ/GTEQ/GT as needed, but note that GTEQ == !LT and GT == !LTEQ and EQ == (!LT && !GT)
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponent.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponent.java
deleted file mode 100644
index 7a76b39..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponent.java
+++ /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.
- */
-package org.apache.camel.component.aws.ddbstream;
-
-import java.util.Map;
-import java.util.Set;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Endpoint;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.annotations.Component;
-import org.apache.camel.support.DefaultComponent;
-
-@Component("aws-ddbstream")
-public class DdbStreamComponent extends DefaultComponent {
-
-    @Metadata
-    private DdbStreamConfiguration configuration = new DdbStreamConfiguration();
-
-    public DdbStreamComponent() {
-        this(null);
-    }
-
-    public DdbStreamComponent(CamelContext context) {
-        super(context);
-
-        registerExtension(new DdbStreamComponentVerifierExtension());
-    }
-
-    @Override
-    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-
-        if (remaining == null || remaining.trim().length() == 0) {
-            throw new IllegalArgumentException("Table name must be specified.");
-        }
-        DdbStreamConfiguration configuration
-                = this.configuration != null ? this.configuration.copy() : new DdbStreamConfiguration();
-        configuration.setTableName(remaining);
-        DdbStreamEndpoint endpoint = new DdbStreamEndpoint(uri, configuration, this);
-        setProperties(endpoint, parameters);
-        if (endpoint.getConfiguration().isAutoDiscoverClient()) {
-            checkAndSetRegistryClient(configuration);
-        }
-        if (configuration.getAmazonDynamoDbStreamsClient() == null
-                && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
-            throw new IllegalArgumentException("amazonDDBStreamsClient or accessKey and secretKey must be specified");
-        }
-        return endpoint;
-    }
-
-    public DdbStreamConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    /**
-     * The component configuration
-     */
-    public void setConfiguration(DdbStreamConfiguration configuration) {
-        this.configuration = configuration;
-    }
-
-    private void checkAndSetRegistryClient(DdbStreamConfiguration configuration) {
-        Set<AmazonDynamoDBStreams> clients = getCamelContext().getRegistry().findByType(AmazonDynamoDBStreams.class);
-        if (clients.size() == 1) {
-            configuration.setAmazonDynamoDbStreamsClient(clients.stream().findFirst().get());
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtension.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtension.java
deleted file mode 100644
index b521ccb..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtension.java
+++ /dev/null
@@ -1,92 +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.aws.ddbstream;
-
-import java.util.Map;
-
-import com.amazonaws.SdkClientException;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreamsClientBuilder;
-import com.amazonaws.services.dynamodbv2.model.ListStreamsRequest;
-import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
-import org.apache.camel.component.extension.verifier.ResultBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorHelper;
-
-public class DdbStreamComponentVerifierExtension extends DefaultComponentVerifierExtension {
-
-    public DdbStreamComponentVerifierExtension() {
-        this("aws-ddbstream");
-    }
-
-    public DdbStreamComponentVerifierExtension(String scheme) {
-        super(scheme);
-    }
-
-    // *********************************
-    // Parameters validation
-    // *********************************
-
-    @Override
-    protected Result verifyParameters(Map<String, Object> parameters) {
-
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
-                .error(ResultErrorHelper.requiresOption("accessKey", parameters))
-                .error(ResultErrorHelper.requiresOption("secretKey", parameters))
-                .error(ResultErrorHelper.requiresOption("region", parameters));
-
-        // Validate using the catalog
-
-        super.verifyParametersAgainstCatalog(builder, parameters);
-
-        return builder.build();
-    }
-
-    // *********************************
-    // Connectivity validation
-    // *********************************
-
-    @Override
-    protected Result verifyConnectivity(Map<String, Object> parameters) {
-        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.CONNECTIVITY);
-
-        try {
-            DdbStreamConfiguration configuration = setProperties(new DdbStreamConfiguration(), parameters);
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            AmazonDynamoDBStreams client = AmazonDynamoDBStreamsClientBuilder.standard().withCredentials(credentialsProvider)
-                    .withRegion(Regions.valueOf(configuration.getRegion())).build();
-            client.listStreams(new ListStreamsRequest());
-        } catch (SdkClientException e) {
-            ResultErrorBuilder errorBuilder
-                    = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getMessage())
-                            .detail("aws_ddb_stream_exception_message", e.getMessage())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_CLASS, e.getClass().getName())
-                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE, e);
-
-            builder.error(errorBuilder.build());
-        } catch (Exception e) {
-            builder.error(ResultErrorBuilder.withException(e).build());
-        }
-        return builder.build();
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConfiguration.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConfiguration.java
deleted file mode 100644
index 5f89c21..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConfiguration.java
+++ /dev/null
@@ -1,179 +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.aws.ddbstream;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.model.ShardIteratorType;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
-import org.apache.camel.spi.UriPath;
-
-@UriParams
-public class DdbStreamConfiguration implements Cloneable {
-
-    @UriPath(label = "consumer", description = "Name of the dynamodb table")
-    @Metadata(required = true)
-    private String tableName;
-
-    @UriParam(label = "security", secret = true, description = "Amazon AWS Access Key")
-    private String accessKey;
-    @UriParam(label = "security", secret = true, description = "Amazon AWS Secret Key")
-    private String secretKey;
-    @UriParam(description = "The region in which DDBStreams client needs to work")
-    private String region;
-
-    @UriParam(label = "consumer", description = "Amazon DynamoDB client to use for all requests for this endpoint")
-    private AmazonDynamoDBStreams amazonDynamoDbStreamsClient;
-
-    @UriParam(label = "consumer", description = "Maximum number of records that will be fetched in each poll")
-    private int maxResultsPerRequest = 100;
-
-    @UriParam(label = "consumer", description = "Defines where in the DynaboDB stream"
-                                                + " to start getting records. Note that using TRIM_HORIZON can cause a"
-                                                + " significant delay before the stream has caught up to real-time."
-                                                + " if {AT,AFTER}_SEQUENCE_NUMBER are used, then a sequenceNumberProvider"
-                                                + " MUST be supplied.",
-              defaultValue = "LATEST")
-    private ShardIteratorType iteratorType = ShardIteratorType.LATEST;
-
-    @UriParam(label = "consumer", description = "Provider for the sequence number when"
-                                                + " using one of the two ShardIteratorType.{AT,AFTER}_SEQUENCE_NUMBER"
-                                                + " iterator types. Can be a registry reference or a literal sequence number.")
-    private SequenceNumberProvider sequenceNumberProvider;
-    @UriParam(enums = "HTTP,HTTPS", defaultValue = "HTTPS",
-              description = "To define a proxy protocol when instantiating the DDBStreams client")
-    private Protocol proxyProtocol = Protocol.HTTPS;
-    @UriParam(description = "To define a proxy host when instantiating the DDBStreams client")
-    private String proxyHost;
-    @UriParam(description = "To define a proxy port when instantiating the DDBStreams client")
-    private Integer proxyPort;
-    @UriParam(label = "common", defaultValue = "true",
-              description = "Setting the autoDiscoverClient mechanism, if true, the component will "
-                            + " look for a client instance in the registry automatically otherwise it will skip that checking")
-    private boolean autoDiscoverClient = true;
-
-    public AmazonDynamoDBStreams getAmazonDynamoDbStreamsClient() {
-        return amazonDynamoDbStreamsClient;
-    }
-
-    public void setAmazonDynamoDbStreamsClient(AmazonDynamoDBStreams amazonDynamoDbStreamsClient) {
-        this.amazonDynamoDbStreamsClient = amazonDynamoDbStreamsClient;
-    }
-
-    public String getAccessKey() {
-        return accessKey;
-    }
-
-    public void setAccessKey(String accessKey) {
-        this.accessKey = accessKey;
-    }
-
-    public String getSecretKey() {
-        return secretKey;
-    }
-
-    public void setSecretKey(String secretKey) {
-        this.secretKey = secretKey;
-    }
-
-    public String getRegion() {
-        return region;
-    }
-
-    public void setRegion(String region) {
-        this.region = region;
-    }
-
-    public int getMaxResultsPerRequest() {
-        return maxResultsPerRequest;
-    }
-
-    public void setMaxResultsPerRequest(int maxResultsPerRequest) {
-        this.maxResultsPerRequest = maxResultsPerRequest;
-    }
-
-    public String getTableName() {
-        return tableName;
-    }
-
-    public void setTableName(String tableName) {
-        this.tableName = tableName;
-    }
-
-    public ShardIteratorType getIteratorType() {
-        return iteratorType;
-    }
-
-    public void setIteratorType(ShardIteratorType iteratorType) {
-        this.iteratorType = iteratorType;
-    }
-
-    public SequenceNumberProvider getSequenceNumberProvider() {
-        return sequenceNumberProvider;
-    }
-
-    public void setSequenceNumberProvider(SequenceNumberProvider sequenceNumberProvider) {
-        this.sequenceNumberProvider = sequenceNumberProvider;
-    }
-
-    public Protocol getProxyProtocol() {
-        return proxyProtocol;
-    }
-
-    public void setProxyProtocol(Protocol proxyProtocol) {
-        this.proxyProtocol = proxyProtocol;
-    }
-
-    public String getProxyHost() {
-        return proxyHost;
-    }
-
-    public void setProxyHost(String proxyHost) {
-        this.proxyHost = proxyHost;
-    }
-
-    public Integer getProxyPort() {
-        return proxyPort;
-    }
-
-    public void setProxyPort(Integer proxyPort) {
-        this.proxyPort = proxyPort;
-    }
-
-    public boolean isAutoDiscoverClient() {
-        return autoDiscoverClient;
-    }
-
-    public void setAutoDiscoverClient(boolean autoDiscoverClient) {
-        this.autoDiscoverClient = autoDiscoverClient;
-    }
-
-    // *************************************************
-    //
-    // *************************************************
-
-    public DdbStreamConfiguration copy() {
-        try {
-            return (DdbStreamConfiguration) super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new RuntimeCamelException(e);
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java
deleted file mode 100644
index 0134bbc..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumer.java
+++ /dev/null
@@ -1,138 +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.aws.ddbstream;
-
-import java.math.BigInteger;
-import java.util.ArrayDeque;
-import java.util.List;
-import java.util.Queue;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.model.ExpiredIteratorException;
-import com.amazonaws.services.dynamodbv2.model.GetRecordsRequest;
-import com.amazonaws.services.dynamodbv2.model.GetRecordsResult;
-import com.amazonaws.services.dynamodbv2.model.Record;
-import org.apache.camel.AsyncCallback;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.support.ScheduledBatchPollingConsumer;
-import org.apache.camel.util.CastUtils;
-import org.apache.camel.util.ObjectHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class DdbStreamConsumer extends ScheduledBatchPollingConsumer {
-
-    private static final Logger LOG = LoggerFactory.getLogger(DdbStreamConsumer.class);
-
-    private final ShardIteratorHandler shardIteratorHandler;
-    private String lastSeenSequenceNumber;
-
-    public DdbStreamConsumer(DdbStreamEndpoint endpoint, Processor processor) {
-        this(endpoint, processor, new ShardIteratorHandler(endpoint));
-    }
-
-    DdbStreamConsumer(DdbStreamEndpoint endpoint, Processor processor, ShardIteratorHandler shardIteratorHandler) {
-        super(endpoint, processor);
-        this.shardIteratorHandler = shardIteratorHandler;
-    }
-
-    @Override
-    protected int poll() throws Exception {
-        GetRecordsResult result;
-        try {
-            GetRecordsRequest req = new GetRecordsRequest()
-                    .withShardIterator(shardIteratorHandler.getShardIterator(null))
-                    .withLimit(getEndpoint().getConfiguration().getMaxResultsPerRequest());
-            result = getClient().getRecords(req);
-        } catch (ExpiredIteratorException e) {
-            LOG.warn("Expired Shard Iterator, attempting to resume from {}", lastSeenSequenceNumber, e);
-            GetRecordsRequest req = new GetRecordsRequest()
-                    .withShardIterator(shardIteratorHandler.getShardIterator(lastSeenSequenceNumber))
-                    .withLimit(getEndpoint().getConfiguration().getMaxResultsPerRequest());
-            result = getClient().getRecords(req);
-        }
-        List<Record> records = result.getRecords();
-
-        Queue<Exchange> exchanges = createExchanges(records, lastSeenSequenceNumber);
-        int processedExchangeCount = processBatch(CastUtils.cast(exchanges));
-
-        shardIteratorHandler.updateShardIterator(result.getNextShardIterator());
-        if (!records.isEmpty()) {
-            lastSeenSequenceNumber = records.get(records.size() - 1).getDynamodb().getSequenceNumber();
-        }
-
-        return processedExchangeCount;
-    }
-
-    @Override
-    public int processBatch(Queue<Object> exchanges) throws Exception {
-        int processedExchanges = 0;
-        while (!exchanges.isEmpty()) {
-            final Exchange exchange = ObjectHelper.cast(Exchange.class, exchanges.poll());
-
-            LOG.trace("Processing exchange [{}] started.", exchange);
-            getAsyncProcessor().process(exchange, new AsyncCallback() {
-                @Override
-                public void done(boolean doneSync) {
-                    LOG.trace("Processing exchange [{}] done.", exchange);
-                }
-            });
-            processedExchanges++;
-        }
-        return processedExchanges;
-    }
-
-    private AmazonDynamoDBStreams getClient() {
-        return getEndpoint().getClient();
-    }
-
-    @Override
-    public DdbStreamEndpoint getEndpoint() {
-        return (DdbStreamEndpoint) super.getEndpoint();
-    }
-
-    private Queue<Exchange> createExchanges(List<Record> records, String lastSeenSequenceNumber) {
-        Queue<Exchange> exchanges = new ArrayDeque<>();
-        BigIntComparisons condition = null;
-        BigInteger providedSeqNum = null;
-        if (lastSeenSequenceNumber != null) {
-            providedSeqNum = new BigInteger(lastSeenSequenceNumber);
-            condition = BigIntComparisons.Conditions.LT;
-        }
-        switch (getEndpoint().getConfiguration().getIteratorType()) {
-            case AFTER_SEQUENCE_NUMBER:
-                condition = BigIntComparisons.Conditions.LT;
-                providedSeqNum
-                        = new BigInteger(getEndpoint().getConfiguration().getSequenceNumberProvider().getSequenceNumber());
-                break;
-            case AT_SEQUENCE_NUMBER:
-                condition = BigIntComparisons.Conditions.LTEQ;
-                providedSeqNum
-                        = new BigInteger(getEndpoint().getConfiguration().getSequenceNumberProvider().getSequenceNumber());
-                break;
-            default:
-        }
-        for (Record record : records) {
-            BigInteger recordSeqNum = new BigInteger(record.getDynamodb().getSequenceNumber());
-            if (condition == null || condition.matches(providedSeqNum, recordSeqNum)) {
-                exchanges.add(getEndpoint().createExchange(record));
-            }
-        }
-        return exchanges;
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpoint.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpoint.java
deleted file mode 100644
index 405c33d..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpoint.java
+++ /dev/null
@@ -1,163 +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.aws.ddbstream;
-
-import com.amazonaws.ClientConfiguration;
-import com.amazonaws.auth.AWSCredentials;
-import com.amazonaws.auth.AWSCredentialsProvider;
-import com.amazonaws.auth.AWSStaticCredentialsProvider;
-import com.amazonaws.auth.BasicAWSCredentials;
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreamsClientBuilder;
-import com.amazonaws.services.dynamodbv2.model.Record;
-import org.apache.camel.Consumer;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.Producer;
-import org.apache.camel.spi.UriEndpoint;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.support.ScheduledPollEndpoint;
-import org.apache.camel.util.ObjectHelper;
-
-/**
- * Receive messages from AWS DynamoDB Stream service.
- */
-@UriEndpoint(firstVersion = "2.17.0", scheme = "aws-ddbstream", title = "AWS DynamoDB Streams",
-             consumerOnly = true, syntax = "aws-ddbstream:tableName",
-             label = "cloud,messaging,streams")
-public class DdbStreamEndpoint extends ScheduledPollEndpoint {
-
-    @UriParam
-    DdbStreamConfiguration configuration;
-
-    private AmazonDynamoDBStreams ddbStreamClient;
-
-    public DdbStreamEndpoint(String uri, DdbStreamConfiguration configuration, DdbStreamComponent component) {
-        super(uri, component);
-        this.configuration = configuration;
-    }
-
-    @Override
-    public Producer createProducer() throws Exception {
-        throw new UnsupportedOperationException("Not supported yet.");
-    }
-
-    @Override
-    public Consumer createConsumer(Processor processor) throws Exception {
-        DdbStreamConsumer consumer = new DdbStreamConsumer(this, processor);
-        consumer.setSchedulerProperties(consumer.getEndpoint().getSchedulerProperties());
-        configureConsumer(consumer);
-        return consumer;
-    }
-
-    Exchange createExchange(Record record) {
-        Exchange ex = super.createExchange();
-        ex.getIn().setBody(record, Record.class);
-
-        return ex;
-    }
-
-    @Override
-    public void doStart() throws Exception {
-        super.doStart();
-
-        ddbStreamClient = configuration.getAmazonDynamoDbStreamsClient() != null
-                ? configuration.getAmazonDynamoDbStreamsClient()
-                : createDdbStreamClient();
-    }
-
-    @Override
-    public void doStop() throws Exception {
-        if (ObjectHelper.isEmpty(configuration.getAmazonDynamoDbStreamsClient())) {
-            if (ddbStreamClient != null) {
-                ddbStreamClient.shutdown();
-            }
-        }
-        super.doStop();
-    }
-
-    public DdbStreamConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    public AmazonDynamoDBStreams getClient() {
-        return ddbStreamClient;
-    }
-
-    public String getSequenceNumber() {
-        switch (configuration.getIteratorType()) {
-            case AFTER_SEQUENCE_NUMBER:
-            case AT_SEQUENCE_NUMBER:
-                if (null == configuration.getSequenceNumberProvider()) {
-                    throw new IllegalStateException(
-                            "sequenceNumberProvider must be"
-                                                    + " provided, either as an implementation of"
-                                                    + " SequenceNumberProvider or a literal String.");
-                } else {
-                    return configuration.getSequenceNumberProvider().getSequenceNumber();
-                }
-            default:
-                return "";
-        }
-    }
-
-    AmazonDynamoDBStreams createDdbStreamClient() {
-        AmazonDynamoDBStreams client = null;
-        ClientConfiguration clientConfiguration = null;
-        AmazonDynamoDBStreamsClientBuilder clientBuilder = null;
-        boolean isClientConfigFound = false;
-        if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
-            clientConfiguration = new ClientConfiguration();
-            clientConfiguration.setProxyHost(configuration.getProxyHost());
-            clientConfiguration.setProxyPort(configuration.getProxyPort());
-            isClientConfigFound = true;
-        }
-        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
-            AWSCredentials credentials = new BasicAWSCredentials(configuration.getAccessKey(), configuration.getSecretKey());
-            AWSCredentialsProvider credentialsProvider = new AWSStaticCredentialsProvider(credentials);
-            if (isClientConfigFound) {
-                clientBuilder = AmazonDynamoDBStreamsClientBuilder.standard().withClientConfiguration(clientConfiguration)
-                        .withCredentials(credentialsProvider);
-            } else {
-                clientBuilder = AmazonDynamoDBStreamsClientBuilder.standard().withCredentials(credentialsProvider);
-            }
-        } else {
-            if (isClientConfigFound) {
-                clientBuilder = AmazonDynamoDBStreamsClientBuilder.standard();
-            } else {
-                clientBuilder = AmazonDynamoDBStreamsClientBuilder.standard().withClientConfiguration(clientConfiguration);
-            }
-        }
-        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
-            clientBuilder = clientBuilder.withRegion(Regions.valueOf(configuration.getRegion()));
-        }
-        client = clientBuilder.build();
-        return client;
-    }
-
-    @Override
-    public String toString() {
-        return "DdbStreamEndpoint{"
-               + "tableName=" + configuration.getTableName()
-               + ", amazonDynamoDbStreamsClient=[redacted], maxResultsPerRequest=" + configuration.getMaxResultsPerRequest()
-               + ", iteratorType=" + configuration.getIteratorType()
-               + ", sequenceNumberProvider=" + configuration.getSequenceNumberProvider()
-               + ", uri=" + getEndpointUri()
-               + '}';
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/SequenceNumberProvider.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/SequenceNumberProvider.java
deleted file mode 100644
index 09cb874..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/SequenceNumberProvider.java
+++ /dev/null
@@ -1,21 +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.aws.ddbstream;
-
-public interface SequenceNumberProvider {
-    String getSequenceNumber();
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandler.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandler.java
deleted file mode 100644
index ab3a786..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandler.java
+++ /dev/null
@@ -1,138 +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.aws.ddbstream;
-
-import java.math.BigInteger;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.model.DescribeStreamRequest;
-import com.amazonaws.services.dynamodbv2.model.DescribeStreamResult;
-import com.amazonaws.services.dynamodbv2.model.GetShardIteratorRequest;
-import com.amazonaws.services.dynamodbv2.model.GetShardIteratorResult;
-import com.amazonaws.services.dynamodbv2.model.ListStreamsRequest;
-import com.amazonaws.services.dynamodbv2.model.ListStreamsResult;
-import com.amazonaws.services.dynamodbv2.model.Shard;
-import com.amazonaws.services.dynamodbv2.model.ShardIteratorType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-class ShardIteratorHandler {
-    private static final Logger LOG = LoggerFactory.getLogger(ShardIteratorHandler.class);
-
-    private final DdbStreamEndpoint endpoint;
-    private final ShardList shardList = new ShardList();
-
-    private String currentShardIterator;
-    private Shard currentShard;
-
-    ShardIteratorHandler(DdbStreamEndpoint endpoint) {
-        this.endpoint = endpoint;
-    }
-
-    String getShardIterator(String resumeFromSequenceNumber) {
-        ShardIteratorType iteratorType = getEndpoint().getConfiguration().getIteratorType();
-        String sequenceNumber = getEndpoint().getSequenceNumber();
-        if (resumeFromSequenceNumber != null) {
-            // Reset things as we're in an error condition.
-            currentShard = null;
-            currentShardIterator = null;
-            iteratorType = ShardIteratorType.AFTER_SEQUENCE_NUMBER;
-            sequenceNumber = resumeFromSequenceNumber;
-        }
-        // either return a cached one or get a new one via a GetShardIterator request.
-        if (currentShardIterator == null) {
-            ListStreamsResult streamsListResult = getClient().listStreams(
-                    new ListStreamsRequest().withTableName(getEndpoint().getConfiguration().getTableName()));
-            final String streamArn = streamsListResult.getStreams().get(0).getStreamArn(); // XXX assumes there is only one stream
-            DescribeStreamResult streamDescriptionResult = getClient().describeStream(
-                    new DescribeStreamRequest().withStreamArn(streamArn));
-            shardList.addAll(streamDescriptionResult.getStreamDescription().getShards());
-
-            LOG.trace("Current shard is: {} (in {})", currentShard, shardList);
-            if (currentShard == null) {
-                currentShard = resolveNewShard(iteratorType, resumeFromSequenceNumber);
-            } else {
-                currentShard = shardList.nextAfter(currentShard);
-            }
-            shardList.removeOlderThan(currentShard);
-            LOG.trace("Next shard is: {} (in {})", currentShard, shardList);
-
-            GetShardIteratorResult result = getClient().getShardIterator(
-                    buildGetShardIteratorRequest(streamArn, iteratorType, sequenceNumber));
-            currentShardIterator = result.getShardIterator();
-        }
-        LOG.trace("Shard Iterator is: {}", currentShardIterator);
-        return currentShardIterator;
-    }
-
-    private GetShardIteratorRequest buildGetShardIteratorRequest(
-            final String streamArn, ShardIteratorType iteratorType, String sequenceNumber) {
-        GetShardIteratorRequest req = new GetShardIteratorRequest()
-                .withStreamArn(streamArn)
-                .withShardId(currentShard.getShardId())
-                .withShardIteratorType(iteratorType);
-        switch (iteratorType) {
-            case AFTER_SEQUENCE_NUMBER:
-            case AT_SEQUENCE_NUMBER:
-                // if you request with a sequence number that is LESS than the
-                // start of the shard, you get a HTTP 400 from AWS.
-                // So only add the sequence number if the endpoints
-                // sequence number is less than or equal to the starting
-                // sequence for the shard.
-                // Otherwise change the shart iterator type to trim_horizon
-                // because we get a 400 when we use one of the
-                // {at,after}_sequence_number iterator types and don't supply
-                // a sequence number.
-                if (BigIntComparisons.Conditions.LTEQ.matches(
-                        new BigInteger(currentShard.getSequenceNumberRange().getStartingSequenceNumber()),
-                        new BigInteger(sequenceNumber))) {
-                    req = req.withSequenceNumber(sequenceNumber);
-                } else {
-                    req = req.withShardIteratorType(ShardIteratorType.TRIM_HORIZON);
-                }
-                break;
-            default:
-        }
-        return req;
-    }
-
-    private Shard resolveNewShard(ShardIteratorType type, String resumeFrom) {
-        switch (type) {
-            case AFTER_SEQUENCE_NUMBER:
-                return shardList.afterSeq(resumeFrom != null ? resumeFrom : getEndpoint().getSequenceNumber());
-            case AT_SEQUENCE_NUMBER:
-                return shardList.atSeq(getEndpoint().getSequenceNumber());
-            case TRIM_HORIZON:
-                return shardList.first();
-            case LATEST:
-            default:
-                return shardList.last();
-        }
-    }
-
-    void updateShardIterator(String nextShardIterator) {
-        this.currentShardIterator = nextShardIterator;
-    }
-
-    DdbStreamEndpoint getEndpoint() {
-        return endpoint;
-    }
-
-    private AmazonDynamoDBStreams getClient() {
-        return getEndpoint().getClient();
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardList.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardList.java
deleted file mode 100644
index 9e9da5e..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/ShardList.java
+++ /dev/null
@@ -1,147 +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.aws.ddbstream;
-
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.Shard;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-class ShardList {
-
-    private final Logger log = LoggerFactory.getLogger(ShardList.class);
-
-    private final Map<String, Shard> shards = new HashMap<>();
-
-    void addAll(Collection<Shard> shards) {
-        for (Shard shard : shards) {
-            add(shard);
-        }
-    }
-
-    void add(Shard shard) {
-        shards.put(shard.getShardId(), shard);
-    }
-
-    Shard nextAfter(Shard previous) {
-        for (Shard shard : shards.values()) {
-            if (previous.getShardId().equals(shard.getParentShardId())) {
-                return shard;
-            }
-        }
-        throw new IllegalStateException("Unable to find the next shard for " + previous + " in " + shards);
-    }
-
-    Shard first() {
-        // Potential optimisation: if the two provided sequence numbers are the
-        // same then we can skip the shard entirely. Need to confirm this with AWS.
-        for (Shard shard : shards.values()) {
-            if (!shards.containsKey(shard.getParentShardId())) {
-                return shard;
-            }
-        }
-        throw new IllegalStateException("Unable to find an unparented shard in " + shards);
-    }
-
-    Shard last() {
-        Map<String, Shard> shardsByParent = new HashMap<>();
-        for (Shard shard : shards.values()) {
-            shardsByParent.put(shard.getParentShardId(), shard);
-        }
-        for (Shard shard : shards.values()) {
-            if (!shardsByParent.containsKey(shard.getShardId())) {
-                return shard;
-            }
-        }
-        throw new IllegalStateException("Unable to find a shard with no children " + shards);
-    }
-
-    Shard afterSeq(String sequenceNumber) {
-        return atAfterSeq(sequenceNumber, BigIntComparisons.Conditions.LT);
-    }
-
-    Shard atSeq(String sequenceNumber) {
-        return atAfterSeq(sequenceNumber, BigIntComparisons.Conditions.LTEQ);
-    }
-
-    Shard atAfterSeq(String sequenceNumber, BigIntComparisons condition) {
-        BigInteger atAfter = new BigInteger(sequenceNumber);
-        List<Shard> sorted = new ArrayList<>();
-        sorted.addAll(shards.values());
-        Collections.sort(sorted, StartingSequenceNumberComparator.INSTANCE);
-        for (Shard shard : sorted) {
-            if (shard.getSequenceNumberRange().getEndingSequenceNumber() != null) {
-                BigInteger end = new BigInteger(shard.getSequenceNumberRange().getEndingSequenceNumber());
-                // essentially: after < end or after <= end
-                if (condition.matches(atAfter, end)) {
-                    return shard;
-                }
-
-            }
-        }
-        if (shards.size() > 0) {
-            return sorted.get(sorted.size() - 1);
-        }
-        throw new IllegalStateException(
-                "Unable to find a shard with appropriate sequence numbers for " + sequenceNumber + " in " + shards);
-    }
-
-    /**
-     * Removes shards that are older than the provided shard. Does not remove the provided shard.
-     *
-     * @param removeBefore
-     */
-    void removeOlderThan(Shard removeBefore) {
-        String current = removeBefore.getParentShardId();
-
-        int removedShards = 0;
-        while (current != null) {
-            Shard s = shards.remove(current);
-            if (s == null) {
-                current = null;
-            } else {
-                removedShards++;
-                current = s.getParentShardId();
-            }
-        }
-        log.trace("removed {} shards from the store, new size is {}", removedShards, shards.size());
-    }
-
-    @Override
-    public String toString() {
-        return "ShardList{" + "shards=" + shards + '}';
-    }
-
-    private enum StartingSequenceNumberComparator implements Comparator<Shard> {
-        INSTANCE() {
-            @Override
-            public int compare(Shard o1, Shard o2) {
-                BigInteger i1 = new BigInteger(o1.getSequenceNumberRange().getStartingSequenceNumber());
-                BigInteger i2 = new BigInteger(o2.getSequenceNumberRange().getStartingSequenceNumber());
-                return i1.compareTo(i2);
-            }
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StaticSequenceNumberProvider.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StaticSequenceNumberProvider.java
deleted file mode 100644
index 338ab88..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StaticSequenceNumberProvider.java
+++ /dev/null
@@ -1,31 +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.aws.ddbstream;
-
-public class StaticSequenceNumberProvider implements SequenceNumberProvider {
-
-    private final String sequenceNumber;
-
-    public StaticSequenceNumberProvider(String sequenceNumber) {
-        this.sequenceNumber = sequenceNumber;
-    }
-
-    @Override
-    public String getSequenceNumber() {
-        return sequenceNumber;
-    }
-}
diff --git a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverter.java b/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverter.java
deleted file mode 100644
index cf6a0be..0000000
--- a/components/camel-aws-ddb/src/main/java/org/apache/camel/component/aws/ddbstream/StringSequenceNumberConverter.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.component.aws.ddbstream;
-
-import org.apache.camel.Converter;
-
-// Allow to ignore this type converter if the ddbstream JARs are not present on the classpath
-@Converter(generateLoader = true, ignoreOnLoadError = true)
-public final class StringSequenceNumberConverter {
-
-    private StringSequenceNumberConverter() {
-    }
-
-    @Converter
-    public static SequenceNumberProvider toSequenceNumberProvider(String sequenceNumber) {
-        return new StaticSequenceNumberProvider(sequenceNumber);
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
deleted file mode 100644
index bc7a035..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/AmazonDDBClientMock.java
+++ /dev/null
@@ -1,205 +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.aws.ddb;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.AbstractAmazonDynamoDB;
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.BatchGetItemRequest;
-import com.amazonaws.services.dynamodbv2.model.BatchGetItemResult;
-import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
-import com.amazonaws.services.dynamodbv2.model.CreateTableRequest;
-import com.amazonaws.services.dynamodbv2.model.CreateTableResult;
-import com.amazonaws.services.dynamodbv2.model.DeleteItemRequest;
-import com.amazonaws.services.dynamodbv2.model.DeleteItemResult;
-import com.amazonaws.services.dynamodbv2.model.DeleteTableRequest;
-import com.amazonaws.services.dynamodbv2.model.DeleteTableResult;
-import com.amazonaws.services.dynamodbv2.model.DescribeTableRequest;
-import com.amazonaws.services.dynamodbv2.model.DescribeTableResult;
-import com.amazonaws.services.dynamodbv2.model.GetItemRequest;
-import com.amazonaws.services.dynamodbv2.model.GetItemResult;
-import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
-import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
-import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputDescription;
-import com.amazonaws.services.dynamodbv2.model.PutItemRequest;
-import com.amazonaws.services.dynamodbv2.model.PutItemResult;
-import com.amazonaws.services.dynamodbv2.model.QueryRequest;
-import com.amazonaws.services.dynamodbv2.model.QueryResult;
-import com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException;
-import com.amazonaws.services.dynamodbv2.model.ScanRequest;
-import com.amazonaws.services.dynamodbv2.model.ScanResult;
-import com.amazonaws.services.dynamodbv2.model.TableDescription;
-import com.amazonaws.services.dynamodbv2.model.TableStatus;
-import com.amazonaws.services.dynamodbv2.model.UpdateItemRequest;
-import com.amazonaws.services.dynamodbv2.model.UpdateItemResult;
-import com.amazonaws.services.dynamodbv2.model.UpdateTableRequest;
-import com.amazonaws.services.dynamodbv2.model.UpdateTableResult;
-
-public class AmazonDDBClientMock extends AbstractAmazonDynamoDB {
-    public static final long NOW = 1327709390233L;
-    DescribeTableRequest describeTableRequest;
-    CreateTableRequest createTableRequest;
-    UpdateTableRequest updateTableRequest;
-    DeleteTableRequest deleteTableRequest;
-    PutItemRequest putItemRequest;
-    UpdateItemRequest updateItemRequest;
-    DeleteItemRequest deleteItemRequest;
-    GetItemRequest getItemRequest;
-    BatchGetItemRequest batchGetItemRequest;
-    ScanRequest scanRequest;
-    QueryRequest queryRequest;
-
-    public AmazonDDBClientMock() {
-    }
-
-    @Override
-    public DescribeTableResult describeTable(DescribeTableRequest describeTableRequest) {
-        this.describeTableRequest = describeTableRequest;
-        String tableName = describeTableRequest.getTableName();
-        if ("activeTable".equals(tableName)) {
-            return tableWithStatus(TableStatus.ACTIVE);
-        } else if ("creatibleTable".equals(tableName) && createTableRequest != null) {
-            return tableWithStatus(TableStatus.ACTIVE);
-        } else if ("FULL_DESCRIBE_TABLE".equals(tableName)) {
-            return new DescribeTableResult().withTable(new TableDescription()
-                    .withTableName(tableName)
-                    .withTableStatus(TableStatus.ACTIVE)
-                    .withCreationDateTime(new Date(NOW))
-                    .withItemCount(100L)
-                    .withKeySchema(new KeySchemaElement().withAttributeName("name"))
-                    .withProvisionedThroughput(new ProvisionedThroughputDescription()
-                            .withReadCapacityUnits(20L)
-                            .withWriteCapacityUnits(10L))
-                    .withTableSizeBytes(1000L));
-        }
-        throw new ResourceNotFoundException(tableName + " is missing");
-    }
-
-    private DescribeTableResult tableWithStatus(TableStatus active) {
-        return new DescribeTableResult().withTable(new TableDescription().withTableStatus(active));
-    }
-
-    @Override
-    public CreateTableResult createTable(CreateTableRequest createTableRequest) {
-        this.createTableRequest = createTableRequest;
-        return new CreateTableResult().withTableDescription(
-                new TableDescription().withTableStatus(TableStatus.CREATING));
-    }
-
-    @Override
-    public UpdateTableResult updateTable(UpdateTableRequest updateTableRequest) {
-        this.updateTableRequest = updateTableRequest;
-        return null;
-    }
-
-    @Override
-    public DeleteTableResult deleteTable(DeleteTableRequest deleteTableRequest) {
-        this.deleteTableRequest = deleteTableRequest;
-        return new DeleteTableResult().withTableDescription(new TableDescription()
-                .withProvisionedThroughput(new ProvisionedThroughputDescription())
-                .withTableName(deleteTableRequest.getTableName())
-                .withCreationDateTime(new Date(NOW))
-                .withItemCount(10L)
-                .withKeySchema(new ArrayList<KeySchemaElement>())
-                .withTableSizeBytes(20L)
-                .withTableStatus(TableStatus.ACTIVE));
-    }
-
-    @Override
-    public PutItemResult putItem(PutItemRequest putItemRequest) {
-        this.putItemRequest = putItemRequest;
-        return new PutItemResult().withAttributes(getAttributes());
-    }
-
-    private Map<String, AttributeValue> getAttributes() {
-        Map<String, AttributeValue> attributes = new HashMap<>();
-        attributes.put("attrName", new AttributeValue("attrValue"));
-        return attributes;
-    }
-
-    @Override
-    public UpdateItemResult updateItem(UpdateItemRequest updateItemRequest) {
-        this.updateItemRequest = updateItemRequest;
-        return new UpdateItemResult().withAttributes(getAttributes());
-    }
-
-    @Override
-    public DeleteItemResult deleteItem(DeleteItemRequest deleteItemRequest) {
-        this.deleteItemRequest = deleteItemRequest;
-        return new DeleteItemResult().withAttributes(getAttributes());
-    }
-
-    @Override
-    public GetItemResult getItem(GetItemRequest getItemRequest) {
-        this.getItemRequest = getItemRequest;
-        return new GetItemResult().withItem(getAttributes());
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public BatchGetItemResult batchGetItem(BatchGetItemRequest batchGetItemRequest) {
-        this.batchGetItemRequest = batchGetItemRequest;
-        Map<String, List<Map<String, AttributeValue>>> responseMap = new HashMap<>();
-        List<Map<String, AttributeValue>> p = new ArrayList<>();
-        p.add(getAttributes());
-        responseMap.put("DOMAIN1", p);
-        Map<String, AttributeValue> keysMap = new HashMap<>();
-        keysMap.put("1", new AttributeValue("UNPROCESSED_KEY"));
-        Map<String, KeysAndAttributes> unprocessedKeys = new HashMap<>();
-        unprocessedKeys.put("DOMAIN1", new KeysAndAttributes().withKeys(keysMap));
-
-        return new BatchGetItemResult()
-                .withResponses(responseMap)
-                .withUnprocessedKeys(unprocessedKeys);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public ScanResult scan(ScanRequest scanRequest) {
-        this.scanRequest = scanRequest;
-        ConsumedCapacity consumed = new ConsumedCapacity();
-        consumed.setCapacityUnits(1.0);
-        Map<String, AttributeValue> lastEvaluatedKey = new HashMap<>();
-        lastEvaluatedKey.put("1", new AttributeValue("LAST_KEY"));
-        return new ScanResult()
-                .withConsumedCapacity(consumed)
-                .withCount(1)
-                .withItems(getAttributes())
-                .withScannedCount(10)
-                .withLastEvaluatedKey(lastEvaluatedKey);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public QueryResult query(QueryRequest queryRequest) {
-        this.queryRequest = queryRequest;
-        ConsumedCapacity consumed = new ConsumedCapacity();
-        consumed.setCapacityUnits(1.0);
-        Map<String, AttributeValue> lastEvaluatedKey = new HashMap<>();
-        lastEvaluatedKey.put("1", new AttributeValue("LAST_KEY"));
-        return new QueryResult()
-                .withConsumedCapacity(consumed)
-                .withCount(1)
-                .withItems(getAttributes())
-                .withLastEvaluatedKey(lastEvaluatedKey);
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
deleted file mode 100644
index 2aabe1f..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/BatchGetItemsCommandTest.java
+++ /dev/null
@@ -1,74 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.KeysAndAttributes;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class BatchGetItemsCommandTest {
-
-    private BatchGetItemsCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new BatchGetItemsCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put("1", new AttributeValue("Key_1"));
-        Map<String, AttributeValue> unprocessedKey = new HashMap<>();
-        unprocessedKey.put("1", new AttributeValue("UNPROCESSED_KEY"));
-        Map<String, KeysAndAttributes> keysAndAttributesMap = new HashMap<>();
-        KeysAndAttributes keysAndAttributes = new KeysAndAttributes().withKeys(key);
-        keysAndAttributesMap.put("DOMAIN1", keysAndAttributes);
-        exchange.getIn().setHeader(DdbConstants.BATCH_ITEMS, keysAndAttributesMap);
-
-        command.execute();
-
-        assertEquals(keysAndAttributesMap, ddbClient.batchGetItemRequest.getRequestItems());
-
-        List<Map<String, AttributeValue>> batchResponse = (List<Map<String, AttributeValue>>) exchange.getIn()
-                .getHeader(DdbConstants.BATCH_RESPONSE, Map.class).get("DOMAIN1");
-        AttributeValue value = batchResponse.get(0).get("attrName");
-
-        KeysAndAttributes unProcessedAttributes = (KeysAndAttributes) exchange.getIn().getHeader(
-                DdbConstants.UNPROCESSED_KEYS, Map.class).get("DOMAIN1");
-        Map<String, AttributeValue> next = unProcessedAttributes.getKeys().iterator().next();
-
-        assertEquals(new AttributeValue("attrValue"), value);
-        assertEquals(unprocessedKey, next);
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java
deleted file mode 100644
index 1a6ff03..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentConfigurationTest.java
+++ /dev/null
@@ -1,71 +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.aws.ddb;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.regions.Regions;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DdbComponentConfigurationTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithComponentElements() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        DdbEndpoint endpoint = (DdbEndpoint) component.createEndpoint("aws-ddb://myTable");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
-        assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
-    }
-
-    @Test
-    public void createEndpointWithComponentAndEndpointElements() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        DdbEndpoint endpoint
-                = (DdbEndpoint) component.createEndpoint("aws-ddb://myTable?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-    }
-
-    @Test
-    public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        DdbEndpoint endpoint = (DdbEndpoint) component.createEndpoint(
-                "aws-ddb://myTable?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-        assertEquals(Protocol.HTTP, endpoint.getConfiguration().getProxyProtocol());
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java
deleted file mode 100644
index dd7f075..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentRegistryClientTest.java
+++ /dev/null
@@ -1,68 +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.aws.ddb;
-
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-public class DdbComponentRegistryClientTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithRegistryClient() throws Exception {
-        AmazonDDBClientMock ddbClient = new AmazonDDBClientMock();
-        context.getRegistry().bind("ddbClient", ddbClient);
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        DdbEndpoint endpoint = (DdbEndpoint) component.createEndpoint("aws-ddb://myTable");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-    }
-
-    @Test
-    public void createEndpointWithoutRegistryClient() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        assertThrows(IllegalArgumentException.class,
-                () -> component.createEndpoint("aws-ddb://myTable"));
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientFalse() throws Exception {
-        AmazonDDBClientMock ddbClient = new AmazonDDBClientMock();
-        context.getRegistry().bind("ddbClient", ddbClient);
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        DdbEndpoint endpoint = (DdbEndpoint) component
-                .createEndpoint("aws-ddb://myTable?autoDiscoverClient=false&accessKey=xxx&secretKey=xxx");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertNotSame(ddbClient, endpoint.getConfiguration().getAmazonDDBClient());
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientTrue() throws Exception {
-        AmazonDDBClientMock ddbClient = new AmazonDDBClientMock();
-        context.getRegistry().bind("ddbClient", ddbClient);
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        DdbEndpoint endpoint = (DdbEndpoint) component.createEndpoint("aws-ddb://myTable");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertSame(ddbClient, endpoint.getConfiguration().getAmazonDDBClient());
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java
deleted file mode 100644
index 797b6d3..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentTest.java
+++ /dev/null
@@ -1,73 +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.aws.ddb;
-
-import org.apache.camel.BindToRegistry;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.engine.DefaultProducerTemplate;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-public class DdbComponentTest extends CamelTestSupport {
-
-    @BindToRegistry("amazonDDBClient")
-    private AmazonDDBClientMock amazonDDBClient = new AmazonDDBClientMock();
-
-    @Test
-    public void whenTableExistsThenDoesntCreateItOnStart() throws Exception {
-        assertNull(amazonDDBClient.createTableRequest);
-    }
-
-    @Test
-    public void whenTableIsMissingThenCreateItOnStart() throws Exception {
-        DefaultProducerTemplate.newInstance(context,
-                "aws-ddb://creatibleTable?amazonDDBClient=#amazonDDBClient");
-        assertEquals("creatibleTable", amazonDDBClient.createTableRequest.getTableName());
-    }
-
-    @Test
-    public void createEndpointWithOnlySecretKeyConfiguration() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.createEndpoint("aws-ddb://activeTable?secretKey=xxx");
-    }
-
-    @Test
-    public void createEndpointWithoutSecretKeyAndAccessKeyConfiguration() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.createEndpoint("aws-ddb://activeTable?amazonDDBClient=#amazonDDBClient");
-    }
-
-    @Test
-    public void createEndpointWithOnlyAccessKeyAndSecretKey() throws Exception {
-        DdbComponent component = context.getComponent("aws-ddb", DdbComponent.class);
-        component.createEndpoint("aws-ddb://activeTable?accessKey=xxx&secretKey=yyy");
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                        .to("aws-ddb://activeTable?amazonDDBClient=#amazonDDBClient");
-            }
-        };
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtensionTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtensionTest.java
deleted file mode 100644
index 99b4a6b..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DdbComponentVerifierExtensionTest.java
+++ /dev/null
@@ -1,74 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DdbComponentVerifierExtensionTest extends CamelTestSupport {
-
-    // *************************************************
-    // Tests (parameters)
-    // *************************************************
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    @Test
-    public void testParameters() throws Exception {
-        Component component = context().getComponent("aws-ddb");
-
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "l");
-        parameters.put("tableName", "test");
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
-    }
-
-    @Test
-    public void testConnectivity() throws Exception {
-        Component component = context().getComponent("aws-ddb");
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "US_EAST_1");
-        parameters.put("tableName", "test");
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
deleted file mode 100644
index 7720732..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteItemCommandTest.java
+++ /dev/null
@@ -1,70 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DeleteItemCommandTest {
-
-    private DeleteItemCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new DeleteItemCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put("1", new AttributeValue("Key_1"));
-        exchange.getIn().setHeader(DdbConstants.KEY, key);
-
-        Map<String, ExpectedAttributeValue> updateCondition = new HashMap<>();
-        updateCondition
-                .put("name", new ExpectedAttributeValue(new AttributeValue("expected value")));
-        exchange.getIn().setHeader(DdbConstants.UPDATE_CONDITION, updateCondition);
-        exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
-
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.deleteItemRequest.getTableName());
-        assertEquals(key, ddbClient.deleteItemRequest.getKey());
-        assertEquals(updateCondition, ddbClient.deleteItemRequest.getExpected());
-        assertEquals("ALL_OLD", ddbClient.deleteItemRequest.getReturnValues());
-        assertEquals(new AttributeValue("attrValue"),
-                exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get(
-                        "attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
deleted file mode 100644
index 158f43a..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DeleteTableCommandTest.java
+++ /dev/null
@@ -1,64 +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.aws.ddb;
-
-import java.util.ArrayList;
-import java.util.Date;
-
-import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
-import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughputDescription;
-import com.amazonaws.services.dynamodbv2.model.TableStatus;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DeleteTableCommandTest {
-
-    private DeleteTableCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-
-        command = new DeleteTableCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void testExecute() {
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.deleteTableRequest.getTableName());
-        assertEquals(new ProvisionedThroughputDescription(), exchange.getIn().getHeader(
-                DdbConstants.PROVISIONED_THROUGHPUT));
-        assertEquals(new Date(AmazonDDBClientMock.NOW), exchange.getIn().getHeader(DdbConstants.CREATION_DATE,
-                Date.class));
-        assertEquals(Long.valueOf(10L), exchange.getIn().getHeader(DdbConstants.ITEM_COUNT, Long.class));
-        assertEquals(new ArrayList<KeySchemaElement>(), exchange.getIn().getHeader(DdbConstants.KEY_SCHEMA, ArrayList.class));
-        assertEquals(Long.valueOf(20L), exchange.getIn().getHeader(DdbConstants.TABLE_SIZE, Long.class));
-        assertEquals(TableStatus.ACTIVE, exchange.getIn().getHeader(DdbConstants.TABLE_STATUS, TableStatus.class));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
deleted file mode 100644
index bc045c9..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/DescribeTableCommandTest.java
+++ /dev/null
@@ -1,64 +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.aws.ddb;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DescribeTableCommandTest {
-
-    private DescribeTableCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("FULL_DESCRIBE_TABLE");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new DescribeTableCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void testExecute() {
-        command.execute();
-        List<KeySchemaElement> keySchema = new ArrayList<>();
-        keySchema.add(new KeySchemaElement().withAttributeName("name"));
-        assertEquals("FULL_DESCRIBE_TABLE", ddbClient.describeTableRequest.getTableName());
-        assertEquals("FULL_DESCRIBE_TABLE", exchange.getIn().getHeader(DdbConstants.TABLE_NAME));
-        assertEquals("ACTIVE", exchange.getIn().getHeader(DdbConstants.TABLE_STATUS));
-        assertEquals(new Date(AmazonDDBClientMock.NOW), exchange.getIn().getHeader(DdbConstants.CREATION_DATE));
-        assertEquals(100L, exchange.getIn().getHeader(DdbConstants.ITEM_COUNT));
-        assertEquals(keySchema,
-                exchange.getIn().getHeader(DdbConstants.KEY_SCHEMA));
-        assertEquals(20L, exchange.getIn().getHeader(DdbConstants.READ_CAPACITY));
-        assertEquals(10L, exchange.getIn().getHeader(DdbConstants.WRITE_CAPACITY));
-        assertEquals(1000L, exchange.getIn().getHeader(DdbConstants.TABLE_SIZE));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
deleted file mode 100644
index 7222ce7..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/GetItemCommandTest.java
+++ /dev/null
@@ -1,68 +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.aws.ddb;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class GetItemCommandTest {
-    private GetItemCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new GetItemCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put("1", new AttributeValue("Key_1"));
-        exchange.getIn().setHeader(DdbConstants.KEY, key);
-
-        List<String> attrNames = Arrays.asList("attrName");
-        exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, attrNames);
-        exchange.getIn().setHeader(DdbConstants.CONSISTENT_READ, true);
-
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.getItemRequest.getTableName());
-        assertEquals(attrNames, ddbClient.getItemRequest.getAttributesToGet());
-        assertEquals(true, ddbClient.getItemRequest.getConsistentRead());
-        assertEquals(key, ddbClient.getItemRequest.getKey());
-        assertEquals(new AttributeValue("attrValue"),
-                exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get(
-                        "attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
deleted file mode 100644
index 99abb65..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/PutItemCommandTest.java
+++ /dev/null
@@ -1,67 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class PutItemCommandTest {
-
-    private PutItemCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new PutItemCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, AttributeValue> attributeMap = new HashMap<>();
-        AttributeValue attributeValue = new AttributeValue("test value");
-        attributeMap.put("name", attributeValue);
-        exchange.getIn().setHeader(DdbConstants.ITEM, attributeMap);
-
-        Map<String, ExpectedAttributeValue> expectedAttributeValueMap = new HashMap<>();
-        expectedAttributeValueMap.put("name", new ExpectedAttributeValue(attributeValue));
-        exchange.getIn().setHeader(DdbConstants.UPDATE_CONDITION, expectedAttributeValueMap);
-
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.putItemRequest.getTableName());
-        assertEquals(attributeMap, ddbClient.putItemRequest.getItem());
-        assertEquals(expectedAttributeValueMap, ddbClient.putItemRequest.getExpected());
-        assertEquals(new AttributeValue("attrValue"),
-                exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get("attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
deleted file mode 100644
index 3d59365..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/QueryCommandTest.java
+++ /dev/null
@@ -1,87 +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.aws.ddb;
-
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ComparisonOperator;
-import com.amazonaws.services.dynamodbv2.model.Condition;
-import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class QueryCommandTest {
-
-    private QueryCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new QueryCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-
-        Map<String, AttributeValue> startKey = new HashMap<>();
-        startKey.put("1", new AttributeValue("startKey"));
-
-        List<String> attributeNames = Arrays.asList("attrNameOne", "attrNameTwo");
-        exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, attributeNames);
-        exchange.getIn().setHeader(DdbConstants.CONSISTENT_READ, true);
-        exchange.getIn().setHeader(DdbConstants.START_KEY, startKey);
-        exchange.getIn().setHeader(DdbConstants.LIMIT, 10);
-        exchange.getIn().setHeader(DdbConstants.SCAN_INDEX_FORWARD, true);
-
-        Map<String, Condition> keyConditions = new HashMap<>();
-        Condition condition = new Condition()
-                .withComparisonOperator(ComparisonOperator.GT.toString())
-                .withAttributeValueList(new AttributeValue().withN("1985"));
-
-        keyConditions.put("1", condition);
-
-        exchange.getIn().setHeader(DdbConstants.KEY_CONDITIONS, keyConditions);
-
-        command.execute();
-
-        Map<String, AttributeValue> mapAssert = new HashMap<>();
-        mapAssert.put("1", new AttributeValue("LAST_KEY"));
-        ConsumedCapacity consumed = (ConsumedCapacity) exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY);
-        assertEquals(Integer.valueOf(1), exchange.getIn().getHeader(DdbConstants.COUNT, Integer.class));
-        assertEquals(Double.valueOf(1.0), consumed.getCapacityUnits());
-        assertEquals(mapAssert, exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Map.class));
-        assertEquals(keyConditions, exchange.getIn().getHeader(DdbConstants.KEY_CONDITIONS, Map.class));
-
-        Map<?, ?> items = (Map<?, ?>) exchange.getIn().getHeader(DdbConstants.ITEMS, List.class).get(0);
-        assertEquals(new AttributeValue("attrValue"), items.get("attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
deleted file mode 100644
index ebde80a..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/ScanCommandTest.java
+++ /dev/null
@@ -1,75 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ComparisonOperator;
-import com.amazonaws.services.dynamodbv2.model.Condition;
-import com.amazonaws.services.dynamodbv2.model.ConsumedCapacity;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class ScanCommandTest {
-
-    private ScanCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new ScanCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, Condition> scanFilter = new HashMap<>();
-        Condition condition = new Condition()
-                .withComparisonOperator(ComparisonOperator.GT.toString())
-                .withAttributeValueList(new AttributeValue().withN("1985"));
-        scanFilter.put("year", condition);
-        exchange.getIn().setHeader(DdbConstants.SCAN_FILTER, scanFilter);
-
-        command.execute();
-
-        Map<String, AttributeValue> mapAssert = new HashMap<>();
-        mapAssert.put("1", new AttributeValue("LAST_KEY"));
-
-        ConsumedCapacity consumed = (ConsumedCapacity) exchange.getIn().getHeader(DdbConstants.CONSUMED_CAPACITY);
-        assertEquals(scanFilter, ddbClient.scanRequest.getScanFilter());
-        assertEquals(Integer.valueOf(10), exchange.getIn().getHeader(DdbConstants.SCANNED_COUNT, Integer.class));
-        assertEquals(Integer.valueOf(1), exchange.getIn().getHeader(DdbConstants.COUNT, Integer.class));
-        assertEquals(Double.valueOf(1.0), consumed.getCapacityUnits());
-        assertEquals(mapAssert, exchange.getIn().getHeader(DdbConstants.LAST_EVALUATED_KEY, Map.class));
-
-        Map<?, ?> items = (Map<?, ?>) exchange.getIn().getHeader(DdbConstants.ITEMS, List.class).get(0);
-        assertEquals(new AttributeValue("attrValue"), items.get("attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
deleted file mode 100644
index 384f685..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateItemCommandTest.java
+++ /dev/null
@@ -1,79 +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.aws.ddb;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.services.dynamodbv2.model.AttributeAction;
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.AttributeValueUpdate;
-import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class UpdateItemCommandTest {
-
-    private UpdateItemCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        exchange = new DefaultExchange(new DefaultCamelContext());
-        command = new UpdateItemCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void execute() {
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put("1", new AttributeValue("Key_1"));
-        exchange.getIn().setHeader(DdbConstants.KEY, key);
-
-        Map<String, AttributeValueUpdate> attributeMap = new HashMap<>();
-        AttributeValueUpdate attributeValue = new AttributeValueUpdate(
-                new AttributeValue("new value"), AttributeAction.ADD);
-        attributeMap.put("name", attributeValue);
-        exchange.getIn().setHeader(DdbConstants.UPDATE_VALUES, attributeMap);
-
-        Map<String, ExpectedAttributeValue> expectedAttributeValueMap = new HashMap<>();
-        expectedAttributeValueMap
-                .put("name", new ExpectedAttributeValue(new AttributeValue("expected value")));
-        exchange.getIn().setHeader(DdbConstants.UPDATE_CONDITION, expectedAttributeValueMap);
-        exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
-
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.updateItemRequest.getTableName());
-        assertEquals(attributeMap, ddbClient.updateItemRequest.getAttributeUpdates());
-        assertEquals(key, ddbClient.updateItemRequest.getKey());
-        assertEquals(expectedAttributeValueMap, ddbClient.updateItemRequest.getExpected());
-        assertEquals("ALL_OLD", ddbClient.updateItemRequest.getReturnValues());
-        assertEquals(new AttributeValue("attrValue"),
-                exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get(
-                        "attrName"));
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateTableCommandTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateTableCommandTest.java
deleted file mode 100644
index 2934ecb..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/UpdateTableCommandTest.java
+++ /dev/null
@@ -1,54 +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.aws.ddb;
-
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.DefaultExchange;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class UpdateTableCommandTest {
-
-    private UpdateTableCommand command;
-    private AmazonDDBClientMock ddbClient;
-    private DdbConfiguration configuration;
-    private Exchange exchange;
-
-    @BeforeEach
-    public void setUp() {
-        ddbClient = new AmazonDDBClientMock();
-        configuration = new DdbConfiguration();
-        configuration.setTableName("DOMAIN1");
-        configuration.setReadCapacity(20L);
-        configuration.setWriteCapacity(30L);
-        exchange = new DefaultExchange(new DefaultCamelContext());
-
-        command = new UpdateTableCommand(ddbClient, configuration, exchange);
-    }
-
-    @Test
-    public void testExecute() {
-        command.execute();
-
-        assertEquals("DOMAIN1", ddbClient.updateTableRequest.getTableName());
-        assertEquals(Long.valueOf(20), ddbClient.updateTableRequest.getProvisionedThroughput().getReadCapacityUnits());
-        assertEquals(Long.valueOf(30), ddbClient.updateTableRequest.getProvisionedThroughput().getWriteCapacityUnits());
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.java
deleted file mode 100644
index f227169..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddb/integration/DdbComponentIntegrationTest.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.component.aws.ddb.integration;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.amazonaws.regions.Regions;
-import com.amazonaws.services.dynamodbv2.model.AttributeValue;
-import com.amazonaws.services.dynamodbv2.model.ExpectedAttributeValue;
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.ProducerTemplate;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.aws.ddb.DdbConstants;
-import org.apache.camel.component.aws.ddb.DdbOperations;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-@Disabled("Must be manually tested. Provide your own credentials below!")
-public class DdbComponentIntegrationTest extends CamelTestSupport {
-
-    @EndpointInject("direct:start")
-    private ProducerTemplate template;
-
-    //To replace with proper credentials:
-    private final String attributeName = "clave";
-    private final String tableName = "TestTable";
-    private final String secretKey = "-";
-    private final String accessKey = "-";
-    private final String region = Regions.EU_WEST_2.name();
-    //End credentials replacement
-
-    private final String randomId = String.valueOf(System.currentTimeMillis());
-
-    @Test
-    public void fullLifeCycle() {
-        putItem();
-        getItem();
-        updateItem();
-        deleteItem();
-    }
-
-    public void putItem() {
-        final Map<String, AttributeValue> attributeMap = new HashMap<>();
-        AttributeValue attributeValue = new AttributeValue(randomId);
-        attributeMap.put(attributeName, attributeValue);
-        attributeMap.put("secondary_attribute", new AttributeValue("value"));
-
-        Exchange exchange = template.send("direct:start", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(DdbConstants.OPERATION, DdbOperations.PutItem);
-                exchange.getIn().setHeader(DdbConstants.CONSISTENT_READ, "true");
-                exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
-                exchange.getIn().setHeader(DdbConstants.ITEM, attributeMap);
-                exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, attributeMap.keySet());
-            }
-        });
-
-        assertNotNull(exchange.getIn().getHeader(DdbConstants.ITEM));
-    }
-
-    public void updateItem() {
-        Map<String, AttributeValue> attributeMap = new HashMap<>();
-        attributeMap.put(attributeName, new AttributeValue(randomId));
-        attributeMap.put("secondary_attribute", new AttributeValue("new"));
-
-        Map<String, ExpectedAttributeValue> expectedAttributeValueMap = new HashMap<>();
-        expectedAttributeValueMap.put(attributeName,
-                new ExpectedAttributeValue(new AttributeValue(randomId)));
-
-        Exchange exchange = template.send("direct:start", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(DdbConstants.ITEM, attributeMap);
-                exchange.getIn().setHeader(DdbConstants.UPDATE_CONDITION, expectedAttributeValueMap);
-                exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, attributeMap.keySet());
-                exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
-            }
-        });
-
-        assertNotNull(exchange.getIn().getHeader(DdbConstants.ATTRIBUTES));
-    }
-
-    public void getItem() {
-
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put(attributeName, new AttributeValue(randomId));
-
-        Exchange exchange = template.send("direct:start", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(DdbConstants.OPERATION, DdbOperations.GetItem);
-                exchange.getIn().setHeader(DdbConstants.CONSISTENT_READ, true);
-                exchange.getIn().setHeader(DdbConstants.KEY, key);
-                exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, key.keySet());
-            }
-        });
-
-        assertNotNull(exchange.getIn().getHeader(DdbConstants.ATTRIBUTES));
-        assertEquals(new AttributeValue(randomId),
-                exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get(
-                        attributeName));
-    }
-
-    @Test
-    public void deleteItem() {
-        Map<String, AttributeValue> key = new HashMap<>();
-        key.put(attributeName, new AttributeValue(randomId));
-
-        Exchange exchange = template.send("direct:start", new Processor() {
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(DdbConstants.KEY, key);
-                exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
-                exchange.getIn().setHeader(DdbConstants.OPERATION, DdbOperations.DeleteItem);
-                exchange.getIn().setHeader(DdbConstants.ATTRIBUTE_NAMES, key.keySet());
-            }
-        });
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:start")
-                        .to("aws-ddb://" + tableName + "?"
-                            + "region=" + region
-                            + "&accessKey=" + accessKey
-                            + "&secretKey=RAW(" + secretKey + ")");
-            }
-        };
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurationTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurationTest.java
deleted file mode 100644
index 2dddbf3..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentConfigurationTest.java
+++ /dev/null
@@ -1,82 +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.aws.ddbstream;
-
-import com.amazonaws.Protocol;
-import com.amazonaws.regions.Regions;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DdbStreamComponentConfigurationTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithAccessAndSecretKey() throws Exception {
-        DdbStreamComponent component = context.getComponent("aws-ddbstream", DdbStreamComponent.class);
-        DdbStreamEndpoint endpoint
-                = (DdbStreamEndpoint) component.createEndpoint("aws-ddbstreams://myTable?accessKey=xxxxx&secretKey=yyyyy");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("xxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-    }
-
-    @Test
-    public void createEndpointWithComponentElements() throws Exception {
-        DdbStreamComponent component = context.getComponent("aws-ddbstream", DdbStreamComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        DdbStreamEndpoint endpoint = (DdbStreamEndpoint) component.createEndpoint("aws-ddbstreams://myTable");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
-        assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
-    }
-
-    @Test
-    public void createEndpointWithComponentAndEndpointElements() throws Exception {
-        DdbStreamComponent component = context.getComponent("aws-ddbstream", DdbStreamComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        DdbStreamEndpoint endpoint = (DdbStreamEndpoint) component
-                .createEndpoint("aws-ddbstreams://myTable?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-    }
-
-    @Test
-    public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
-        DdbStreamComponent component = context.getComponent("aws-ddbstream", DdbStreamComponent.class);
-        component.getConfiguration().setAccessKey("XXX");
-        component.getConfiguration().setSecretKey("YYY");
-        component.getConfiguration().setRegion(Regions.US_WEST_1.toString());
-        DdbStreamEndpoint endpoint = (DdbStreamEndpoint) component.createEndpoint(
-                "aws-ddbstreams://myTable?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
-
-        assertEquals("myTable", endpoint.getConfiguration().getTableName());
-        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
-        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
-        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
-        assertEquals(Protocol.HTTP, endpoint.getConfiguration().getProxyProtocol());
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtensionTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtensionTest.java
deleted file mode 100644
index f6bca88..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamComponentVerifierExtensionTest.java
+++ /dev/null
@@ -1,74 +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.aws.ddbstream;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class DdbStreamComponentVerifierExtensionTest extends CamelTestSupport {
-
-    // *************************************************
-    // Tests (parameters)
-    // *************************************************
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    @Test
-    public void testParameters() throws Exception {
-        Component component = context().getComponent("aws-ddbstream");
-
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "l");
-        parameters.put("tableName", "test");
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
-    }
-
-    @Test
-    public void testConnectivity() throws Exception {
-        Component component = context().getComponent("aws-ddbstream");
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "US_EAST_1");
-        parameters.put("tableName", "test");
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-    }
-
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumerTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumerTest.java
deleted file mode 100644
index 86e0aff..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamConsumerTest.java
+++ /dev/null
@@ -1,214 +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.aws.ddbstream;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.model.ExpiredIteratorException;
-import com.amazonaws.services.dynamodbv2.model.GetRecordsRequest;
-import com.amazonaws.services.dynamodbv2.model.GetRecordsResult;
-import com.amazonaws.services.dynamodbv2.model.Record;
-import com.amazonaws.services.dynamodbv2.model.ShardIteratorType;
-import com.amazonaws.services.dynamodbv2.model.StreamRecord;
-import org.apache.camel.AsyncCallback;
-import org.apache.camel.AsyncProcessor;
-import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mock;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.lenient;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-public class DdbStreamConsumerTest {
-
-    private DdbStreamConsumer undertest;
-
-    @Mock
-    private AmazonDynamoDBStreams amazonDynamoDBStreams;
-    @Mock
-    private AsyncProcessor processor;
-    @Mock
-    private ShardIteratorHandler shardIteratorHandler;
-
-    private final CamelContext context = new DefaultCamelContext();
-    private final DdbStreamComponent component = new DdbStreamComponent(context);
-    private final DdbStreamEndpoint endpoint = new DdbStreamEndpoint(null, new DdbStreamConfiguration(), component);
-    private GetRecordsAnswer recordsAnswer;
-
-    @BeforeEach
-    public void setup() throws Exception {
-        endpoint.getConfiguration().setAmazonDynamoDbStreamsClient(amazonDynamoDBStreams);
-        endpoint.start();
-        undertest = new DdbStreamConsumer(endpoint, processor, shardIteratorHandler);
-
-        final Map<String, String> shardIterators = new HashMap<>();
-        shardIterators.put("shard_iterator_a_000", "shard_iterator_a_001");
-        shardIterators.put("shard_iterator_b_000", "shard_iterator_b_001");
-        shardIterators.put("shard_iterator_b_001", "shard_iterator_b_002");
-        shardIterators.put("shard_iterator_c_000", "shard_iterator_c_001");
-        shardIterators.put("shard_iterator_d_000", "shard_iterator_d_001");
-        final Map<String, Collection<Record>> answers = new HashMap<>();
-        answers.put("shard_iterator_a_001", createRecords("2"));
-        answers.put("shard_iterator_b_000", createRecords("9"));
-        answers.put("shard_iterator_b_001", createRecords("11", "13"));
-        answers.put("shard_iterator_b_002", createRecords("14"));
-        answers.put("shard_iterator_d_000", createRecords("21", "25"));
-        answers.put("shard_iterator_d_001", createRecords("30", "35", "40"));
-        recordsAnswer = new GetRecordsAnswer(shardIterators, answers);
-        lenient().when(amazonDynamoDBStreams.getRecords(any(GetRecordsRequest.class))).thenAnswer(recordsAnswer);
-    }
-
-    String pad(String num, int to) {
-        // lazy padding
-        switch (num.length()) {
-            case 1:
-                return "00" + num;
-            case 2:
-                return "0" + num;
-            default:
-                return num;
-        }
-    }
-
-    @Test
-    public void itResumesFromAfterTheLastSeenSequenceNumberWhenAShardIteratorHasExpired() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.LATEST);
-        when(shardIteratorHandler.getShardIterator(ArgumentMatchers.isNull())).thenReturn("shard_iterator_b_000",
-                "shard_iterator_b_001");
-        when(shardIteratorHandler.getShardIterator(ArgumentMatchers.anyString())).thenReturn("shard_iterator_b_001");
-        when(amazonDynamoDBStreams.getRecords(any(GetRecordsRequest.class)))
-                .thenAnswer(recordsAnswer)
-                .thenThrow(new ExpiredIteratorException("expired shard"))
-                .thenAnswer(recordsAnswer);
-
-        undertest.poll();
-        undertest.poll();
-
-        ArgumentCaptor<Exchange> exchangeCaptor = ArgumentCaptor.forClass(Exchange.class);
-        verify(processor, times(3)).process(exchangeCaptor.capture(), any(AsyncCallback.class));
-        verify(shardIteratorHandler, times(2)).getShardIterator(null); // first poll. Second poll, getRecords fails with an expired shard.
-        verify(shardIteratorHandler).getShardIterator("9"); // second poll, with a resumeFrom.
-        assertEquals("9", exchangeCaptor.getAllValues().get(0).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-        assertEquals("11",
-                exchangeCaptor.getAllValues().get(1).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-        assertEquals("13",
-                exchangeCaptor.getAllValues().get(2).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-    }
-
-    @Test
-    public void atSeqNumber35GivesFirstRecordWithSeq35() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.AT_SEQUENCE_NUMBER);
-        endpoint.getConfiguration().setSequenceNumberProvider(new StaticSequenceNumberProvider("35"));
-        when(shardIteratorHandler.getShardIterator(ArgumentMatchers.isNull())).thenReturn("shard_iterator_d_001",
-                "shard_iterator_d_002");
-
-        for (int i = 0; i < 10; ++i) { // poll lots.
-            undertest.poll();
-        }
-
-        ArgumentCaptor<Exchange> exchangeCaptor = ArgumentCaptor.forClass(Exchange.class);
-        verify(processor, times(2)).process(exchangeCaptor.capture(), any(AsyncCallback.class));
-
-        assertEquals("35",
-                exchangeCaptor.getAllValues().get(0).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-        assertEquals("40",
-                exchangeCaptor.getAllValues().get(1).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-    }
-
-    @Test
-    public void afterSeqNumber35GivesFirstRecordWithSeq40() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.AFTER_SEQUENCE_NUMBER);
-        endpoint.getConfiguration().setSequenceNumberProvider(new StaticSequenceNumberProvider("35"));
-        when(shardIteratorHandler.getShardIterator(ArgumentMatchers.isNull())).thenReturn("shard_iterator_d_001",
-                "shard_iterator_d_002");
-
-        for (int i = 0; i < 10; ++i) { // poll lots.
-            undertest.poll();
-        }
-
-        ArgumentCaptor<Exchange> exchangeCaptor = ArgumentCaptor.forClass(Exchange.class);
-        verify(processor, times(1)).process(exchangeCaptor.capture(), any(AsyncCallback.class));
-
-        assertEquals("40",
-                exchangeCaptor.getAllValues().get(0).getIn().getBody(Record.class).getDynamodb().getSequenceNumber());
-    }
-
-    private static Collection<Record> createRecords(String... sequenceNumbers) {
-        List<Record> results = new ArrayList<>();
-
-        for (String seqNum : sequenceNumbers) {
-            results.add(new Record()
-                    .withDynamodb(new StreamRecord().withSequenceNumber(seqNum)));
-        }
-
-        return results;
-    }
-
-    private class GetRecordsAnswer implements Answer<GetRecordsResult> {
-
-        private final Map<String, String> shardIterators;
-        private final Map<String, Collection<Record>> answers;
-        private final Pattern shardIteratorPattern = Pattern.compile("shard_iterator_d_0*(\\d+)");
-
-        GetRecordsAnswer(Map<String, String> shardIterators, Map<String, Collection<Record>> answers) {
-            this.shardIterators = shardIterators;
-            this.answers = answers;
-        }
-
-        @Override
-        public GetRecordsResult answer(InvocationOnMock invocation) throws Throwable {
-            final String shardIterator = ((GetRecordsRequest) invocation.getArguments()[0]).getShardIterator();
-            // note that HashMap returns null when there is no entry in the map.
-            // A null 'nextShardIterator' indicates that the shard has finished
-            // and we should move onto the next shard.
-            String nextShardIterator = shardIterators.get(shardIterator);
-            Matcher m = shardIteratorPattern.matcher(shardIterator);
-            Collection<Record> ans = answers.get(shardIterator);
-            if (nextShardIterator == null && m.matches()) { // last shard iterates forever.
-                Integer num = Integer.parseInt(m.group(1));
-                nextShardIterator = "shard_iterator_d_" + pad(Integer.toString(num + 1), 3);
-            }
-            if (null == ans) { // default to an empty list of records.
-                ans = createRecords();
-            }
-            return new GetRecordsResult()
-                    .withRecords(ans)
-                    .withNextShardIterator(nextShardIterator);
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointTest.java
deleted file mode 100644
index 208c825..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/DdbStreamEndpointTest.java
+++ /dev/null
@@ -1,102 +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.aws.ddbstream;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import org.apache.camel.CamelContext;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.support.SimpleRegistry;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-public class DdbStreamEndpointTest {
-
-    private CamelContext context;
-
-    @Mock
-    private SequenceNumberProvider sequenceNumberProvider;
-    @Mock
-    private AmazonDynamoDBStreams amazonDynamoDBStreams;
-
-    @BeforeEach
-    public void setup() throws Exception {
-        SimpleRegistry registry = new SimpleRegistry();
-        registry.bind("someSeqNumProv", sequenceNumberProvider);
-        registry.bind("ddbStreamsClient", amazonDynamoDBStreams);
-
-        context = new DefaultCamelContext(registry);
-    }
-
-    @Test
-    public void itExtractsTheSequenceNumber() throws Exception {
-        when(sequenceNumberProvider.getSequenceNumber()).thenReturn("seq");
-
-        DdbStreamEndpoint undertest = (DdbStreamEndpoint) context.getEndpoint("aws-ddbstream://table"
-                                                                              + "?amazonDynamoDbStreamsClient=#ddbStreamsClient"
-                                                                              + "&iteratorType=AFTER_SEQUENCE_NUMBER"
-                                                                              + "&sequenceNumberProvider=#someSeqNumProv");
-
-        assertEquals("seq", undertest.getSequenceNumber());
-    }
-
-    @Test
-    public void itExtractsTheSequenceNumberFromALiteralString() throws Exception {
-
-        DdbStreamEndpoint undertest = (DdbStreamEndpoint) context.getEndpoint("aws-ddbstream://table"
-                                                                              + "?amazonDynamoDbStreamsClient=#ddbStreamsClient"
-                                                                              + "&iteratorType=AFTER_SEQUENCE_NUMBER"
-                                                                              + "&sequenceNumberProvider=seq");
-
-        assertEquals("seq", undertest.getSequenceNumber());
-    }
-
-    @Test
-    public void onSequenceNumberAgnosticIteratorsTheProviderIsIgnored() throws Exception {
-        DdbStreamEndpoint undertest = (DdbStreamEndpoint) context.getEndpoint("aws-ddbstream://table"
-                                                                              + "?amazonDynamoDbStreamsClient=#ddbStreamsClient"
-                                                                              + "&iteratorType=LATEST"
-                                                                              + "&sequenceNumberProvider=#someSeqNumProv");
-
-        assertEquals("", undertest.getSequenceNumber());
-        verify(sequenceNumberProvider, never()).getSequenceNumber();
-    }
-
-    @Test
-    public void sequenceNumberFetchingThrowsSomethingUsefulIfMisconfigurered() throws Exception {
-        DdbStreamEndpoint undertest = (DdbStreamEndpoint) context.getEndpoint("aws-ddbstream://table"
-                                                                              + "?amazonDynamoDbStreamsClient=#ddbStreamsClient"
-                                                                              + "&iteratorType=AT_SEQUENCE_NUMBER"); // NOTE: missing sequence number provider parameter
-
-        try {
-            undertest.getSequenceNumber();
-            fail("Expected exception");
-        } catch (IllegalStateException e) {
-            assertTrue(e.getMessage().contains("sequenceNumberProvider"));
-        }
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandlerTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandlerTest.java
deleted file mode 100644
index 40a3dc4..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardIteratorHandlerTest.java
+++ /dev/null
@@ -1,191 +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.aws.ddbstream;
-
-import com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams;
-import com.amazonaws.services.dynamodbv2.model.DescribeStreamRequest;
-import com.amazonaws.services.dynamodbv2.model.DescribeStreamResult;
-import com.amazonaws.services.dynamodbv2.model.GetShardIteratorRequest;
-import com.amazonaws.services.dynamodbv2.model.GetShardIteratorResult;
-import com.amazonaws.services.dynamodbv2.model.ListStreamsRequest;
-import com.amazonaws.services.dynamodbv2.model.ListStreamsResult;
-import com.amazonaws.services.dynamodbv2.model.ShardIteratorType;
-import com.amazonaws.services.dynamodbv2.model.Stream;
-import com.amazonaws.services.dynamodbv2.model.StreamDescription;
-import org.apache.camel.CamelContext;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
-
-import static org.junit.jupiter.api.Assertions.assertArrayEquals;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.lenient;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@ExtendWith(MockitoExtension.class)
-public class ShardIteratorHandlerTest {
-
-    private ShardIteratorHandler undertest;
-
-    @Mock
-    private AmazonDynamoDBStreams amazonDynamoDBStreams;
-    private final CamelContext context = new DefaultCamelContext();
-    private final DdbStreamComponent component = new DdbStreamComponent(context);
-    private final DdbStreamEndpoint endpoint = new DdbStreamEndpoint(null, new DdbStreamConfiguration(), component);
-
-    @BeforeEach
-    public void setup() throws Exception {
-        endpoint.getConfiguration().setAmazonDynamoDbStreamsClient(amazonDynamoDBStreams);
-        endpoint.start();
-        undertest = new ShardIteratorHandler(endpoint);
-
-        lenient().when(amazonDynamoDBStreams.listStreams(any(ListStreamsRequest.class))).thenReturn(
-                new ListStreamsResult()
-                        .withStreams(new Stream()
-                                .withStreamArn("arn:aws:dynamodb:region:12345:table/table_name/stream/timestamp")));
-
-        lenient().when(amazonDynamoDBStreams.describeStream(any(DescribeStreamRequest.class))).thenReturn(
-                new DescribeStreamResult()
-                        .withStreamDescription(
-                                new StreamDescription()
-                                        .withTableName("table_name")
-                                        .withShards(
-                                                ShardListTest.createShardsWithSequenceNumbers(null,
-                                                        "a", "1", "5",
-                                                        "b", "8", "15",
-                                                        "c", "16", "16",
-                                                        "d", "20", null))));
-
-        lenient().when(amazonDynamoDBStreams.getShardIterator(any(GetShardIteratorRequest.class)))
-                .thenAnswer(new Answer<GetShardIteratorResult>() {
-                    @Override
-                    public GetShardIteratorResult answer(InvocationOnMock invocation) throws Throwable {
-                        return new GetShardIteratorResult()
-                                .withShardIterator("shard_iterator_"
-                                                   + ((GetShardIteratorRequest) invocation.getArguments()[0]).getShardId()
-                                                   + "_000");
-                    }
-                });
-    }
-
-    @Test
-    public void latestOnlyUsesTheLastShard() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.LATEST);
-
-        String shardIterator = undertest.getShardIterator(null);
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams).getShardIterator(getIteratorCaptor.capture());
-        assertEquals("d", getIteratorCaptor.getValue().getShardId());
-        assertEquals("shard_iterator_d_000", shardIterator);
-    }
-
-    @Test
-    public void cachesRecentShardId() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.LATEST);
-
-        undertest.updateShardIterator("bar");
-        String shardIterator = undertest.getShardIterator(null);
-
-        verify(amazonDynamoDBStreams, times(0)).getShardIterator(any(GetShardIteratorRequest.class));
-        assertEquals("bar", shardIterator);
-    }
-
-    @Test
-    public void trimHorizonStartsWithTheFirstShard() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.TRIM_HORIZON);
-
-        String shardIterator = undertest.getShardIterator(null);
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams).getShardIterator(getIteratorCaptor.capture());
-        assertEquals("a", getIteratorCaptor.getValue().getShardId());
-        assertEquals("shard_iterator_a_000", shardIterator);
-    }
-
-    @Test
-    public void trimHorizonWalksAllShards() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.TRIM_HORIZON);
-
-        String[] shardIterators = new String[4];
-
-        for (int i = 0; i < shardIterators.length; ++i) {
-            shardIterators[i] = undertest.getShardIterator(null);
-            undertest.updateShardIterator(null);
-        }
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams, times(4)).getShardIterator(getIteratorCaptor.capture());
-        String[] shards = new String[] { "a", "b", "c", "d" };
-        for (int i = 0; i < shards.length; ++i) {
-            assertEquals(shards[i], getIteratorCaptor.getAllValues().get(i).getShardId());
-        }
-        assertArrayEquals(
-                new String[] { "shard_iterator_a_000", "shard_iterator_b_000", "shard_iterator_c_000", "shard_iterator_d_000" },
-                shardIterators);
-
-    }
-
-    @Test
-    public void atSeqNumber12StartsWithShardB() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.AT_SEQUENCE_NUMBER);
-        endpoint.getConfiguration().setSequenceNumberProvider(new StaticSequenceNumberProvider("12"));
-
-        String shardIterator = undertest.getShardIterator(null);
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams).getShardIterator(getIteratorCaptor.capture());
-        assertEquals("b", getIteratorCaptor.getValue().getShardId());
-        assertEquals("shard_iterator_b_000", shardIterator);
-    }
-
-    @Test
-    public void afterSeqNumber16StartsWithShardD() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.AFTER_SEQUENCE_NUMBER);
-        endpoint.getConfiguration().setSequenceNumberProvider(new StaticSequenceNumberProvider("16"));
-
-        String shardIterator = undertest.getShardIterator(null);
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams).getShardIterator(getIteratorCaptor.capture());
-        assertEquals("d", getIteratorCaptor.getValue().getShardId());
-        assertEquals("shard_iterator_d_000", shardIterator);
-    }
-
-    @Test
-    public void resumingFromSomewhereActuallyUsesTheAfterSequenceNumber() throws Exception {
-        endpoint.getConfiguration().setIteratorType(ShardIteratorType.LATEST);
-
-        String shardIterator = undertest.getShardIterator("12");
-
-        ArgumentCaptor<GetShardIteratorRequest> getIteratorCaptor = ArgumentCaptor.forClass(GetShardIteratorRequest.class);
-        verify(amazonDynamoDBStreams).getShardIterator(getIteratorCaptor.capture());
-        assertEquals("b", getIteratorCaptor.getValue().getShardId());
-        assertEquals("shard_iterator_b_000", shardIterator);
-        assertEquals(ShardIteratorType.AFTER_SEQUENCE_NUMBER.name(), getIteratorCaptor.getValue().getShardIteratorType());
-        assertEquals("12", getIteratorCaptor.getValue().getSequenceNumber());
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAfterSequenceParametrisedTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAfterSequenceParametrisedTest.java
deleted file mode 100644
index f2a9831..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAfterSequenceParametrisedTest.java
+++ /dev/null
@@ -1,64 +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.aws.ddbstream;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-@ExtendWith(MockitoExtension.class)
-public class ShardListAfterSequenceParametrisedTest {
-    private ShardList undertest;
-
-    public static Collection<Object[]> parameters() {
-        List<Object[]> results = new ArrayList<>();
-        results.add(new Object[] { "0", "a" });
-        results.add(new Object[] { "3", "a" });
-        results.add(new Object[] { "6", "b" });
-        results.add(new Object[] { "8", "b" });
-        results.add(new Object[] { "15", "c" });
-        results.add(new Object[] { "16", "d" });
-        results.add(new Object[] { "18", "d" });
-        results.add(new Object[] { "25", "d" });
-        results.add(new Object[] { "30", "d" });
-        return results;
-    }
-
-    @BeforeEach
-    public void setup() throws Exception {
-        undertest = new ShardList();
-        undertest.addAll(ShardListTest.createShardsWithSequenceNumbers(null,
-                "a", "1", "5",
-                "b", "8", "15",
-                "c", "16", "16",
-                "d", "20", null));
-    }
-
-    @ParameterizedTest
-    @MethodSource("parameters")
-    public void assertions(String inputSequenceNumber, String expectedShardId) throws Exception {
-        assertEquals(expectedShardId, undertest.afterSeq(inputSequenceNumber).getShardId());
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAtSequenceParametrisedTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAtSequenceParametrisedTest.java
deleted file mode 100644
index ab58a61..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListAtSequenceParametrisedTest.java
+++ /dev/null
@@ -1,59 +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.aws.ddbstream;
-
-import java.util.stream.Stream;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class ShardListAtSequenceParametrisedTest {
-    private ShardList undertest;
-
-    public static Stream<Arguments> parameters() {
-        return Stream.of(
-                Arguments.of("0", "a"),
-                Arguments.of("3", "a"),
-                Arguments.of("6", "b"),
-                Arguments.of("8", "b"),
-                Arguments.of("15", "b"),
-                Arguments.of("16", "c"),
-                Arguments.of("18", "d"),
-                Arguments.of("25", "d"),
-                Arguments.of("30", "d"));
-    }
-
-    @BeforeEach
-    public void setup() throws Exception {
-        undertest = new ShardList();
-        undertest.addAll(ShardListTest.createShardsWithSequenceNumbers(null,
-                "a", "1", "5",
-                "b", "8", "15",
-                "c", "16", "16",
-                "d", "20", null));
-    }
-
-    @ParameterizedTest
-    @MethodSource("parameters")
-    public void assertions(String inputSequenceNumber, String expectedShardId) throws Exception {
-        assertEquals(expectedShardId, undertest.atSeq(inputSequenceNumber).getShardId());
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListTest.java b/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListTest.java
deleted file mode 100644
index fef20d8..0000000
--- a/components/camel-aws-ddb/src/test/java/org/apache/camel/component/aws/ddbstream/ShardListTest.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.aws.ddbstream;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.amazonaws.services.dynamodbv2.model.SequenceNumberRange;
-import com.amazonaws.services.dynamodbv2.model.Shard;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class ShardListTest {
-
-    @Test
-    public void nextReturnsShardWithParent() throws Exception {
-        Shard first = new Shard()
-                .withShardId("first_shard")
-                .withParentShardId("other_shard_id");
-        Shard second = new Shard()
-                .withParentShardId("first_shard")
-                .withShardId("second_shard");
-
-        ShardList shards = new ShardList();
-        shards.add(first);
-        shards.add(second);
-
-        assertEquals(second, shards.nextAfter(first));
-    }
-
-    @Test
-    public void nextWithNullReturnsFirstKnownShard() throws Exception {
-        Shard first = new Shard()
-                .withShardId("first_shard");
-        Shard second = new Shard()
-                .withParentShardId("first_shard")
-                .withShardId("second_shard");
-
-        ShardList shards = new ShardList();
-        shards.add(first);
-        shards.add(second);
-
-        assertEquals(second, shards.nextAfter(first));
-    }
-
-    @Test
-    public void reAddingEntriesMaintainsOrder() throws Exception {
-        Shard first = new Shard()
-                .withShardId("first_shard");
-        Shard second = new Shard()
-                .withParentShardId("first_shard")
-                .withShardId("second_shard");
-
-        ShardList shards = new ShardList();
-        shards.add(first);
-        shards.add(second);
-
-        assertEquals(second, shards.nextAfter(first));
-
-        Shard second2 = new Shard()
-                .withParentShardId("first_shard")
-                .withShardId("second_shard");
-        Shard third = new Shard()
-                .withParentShardId("second_shard")
-                .withShardId("third_shard");
-        shards.add(second2);
-        shards.add(third);
-
-        assertEquals(second, shards.nextAfter(first));
-        assertEquals(third, shards.nextAfter(second));
-    }
-
-    @Test
-    public void firstShardGetsTheFirstWithoutAParent() throws Exception {
-        ShardList shards = new ShardList();
-        shards.addAll(createShards(null, "a", "b", "c", "d"));
-
-        assertEquals("a", shards.first().getShardId());
-    }
-
-    @Test
-    public void firstShardGetsTheFirstWithAnUnknownParent() throws Exception {
-        ShardList shards = new ShardList();
-        shards.addAll(createShards("a", "b", "c", "d"));
-
-        assertEquals("b", shards.first().getShardId());
-    }
-
-    @Test
-    public void lastShardGetsTheShardWithNoChildren() throws Exception {
-        ShardList shards = new ShardList();
-        shards.addAll(createShards("a", "b", "c", "d"));
-
-        assertEquals("d", shards.last().getShardId());
-    }
-
-    @Test
-    public void removingShards() throws Exception {
-        ShardList shards = new ShardList();
-        shards.addAll(createShards(null, "a", "b", "c", "d"));
-        Shard removeBefore = new Shard().withShardId("c").withParentShardId("b");
-        shards.removeOlderThan(removeBefore);
-
-        assertEquals("c", shards.first().getShardId());
-    }
-
-    static List<Shard> createShardsWithSequenceNumbers(String initialParent, String... shardIdsAndSeqNos) {
-        String previous = initialParent;
-        List<Shard> result = new ArrayList<>();
-        for (int i = 0; i < shardIdsAndSeqNos.length; i += 3) {
-            String id = shardIdsAndSeqNos[i];
-            String seqStart = shardIdsAndSeqNos[i + 1];
-            String seqEnd = shardIdsAndSeqNos[i + 2];
-            result.add(new Shard()
-                    .withShardId(id)
-                    .withParentShardId(previous)
-                    .withSequenceNumberRange(new SequenceNumberRange()
-                            .withStartingSequenceNumber(seqStart)
-                            .withEndingSequenceNumber(seqEnd)));
-            previous = id;
-        }
-        return result;
-    }
-
-    static List<Shard> createShards(String initialParent, String... shardIds) {
-        String previous = initialParent;
-        List<Shard> result = new ArrayList<>();
-        for (String s : shardIds) {
-            result.add(new Shard().withShardId(s).withParentShardId(previous));
-            previous = s;
-        }
-        return result;
-    }
-}
diff --git a/components/camel-aws-ddb/src/test/resources/log4j2.properties b/components/camel-aws-ddb/src/test/resources/log4j2.properties
deleted file mode 100644
index 040d9e2..0000000
--- a/components/camel-aws-ddb/src/test/resources/log4j2.properties
+++ /dev/null
@@ -1,28 +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.file.type = File
-appender.file.name = file
-appender.file.fileName = target/camel-aws-ddb-test.log
-appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-appender.out.type = Console
-appender.out.name = out
-appender.out.layout.type = PatternLayout
-appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
-rootLogger.level = INFO
-rootLogger.appenderRef.file.ref = file
diff --git a/components/pom.xml b/components/pom.xml
index 83687da..832bab8 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -108,7 +108,6 @@
         <module>camel-avro</module>
         <module>camel-avro-rpc</module>
         <module>camel-aws-cw</module>
-        <module>camel-aws-ddb</module>
         <module>camel-aws-s3</module>
         <module>camel-aws-swf</module>
         <module>camel-aws2-athena</module>