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 2023/02/02 13:46:46 UTC

[camel] branch camel-3.20.x updated (71c6593d135 -> 940dfd104d5)

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

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


    from 71c6593d135 Upgrade to Netty 4.1.87
     new fe4634ca3e8 CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
     new fa5c260fa59 CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
     new 329b0bda790 CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
     new ea53340573e CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
     new 940dfd104d5 CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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


Summary of changes:
 .../org/apache/camel/catalog/components/cql.json   |  1 +
 .../cassandra/CassandraEndpointConfigurer.java     |  6 ++++
 .../cassandra/CassandraEndpointUriFactory.java     |  3 +-
 .../org/apache/camel/component/cassandra/cql.json  |  1 +
 .../component/cassandra/CassandraEndpoint.java     | 28 ++++++++++++++++++
 .../utils/cassandra/CassandraExtraCodecs.java      | 34 ++++++++++++++++++++++
 6 files changed, 72 insertions(+), 1 deletion(-)
 create mode 100644 components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java


[camel] 03/05: CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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

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

commit 329b0bda7904841acb42f78768b24f782a6f9e0b
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 2 14:23:21 2023 +0100

    CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../org/apache/camel/component/cassandra/CassandraEndpoint.java     | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
index c4a4d146dd7..e08259673d4 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
@@ -377,7 +377,11 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
     }
 
     /**
-     * To use a specific comma separated list of Extra Type codecs
+     * To use a specific comma separated list of Extra Type codecs. Possible values are: BLOB_TO_ARRAY, BOOLEAN_LIST_TO_ARRAY,
+     * BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY, FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO_ARRAY,
+     * TIMESTAMP_UTC, TIMESTAMP_MILLIS_SYSTEM, TIMESTAMP_MILLIS_UTC, ZONED_TIMESTAMP_SYSTEM, ZONED_TIMESTAMP_UTC,
+     * ZONED_TIMESTAMP_PERSISTED, LOCAL_TIMESTAMP_SYSTEM and
+     * LOCAL_TIMESTAMP_UTC
      */
     public String getExtraTypeCodecs() {
         return extraTypeCodecs;


[camel] 04/05: CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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

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

commit ea53340573ef11518d686882ecdf2c04b2b05bb5
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 2 14:24:12 2023 +0100

    CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../generated/resources/org/apache/camel/component/cassandra/cql.json   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json b/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
index 550b4ea101e..2b1214eedb0 100644
--- a/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
+++ b/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
@@ -39,7 +39,7 @@
     "consistencyLevel": { "kind": "parameter", "displayName": "Consistency Level", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.datastax.oss.driver.api.core.DefaultConsistencyLevel", "enum": [ "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_ONE", "LOCAL_QUORUM", "EACH_QUORUM", "SERIAL", "LOCAL_SERIAL" ], "deprecated": false, "autowired": false, "secret": false, "description": "Consistency level to use" },
     "cql": { "kind": "parameter", "displayName": "Cql", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "CQL query to perform. Can be overridden with the message header with key CamelCqlQuery." },
     "datacenter": { "kind": "parameter", "displayName": "Datacenter", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "datacenter1", "description": "Datacenter to use" },
-    "extraTypeCodecs": { "kind": "parameter", "displayName": "Extra Type Codecs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific comma separated list of Extra Type codecs" },
+    "extraTypeCodecs": { "kind": "parameter", "displayName": "Extra Type Codecs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific comma separated list of Extra Type codecs. Possible values are: BLOB_TO_ARRAY, BOOLEAN_LIST_TO_ARRAY, BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY, FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO [...]
     "loadBalancingPolicyClass": { "kind": "parameter", "displayName": "Load Balancing Policy Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific LoadBalancingPolicyClass" },
     "password": { "kind": "parameter", "displayName": "Password", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Password for session authentication" },
     "prepareStatements": { "kind": "parameter", "displayName": "Prepare Statements", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use PreparedStatements or regular Statements" },


[camel] 02/05: CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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

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

commit fa5c260fa5903ec751c87fca229f2abf7cbd2fbe
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 2 14:20:52 2023 +0100

    CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../java/org/apache/camel/component/cassandra/CassandraEndpoint.java  | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
index 82fd51dccae..c4a4d146dd7 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
@@ -43,8 +43,8 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.CamelContextHelper;
-import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.support.ScheduledPollEndpoint;
+import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.utils.cassandra.CassandraExtraCodecs;
 import org.apache.camel.utils.cassandra.CassandraSessionHolder;
 
@@ -174,7 +174,7 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
             System.err.println(c.toString());
             for (String codec: c
                  ) {
-                if (CassandraExtraCodecs.valueOf(codec).codec() != null) {
+                if (ObjectHelper.isNotEmpty(CassandraExtraCodecs.valueOf(codec))) {
                     sessionBuilder.addTypeCodecs(CassandraExtraCodecs.valueOf(codec).codec());
                 }
             }


[camel] 05/05: CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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

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

commit 940dfd104d576b16e558ef6119aed970f523cc89
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 2 14:27:57 2023 +0100

    CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../org/apache/camel/catalog/components/cql.json        |  1 +
 .../camel/component/cassandra/CassandraEndpoint.java    | 17 +++++------------
 .../camel/utils/cassandra/CassandraExtraCodecs.java     |  2 +-
 3 files changed, 7 insertions(+), 13 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cql.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cql.json
index 709af634b71..2b1214eedb0 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cql.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/cql.json
@@ -39,6 +39,7 @@
     "consistencyLevel": { "kind": "parameter", "displayName": "Consistency Level", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.datastax.oss.driver.api.core.DefaultConsistencyLevel", "enum": [ "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_ONE", "LOCAL_QUORUM", "EACH_QUORUM", "SERIAL", "LOCAL_SERIAL" ], "deprecated": false, "autowired": false, "secret": false, "description": "Consistency level to use" },
     "cql": { "kind": "parameter", "displayName": "Cql", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "CQL query to perform. Can be overridden with the message header with key CamelCqlQuery." },
     "datacenter": { "kind": "parameter", "displayName": "Datacenter", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "datacenter1", "description": "Datacenter to use" },
+    "extraTypeCodecs": { "kind": "parameter", "displayName": "Extra Type Codecs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific comma separated list of Extra Type codecs. Possible values are: BLOB_TO_ARRAY, BOOLEAN_LIST_TO_ARRAY, BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY, FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO [...]
     "loadBalancingPolicyClass": { "kind": "parameter", "displayName": "Load Balancing Policy Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific LoadBalancingPolicyClass" },
     "password": { "kind": "parameter", "displayName": "Password", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Password for session authentication" },
     "prepareStatements": { "kind": "parameter", "displayName": "Prepare Statements", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use PreparedStatements or regular Statements" },
diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
index e08259673d4..371260fc5b2 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
@@ -17,8 +17,6 @@
 package org.apache.camel.component.cassandra;
 
 import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.List;
 
 import com.datastax.oss.driver.api.core.ConsistencyLevel;
 import com.datastax.oss.driver.api.core.CqlSession;
@@ -29,10 +27,6 @@ import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
 import com.datastax.oss.driver.api.core.cql.PreparedStatement;
 import com.datastax.oss.driver.api.core.cql.ResultSet;
 import com.datastax.oss.driver.api.core.cql.SimpleStatement;
-import com.datastax.oss.driver.api.core.session.SessionBuilder;
-import com.datastax.oss.driver.api.core.type.codec.ExtraTypeCodecs;
-import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
-import com.datastax.oss.driver.api.core.type.codec.TypeCodecs;
 import org.apache.camel.Category;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
@@ -172,8 +166,7 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
         if (extraTypeCodecs != null) {
             String[] c = extraTypeCodecs.split(",");
             System.err.println(c.toString());
-            for (String codec: c
-                 ) {
+            for (String codec : c) {
                 if (ObjectHelper.isNotEmpty(CassandraExtraCodecs.valueOf(codec))) {
                     sessionBuilder.addTypeCodecs(CassandraExtraCodecs.valueOf(codec).codec());
                 }
@@ -377,10 +370,10 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
     }
 
     /**
-     * To use a specific comma separated list of Extra Type codecs. Possible values are: BLOB_TO_ARRAY, BOOLEAN_LIST_TO_ARRAY,
-     * BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY, FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO_ARRAY,
-     * TIMESTAMP_UTC, TIMESTAMP_MILLIS_SYSTEM, TIMESTAMP_MILLIS_UTC, ZONED_TIMESTAMP_SYSTEM, ZONED_TIMESTAMP_UTC,
-     * ZONED_TIMESTAMP_PERSISTED, LOCAL_TIMESTAMP_SYSTEM and
+     * To use a specific comma separated list of Extra Type codecs. Possible values are: BLOB_TO_ARRAY,
+     * BOOLEAN_LIST_TO_ARRAY, BYTE_LIST_TO_ARRAY, SHORT_LIST_TO_ARRAY, INT_LIST_TO_ARRAY, LONG_LIST_TO_ARRAY,
+     * FLOAT_LIST_TO_ARRAY, DOUBLE_LIST_TO_ARRAY, TIMESTAMP_UTC, TIMESTAMP_MILLIS_SYSTEM, TIMESTAMP_MILLIS_UTC,
+     * ZONED_TIMESTAMP_SYSTEM, ZONED_TIMESTAMP_UTC, ZONED_TIMESTAMP_PERSISTED, LOCAL_TIMESTAMP_SYSTEM and
      * LOCAL_TIMESTAMP_UTC
      */
     public String getExtraTypeCodecs() {
diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java b/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java
index 53b3b7b8df4..8823cbe9858 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java
@@ -24,7 +24,7 @@ public enum CassandraExtraCodecs {
 
     private final TypeCodec codec;
 
-    private CassandraExtraCodecs(TypeCodec codec){
+    private CassandraExtraCodecs(TypeCodec codec) {
         this.codec = codec;
     }
 


[camel] 01/05: CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder

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

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

commit fe4634ca3e8af2bd1dbc8ea365725113e2c3a505
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Thu Feb 2 14:11:23 2023 +0100

    CAMEL-18996 - Camel-CassandraQL: Adding a parameter to pass a list of ExtraTypesCodec to SessionBuilder
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../cassandra/CassandraEndpointConfigurer.java     |  6 ++++
 .../cassandra/CassandraEndpointUriFactory.java     |  3 +-
 .../org/apache/camel/component/cassandra/cql.json  |  1 +
 .../component/cassandra/CassandraEndpoint.java     | 31 ++++++++++++++++++++
 .../utils/cassandra/CassandraExtraCodecs.java      | 34 ++++++++++++++++++++++
 5 files changed, 74 insertions(+), 1 deletion(-)

diff --git a/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointConfigurer.java b/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointConfigurer.java
index 0e608905113..1182a55d7a1 100644
--- a/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointConfigurer.java
+++ b/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointConfigurer.java
@@ -40,6 +40,8 @@ public class CassandraEndpointConfigurer extends PropertyConfigurerSupport imple
         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 "extratypecodecs":
+        case "extraTypeCodecs": target.setExtraTypeCodecs(property(camelContext, java.lang.String.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;
@@ -99,6 +101,8 @@ public class CassandraEndpointConfigurer extends PropertyConfigurerSupport imple
         case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
         case "exchangepattern":
         case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+        case "extratypecodecs":
+        case "extraTypeCodecs": return java.lang.String.class;
         case "greedy": return boolean.class;
         case "initialdelay":
         case "initialDelay": return long.class;
@@ -159,6 +163,8 @@ public class CassandraEndpointConfigurer extends PropertyConfigurerSupport imple
         case "exceptionHandler": return target.getExceptionHandler();
         case "exchangepattern":
         case "exchangePattern": return target.getExchangePattern();
+        case "extratypecodecs":
+        case "extraTypeCodecs": return target.getExtraTypeCodecs();
         case "greedy": return target.isGreedy();
         case "initialdelay":
         case "initialDelay": return target.getInitialDelay();
diff --git a/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointUriFactory.java b/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointUriFactory.java
index c4cce3a244d..c46eebc9112 100644
--- a/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointUriFactory.java
+++ b/components/camel-cassandraql/src/generated/java/org/apache/camel/component/cassandra/CassandraEndpointUriFactory.java
@@ -21,7 +21,7 @@ public class CassandraEndpointUriFactory extends org.apache.camel.support.compon
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(34);
+        Set<String> props = new HashSet<>(35);
         props.add("backoffErrorThreshold");
         props.add("backoffIdleThreshold");
         props.add("backoffMultiplier");
@@ -34,6 +34,7 @@ public class CassandraEndpointUriFactory extends org.apache.camel.support.compon
         props.add("delay");
         props.add("exceptionHandler");
         props.add("exchangePattern");
+        props.add("extraTypeCodecs");
         props.add("greedy");
         props.add("hosts");
         props.add("initialDelay");
diff --git a/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json b/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
index 709af634b71..550b4ea101e 100644
--- a/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
+++ b/components/camel-cassandraql/src/generated/resources/org/apache/camel/component/cassandra/cql.json
@@ -39,6 +39,7 @@
     "consistencyLevel": { "kind": "parameter", "displayName": "Consistency Level", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.datastax.oss.driver.api.core.DefaultConsistencyLevel", "enum": [ "ANY", "ONE", "TWO", "THREE", "QUORUM", "ALL", "LOCAL_ONE", "LOCAL_QUORUM", "EACH_QUORUM", "SERIAL", "LOCAL_SERIAL" ], "deprecated": false, "autowired": false, "secret": false, "description": "Consistency level to use" },
     "cql": { "kind": "parameter", "displayName": "Cql", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "CQL query to perform. Can be overridden with the message header with key CamelCqlQuery." },
     "datacenter": { "kind": "parameter", "displayName": "Datacenter", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "datacenter1", "description": "Datacenter to use" },
+    "extraTypeCodecs": { "kind": "parameter", "displayName": "Extra Type Codecs", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific comma separated list of Extra Type codecs" },
     "loadBalancingPolicyClass": { "kind": "parameter", "displayName": "Load Balancing Policy Class", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "To use a specific LoadBalancingPolicyClass" },
     "password": { "kind": "parameter", "displayName": "Password", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Password for session authentication" },
     "prepareStatements": { "kind": "parameter", "displayName": "Prepare Statements", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to use PreparedStatements or regular Statements" },
diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
index 2c1f8d5d565..82fd51dccae 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
@@ -17,6 +17,8 @@
 package org.apache.camel.component.cassandra;
 
 import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
 
 import com.datastax.oss.driver.api.core.ConsistencyLevel;
 import com.datastax.oss.driver.api.core.CqlSession;
@@ -27,6 +29,10 @@ import com.datastax.oss.driver.api.core.config.DriverConfigLoader;
 import com.datastax.oss.driver.api.core.cql.PreparedStatement;
 import com.datastax.oss.driver.api.core.cql.ResultSet;
 import com.datastax.oss.driver.api.core.cql.SimpleStatement;
+import com.datastax.oss.driver.api.core.session.SessionBuilder;
+import com.datastax.oss.driver.api.core.type.codec.ExtraTypeCodecs;
+import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
+import com.datastax.oss.driver.api.core.type.codec.TypeCodecs;
 import org.apache.camel.Category;
 import org.apache.camel.Component;
 import org.apache.camel.Consumer;
@@ -37,7 +43,9 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.ObjectHelper;
 import org.apache.camel.support.ScheduledPollEndpoint;
+import org.apache.camel.utils.cassandra.CassandraExtraCodecs;
 import org.apache.camel.utils.cassandra.CassandraSessionHolder;
 
 /**
@@ -78,6 +86,8 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
     private String loadBalancingPolicyClass;
     @UriParam
     private ResultSetConversionStrategy resultSetConversionStrategy = ResultSetConversionStrategies.all();
+    @UriParam
+    private String extraTypeCodecs;
 
     public CassandraEndpoint(String endpointUri, Component component) {
         super(endpointUri, component);
@@ -159,6 +169,17 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
             sessionBuilder.withClassLoader(classLoader);
         }
 
+        if (extraTypeCodecs != null) {
+            String[] c = extraTypeCodecs.split(",");
+            System.err.println(c.toString());
+            for (String codec: c
+                 ) {
+                if (CassandraExtraCodecs.valueOf(codec).codec() != null) {
+                    sessionBuilder.addTypeCodecs(CassandraExtraCodecs.valueOf(codec).codec());
+                }
+            }
+        }
+
         return sessionBuilder;
     }
 
@@ -355,4 +376,14 @@ public class CassandraEndpoint extends ScheduledPollEndpoint {
         this.loadBalancingPolicyClass = loadBalancingPolicyClass;
     }
 
+    /**
+     * To use a specific comma separated list of Extra Type codecs
+     */
+    public String getExtraTypeCodecs() {
+        return extraTypeCodecs;
+    }
+
+    public void setExtraTypeCodecs(String extraTypeCodecs) {
+        this.extraTypeCodecs = extraTypeCodecs;
+    }
 }
diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java b/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java
new file mode 100644
index 00000000000..53b3b7b8df4
--- /dev/null
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/utils/cassandra/CassandraExtraCodecs.java
@@ -0,0 +1,34 @@
+package org.apache.camel.utils.cassandra;
+
+import com.datastax.oss.driver.api.core.type.codec.ExtraTypeCodecs;
+import com.datastax.oss.driver.api.core.type.codec.TypeCodec;
+
+public enum CassandraExtraCodecs {
+
+    BLOB_TO_ARRAY(ExtraTypeCodecs.BLOB_TO_ARRAY),
+    BOOLEAN_LIST_TO_ARRAY(ExtraTypeCodecs.BOOLEAN_LIST_TO_ARRAY),
+    BYTE_LIST_TO_ARRAY(ExtraTypeCodecs.BYTE_LIST_TO_ARRAY),
+    SHORT_LIST_TO_ARRAY(ExtraTypeCodecs.SHORT_LIST_TO_ARRAY),
+    INT_LIST_TO_ARRAY(ExtraTypeCodecs.INT_LIST_TO_ARRAY),
+    LONG_LIST_TO_ARRAY(ExtraTypeCodecs.LONG_LIST_TO_ARRAY),
+    FLOAT_LIST_TO_ARRAY(ExtraTypeCodecs.FLOAT_LIST_TO_ARRAY),
+    DOUBLE_LIST_TO_ARRAY(ExtraTypeCodecs.DOUBLE_LIST_TO_ARRAY),
+    TIMESTAMP_UTC(ExtraTypeCodecs.TIMESTAMP_UTC),
+    TIMESTAMP_MILLIS_SYSTEM(ExtraTypeCodecs.TIMESTAMP_MILLIS_SYSTEM),
+    TIMESTAMP_MILLIS_UTC(ExtraTypeCodecs.TIMESTAMP_MILLIS_UTC),
+    ZONED_TIMESTAMP_SYSTEM(ExtraTypeCodecs.ZONED_TIMESTAMP_SYSTEM),
+    ZONED_TIMESTAMP_UTC(ExtraTypeCodecs.ZONED_TIMESTAMP_UTC),
+    ZONED_TIMESTAMP_PERSISTED(ExtraTypeCodecs.ZONED_TIMESTAMP_PERSISTED),
+    LOCAL_TIMESTAMP_SYSTEM(ExtraTypeCodecs.LOCAL_TIMESTAMP_SYSTEM),
+    LOCAL_TIMESTAMP_UTC(ExtraTypeCodecs.LOCAL_TIMESTAMP_UTC);
+
+    private final TypeCodec codec;
+
+    private CassandraExtraCodecs(TypeCodec codec){
+        this.codec = codec;
+    }
+
+    public TypeCodec codec() {
+        return codec;
+    }
+}