CAMEL-9194 ElasticsearchActionRequestConverter should support more than just map object for the SearchRequest
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/63437c6b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/63437c6b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/63437c6b Branch: refs/heads/camel-2.16.x Commit: 63437c6be480e1dd96ce737d2016c75a36ecab52 Parents: 925265c Author: Willem Jiang <willem.ji...@gmail.com> Authored: Tue Oct 6 17:26:32 2015 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Thu Oct 8 11:25:12 2015 +0800 ---------------------------------------------------------------------- .../ElasticsearchActionRequestConverter.java | 23 +++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/63437c6b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java ---------------------------------------------------------------------- diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java index b19c951..3a804f5 100644 --- a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java +++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/converter/ElasticsearchActionRequestConverter.java @@ -91,12 +91,23 @@ public final class ElasticsearchActionRequestConverter { @Converter public static SearchRequest toSearchRequest(Object queryObject, Exchange exchange) { - Map<?, ?> query = exchange.getContext().getTypeConverter().convertTo(Map.class, queryObject); - return new SearchRequest(exchange.getIn().getHeader( - ElasticsearchConstants.PARAM_INDEX_NAME, String.class)) - .types(exchange.getIn().getHeader( - ElasticsearchConstants.PARAM_INDEX_TYPE, - String.class)).source(query); + SearchRequest searchRequest = new SearchRequest(exchange.getIn() + .getHeader(ElasticsearchConstants.PARAM_INDEX_NAME, String.class)) + .types(exchange.getIn().getHeader(ElasticsearchConstants.PARAM_INDEX_TYPE, String.class)); + // Setup the query object into the search request + if (queryObject instanceof byte[]) { + searchRequest.source((byte[]) queryObject); + } else if (queryObject instanceof Map) { + searchRequest.source((Map<String, Object>) queryObject); + } else if (queryObject instanceof String) { + searchRequest.source((String) queryObject); + } else if (queryObject instanceof XContentBuilder) { + searchRequest.source((XContentBuilder) queryObject); + } else { + // Cannot convert the queryObject into SearchRequest + return null; + } + return searchRequest; } @Converter