You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by ke...@apache.org on 2016/07/27 17:04:15 UTC
[1/2] incubator-beam git commit: [BEAM-328] uses SerializableCoder
for `T extends Serializable`
Repository: incubator-beam
Updated Branches:
refs/heads/master e8695a1b6 -> b1f36df2d
[BEAM-328] uses SerializableCoder for `T extends Serializable`
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/7bbac011
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/7bbac011
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/7bbac011
Branch: refs/heads/master
Commit: 7bbac011afd61dc535de298675ef42cb9a3abb56
Parents: 68850b4
Author: manuzhang <ow...@gmail.com>
Authored: Thu Jun 16 12:09:22 2016 +0800
Committer: manuzhang <ow...@gmail.com>
Committed: Wed Jul 27 06:14:32 2016 +0800
----------------------------------------------------------------------
.../org/apache/beam/sdk/coders/CoderRegistry.java | 10 ++++++----
.../apache/beam/sdk/coders/CoderRegistryTest.java | 18 +++++++++++++++---
.../apache/beam/sdk/values/TypedPValueTest.java | 16 ++++++++++++----
.../sdk/transforms/RemoveDuplicatesJava8Test.java | 10 ++++++++--
.../beam/sdk/transforms/WithKeysJava8Test.java | 11 +++++++++--
5 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/7bbac011/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java
index 9c3fabe..50e4422 100644
--- a/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java
+++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/coders/CoderRegistry.java
@@ -163,9 +163,9 @@ public class CoderRegistry implements CoderProvider {
*/
public <T> void registerCoder(Class<T> rawClazz, Coder<T> coder) {
checkArgument(
- rawClazz.getTypeParameters().length == 0,
- "CoderRegistry.registerCoder(Class<T>, Coder<T>) may not be used "
- + "with unspecialized generic classes");
+ rawClazz.getTypeParameters().length == 0,
+ "CoderRegistry.registerCoder(Class<T>, Coder<T>) may not be used "
+ + "with unspecialized generic classes");
CoderFactory factory = CoderFactories.forCoder(coder);
registerCoder(rawClazz, factory);
@@ -720,7 +720,9 @@ public class CoderRegistry implements CoderProvider {
return getDefaultCoder(clazz);
} else if (type instanceof ParameterizedType) {
return getDefaultCoder((ParameterizedType) type, typeCoderBindings);
- } else if (type instanceof TypeVariable || type instanceof WildcardType) {
+ } else if (type instanceof TypeVariable) {
+ return getDefaultCoder(TypeDescriptor.of(type).getRawType());
+ } else if (type instanceof WildcardType) {
// No default coder for an unknown generic type.
throw new CannotProvideCoderException(
String.format("Cannot provide a coder for type variable %s"
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/7bbac011/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
index 37f0e10..817ea20 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/coders/CoderRegistryTest.java
@@ -388,15 +388,27 @@ public class CoderRegistryTest {
thrown.expect(CannotProvideCoderException.class);
thrown.expectMessage(allOf(
- containsString("TestGenericT"),
- containsString("erasure"),
- containsString("org.apache.beam.sdk.coders.CoderRegistryTest$TestGenericClass")));
+ containsString("No CoderFactory has been registered"),
+ containsString("does not have a @DefaultCoder annotation"),
+ containsString("does not implement Serializable")));
registry.getDefaultCoder(TypeDescriptor.of(
TestGenericClass.class.getTypeParameters()[0]));
}
private static class TestGenericClass<TestGenericT> { }
+ @Test
+ public void testSerializableTypeVariableDefaultCoder() throws Exception {
+ CoderRegistry registry = new CoderRegistry();
+
+ TypeDescriptor type = TypeDescriptor.of(
+ TestSerializableGenericClass.class.getTypeParameters()[0]);
+ assertEquals(registry.getDefaultCoder(type),
+ SerializableCoder.of(type));
+ }
+
+ private static class TestSerializableGenericClass<TestGenericT extends Serializable> {}
+
/**
* In-context test that assures the functionality tested in
* {@link #testDefaultCoderAnnotationGeneric} is invoked in the right ways.
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/7bbac011/sdks/java/core/src/test/java/org/apache/beam/sdk/values/TypedPValueTest.java
----------------------------------------------------------------------
diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/values/TypedPValueTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/values/TypedPValueTest.java
index 0b7018a..ba5dffb 100644
--- a/sdks/java/core/src/test/java/org/apache/beam/sdk/values/TypedPValueTest.java
+++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/values/TypedPValueTest.java
@@ -76,8 +76,12 @@ public class TypedPValueTest {
thrown.expect(IllegalStateException.class);
thrown.expectMessage("No Coder has been manually specified");
- thrown.expectMessage("erasure");
- thrown.expectMessage("see TupleTag Javadoc");
+ thrown.expectMessage(
+ containsString("Building a Coder using a registered CoderFactory failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the @DefaultCoder annotation failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the fallback CoderProvider failed"));
tuple.get(untypedSideOutputTag).getCoder();
}
@@ -91,8 +95,12 @@ public class TypedPValueTest {
thrown.expect(IllegalStateException.class);
thrown.expectMessage("No Coder has been manually specified");
- thrown.expectMessage("erasure");
- thrown.expectMessage("see TupleTag Javadoc");
+ thrown.expectMessage(
+ containsString("Building a Coder using a registered CoderFactory failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the @DefaultCoder annotation failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the fallback CoderProvider failed"));
tuple.get(untypedSideOutputTag).getCoder();
}
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/7bbac011/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/RemoveDuplicatesJava8Test.java
----------------------------------------------------------------------
diff --git a/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/RemoveDuplicatesJava8Test.java b/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/RemoveDuplicatesJava8Test.java
index 9318229..aa4c015 100644
--- a/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/RemoveDuplicatesJava8Test.java
+++ b/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/RemoveDuplicatesJava8Test.java
@@ -18,6 +18,7 @@
package org.apache.beam.sdk.transforms;
import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertThat;
@@ -90,8 +91,13 @@ public class RemoveDuplicatesJava8Test {
thrown.expect(IllegalStateException.class);
thrown.expectMessage("Unable to return a default Coder for RemoveRepresentativeDupes");
- thrown.expectMessage("Cannot provide a coder for type variable K");
- thrown.expectMessage("the actual type is unknown due to erasure.");
+ thrown.expectMessage("No Coder has been manually specified");
+ thrown.expectMessage(
+ containsString("Building a Coder using a registered CoderFactory failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the @DefaultCoder annotation failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the fallback CoderProvider failed"));
// Thrown when applying a transform to the internal WithKeys that withRepresentativeValueFn is
// implemented with
http://git-wip-us.apache.org/repos/asf/incubator-beam/blob/7bbac011/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/WithKeysJava8Test.java
----------------------------------------------------------------------
diff --git a/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/WithKeysJava8Test.java b/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/WithKeysJava8Test.java
index 1ffb147..a89e281 100644
--- a/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/WithKeysJava8Test.java
+++ b/sdks/java/java8tests/src/test/java/org/apache/beam/sdk/transforms/WithKeysJava8Test.java
@@ -17,6 +17,8 @@
*/
package org.apache.beam.sdk.transforms;
+import static org.hamcrest.Matchers.containsString;
+
import org.apache.beam.sdk.testing.PAssert;
import org.apache.beam.sdk.testing.RunnableOnService;
import org.apache.beam.sdk.testing.TestPipeline;
@@ -66,8 +68,13 @@ public class WithKeysJava8Test {
thrown.expect(IllegalStateException.class);
thrown.expectMessage("Unable to return a default Coder for ApplyKeysWithWithKeys");
- thrown.expectMessage("Cannot provide a coder for type variable K");
- thrown.expectMessage("the actual type is unknown due to erasure.");
+ thrown.expectMessage("No Coder has been manually specified");
+ thrown.expectMessage(
+ containsString("Building a Coder using a registered CoderFactory failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the @DefaultCoder annotation failed"));
+ thrown.expectMessage(
+ containsString("Building a Coder from the fallback CoderProvider failed"));
p.run();
}
[2/2] incubator-beam git commit: This closes #663
Posted by ke...@apache.org.
This closes #663
Project: http://git-wip-us.apache.org/repos/asf/incubator-beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-beam/commit/b1f36df2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-beam/tree/b1f36df2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-beam/diff/b1f36df2
Branch: refs/heads/master
Commit: b1f36df2d185de553edc8b22bce237ad87b1b2bd
Parents: e8695a1 7bbac01
Author: Kenneth Knowles <kl...@google.com>
Authored: Wed Jul 27 10:03:53 2016 -0700
Committer: Kenneth Knowles <kl...@google.com>
Committed: Wed Jul 27 10:03:53 2016 -0700
----------------------------------------------------------------------
.../org/apache/beam/sdk/coders/CoderRegistry.java | 10 ++++++----
.../apache/beam/sdk/coders/CoderRegistryTest.java | 18 +++++++++++++++---
.../apache/beam/sdk/values/TypedPValueTest.java | 16 ++++++++++++----
.../sdk/transforms/RemoveDuplicatesJava8Test.java | 10 ++++++++--
.../beam/sdk/transforms/WithKeysJava8Test.java | 11 +++++++++--
5 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------