This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-3.4.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.4.x by this push: new 8394997 CAMEL-15219: camel-cassandraql: cannot use a custom resultSetConversionStrategy 8394997 is described below commit 8394997e10af39925401ec14108905d5a6b68a49 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);