FLUME-1659: JSON Handler should return simple events, not JSONEvents

(Hari Shreedharan via Brock Noland)


Project: http://git-wip-us.apache.org/repos/asf/flume/repo
Commit: http://git-wip-us.apache.org/repos/asf/flume/commit/c27edd0e
Tree: http://git-wip-us.apache.org/repos/asf/flume/tree/c27edd0e
Diff: http://git-wip-us.apache.org/repos/asf/flume/diff/c27edd0e

Branch: refs/heads/FLUME-1502
Commit: c27edd0e89bf7794c7fb69f1087fa2ce0191667e
Parents: cb6a35c
Author: Brock Noland <[email protected]>
Authored: Mon Oct 29 16:03:39 2012 -0500
Committer: Brock Noland <[email protected]>
Committed: Mon Oct 29 16:03:39 2012 -0500

----------------------------------------------------------------------
 .../org/apache/flume/source/http/JSONHandler.java  |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flume/blob/c27edd0e/flume-ng-core/src/main/java/org/apache/flume/source/http/JSONHandler.java
----------------------------------------------------------------------
diff --git 
a/flume-ng-core/src/main/java/org/apache/flume/source/http/JSONHandler.java 
b/flume-ng-core/src/main/java/org/apache/flume/source/http/JSONHandler.java
index 9e1af7a..197f66a 100644
--- a/flume-ng-core/src/main/java/org/apache/flume/source/http/JSONHandler.java
+++ b/flume-ng-core/src/main/java/org/apache/flume/source/http/JSONHandler.java
@@ -29,6 +29,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.flume.Context;
 import org.apache.flume.Event;
+import org.apache.flume.event.EventBuilder;
 import org.apache.flume.event.JSONEvent;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -121,10 +122,18 @@ public class JSONHandler implements HTTPSourceHandler {
     for (Event e : eventList) {
       ((JSONEvent) e).setCharset(charset);
     }
-    return eventList;
+    return getSimpleEvents(eventList);
   }
 
   @Override
   public void configure(Context context) {
   }
+
+  private List<Event> getSimpleEvents(List<Event> events) {
+    List<Event> newEvents = new ArrayList<Event>(events.size());
+    for(Event e:events) {
+      newEvents.add(EventBuilder.withBody(e.getBody(), e.getHeaders()));
+    }
+    return newEvents;
+  }
 }

Reply via email to