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

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


The following commit(s) were added to refs/heads/master by this push:
     new 049f84d  CAMEL-15219: camel-cassandraql: cannot use a custom 
resultSetConversionStrategy
049f84d is described below

commit 049f84d0eadd1fc66a1b1e04dabeeee9a912e4e0
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Sun Jun 21 09:14:07 2020 +0200

    CAMEL-15219: camel-cassandraql: cannot use a custom 
resultSetConversionStrategy
---
 .../camel/component/cassandra/CassandraComponent.java   | 17 ++++++++++-------
 .../cassandra/ResultSetConversionStrategies.java        |  6 +++---
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git 
a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraComponent.java
 
b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraComponent.java
index bcfe4db..4a82907 100644
--- 
a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraComponent.java
+++ 
b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraComponent.java
@@ -76,11 +76,6 @@ public class CassandraComponent extends DefaultComponent {
             }
         }
 
-        ResultSetConversionStrategy rs = null;
-        String strategy = getAndRemoveParameter(parameters, 
"resultSetConversionStrategy", String.class);
-        if (strategy != null) {
-            rs = ResultSetConversionStrategies.fromName(strategy);
-        }
         CassandraEndpoint endpoint = new CassandraEndpoint(uri, this);
         endpoint.setBean(beanRef);
         endpoint.setHosts(hosts);
@@ -89,8 +84,16 @@ public class CassandraComponent extends DefaultComponent {
             endpoint.setPort(num);
         }
         endpoint.setKeyspace(keyspace);
-        if (rs != null) {
-            endpoint.setResultSetConversionStrategy(rs);
+
+        // special in some use-cases
+        Object strategy = parameters.get("resultSetConversionStrategy");
+        if (strategy != null) {
+            String text = CamelContextHelper.parseText(getCamelContext(), 
strategy.toString());
+            if (text.equalsIgnoreCase("ALL") || text.equalsIgnoreCase("ONE") 
|| text.startsWith("LIMIT_")) {
+                ResultSetConversionStrategy rs = 
ResultSetConversionStrategies.fromName(text);
+                endpoint.setResultSetConversionStrategy(rs);
+                parameters.remove("resultSetConversionStrategy");
+            }
         }
         setProperties(endpoint, parameters);
         return endpoint;
diff --git 
a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/ResultSetConversionStrategies.java
 
b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/ResultSetConversionStrategies.java
index 8a32c11..dc2b8cc 100644
--- 
a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/ResultSetConversionStrategies.java
+++ 
b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/ResultSetConversionStrategies.java
@@ -30,7 +30,7 @@ import com.datastax.driver.core.Row;
  */
 public final class ResultSetConversionStrategies {
 
-    private static final Pattern LIMIT_NAME_PATTERN = 
Pattern.compile("^LIMIT_(\\d+)$");
+    private static final Pattern LIMIT_NAME_PATTERN = 
Pattern.compile("^LIMIT_(\\d+)$", Pattern.CASE_INSENSITIVE);
 
     private static final ResultSetConversionStrategy ALL = new 
ResultSetConversionStrategy() {
         @Override
@@ -98,10 +98,10 @@ public final class ResultSetConversionStrategies {
         if (name == null) {
             return null;
         }
-        if (name.equals("ALL")) {
+        if (name.equalsIgnoreCase("ALL")) {
             return ResultSetConversionStrategies.all();
         }
-        if (name.equals("ONE")) {
+        if (name.equalsIgnoreCase("ONE")) {
             return ResultSetConversionStrategies.one();
         }
         Matcher matcher = LIMIT_NAME_PATTERN.matcher(name);

Reply via email to