You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by af...@apache.org on 2015/12/06 22:47:37 UTC

reef git commit: [REEF-983] Add Runtime Identifier to the EvaluatorDescriptor

Repository: reef
Updated Branches:
  refs/heads/master 266918a1d -> d8fe048d1


[REEF-983] Add Runtime Identifier to the EvaluatorDescriptor

This addressed the issue by:
  * Adding RuntimeName to the EvaluatorDescriptor
  * Populating this field in different runtimes with appropriate values
  * Serializing RuntimeName for the bridge invocation
  * Serializing RuntimeName for HttpEndpoint

JIRA:
  [REEF-983](https://issues.apache.org/jira/browse/REEF-983)

Pull Request:
  Closes #704


Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/d8fe048d
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/d8fe048d
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/d8fe048d

Branch: refs/heads/master
Commit: d8fe048d1b8200fd13dc89ff77042e4bbcb33ab5
Parents: 266918a
Author: Boris Shulman <sh...@gmail.com>
Authored: Thu Dec 3 00:45:37 2015 -0800
Committer: Andrew Chung <af...@apache.org>
Committed: Sat Dec 5 19:11:41 2015 -0800

----------------------------------------------------------------------
 .../org/apache/reef/javabridge/Utilities.java   |  2 +-
 .../driver/evaluator/EvaluatorDescriptor.java   |  5 ++
 .../evaluator/EvaluatorDescriptorImpl.java      | 10 ++-
 .../evaluator/EvaluatorManagerFactory.java      |  7 +-
 .../driver/resourcemanager/ResourceEvent.java   |  4 +
 .../resourcemanager/ResourceEventImpl.java      | 16 ++++
 .../resourcemanager/ResourceStatusEvent.java    |  5 ++
 .../ResourceStatusEventImpl.java                | 15 ++++
 .../runtime/local/driver/ResourceManager.java   |  2 +-
 .../runtime/local/driver/RuntimeIdentifier.java | 31 ++++++++
 .../runtime/mesos/driver/RuntimeIdentifier.java | 31 ++++++++
 .../runtime/yarn/driver/RuntimeIdentifier.java  | 31 ++++++++
 .../yarn/driver/YarnContainerManager.java       |  1 +
 .../driver/YarnDriverRuntimeRestartManager.java |  3 +-
 .../driver/RuntimeNameTestConfiguration.java    | 38 ++++++++++
 .../org/apache/reef/tests/AllTestsSuite.java    |  4 +-
 .../apache/reef/tests/LocalTestEnvironment.java |  6 ++
 .../apache/reef/tests/MesosTestEnvironment.java |  5 ++
 .../org/apache/reef/tests/TestEnvironment.java  |  5 ++
 .../apache/reef/tests/YarnTestEnvironment.java  |  5 ++
 .../tests/runtimename/RuntimeNameDriver.java    | 63 ++++++++++++++++
 .../reef/tests/runtimename/RuntimeNameTest.java | 77 ++++++++++++++++++++
 .../reef/tests/runtimename/package-info.java    | 22 ++++++
 .../src/main/avro/EvaluatorInfo.avsc            |  3 +-
 .../webserver/AvroEvaluatorInfoSerializer.java  |  3 +
 .../webserver/HttpServerReefEventHandler.java   |  2 +
 .../webserver/TestAvroSerializerForHttp.java    |  7 +-
 .../webserver/TestReefEventStateManager.java    |  5 ++
 28 files changed, 398 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/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 1bfda31..b50131c 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
@@ -63,7 +63,7 @@ public final class Utilities {
     final InetSocketAddress socketAddress = evaluatorDescriptor.getNodeDescriptor().getInetSocketAddress();
     return "IP=" + socketAddress.getAddress() + ", Port=" + socketAddress.getPort() + ", HostName=" +
         socketAddress.getHostName() + ", Memory=" + evaluatorDescriptor.getMemory() + ", Core=" +
-        evaluatorDescriptor.getNumberOfCores();
+        evaluatorDescriptor.getNumberOfCores() + ", RuntimeName=" + evaluatorDescriptor.getRuntimeName();
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorDescriptor.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorDescriptor.java b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorDescriptor.java
index 44c2439..5a045c4 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorDescriptor.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/driver/evaluator/EvaluatorDescriptor.java
@@ -44,4 +44,9 @@ public interface EvaluatorDescriptor {
    * @return the number of virtual core allocated to this Evaluator.
    */
   int getNumberOfCores();
+
+  /**
+   * @return name of the runtime that was used to allocate this Evaluator
+   */
+  String getRuntimeName();
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorDescriptorImpl.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorDescriptorImpl.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorDescriptorImpl.java
index ed9fefc..f52cc7f 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorDescriptorImpl.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorDescriptorImpl.java
@@ -35,15 +35,18 @@ final class EvaluatorDescriptorImpl implements EvaluatorDescriptor {
   private final int megaBytes;
   private final int numberOfCores;
   private EvaluatorProcess process;
+  private final String runtimeName;
 
   EvaluatorDescriptorImpl(final NodeDescriptor nodeDescriptor,
                           final int megaBytes,
                           final int numberOfCores,
-                          final EvaluatorProcess process) {
+                          final EvaluatorProcess process,
+                          final String runtimeName) {
     this.nodeDescriptor = nodeDescriptor;
     this.megaBytes = megaBytes;
     this.numberOfCores = numberOfCores;
     this.process = process;
+    this.runtimeName = runtimeName;
   }
 
   @Override
@@ -72,4 +75,9 @@ final class EvaluatorDescriptorImpl implements EvaluatorDescriptor {
   public int getNumberOfCores() {
     return this.numberOfCores;
   }
+
+  @Override
+  public String getRuntimeName() {
+    return this.runtimeName;
+  }
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
index 12a6455..bd3d691 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/EvaluatorManagerFactory.java
@@ -35,7 +35,7 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 /**
- * Helper class that creates new EvaluatorManager instances from alloations.
+ * Helper class that creates new EvaluatorManager instances from allocations.
  */
 @Private
 @DriverSide
@@ -74,7 +74,7 @@ public final class EvaluatorManagerFactory {
     }
     final EvaluatorDescriptorImpl evaluatorDescriptor = new EvaluatorDescriptorImpl(nodeDescriptor,
         resourceEvent.getResourceMemory(), resourceEvent.getVirtualCores().get(),
-        processFactory.newEvaluatorProcess());
+        processFactory.newEvaluatorProcess(), resourceEvent.getRuntimeName());
 
     LOG.log(Level.FINEST, "Resource allocation: new evaluator id[{0}]", resourceEvent.getIdentifier());
     final EvaluatorManager evaluatorManager =
@@ -134,7 +134,8 @@ public final class EvaluatorManagerFactory {
   public EvaluatorManager getNewEvaluatorManagerForEvaluatorFailedDuringDriverRestart(
       final ResourceStatusEvent resourceStatusEvent) {
     return getNewEvaluatorManagerInstance(resourceStatusEvent.getIdentifier(),
-        new EvaluatorDescriptorImpl(null, 128, 1, processFactory.newEvaluatorProcess()));
+        new EvaluatorDescriptorImpl(null, 128, 1, processFactory.newEvaluatorProcess(),
+                resourceStatusEvent.getRuntimeName()));
   }
 
   /**

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEvent.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEvent.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEvent.java
index baae87e..0922e57 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEvent.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEvent.java
@@ -54,4 +54,8 @@ public interface ResourceEvent {
    */
   Optional<String> getRackName();
 
+  /**
+   * @return Runtime name of the resource
+   */
+  String getRuntimeName();
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEventImpl.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEventImpl.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEventImpl.java
index 8d43be6..0f1757e 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEventImpl.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceEventImpl.java
@@ -32,6 +32,7 @@ public final class ResourceEventImpl implements ResourceAllocationEvent, Resourc
   private final String nodeId;
   private final Optional<Integer> virtualCores;
   private final Optional<String> rackName;
+  private final String runtimeName;
 
 
   private ResourceEventImpl(final Builder builder) {
@@ -40,6 +41,7 @@ public final class ResourceEventImpl implements ResourceAllocationEvent, Resourc
     this.nodeId = builder.recovery ? builder.nodeId : BuilderUtils.notNull(builder.nodeId);
     this.virtualCores = Optional.ofNullable(builder.virtualCores);
     this.rackName = Optional.ofNullable(builder.rackName);
+    this.runtimeName = BuilderUtils.notNull(builder.runtimeName);
   }
 
   @Override
@@ -67,6 +69,11 @@ public final class ResourceEventImpl implements ResourceAllocationEvent, Resourc
     return rackName;
   }
 
+  @Override
+  public String getRuntimeName() {
+    return runtimeName;
+  }
+
   public static Builder newAllocationBuilder() {
     return new Builder(false);
   }
@@ -86,6 +93,7 @@ public final class ResourceEventImpl implements ResourceAllocationEvent, Resourc
     private String nodeId;
     private Integer virtualCores;
     private String rackName;
+    private String runtimeName;
 
     private Builder(final boolean recovery){
       this.recovery = recovery;
@@ -131,6 +139,14 @@ public final class ResourceEventImpl implements ResourceAllocationEvent, Resourc
       return this;
     }
 
+    /**
+     * @see ResourceAllocationEvent#getRuntimeName()
+     */
+    public Builder setRuntimeName(final String runtimeName) {
+      this.runtimeName = runtimeName;
+      return this;
+    }
+
     @Override
     public ResourceEventImpl build() {
       return new ResourceEventImpl(this);

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
index 089ea7c..c669d95 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEvent.java
@@ -38,6 +38,11 @@ public interface ResourceStatusEvent {
   String getIdentifier();
 
   /**
+   * @return Runtime name
+   */
+  String getRuntimeName();
+
+  /**
    * @return State of the resource
    */
   ReefServiceProtos.State getState();

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
index 5db541c..ee01879 100644
--- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
+++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/resourcemanager/ResourceStatusEventImpl.java
@@ -31,12 +31,14 @@ public final class ResourceStatusEventImpl implements ResourceStatusEvent {
   private final ReefServiceProtos.State state;
   private final Optional<String> diagnostics;
   private final Optional<Integer> exitCode;
+  private final String runtimeName;
 
   private ResourceStatusEventImpl(final Builder builder) {
     this.identifier = BuilderUtils.notNull(builder.identifier);
     this.state = BuilderUtils.notNull(builder.state);
     this.diagnostics = Optional.ofNullable(builder.diagnostics);
     this.exitCode = Optional.ofNullable(builder.exitCode);
+    this.runtimeName = BuilderUtils.notNull(builder.identifier);
   }
 
   @Override
@@ -45,6 +47,11 @@ public final class ResourceStatusEventImpl implements ResourceStatusEvent {
   }
 
   @Override
+  public String getRuntimeName() {
+    return runtimeName;
+  }
+
+  @Override
   public ReefServiceProtos.State getState() {
     return state;
   }
@@ -68,6 +75,7 @@ public final class ResourceStatusEventImpl implements ResourceStatusEvent {
    */
   public static final class Builder implements org.apache.reef.util.Builder<ResourceStatusEvent> {
     private String identifier;
+    private String runtimeName;
     private ReefServiceProtos.State state;
     private String diagnostics;
     private Integer exitCode;
@@ -81,6 +89,13 @@ public final class ResourceStatusEventImpl implements ResourceStatusEvent {
     }
 
     /**
+     * @see ResourceStatusEvent#getIdentifier()
+     */
+    public Builder setRuntimeName(final String runtimeName) {
+      this.runtimeName = runtimeName;
+      return this;
+    }
+    /**
      * @see ResourceStatusEvent#getState()
      */
     public Builder setState(final ReefServiceProtos.State state) {

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
index fb51de0..76d107a 100644
--- a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/ResourceManager.java
@@ -220,7 +220,7 @@ public final class ResourceManager {
         final ResourceAllocationEvent alloc = ResourceEventImpl.newAllocationBuilder()
             .setIdentifier(container.getContainerID()).setNodeId(container.getNodeID())
             .setResourceMemory(container.getMemory()).setVirtualCores(container.getNumberOfCores())
-            .setRackName(container.getRackName()).build();
+            .setRackName(container.getRackName()).setRuntimeName(RuntimeIdentifier.RUNTIME_NAME).build();
 
         LOG.log(Level.FINEST, "Allocating container: {0}", container);
         this.allocationHandler.onNext(alloc);

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/RuntimeIdentifier.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/RuntimeIdentifier.java b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/RuntimeIdentifier.java
new file mode 100644
index 0000000..1d0456f
--- /dev/null
+++ b/lang/java/reef-runtime-local/src/main/java/org/apache/reef/runtime/local/driver/RuntimeIdentifier.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.runtime.local.driver;
+
+import org.apache.reef.annotations.audience.Private;
+
+/**
+ * Runtime Identifier Implementation.
+ */
+@Private
+public final class RuntimeIdentifier {
+  public static final String RUNTIME_NAME = "Local";
+
+  private RuntimeIdentifier() { }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/RuntimeIdentifier.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/RuntimeIdentifier.java b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/RuntimeIdentifier.java
new file mode 100644
index 0000000..af82b64
--- /dev/null
+++ b/lang/java/reef-runtime-mesos/src/main/java/org/apache/reef/runtime/mesos/driver/RuntimeIdentifier.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.runtime.mesos.driver;
+
+import org.apache.reef.annotations.audience.Private;
+
+/**
+ * Runtime Identifier Implementation.
+ */
+@Private
+public final class RuntimeIdentifier {
+  public static final String RUNTIME_NAME = "Mesos";
+
+  private RuntimeIdentifier() { }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/RuntimeIdentifier.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/RuntimeIdentifier.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/RuntimeIdentifier.java
new file mode 100644
index 0000000..4ba8545
--- /dev/null
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/RuntimeIdentifier.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.runtime.yarn.driver;
+
+import org.apache.reef.annotations.audience.Private;
+
+/**
+ * Runtime Identifier Implementation.
+ */
+@Private
+public final class RuntimeIdentifier {
+  public static final String RUNTIME_NAME = "Yarn";
+
+  private RuntimeIdentifier() { }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java
index a056983..a069367 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnContainerManager.java
@@ -445,6 +445,7 @@ final class YarnContainerManager
             .setResourceMemory(container.getResource().getMemory())
             .setVirtualCores(container.getResource().getVirtualCores())
             .setRackName(rackNameFormatter.getRackName(container))
+            .setRuntimeName(RuntimeIdentifier.RUNTIME_NAME)
             .build());
         this.updateRuntimeStatus();
       } else {

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
index 713b132..d2a00f4 100644
--- a/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
+++ b/lang/java/reef-runtime-yarn/src/main/java/org/apache/reef/runtime/yarn/driver/YarnDriverRuntimeRestartManager.java
@@ -234,7 +234,8 @@ public final class YarnDriverRuntimeRestartManager implements DriverRuntimeResta
             ResourceEventImpl.newRecoveryBuilder().setIdentifier(container.getId().toString())
                 .setNodeId(container.getNodeId().toString()).setRackName(rackNameFormatter.getRackName(container))
                 .setResourceMemory(container.getResource().getMemory())
-                .setVirtualCores(container.getResource().getVirtualCores()).build()));
+                .setVirtualCores(container.getResource().getVirtualCores())
+                .setRuntimeName(RuntimeIdentifier.RUNTIME_NAME).build()));
       }
     }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/main/java/org/apache/reef/tests/driver/RuntimeNameTestConfiguration.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/main/java/org/apache/reef/tests/driver/RuntimeNameTestConfiguration.java b/lang/java/reef-tests/src/main/java/org/apache/reef/tests/driver/RuntimeNameTestConfiguration.java
new file mode 100644
index 0000000..127b54a
--- /dev/null
+++ b/lang/java/reef-tests/src/main/java/org/apache/reef/tests/driver/RuntimeNameTestConfiguration.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.tests.driver;
+
+import org.apache.reef.tang.annotations.Name;
+import org.apache.reef.tang.annotations.NamedParameter;
+import org.apache.reef.tang.formats.ConfigurationModule;
+import org.apache.reef.tang.formats.ConfigurationModuleBuilder;
+import org.apache.reef.tang.formats.RequiredParameter;
+
+public final class RuntimeNameTestConfiguration extends ConfigurationModuleBuilder {
+
+  public static final RequiredParameter<String> RUNTIME_NAME = new RequiredParameter<>();
+  public static final ConfigurationModule CONF = new RuntimeNameTestConfiguration()
+      .bindNamedParameter(RuntimeName.class, RUNTIME_NAME)
+      .build();
+
+  @NamedParameter(doc = "The runtime name")
+  public static class RuntimeName implements Name<String> {
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/AllTestsSuite.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/AllTestsSuite.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/AllTestsSuite.java
index 82d1829..baa2c74 100644
--- a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/AllTestsSuite.java
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/AllTestsSuite.java
@@ -22,6 +22,7 @@ import org.apache.reef.tests.applications.ApplicationTestSuite;
 import org.apache.reef.tests.close_eval.CloseEvaluatorTest;
 import org.apache.reef.tests.configurationproviders.ConfigurationProviderTest;
 import org.apache.reef.tests.driver.DriverTest;
+import org.apache.reef.tests.runtimename.RuntimeNameTest;
 import org.apache.reef.tests.evaluatorfailure.EvaluatorFailureTest;
 import org.apache.reef.tests.evaluatorreuse.EvaluatorReuseTest;
 import org.apache.reef.tests.evaluatorsize.EvaluatorSizeTest;
@@ -52,7 +53,8 @@ import org.junit.runners.Suite;
     EvaluatorFailureTest.class,
     ExamplesTestSuite.class,
     ConfigurationProviderTest.class,
-    ApplicationTestSuite.class
+    ApplicationTestSuite.class,
+    RuntimeNameTest.class
     })
 public final class AllTestsSuite {
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/LocalTestEnvironment.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/LocalTestEnvironment.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/LocalTestEnvironment.java
index 3ac2e8c..775b7b1 100644
--- a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/LocalTestEnvironment.java
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/LocalTestEnvironment.java
@@ -22,6 +22,7 @@ import org.apache.reef.io.ConfigurableDirectoryTempFileCreator;
 import org.apache.reef.io.TempFileCreator;
 import org.apache.reef.io.parameters.TempFileRootFolder;
 import org.apache.reef.runtime.local.client.LocalRuntimeConfiguration;
+import org.apache.reef.runtime.local.driver.RuntimeIdentifier;
 import org.apache.reef.tang.Configuration;
 import org.apache.reef.tang.Configurations;
 import org.apache.reef.tang.JavaConfigurationBuilder;
@@ -74,4 +75,9 @@ public final class LocalTestEnvironment extends TestEnvironmentBase implements T
   public int getTestTimeout() {
     return 60000; // 1 min.
   }
+
+  @Override
+  public String getRuntimeName() {
+    return RuntimeIdentifier.RUNTIME_NAME;
+  }
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/MesosTestEnvironment.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/MesosTestEnvironment.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/MesosTestEnvironment.java
index 51b67bf..a4e2739 100644
--- a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/MesosTestEnvironment.java
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/MesosTestEnvironment.java
@@ -19,6 +19,7 @@
 package org.apache.reef.tests;
 
 import org.apache.reef.runtime.mesos.client.MesosClientConfiguration;
+import org.apache.reef.runtime.mesos.driver.RuntimeIdentifier;
 import org.apache.reef.tang.Configuration;
 import org.apache.reef.tang.exceptions.BindException;
 
@@ -63,5 +64,9 @@ public final class MesosTestEnvironment extends TestEnvironmentBase implements T
     return 300000; // 5 minutes
   }
 
+  @Override
+  public String getRuntimeName() {
+    return RuntimeIdentifier.RUNTIME_NAME;
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/TestEnvironment.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/TestEnvironment.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/TestEnvironment.java
index e6fa832..a7e149e 100644
--- a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/TestEnvironment.java
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/TestEnvironment.java
@@ -56,4 +56,9 @@ public interface TestEnvironment {
 
   LauncherStatus run(final Configuration driverConfiguration);
 
+  /**
+   * Returns the runtimeName for the environment.
+   * @return runtimeName
+   */
+  String getRuntimeName();
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/YarnTestEnvironment.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/YarnTestEnvironment.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/YarnTestEnvironment.java
index aa401e8..d534909 100644
--- a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/YarnTestEnvironment.java
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/YarnTestEnvironment.java
@@ -19,6 +19,7 @@
 package org.apache.reef.tests;
 
 import org.apache.reef.runtime.yarn.client.YarnClientConfiguration;
+import org.apache.reef.runtime.yarn.driver.RuntimeIdentifier;
 import org.apache.reef.tang.Configuration;
 import org.apache.reef.tang.exceptions.BindException;
 
@@ -56,5 +57,9 @@ public final class YarnTestEnvironment extends TestEnvironmentBase implements Te
     return 300000; // 5 minutes
   }
 
+  @Override
+  public String getRuntimeName() {
+    return RuntimeIdentifier.RUNTIME_NAME;
+  }
 
 }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameDriver.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameDriver.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameDriver.java
new file mode 100644
index 0000000..a57ffe2
--- /dev/null
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameDriver.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.tests.runtimename;
+
+import org.apache.reef.driver.evaluator.AllocatedEvaluator;
+import org.apache.reef.tang.annotations.Parameter;
+import org.apache.reef.tang.annotations.Unit;
+import org.apache.reef.tests.driver.RuntimeNameTestConfiguration;
+import org.apache.reef.tests.library.exceptions.DriverSideFailure;
+import org.apache.reef.wake.EventHandler;
+
+import javax.inject.Inject;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+@Unit
+final class RuntimeNameDriver {
+  private static final Logger LOG = Logger.getLogger(RuntimeNameDriver.class.getName());
+  private final String runtimeName;
+
+  @Inject
+  RuntimeNameDriver(@Parameter(RuntimeNameTestConfiguration.RuntimeName.class) final String name) {
+    runtimeName = name;
+  }
+
+  /**
+   * Handles AllocatedEvaluator: Submit the HelloTask.
+   */
+  public final class EvaluatorAllocatedHandler implements EventHandler<AllocatedEvaluator> {
+
+    @Override
+    public void onNext(final AllocatedEvaluator allocatedEvaluator) {
+      LOG.log(Level.INFO, "Evaluator allocated with runtime: {0}",
+          allocatedEvaluator.getEvaluatorDescriptor().getRuntimeName());
+      LOG.log(Level.INFO, "Evaluator expected runtime runtime: {0}", RuntimeNameDriver.this.runtimeName);
+      if (!RuntimeNameDriver.this.runtimeName.equals(
+          allocatedEvaluator.getEvaluatorDescriptor().getRuntimeName())) {
+        throw new DriverSideFailure(
+            "Got an Evaluator with different runtime name then expected. Expected "
+                + RuntimeNameDriver.this.runtimeName
+                + ", but got " + allocatedEvaluator.getEvaluatorDescriptor().getRuntimeName());
+      }
+
+      allocatedEvaluator.close();
+    }
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameTest.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameTest.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameTest.java
new file mode 100644
index 0000000..f1bf0c8
--- /dev/null
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/RuntimeNameTest.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.reef.tests.runtimename;
+
+import org.apache.reef.client.DriverConfiguration;
+import org.apache.reef.client.DriverLauncher;
+import org.apache.reef.client.LauncherStatus;
+import org.apache.reef.tang.Configuration;
+import org.apache.reef.tang.Tang;
+import org.apache.reef.tang.exceptions.BindException;
+import org.apache.reef.tang.exceptions.InjectionException;
+import org.apache.reef.tests.TestEnvironment;
+import org.apache.reef.tests.TestEnvironmentFactory;
+import org.apache.reef.tests.driver.RuntimeNameTestConfiguration;
+import org.apache.reef.tests.library.driver.OnDriverStartedAllocateOne;
+import org.apache.reef.util.EnvironmentUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * This tests whether we receive correct runtimeName in the evaluator descriptor.
+ */
+public class RuntimeNameTest {
+
+  private final TestEnvironment testEnvironment = TestEnvironmentFactory.getNewTestEnvironment();
+
+  @Before
+  public void setUp() throws Exception {
+    testEnvironment.setUp();
+  }
+
+  @Test
+  public void testRuntimeName() throws BindException, InjectionException {
+    final Configuration runtimeConfiguration = this.testEnvironment.getRuntimeConfiguration();
+    final Configuration testConfiguration = RuntimeNameTestConfiguration.CONF
+        .set(RuntimeNameTestConfiguration.RUNTIME_NAME, this.testEnvironment.getRuntimeName())
+        .build();
+
+    final Configuration driverConfiguration = DriverConfiguration.CONF
+        .set(DriverConfiguration.GLOBAL_LIBRARIES, EnvironmentUtils.getClassLocation(OnDriverStartedAllocateOne.class))
+        .set(DriverConfiguration.DRIVER_IDENTIFIER, "TEST_DriverTest")
+        .set(DriverConfiguration.ON_DRIVER_STARTED, OnDriverStartedAllocateOne.class)
+        .set(DriverConfiguration.ON_EVALUATOR_ALLOCATED, RuntimeNameDriver.EvaluatorAllocatedHandler.class)
+        .build();
+
+    final Configuration mergedDriverConfiguration = Tang.Factory.getTang()
+        .newConfigurationBuilder(driverConfiguration, testConfiguration).build();
+
+    final LauncherStatus status = DriverLauncher.getLauncher(runtimeConfiguration)
+        .run(mergedDriverConfiguration, this.testEnvironment.getTestTimeout());
+
+    Assert.assertTrue("Job state after execution: " + status, status.isSuccess());
+  }
+
+  @After
+  public void tearDown() throws Exception {
+    this.testEnvironment.tearDown();
+  }
+}

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/package-info.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/package-info.java b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/package-info.java
new file mode 100644
index 0000000..5f3645b
--- /dev/null
+++ b/lang/java/reef-tests/src/test/java/org/apache/reef/tests/runtimename/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * Test for Driver start mechanism by launching noop driver.
+ */
+package org.apache.reef.tests.runtimename;

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-webserver/src/main/avro/EvaluatorInfo.avsc
----------------------------------------------------------------------
diff --git a/lang/java/reef-webserver/src/main/avro/EvaluatorInfo.avsc b/lang/java/reef-webserver/src/main/avro/EvaluatorInfo.avsc
index a8f4939..1b094bc 100644
--- a/lang/java/reef-webserver/src/main/avro/EvaluatorInfo.avsc
+++ b/lang/java/reef-webserver/src/main/avro/EvaluatorInfo.avsc
@@ -27,7 +27,8 @@
       { "name": "nodeName", "type": "string" },
       { "name": "memory", "type": "int" },
       { "name": "type", "type": "string" },
-      { "name": "internetAddress", "type": "string" }
+      { "name": "internetAddress", "type": "string" },
+      { "name": "runtimeName", "type": "string" }
     ]
   },
   {

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/AvroEvaluatorInfoSerializer.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/AvroEvaluatorInfoSerializer.java b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/AvroEvaluatorInfoSerializer.java
index cce88c3..73e0354 100644
--- a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/AvroEvaluatorInfoSerializer.java
+++ b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/AvroEvaluatorInfoSerializer.java
@@ -59,6 +59,7 @@ public class AvroEvaluatorInfoSerializer implements EvaluatorInfoSerializer {
       InetSocketAddress address = null;
       int memory = 0;
       String type = null;
+      String runtimeName = null;
 
       if (evaluatorDescriptor != null) {
         nodeId = evaluatorDescriptor.getNodeDescriptor().getId();
@@ -66,6 +67,7 @@ public class AvroEvaluatorInfoSerializer implements EvaluatorInfoSerializer {
         address = evaluatorDescriptor.getNodeDescriptor().getInetSocketAddress();
         memory = evaluatorDescriptor.getMemory();
         type = evaluatorDescriptor.getProcess().getType().toString();
+        runtimeName = evaluatorDescriptor.getRuntimeName();
       }
 
       evaluatorsInfo.add(AvroEvaluatorInfo.newBuilder()
@@ -75,6 +77,7 @@ public class AvroEvaluatorInfoSerializer implements EvaluatorInfoSerializer {
           .setInternetAddress(address != null ? address.toString() : "")
           .setMemory(memory)
           .setType(type != null ? type : "")
+          .setRuntimeName(runtimeName != null ? runtimeName : "")
           .build());
     }
 

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java
index 7f68277..acbc0f1 100644
--- a/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java
+++ b/lang/java/reef-webserver/src/main/java/org/apache/reef/webserver/HttpServerReefEventHandler.java
@@ -280,6 +280,8 @@ public final class HttpServerReefEventHandler implements HttpHandler {
         writer.write("<br/>");
         writer.println("Evaluator Type: " + evaluatorDescriptor.getProcess());
         writer.write("<br/>");
+        writer.println("Evaluator Runtime Name: " + evaluatorDescriptor.getRuntimeName());
+        writer.write("<br/>");
       } else {
         writer.println("Incorrect Evaluator Id: " + id);
       }

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestAvroSerializerForHttp.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestAvroSerializerForHttp.java b/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestAvroSerializerForHttp.java
index 095851d..d2cb897 100644
--- a/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestAvroSerializerForHttp.java
+++ b/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestAvroSerializerForHttp.java
@@ -79,7 +79,7 @@ public class TestAvroSerializerForHttp {
       final AvroEvaluatorsInfo evaluatorInfo = serializer.toAvro(ids, data);
       final String evaluatorInfoString = serializer.toString(evaluatorInfo);
       Assert.assertEquals(evaluatorInfoString, "{\"evaluatorsInfo\":[{\"evaluatorId\":\"abc\",\"nodeId\":\"\"," +
-          "\"nodeName\":\"mock\",\"memory\":64,\"type\":\"CLR\",\"internetAddress\":\"\"}]}");
+          "\"nodeName\":\"mock\",\"memory\":64,\"type\":\"CLR\",\"internetAddress\":\"\",\"runtimeName\":\"Local\"}]}");
     } catch (final InjectionException e) {
       Assert.fail("Not able to inject EvaluatorInfoSerializer");
     }
@@ -157,6 +157,11 @@ public class TestAvroSerializerForHttp {
     public int getNumberOfCores() {
       return 1;
     }
+
+    @Override
+    public String getRuntimeName() {
+      return "Local";
+    }
   }
 
   static class NodeDescriptorMock implements NodeDescriptor {

http://git-wip-us.apache.org/repos/asf/reef/blob/d8fe048d/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestReefEventStateManager.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestReefEventStateManager.java b/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestReefEventStateManager.java
index c64f5be..de20af9 100644
--- a/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestReefEventStateManager.java
+++ b/lang/java/reef-webserver/src/test/java/org/apache/reef/webserver/TestReefEventStateManager.java
@@ -123,6 +123,11 @@ final class MockEvaluatorDescriptor implements EvaluatorDescriptor {
   public int getNumberOfCores() {
     return 1;
   }
+
+  @Override
+  public String getRuntimeName() {
+    return "Local";
+  }
 }
 
 final class MockNodeDescriptor implements NodeDescriptor {