You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2015/10/08 05:30:26 UTC

[5/8] camel git commit: CAMEL-9194 ElasticsearchActionRequestConverter should support more than just map object for the SearchRequest

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 <wi...@gmail.com>
Authored: Tue Oct 6 17:26:32 2015 +0800
Committer: Willem Jiang <wi...@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