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 <[email protected]>
Authored: Mon Jun 22 21:20:14 2015 +0900
Committer: Yunseong Lee <[email protected]>
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

Reply via email to