You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by jm...@apache.org on 2011/08/10 09:54:05 UTC

svn commit: r1156056 - in /incubator/flume/trunk/flume-core/src: main/java/com/cloudera/flume/handlers/avro/ main/java/com/cloudera/flume/handlers/thrift/ test/java/com/cloudera/flume/handlers/avro/ test/java/com/cloudera/flume/handlers/thrift/

Author: jmhsieh
Date: Wed Aug 10 07:54:04 2011
New Revision: 1156056

URL: http://svn.apache.org/viewvc?rev=1156056&view=rev
Log:
FLUME-719: Flume attribute field map from Avro|ThriftEventConvertUtil.toFlumeEvent() should be mutable

Modified:
    incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/avro/AvroEventConvertUtil.java
    incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/thrift/ThriftEventConvertUtil.java
    incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/avro/TestAvroEventConvertUtil.java
    incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/thrift/TestThriftEventConvertUtil.java

Modified: incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/avro/AvroEventConvertUtil.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/avro/AvroEventConvertUtil.java?rev=1156056&r1=1156055&r2=1156056&view=diff
==============================================================================
--- incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/avro/AvroEventConvertUtil.java (original)
+++ incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/avro/AvroEventConvertUtil.java Wed Aug 10 07:54:04 2011
@@ -143,7 +143,7 @@ public class AvroEventConvertUtil {
   private static Map<String, byte[]> getAttrs(
       Map<CharSequence, ByteBuffer> fields) {
     if (fields == null) {
-      return Collections.<String, byte[]> emptyMap();
+      return new HashMap<String, byte[]>();
     }
     HashMap<String, byte[]> tempMap = new HashMap<String, byte[]>();
     for (CharSequence u : fields.keySet()) {

Modified: incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/thrift/ThriftEventConvertUtil.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/thrift/ThriftEventConvertUtil.java?rev=1156056&r1=1156055&r2=1156056&view=diff
==============================================================================
--- incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/thrift/ThriftEventConvertUtil.java (original)
+++ incubator/flume/trunk/flume-core/src/main/java/com/cloudera/flume/handlers/thrift/ThriftEventConvertUtil.java Wed Aug 10 07:54:04 2011
@@ -150,7 +150,7 @@ class ThriftEventConvertUtil {
 
   private static Map<String, byte[]> getAttrs(ThriftFlumeEvent evt) {
     if (evt.fields == null) {
-      return Collections.<String, byte[]> emptyMap();
+      return new HashMap<String, byte[]>();
     }
     Map<String, ByteBuffer> tempMap = Collections.unmodifiableMap(evt.fields);
     Map<String, byte[]> returnMap = new HashMap<String, byte[]>();
@@ -158,7 +158,7 @@ class ThriftEventConvertUtil {
       ByteBuffer buf = tempMap.get(key);
       returnMap.put(key, buf.array());
     }
-    return Collections.unmodifiableMap(returnMap);
+    return returnMap;
   }
 
 }

Modified: incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/avro/TestAvroEventConvertUtil.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/avro/TestAvroEventConvertUtil.java?rev=1156056&r1=1156055&r2=1156056&view=diff
==============================================================================
--- incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/avro/TestAvroEventConvertUtil.java (original)
+++ incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/avro/TestAvroEventConvertUtil.java Wed Aug 10 07:54:04 2011
@@ -112,4 +112,19 @@ public class TestAvroEventConvertUtil {
     EventImpl.select(e);
   }
 
+  /**
+   * Test to make sure when a avro event is converted into a flume event,
+   * the event can be extended with new attributes.
+   */
+  @Test
+  public void testAddAttr() {
+    AvroFlumeEvent afe = AvroEventConvertUtil.toAvroEvent(testEvent);
+    Event e = AvroEventConvertUtil.toFlumeEvent(afe);
+    e.set("test", "data".getBytes());
+
+    AvroFlumeEvent afeNull = new AvroFlumeEvent();
+    Event e2 = AvroEventConvertUtil.toFlumeEvent(afeNull);
+    e2.set("test", "data".getBytes());
+  }
+
 }

Modified: incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/thrift/TestThriftEventConvertUtil.java
URL: http://svn.apache.org/viewvc/incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/thrift/TestThriftEventConvertUtil.java?rev=1156056&r1=1156055&r2=1156056&view=diff
==============================================================================
--- incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/thrift/TestThriftEventConvertUtil.java (original)
+++ incubator/flume/trunk/flume-core/src/test/java/com/cloudera/flume/handlers/thrift/TestThriftEventConvertUtil.java Wed Aug 10 07:54:04 2011
@@ -29,6 +29,8 @@ import org.junit.Test;
 import com.cloudera.flume.conf.FlumeConfiguration;
 import com.cloudera.flume.core.Event;
 import com.cloudera.flume.core.EventImpl;
+import com.cloudera.flume.handlers.avro.AvroEventConvertUtil;
+import com.cloudera.flume.handlers.avro.AvroFlumeEvent;
 
 public class TestThriftEventConvertUtil {
 
@@ -102,4 +104,18 @@ public class TestThriftEventConvertUtil 
     EventImpl.select(e);
   }
 
+  /**
+   * Test to make sure when a thrift event is converted into a flume event,
+   * the event can be extended with new attributes.
+   */
+  @Test
+  public void testAddAttr() {
+    ThriftFlumeEvent tfe = ThriftEventConvertUtil.toThriftEvent(testEvent);
+    Event e = ThriftEventConvertUtil.toFlumeEvent(tfe);
+    e.set("test", "data".getBytes());
+
+    ThriftFlumeEvent tfeNull = new ThriftFlumeEvent();
+    Event e2 = ThriftEventConvertUtil.toFlumeEvent(tfeNull);
+    e2.set("test", "data".getBytes());
+  }
 }