Repository: crunch Updated Branches: refs/heads/master 772f7f2b2 -> 96ef2d679
CRUNCH-419 Writables.registerComparable does not actually register the WritableComparable Signed-off-by: Josh Wills <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/crunch/repo Commit: http://git-wip-us.apache.org/repos/asf/crunch/commit/96ef2d67 Tree: http://git-wip-us.apache.org/repos/asf/crunch/tree/96ef2d67 Diff: http://git-wip-us.apache.org/repos/asf/crunch/diff/96ef2d67 Branch: refs/heads/master Commit: 96ef2d679c9a7bf6c2cb80190e0646f94f558482 Parents: 772f7f2 Author: Tom De Leu <[email protected]> Authored: Wed Jun 11 22:09:08 2014 +0200 Committer: Josh Wills <[email protected]> Committed: Wed Jun 11 20:04:10 2014 -0700 ---------------------------------------------------------------------- .../apache/crunch/types/writable/Writables.java | 1 + .../crunch/types/writable/WritablesTest.java | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/crunch/blob/96ef2d67/crunch-core/src/main/java/org/apache/crunch/types/writable/Writables.java ---------------------------------------------------------------------- diff --git a/crunch-core/src/main/java/org/apache/crunch/types/writable/Writables.java b/crunch-core/src/main/java/org/apache/crunch/types/writable/Writables.java index f571f2f..be2cb1a 100644 --- a/crunch-core/src/main/java/org/apache/crunch/types/writable/Writables.java +++ b/crunch-core/src/main/java/org/apache/crunch/types/writable/Writables.java @@ -122,6 +122,7 @@ public class Writables { if (WRITABLE_CODES.containsKey(code)) { throw new IllegalArgumentException("Already have writable class assigned to code = " + code); } + WRITABLE_CODES.put(code, clazz); } private static final String WRITABLE_COMPARABLE_CODES = "crunch.writable.comparable.codes"; http://git-wip-us.apache.org/repos/asf/crunch/blob/96ef2d67/crunch-core/src/test/java/org/apache/crunch/types/writable/WritablesTest.java ---------------------------------------------------------------------- diff --git a/crunch-core/src/test/java/org/apache/crunch/types/writable/WritablesTest.java b/crunch-core/src/test/java/org/apache/crunch/types/writable/WritablesTest.java index 70099f2..2281473 100644 --- a/crunch-core/src/test/java/org/apache/crunch/types/writable/WritablesTest.java +++ b/crunch-core/src/test/java/org/apache/crunch/types/writable/WritablesTest.java @@ -42,7 +42,7 @@ import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Text; -import org.apache.hadoop.io.Writable; +import org.apache.hadoop.io.WritableComparable; import org.apache.hadoop.io.WritableUtils; import org.junit.Test; @@ -172,7 +172,7 @@ public class WritablesTest { testInputOutputFn(wt, j, w); } - protected static class TestWritable implements Writable { + protected static class TestWritable implements WritableComparable<TestWritable> { String left; int right; @@ -207,6 +207,13 @@ public class WritablesTest { return true; } + @Override + public int compareTo(TestWritable o) { + int cmp = left.compareTo(o.left); + if (cmp != 0) + return cmp; + return Integer.valueOf(right).compareTo(Integer.valueOf(o.right)); + } } @Test @@ -236,6 +243,12 @@ public class WritablesTest { assertSame(Writables.records(TestWritable.class), wt); } + @Test + public void testRegisterComparable() throws Exception { + Writables.registerComparable(TestWritable.class); + assertNotNull(Writables.WRITABLE_CODES.inverse().get(TestWritable.class)); + } + @SuppressWarnings({ "unchecked", "rawtypes" }) protected static void testInputOutputFn(PType ptype, Object java, Object writable) { ptype.getInputMapFn().initialize();
