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; + } }
