You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by yu...@apache.org on 2015/06/22 17:54:21 UTC
[14/17] incubator-reef git commit: Replace ClassHierarchy serializer
and leave comments for the future changes
Replace ClassHierarchy serializer and leave comments for the future changes
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/14418120
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/14418120
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/14418120
Branch: refs/heads/REEF-395
Commit: 144181204eee118d7be0fe1e6af360596c4950ba
Parents: 2328a9d
Author: Yunseong Lee <yu...@apache.org>
Authored: Mon Jun 22 21:20:14 2015 +0900
Committer: Yunseong Lee <yu...@apache.org>
Committed: Mon Jun 22 22:06:44 2015 +0900
----------------------------------------------------------------------
.../org/apache/reef/javabridge/Utilities.java | 2 ++
.../reef/examples/helloCLR/HelloDriver.java | 2 ++
.../reef/tang/util/ValidateConfiguration.java | 2 ++
.../tang/ClassHierarchyDeserializationTest.java | 24 ++++++++++++++------
.../apache/reef/tang/test/RoundTripTest.java | 6 +++--
5 files changed, 27 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/14418120/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java
index 93b6903..88307cf 100644
--- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java
+++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/Utilities.java
@@ -33,6 +33,7 @@ import java.nio.file.Paths;
public class Utilities {
public static ClassHierarchy loadClassHierarchy(String classHierarchyFile) {
+ // TODO The file should be created via AvroClassHierarchySerializer
Path p = Paths.get(classHierarchyFile);
if (!Files.exists(p)) {
p = Paths.get(System.getProperty("user.dir") + "/reef/global/" + classHierarchyFile);
@@ -40,6 +41,7 @@ public class Utilities {
if (!Files.exists(p)) {
throw new RuntimeException("cannot find file " + p.toAbsolutePath());
}
+ // TODO Use the AvroClassHierarchy in place of protobuf
try (final InputStream chin = new FileInputStream(p.toAbsolutePath().toString())) {
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin);
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/14418120/lang/java/reef-examples-clr/src/main/java/org/apache/reef/examples/helloCLR/HelloDriver.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-examples-clr/src/main/java/org/apache/reef/examples/helloCLR/HelloDriver.java b/lang/java/reef-examples-clr/src/main/java/org/apache/reef/examples/helloCLR/HelloDriver.java
index 33f60a3..6c64cdc 100644
--- a/lang/java/reef-examples-clr/src/main/java/org/apache/reef/examples/helloCLR/HelloDriver.java
+++ b/lang/java/reef-examples-clr/src/main/java/org/apache/reef/examples/helloCLR/HelloDriver.java
@@ -92,7 +92,9 @@ public final class HelloDriver {
* @return
*/
private static ClassHierarchy loadClassHierarchy() {
+ // TODO The file should be created by AvroClassHierarchySerializer
try (final InputStream chin = new FileInputStream(HelloCLR.CLASS_HIERARCHY_FILENAME)) {
+ // TODO Use AvroClassHierarchySerializer instead
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin); // A
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
return ch;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/14418120/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/util/ValidateConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/util/ValidateConfiguration.java b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/util/ValidateConfiguration.java
index 82c929c..31f4b96 100644
--- a/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/util/ValidateConfiguration.java
+++ b/lang/java/reef-tang/tang/src/main/java/org/apache/reef/tang/util/ValidateConfiguration.java
@@ -36,6 +36,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+// TODO Clean up the code which are deprecated and commented out.
public class ValidateConfiguration {
private final String target;
private final File ch;
@@ -85,6 +86,7 @@ public class ValidateConfiguration {
final Tang t = Tang.Factory.getTang();
+ // TODO Use the AvroClassHierarchySerializer
final ClassHierarchyProto.Node root;
try (final InputStream chin = new FileInputStream(this.ch)) {
root = ClassHierarchyProto.Node.parseFrom(chin);
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/14418120/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/ClassHierarchyDeserializationTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/ClassHierarchyDeserializationTest.java b/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/ClassHierarchyDeserializationTest.java
index a7e1469..f0aebaa 100644
--- a/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/ClassHierarchyDeserializationTest.java
+++ b/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/ClassHierarchyDeserializationTest.java
@@ -18,9 +18,10 @@
*/
package org.apache.reef.tang;
-import org.apache.reef.tang.exceptions.BindException;
import org.apache.reef.tang.exceptions.NameResolutionException;
+import org.apache.reef.tang.formats.AvroClassHierarchySerializer;
import org.apache.reef.tang.formats.AvroConfigurationSerializer;
+import org.apache.reef.tang.formats.ClassHierarchySerializer;
import org.apache.reef.tang.formats.ConfigurationSerializer;
import org.apache.reef.tang.implementation.protobuf.ProtocolBufferClassHierarchy;
import org.apache.reef.tang.proto.ClassHierarchyProto;
@@ -35,16 +36,21 @@ import java.util.Set;
/**
* Test case for class hierarchy deserialization.
+ * TODO The files should be created and deserialized by the AvroClassHierarchySerializer
*/
public class ClassHierarchyDeserializationTest {
+ private final ConfigurationSerializer configurationSerializer = new AvroConfigurationSerializer();
+ private final ClassHierarchySerializer classHierarchySerializer = new AvroClassHierarchySerializer();
/**
* generate task.bin from running .Net ClassHierarchyBuilder.exe
*/
@Test
public void testDeserializationForTasks() {
+ // TODO The file should be written by Avro
try (final InputStream chin = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("Task.bin")) {
+ // TODO Use AvroClassHierarchySerializer instead
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin);
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
Node n1 = ch.getNode("Org.Apache.REEF.Examples.Tasks.StreamingTasks.StreamTask1, Org.Apache.REEF.Examples.Tasks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null");
@@ -75,8 +81,10 @@ public class ClassHierarchyDeserializationTest {
final ConfigurationBuilder taskConfigurationBuilder;
final ConfigurationBuilder eventConfigurationBuilder;
+ // TODO The file should be written by Avro
try (final InputStream chin = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("Task.bin")) {
+ // TODO Use AvroClassHierarchySerializer instead
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin);
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
taskConfigurationBuilder = Tang.Factory.getTang().newConfigurationBuilder(ch);
@@ -85,8 +93,10 @@ public class ClassHierarchyDeserializationTest {
throw new RuntimeException(message, e);
}
+ // TODO The file should be written by Avro
try (final InputStream chin = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("Event.bin")) {
+ // TODO Use AvroClassHierarchySerializer instead
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin);
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
eventConfigurationBuilder = Tang.Factory.getTang().newConfigurationBuilder(ch);
@@ -103,8 +113,10 @@ public class ClassHierarchyDeserializationTest {
*/
@Test
public void testDeserializationForEvent() {
+ // TODO The file should be written by Avro
try (final InputStream chin = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("Event.bin")) {
+ // TODO Use AvroClassHierarchySerializer instead
final ClassHierarchyProto.Node root = ClassHierarchyProto.Node.parseFrom(chin);
final ClassHierarchy ch = new ProtocolBufferClassHierarchy(root);
final ConfigurationBuilder taskConfigurationBuilder = Tang.Factory.getTang()
@@ -120,15 +132,14 @@ public class ClassHierarchyDeserializationTest {
public void testBindSetEntryWithSetOfT() throws IOException {
final ClassHierarchy ns1 = Tang.Factory.getTang().getDefaultClassHierarchy();
ns1.getNode(SetOfClasses.class.getName());
- final ClassHierarchy ns2 = new ProtocolBufferClassHierarchy(ProtocolBufferClassHierarchy.serialize(ns1));
+ final ClassHierarchy ns2 = classHierarchySerializer.fromString(classHierarchySerializer.toString(ns1));
final ConfigurationBuilder cb = Tang.Factory.getTang().newConfigurationBuilder(ns2);
final NamedParameterNode<Set<Number>> n2 = (NamedParameterNode<Set<Number>>) ns1.getNode(SetOfClasses.class.getName());
final Node fn = ns1.getNode(Float.class.getName());
cb.bindSetEntry(n2, fn);
- final ConfigurationSerializer serializer = new AvroConfigurationSerializer();
- final Configuration c = serializer.fromString(serializer.toString(cb.build()), ns2);
+ final Configuration c = configurationSerializer.fromString(configurationSerializer.toString(cb.build()), ns2);
}
@Test
@@ -136,7 +147,7 @@ public class ClassHierarchyDeserializationTest {
public void testBindSetEntryWithSetOfString() throws IOException {
final ClassHierarchy ns1 = Tang.Factory.getTang().getDefaultClassHierarchy();
ns1.getNode(SetOfStrings.class.getName());
- final ClassHierarchy ns2 = new ProtocolBufferClassHierarchy(ProtocolBufferClassHierarchy.serialize(ns1));
+ final ClassHierarchy ns2 = classHierarchySerializer.fromString(classHierarchySerializer.toString(ns1));
final ConfigurationBuilder cb = Tang.Factory.getTang().newConfigurationBuilder(ns2);
cb.bindSetEntry(SetOfStrings.class.getName(), "four");
cb.bindSetEntry(SetOfStrings.class.getName(), "five");
@@ -144,7 +155,6 @@ public class ClassHierarchyDeserializationTest {
final NamedParameterNode<Set<String>> n2 = (NamedParameterNode<Set<String>>) ns1.getNode(SetOfStrings.class.getName());
cb.bindSetEntry(n2, "six");
- final ConfigurationSerializer serializer = new AvroConfigurationSerializer();
- final Configuration c = serializer.fromString(serializer.toString(cb.build()), ns2);
+ final Configuration c = configurationSerializer.fromString(configurationSerializer.toString(cb.build()), ns2);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/14418120/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/test/RoundTripTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/test/RoundTripTest.java b/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/test/RoundTripTest.java
index 2dd34a6..7000568 100644
--- a/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/test/RoundTripTest.java
+++ b/lang/java/reef-tang/tang/src/test/java/org/apache/reef/tang/test/RoundTripTest.java
@@ -21,7 +21,8 @@ package org.apache.reef.tang.test;
import org.apache.reef.tang.ClassHierarchy;
import org.apache.reef.tang.Configuration;
import org.apache.reef.tang.Tang;
-import org.apache.reef.tang.implementation.protobuf.ProtocolBufferClassHierarchy;
+import org.apache.reef.tang.formats.AvroClassHierarchySerializer;
+import org.apache.reef.tang.formats.ClassHierarchySerializer;
import org.junit.Assert;
import org.junit.Test;
@@ -48,7 +49,8 @@ public abstract class RoundTripTest {
public void testRoundTripWithClassHierarchy() throws Exception {
// TODO: use 'getConfiguration' instead of 'getConfigurationWithoutList' after #192 is fixed
final Configuration confBefore = ObjectTreeTest.getConfigurationWithoutList();
- final ClassHierarchy c = new ProtocolBufferClassHierarchy(ProtocolBufferClassHierarchy.serialize(confBefore.getClassHierarchy()));
+ final ClassHierarchySerializer chSerializer = new AvroClassHierarchySerializer();
+ final ClassHierarchy c = chSerializer.fromString(chSerializer.toString(confBefore.getClassHierarchy()));
final Configuration confAfter = roundTrip(confBefore, c);
Assert.assertEquals(confBefore.getNamedParameters().size(), confAfter.getNamedParameters().size());
//For now, we cannot use ProtocolBufferClassHierarchy to do injection