You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by do...@apache.org on 2015/11/26 07:44:45 UTC

incubator-reef git commit: [REEF-993] Document ClosedContextClr2Java stack and fix spacing

Repository: incubator-reef
Updated Branches:
  refs/heads/master dc5efb9ad -> 05031a0ab


[REEF-993] Document ClosedContextClr2Java stack and fix spacing

This PR adds documents for IClosedContext.cs, ClosedContext.cs,
ClrSystemHandlerWrapper.cs and IClosedContextClr2Java.cs.
Also, it fixes spacing in Clr2JavaImpl.h and ClosedContextClr2Java.cpp.

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

Pull request:
  This closes #667


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

Branch: refs/heads/master
Commit: 05031a0ab24cc8ecd49018cf1e7f9d70fc1feb54
Parents: dc5efb9
Author: Andrew Chung <af...@gmail.com>
Authored: Fri Nov 20 13:33:33 2015 -0800
Committer: Dongjoon Hyun <do...@apache.org>
Committed: Thu Nov 26 15:26:29 2015 +0900

----------------------------------------------------------------------
 .../ClosedContextClr2Java.cpp                   | 130 +++---
 lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h   | 437 ++++++++++---------
 .../Bridge/Clr2java/IClosedContextClr2Java.cs   |  17 +
 .../Bridge/ClrSystemHandlerWrapper.cs           |   5 +
 .../Bridge/Events/ClosedContext.cs              |  55 ++-
 .../Context/IClosedContext.cs                   |   3 +
 6 files changed, 354 insertions(+), 293 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
index 6584abe..b1ea160 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/ClosedContextClr2Java.cpp
@@ -19,72 +19,90 @@
 #include "Clr2JavaImpl.h"
 
 namespace Org {
-  namespace Apache {
-	  namespace REEF {
-		  namespace Driver {
-			  namespace Bridge {
-				  namespace Clr2java {
-					  ref class ManagedLog {
-					  internal:
-						  static BridgeLogger^ LOGGER = BridgeLogger::GetLogger("<C++>");
-					  };
-					  ClosedContextClr2Java::ClosedContextClr2Java(JNIEnv *env, jobject jobjectClosedContext) {
-						  ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::ClosedContextClr2Java");
+    namespace Apache {
+        namespace REEF {
+            namespace Driver {
+                namespace Bridge {
+                    namespace Clr2java {
+                        ref class ManagedLog {
+                        internal:
+                            static BridgeLogger^ LOGGER = BridgeLogger::GetLogger("<C++>");
+                        };
+                        ClosedContextClr2Java::ClosedContextClr2Java(JNIEnv *env, jobject jobjectClosedContext) {
+                            ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::ClosedContextClr2Java");
 
-						  pin_ptr<JavaVM*> pJavaVm = &_jvm;
-						  if (env->GetJavaVM(pJavaVm) != 0) {
-							  ManagedLog::LOGGER->LogError("Failed to get JavaVM", nullptr);
-						  }
-						  _jobjectClosedContext = reinterpret_cast<jobject>(env->NewGlobalRef(jobjectClosedContext));
-						  jclass jclassClosedContext = env->GetObjectClass(_jobjectClosedContext);
+                            pin_ptr<JavaVM*> pJavaVm = &_jvm;
+                            if (env->GetJavaVM(pJavaVm) != 0) {
+                                ManagedLog::LOGGER->LogError("Failed to get JavaVM", nullptr);
+                            }
 
-						  jfieldID jidContextId = env->GetFieldID(jclassClosedContext, "contextId", "Ljava/lang/String;");
-						  jfieldID jidEvaluatorId = env->GetFieldID(jclassClosedContext, "evaluatorId", "Ljava/lang/String;");
+                            // Gets the Java closed context class to get its fields
+                            _jobjectClosedContext = reinterpret_cast<jobject>(env->NewGlobalRef(jobjectClosedContext));
+                            jclass jclassClosedContext = env->GetObjectClass(_jobjectClosedContext);
 
-						  _jstringContextId = reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext, jidContextId)));
-						  _jstringEvaluatorId = reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext, jidEvaluatorId)));
+                            // Gets the Java fields in order to get the field values from the actual Java objects of the field.
+                            // TODO[JIRA REEF-986]: Switch to get method call.
+                            jfieldID jidContextId = env->GetFieldID(jclassClosedContext, "contextId", "Ljava/lang/String;");
+                            jfieldID jidEvaluatorId = env->GetFieldID(jclassClosedContext, "evaluatorId", "Ljava/lang/String;");
 
-						  ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::ClosedContextClr2Java");
-					  }
+                            // Gets the Context ID and Evaluator ID of the closed context from the Java closed context object.
+                            _jstringContextId = reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext, jidContextId)));
+                            _jstringEvaluatorId = reinterpret_cast<jstring>(env->NewGlobalRef(env->GetObjectField(_jobjectClosedContext, jidEvaluatorId)));
 
-					  IActiveContextClr2Java^ ClosedContextClr2Java::GetParentContext() {
-						  ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetParentContext");
+                            ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::ClosedContextClr2Java");
+                        }
 
-						  JNIEnv *env = RetrieveEnv(_jvm);
+                        /**
+                          Gets the Parent context of the closed context through a JNI call to Java.
+                          */
+                        IActiveContextClr2Java^ ClosedContextClr2Java::GetParentContext() {
+                            ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetParentContext");
 
-						  jclass jclassClosedContext = env->GetObjectClass(_jobjectClosedContext);
-						  jfieldID jidParentContext = env->GetFieldID(jclassClosedContext, "parentContext", "Lorg/apache/reef/javabridge/ActiveContextBridge;");
-						  jobject jobjectParentContext = env->GetObjectField(_jobjectClosedContext, jidParentContext);
-						  ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::GetParentContext");
+                            JNIEnv *env = RetrieveEnv(_jvm);
 
-						  return gcnew ActiveContextClr2Java(env, jobjectParentContext);
-					  }
+                            // TODO[JIRA REEF-986]: Switch to get method call.
+                            jclass jclassClosedContext = env->GetObjectClass(_jobjectClosedContext);
+                            jfieldID jidParentContext = env->GetFieldID(jclassClosedContext, "parentContext", "Lorg/apache/reef/javabridge/ActiveContextBridge;");
+                            jobject jobjectParentContext = env->GetObjectField(_jobjectClosedContext, jidParentContext);
+                            ManagedLog::LOGGER->LogStop("ClosedContextClr2Java::GetParentContext");
 
-					  String^ ClosedContextClr2Java::GetId() {
-						  ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetId");
-						  JNIEnv *env = RetrieveEnv(_jvm);
-						  return ManagedStringFromJavaString(env, _jstringContextId);
-					  }
+                            return gcnew ActiveContextClr2Java(env, jobjectParentContext);
+                        }
 
-					  String^ ClosedContextClr2Java::GetEvaluatorId() {
-						  ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetEvaluatorId");
-						  JNIEnv *env = RetrieveEnv(_jvm);
-						  return ManagedStringFromJavaString(env, _jstringEvaluatorId);
-					  }
+                        /**
+                          Gets the ID of the closed context from Java.
+                          */
+                        String^ ClosedContextClr2Java::GetId() {
+                            ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetId");
+                            JNIEnv *env = RetrieveEnv(_jvm);
+                            return ManagedStringFromJavaString(env, _jstringContextId);
+                        }
 
-					  IEvaluatorDescriptor^ ClosedContextClr2Java::GetEvaluatorDescriptor() {
-						  ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetEvaluatorDescriptor");
-						  return CommonUtilities::RetrieveEvaluatorDescriptor(_jobjectClosedContext, _jvm);
-					  }
+                        /**
+                          Gets the Evaluator ID of the Evaluator on which the Closed Context was active.
+                          */
+                        String^ ClosedContextClr2Java::GetEvaluatorId() {
+                            ManagedLog::LOGGER->Log("ClosedContextClr2Java::GetEvaluatorId");
+                            JNIEnv *env = RetrieveEnv(_jvm);
+                            return ManagedStringFromJavaString(env, _jstringEvaluatorId);
+                        }
 
-					  void ClosedContextClr2Java::OnError(String^ message) {
-						  ManagedLog::LOGGER->Log("ClosedContextClr2Java::OnError");
-						  JNIEnv *env = RetrieveEnv(_jvm);
-						  HandleClr2JavaError(env, message, _jobjectClosedContext);
-					  }
-				  }
-			  }
-		  }
-	  }
-  }
+                        /**
+                          Gets the EvaluatorDescriptor of the Evaluator on which the Closed Context was active.
+                          */
+                        IEvaluatorDescriptor^ ClosedContextClr2Java::GetEvaluatorDescriptor() {
+                            ManagedLog::LOGGER->LogStart("ClosedContextClr2Java::GetEvaluatorDescriptor");
+                            return CommonUtilities::RetrieveEvaluatorDescriptor(_jobjectClosedContext, _jvm);
+                        }
+
+                        void ClosedContextClr2Java::OnError(String^ message) {
+                            ManagedLog::LOGGER->Log("ClosedContextClr2Java::OnError");
+                            JNIEnv *env = RetrieveEnv(_jvm);
+                            HandleClr2JavaError(env, message, _jobjectClosedContext);
+                        }
+                    }
+                }
+            }
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
index 0158868..aa3a0e3 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
+++ b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
@@ -31,221 +31,224 @@ using namespace Org::Apache::REEF::Driver::Bridge;
 using namespace Org::Apache::REEF::Driver::Evaluator;
 
 namespace Org {
-  namespace Apache {
-	  namespace REEF {
-		  namespace Driver {
-			  namespace Bridge {
-				  namespace Clr2java {
-					  public ref class CommonUtilities {
-					  public:
-						  static IEvaluatorDescriptor^ RetrieveEvaluatorDescriptor(jobject object, JavaVM* jvm);
-					  };
-
-					  public ref class AllocatedEvaluatorClr2Java : public IAllocatedEvaluaotrClr2Java {
-						  jobject  _jobjectAllocatedEvaluator;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-						  jstring _jstringNameServerInfo;
-					  public:
-						  AllocatedEvaluatorClr2Java(JNIEnv *env, jobject jallocatedEvaluator);
-						  virtual void SubmitContextAndTask(String^ contextConfigStr, String^ taskConfigStr);
-						  virtual void SubmitContext(String^ contextConfigStr);
-						  virtual void SubmitContextAndService(String^ contextConfigStr, String^ serviceConfigStr);
-						  virtual void SubmitContextAndServiceAndTask(String^ contextConfigStr, String^ serviceConfigStr, String^ taskConfigStr);
-						  virtual void OnError(String^ message);
-						  virtual void Close();
-						  virtual String^ GetId();
-						  virtual String^ GetNameServerInfo();
-						  virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
-					  };
-
-					  public ref class ActiveContextClr2Java : public IActiveContextClr2Java {
-						  jobject _jobjectActiveContext;
-						  jstring _jstringId;
-						  jstring _jstringEvaluatorId;
-						  JavaVM* _jvm;
-					  public:
-						  ActiveContextClr2Java(JNIEnv *env, jobject jallocatedEvaluator);
-						  virtual void SubmitTask(String^ taskConfigStr);
-						  virtual void Close();
-						  virtual void OnError(String^ message);
-						  virtual String^ GetId();
-						  virtual String^ GetEvaluatorId();
-						  virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
-						  virtual void SendMessage(array<byte>^ message);
-					  };
-
-					  public ref class EvaluatorRequestorClr2Java : public IEvaluatorRequestorClr2Java {
-						  jobject  _jobjectEvaluatorRequestor;
-						  JavaVM* _jvm;
-					  public:
-						  EvaluatorRequestorClr2Java(JNIEnv *env, jobject jevaluatorRequestor);
-						  virtual void OnError(String^ message);
-						  virtual void Submit(IEvaluatorRequest^ request);
-					  };
-
-					  public ref class TaskMessageClr2Java : public ITaskMessageClr2Java {
-						  jobject  _jobjectTaskMessage;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  TaskMessageClr2Java(JNIEnv *env, jobject jtaskMessage);
-						  virtual void OnError(String^ message);
-						  virtual String^ GetId();
-					  };
-
-					  public ref class FailedTaskClr2Java : public IFailedTaskClr2Java {
-						  jobject  _jobjectFailedTask;
-						  JavaVM* _jvm;
-					  public:
-						  FailedTaskClr2Java(JNIEnv *env, jobject jfailedTask);
-						  virtual void OnError(String^ message);
-						  virtual IActiveContextClr2Java^ GetActiveContext();
-						  virtual String^ GetString();
-					  };
-
-					  public ref class RunningTaskClr2Java : public IRunningTaskClr2Java {
-						  jobject  _jobjectRunningTask;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  RunningTaskClr2Java(JNIEnv *env, jobject jrunningTask);
-						  virtual void OnError(String^ message);
-						  virtual IActiveContextClr2Java^ GetActiveContext();
-						  virtual String^ GetId();
-						  virtual void Send(array<byte>^ message);
-					  };
-
-					  public ref class FailedEvaluatorClr2Java : public IFailedEvaluatorClr2Java {
-						  jobject  _jobjectFailedEvaluator;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  FailedEvaluatorClr2Java(JNIEnv *env, jobject jfailedEvaluator);
-						  virtual void OnError(String^ message);
-						  virtual IEvaluatorRequestorClr2Java^ GetEvaluatorRequestor();
-						  virtual String^ GetId();
-					  };
-
-					  public ref class HttpServerClr2Java : public IHttpServerBridgeClr2Java {
-						  jobject _jhttpServerEventBridge;
-						  JavaVM* _jvm;
-					  public:
-						  HttpServerClr2Java(JNIEnv *env, jobject jhttpServerEventBridge);
-						  virtual void OnError(String^ message);
-						  virtual String^ GetQueryString();
-						  virtual void SetUriSpecification(String^ uriSpecification);
-						  virtual void SetQueryResult(String^ queryResult);
-						  virtual array<byte>^ GetQueryRequestData();
-						  virtual void SetQueryResponseData(array<byte>^ responseData);
-					  };
-
-					  public ref class CompletedTaskClr2Java : public ICompletedTaskClr2Java {
-						  jobject  _jobjectCompletedTask;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  CompletedTaskClr2Java(JNIEnv *env, jobject jcompletedTask);
-						  virtual void OnError(String^ message);
-						  virtual IActiveContextClr2Java^ GetActiveContext();
-						  virtual String^ GetId();
-						  virtual array<byte>^ Get();
-					  };
-
-					  public ref class SuspendedTaskClr2Java : public ISuspendedTaskClr2Java {
-						  jobject  _jobjectSuspendedTask;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  SuspendedTaskClr2Java(JNIEnv *env, jobject jobjectSuspendedTask);
-						  virtual void OnError(String^ message);
-						  virtual IActiveContextClr2Java^ GetActiveContext();
-						  virtual String^ GetId();
-						  virtual array<byte>^ Get();
-					  };
-
-					  public ref class CompletedEvaluatorClr2Java : public ICompletedEvaluatorClr2Java {
-						  jobject  _jobjectCompletedEvaluator;
-						  JavaVM* _jvm;
-						  jstring _jstringId;
-					  public:
-						  CompletedEvaluatorClr2Java(JNIEnv *env, jobject jobjectCompletedEvaluator);
-						  virtual void OnError(String^ message);
-						  virtual String^ GetId();
-					  };
-
-					  public ref class ClosedContextClr2Java : public IClosedContextClr2Java {
-						  jobject  _jobjectClosedContext;
-						  JavaVM* _jvm;
-						  jstring _jstringContextId;
-						  jstring _jstringEvaluatorId;
-					  public:
-						  ClosedContextClr2Java(JNIEnv *env, jobject jobjectClosedContext);
-						  virtual void OnError(String^ message);
-						  virtual String^ GetId();
-						  virtual String^ GetEvaluatorId();
-						  virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
-						  virtual IActiveContextClr2Java^ GetParentContext();
-					  };
-
-					  public ref class FailedContextClr2Java : public IFailedContextClr2Java {
-						  jobject  _jobjectFailedContext;
-						  JavaVM* _jvm;
-						  jstring _jstringContextId;
-						  jstring _jstringEvaluatorId;
-						  jstring _jstringParentContextId;
-					  public:
-						  FailedContextClr2Java(JNIEnv *env, jobject jobjectFailedContext);
-						  virtual void OnError(String^ message);
-						  virtual String^ GetId();
-						  virtual String^ GetEvaluatorId();
-						  virtual String^ GetParentId();
-						  virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
-						  virtual IActiveContextClr2Java^ GetParentContext();
-					  };
-
-					  public ref class ContextMessageClr2Java : public IContextMessageClr2Java {
-						  jobject  _jobjectContextMessage;
-						  JavaVM* _jvm;
-						  jbyteArray _jarrayMessage;
-						  jstring _jstringId;
-						  jstring _jstringSourceId;
-					  public:
-						  ContextMessageClr2Java(JNIEnv *env, jobject jobjectContextMessage);
-						  virtual void OnError(String^ message);
-						  virtual array<byte>^ Get();
-						  virtual String^ GetId();
-						  virtual String^ GetMessageSourceId();
-					  };
-
-					  public ref class DriverRestartedClr2Java : public IDriverRestartedClr2Java {
-						  jobject _jobjectDriverRestarted;
-						  JavaVM* _jvm;
-						  array<String^>^ _expectedEvaluatorIds;
-						  DateTime _startTime;
-						  int _resubmissionAttempts;
-					  public:
-						  DriverRestartedClr2Java(JNIEnv *env, jobject jobjectDriverRestarted);
-						  virtual void OnError(String^ message);
-						  virtual array<String^>^ GetExpectedEvaluatorIds();
-						  virtual DateTime GetStartTime();
-						  virtual int GetResubmissionAttempts();
-					  };
-
-					  public ref class DriverRestartCompletedClr2Java : public IDriverRestartCompletedClr2Java {
-						  jobject _jobjectDriverRestartCompleted;
-						  JavaVM* _jvm;
-						  DateTime _restartCompletedTime;
-						  bool _isTimedOut;
-					  public:
-						  DriverRestartCompletedClr2Java(JNIEnv *env, jobject jobobjectDriverRestartCompleted);
-						  virtual void OnError(String^ message);
-						  virtual DateTime GetCompletedTime();
-						  virtual bool IsTimedOut();
-					  };
-				  }
-			  }
-		  }
-	  }
-  }
+    namespace Apache {
+        namespace REEF {
+            namespace Driver {
+                namespace Bridge {
+                    namespace Clr2java {
+                        public ref class CommonUtilities {
+                        public:
+                            static IEvaluatorDescriptor^ RetrieveEvaluatorDescriptor(jobject object, JavaVM* jvm);
+                        };
+
+                        public ref class AllocatedEvaluatorClr2Java : public IAllocatedEvaluaotrClr2Java {
+                            jobject  _jobjectAllocatedEvaluator;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                            jstring _jstringNameServerInfo;
+                        public:
+                            AllocatedEvaluatorClr2Java(JNIEnv *env, jobject jallocatedEvaluator);
+                            virtual void SubmitContextAndTask(String^ contextConfigStr, String^ taskConfigStr);
+                            virtual void SubmitContext(String^ contextConfigStr);
+                            virtual void SubmitContextAndService(String^ contextConfigStr, String^ serviceConfigStr);
+                            virtual void SubmitContextAndServiceAndTask(String^ contextConfigStr, String^ serviceConfigStr, String^ taskConfigStr);
+                            virtual void OnError(String^ message);
+                            virtual void Close();
+                            virtual String^ GetId();
+                            virtual String^ GetNameServerInfo();
+                            virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
+                        };
+
+                        public ref class ActiveContextClr2Java : public IActiveContextClr2Java {
+                            jobject _jobjectActiveContext;
+                            jstring _jstringId;
+                            jstring _jstringEvaluatorId;
+                            JavaVM* _jvm;
+                        public:
+                            ActiveContextClr2Java(JNIEnv *env, jobject jallocatedEvaluator);
+                            virtual void SubmitTask(String^ taskConfigStr);
+                            virtual void Close();
+                            virtual void OnError(String^ message);
+                            virtual String^ GetId();
+                            virtual String^ GetEvaluatorId();
+                            virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
+                            virtual void SendMessage(array<byte>^ message);
+                        };
+
+                        public ref class EvaluatorRequestorClr2Java : public IEvaluatorRequestorClr2Java {
+                            jobject  _jobjectEvaluatorRequestor;
+                            JavaVM* _jvm;
+                        public:
+                            EvaluatorRequestorClr2Java(JNIEnv *env, jobject jevaluatorRequestor);
+                            virtual void OnError(String^ message);
+                            virtual void Submit(IEvaluatorRequest^ request);
+                        };
+
+                        public ref class TaskMessageClr2Java : public ITaskMessageClr2Java {
+                            jobject  _jobjectTaskMessage;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            TaskMessageClr2Java(JNIEnv *env, jobject jtaskMessage);
+                            virtual void OnError(String^ message);
+                            virtual String^ GetId();
+                        };
+
+                        public ref class FailedTaskClr2Java : public IFailedTaskClr2Java {
+                            jobject  _jobjectFailedTask;
+                            JavaVM* _jvm;
+                        public:
+                            FailedTaskClr2Java(JNIEnv *env, jobject jfailedTask);
+                            virtual void OnError(String^ message);
+                            virtual IActiveContextClr2Java^ GetActiveContext();
+                            virtual String^ GetString();
+                        };
+
+                        public ref class RunningTaskClr2Java : public IRunningTaskClr2Java {
+                            jobject  _jobjectRunningTask;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            RunningTaskClr2Java(JNIEnv *env, jobject jrunningTask);
+                            virtual void OnError(String^ message);
+                            virtual IActiveContextClr2Java^ GetActiveContext();
+                            virtual String^ GetId();
+                            virtual void Send(array<byte>^ message);
+                        };
+
+                        public ref class FailedEvaluatorClr2Java : public IFailedEvaluatorClr2Java {
+                            jobject  _jobjectFailedEvaluator;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            FailedEvaluatorClr2Java(JNIEnv *env, jobject jfailedEvaluator);
+                            virtual void OnError(String^ message);
+                            virtual IEvaluatorRequestorClr2Java^ GetEvaluatorRequestor();
+                            virtual String^ GetId();
+                        };
+
+                        public ref class HttpServerClr2Java : public IHttpServerBridgeClr2Java {
+                            jobject _jhttpServerEventBridge;
+                            JavaVM* _jvm;
+                        public:
+                            HttpServerClr2Java(JNIEnv *env, jobject jhttpServerEventBridge);
+                            virtual void OnError(String^ message);
+                            virtual String^ GetQueryString();
+                            virtual void SetUriSpecification(String^ uriSpecification);
+                            virtual void SetQueryResult(String^ queryResult);
+                            virtual array<byte>^ GetQueryRequestData();
+                            virtual void SetQueryResponseData(array<byte>^ responseData);
+                        };
+
+                        public ref class CompletedTaskClr2Java : public ICompletedTaskClr2Java {
+                            jobject  _jobjectCompletedTask;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            CompletedTaskClr2Java(JNIEnv *env, jobject jcompletedTask);
+                            virtual void OnError(String^ message);
+                            virtual IActiveContextClr2Java^ GetActiveContext();
+                            virtual String^ GetId();
+                            virtual array<byte>^ Get();
+                        };
+
+                        public ref class SuspendedTaskClr2Java : public ISuspendedTaskClr2Java {
+                            jobject  _jobjectSuspendedTask;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            SuspendedTaskClr2Java(JNIEnv *env, jobject jobjectSuspendedTask);
+                            virtual void OnError(String^ message);
+                            virtual IActiveContextClr2Java^ GetActiveContext();
+                            virtual String^ GetId();
+                            virtual array<byte>^ Get();
+                        };
+
+                        public ref class CompletedEvaluatorClr2Java : public ICompletedEvaluatorClr2Java {
+                            jobject  _jobjectCompletedEvaluator;
+                            JavaVM* _jvm;
+                            jstring _jstringId;
+                        public:
+                            CompletedEvaluatorClr2Java(JNIEnv *env, jobject jobjectCompletedEvaluator);
+                            virtual void OnError(String^ message);
+                            virtual String^ GetId();
+                        };
+
+                        /**
+                          See IClosedContextClr2Java.
+                          */
+                        public ref class ClosedContextClr2Java : public IClosedContextClr2Java {
+                            jobject  _jobjectClosedContext;
+                            JavaVM* _jvm;
+                            jstring _jstringContextId;
+                            jstring _jstringEvaluatorId;
+                        public:
+                            ClosedContextClr2Java(JNIEnv *env, jobject jobjectClosedContext);
+                            virtual void OnError(String^ message);
+                            virtual String^ GetId();
+                            virtual String^ GetEvaluatorId();
+                            virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
+                            virtual IActiveContextClr2Java^ GetParentContext();
+                        };
+
+                        public ref class FailedContextClr2Java : public IFailedContextClr2Java {
+                            jobject  _jobjectFailedContext;
+                            JavaVM* _jvm;
+                            jstring _jstringContextId;
+                            jstring _jstringEvaluatorId;
+                            jstring _jstringParentContextId;
+                        public:
+                            FailedContextClr2Java(JNIEnv *env, jobject jobjectFailedContext);
+                            virtual void OnError(String^ message);
+                            virtual String^ GetId();
+                            virtual String^ GetEvaluatorId();
+                            virtual String^ GetParentId();
+                            virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();
+                            virtual IActiveContextClr2Java^ GetParentContext();
+                        };
+
+                        public ref class ContextMessageClr2Java : public IContextMessageClr2Java {
+                            jobject  _jobjectContextMessage;
+                            JavaVM* _jvm;
+                            jbyteArray _jarrayMessage;
+                            jstring _jstringId;
+                            jstring _jstringSourceId;
+                        public:
+                            ContextMessageClr2Java(JNIEnv *env, jobject jobjectContextMessage);
+                            virtual void OnError(String^ message);
+                            virtual array<byte>^ Get();
+                            virtual String^ GetId();
+                            virtual String^ GetMessageSourceId();
+                        };
+
+                        public ref class DriverRestartedClr2Java : public IDriverRestartedClr2Java {
+                            jobject _jobjectDriverRestarted;
+                            JavaVM* _jvm;
+                            array<String^>^ _expectedEvaluatorIds;
+                            DateTime _startTime;
+                            int _resubmissionAttempts;
+                        public:
+                            DriverRestartedClr2Java(JNIEnv *env, jobject jobjectDriverRestarted);
+                            virtual void OnError(String^ message);
+                            virtual array<String^>^ GetExpectedEvaluatorIds();
+                            virtual DateTime GetStartTime();
+                            virtual int GetResubmissionAttempts();
+                        };
+
+                        public ref class DriverRestartCompletedClr2Java : public IDriverRestartCompletedClr2Java {
+                            jobject _jobjectDriverRestartCompleted;
+                            JavaVM* _jvm;
+                            DateTime _restartCompletedTime;
+                            bool _isTimedOut;
+                        public:
+                            DriverRestartCompletedClr2Java(JNIEnv *env, jobject jobobjectDriverRestartCompleted);
+                            virtual void OnError(String^ message);
+                            virtual DateTime GetCompletedTime();
+                            virtual bool IsTimedOut();
+                        };
+                    }
+                }
+            }
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IClosedContextClr2Java.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IClosedContextClr2Java.cs b/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IClosedContextClr2Java.cs
index 7677a41..06c46c4 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IClosedContextClr2Java.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IClosedContextClr2Java.cs
@@ -21,14 +21,31 @@ using Org.Apache.REEF.Driver.Evaluator;
 
 namespace Org.Apache.REEF.Driver.Bridge.Clr2java
 {
+    /// <summary>
+    /// A closed context event from Java.
+    /// </summary>
     public interface IClosedContextClr2Java : IClr2Java
     {        
+        /// <summary>
+        /// Gets the ID of the closed context.
+        /// </summary>
         string GetId();
 
+        /// <summary>
+        /// Gets the Evaluator ID of the closed context.
+        /// </summary>
         string GetEvaluatorId();
 
+        /// <summary>
+        /// Gets the <see cref="IEvaluatorDescriptor"/> that describes properties
+        /// of the Evaluator of the closed context.
+        /// </summary>
         IEvaluatorDescriptor GetEvaluatorDescriptor();
 
+        /// <summary>
+        /// Gets the parent context of closed context.
+        /// </summary>
+        /// <returns></returns>
         IActiveContextClr2Java GetParentContext();
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Driver/Bridge/ClrSystemHandlerWrapper.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/ClrSystemHandlerWrapper.cs b/lang/cs/Org.Apache.REEF.Driver/Bridge/ClrSystemHandlerWrapper.cs
index 9e2078f..b020728 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/ClrSystemHandlerWrapper.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/ClrSystemHandlerWrapper.cs
@@ -181,6 +181,11 @@ namespace Org.Apache.REEF.Driver.Bridge
             }
         }
 
+        /// <summary>
+        /// Invokes event handlers registered to the closed context event.
+        /// </summary>
+        /// <param name="handle">Pointer to the event handler object</param>
+        /// <param name="clr2Java">Proxy object to the Java closed context.</param>
         public static void Call_ClrSystemClosedContext_OnNext(ulong handle, IClosedContextClr2Java clr2Java)
         {
             using (LOGGER.LogFunction("ClrSystemHandlerWrapper::Call_ClrSystemClosedContext_OnNext"))

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ClosedContext.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ClosedContext.cs b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ClosedContext.cs
index 27f90fa..5a2f9c0 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ClosedContext.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ClosedContext.cs
@@ -26,48 +26,63 @@ using Org.Apache.REEF.Utilities;
 
 namespace Org.Apache.REEF.Driver.Bridge.Events
 {
+    /// <summary>
+    /// A proxy for method calls to Java's ClosedContext.
+    /// </summary>
     internal sealed class ClosedContext : IClosedContext
     {
-        private readonly string _evaluatorId;
-        private readonly string _id;
+        private readonly IActiveContextClr2Java _parentContextClr2Java;
 
         internal ClosedContext(IClosedContextClr2Java clr2java)
         {
             InstanceId = Guid.NewGuid().ToString("N");
-            _id = clr2java.GetId();
-            _evaluatorId = clr2java.GetEvaluatorId();
+            Id = clr2java.GetId();
+            EvaluatorId = clr2java.GetEvaluatorId();
+            EvaluatorDescriptor = clr2java.GetEvaluatorDescriptor();
+
+            // TODO[JIRA REEF-762]: populate this
+            _parentContextClr2Java = null;
         }
 
+        /// <summary>
+        /// An ID for the ClosedContext instance.
+        /// </summary>
         [DataMember]
         public string InstanceId { get; private set; }
 
-        private IActiveContextClr2Java ParentContextClr2Java { get; set; }
-        private IClosedContextClr2Java ClosedContextClr2JavaClr2Java { get; set; }
-
-        public string Id
-        {
-            get { return _id; }
-        }
+        /// <summary>
+        /// Gets the ID of the closed context.
+        /// </summary>
+        public string Id { get; private set; }
 
-        public string EvaluatorId
-        {
-            get { return _evaluatorId; }
-        }
+        /// <summary>
+        /// Gets the ID of the Evaluator on which the context was closed.
+        /// </summary>
+        public string EvaluatorId { get; private set; }
 
+        /// <summary>
+        /// Gets the ID of the parent context of the closed context.
+        /// </summary>
         public Optional<string> ParentId
         {
             // TODO[REEF-762]: Implement
             get { return Optional<string>.Empty(); }
         }
 
-        public IEvaluatorDescriptor EvaluatorDescriptor
-        {
-            get { return ClosedContextClr2JavaClr2Java.GetEvaluatorDescriptor(); }
-        }
+        /// <summary>
+        /// Gets the <see cref="IEvaluatorDescriptor"/> of the Evaluator on which
+        /// the context was closed.
+        /// </summary>
+        public IEvaluatorDescriptor EvaluatorDescriptor { get; private set; }
 
+        /// <summary>
+        /// Gest the <see cref="IActiveContext"/> of the parent context of the
+        /// closed context.
+        /// </summary>
         public IActiveContext ParentContext
         {
-            get { return new ActiveContext(ParentContextClr2Java); }
+            // TODO[JIRA REEF-762]: make sure this doesn't fail.
+            get { return new ActiveContext(_parentContextClr2Java); }
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/05031a0a/lang/cs/Org.Apache.REEF.Driver/Context/IClosedContext.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/IClosedContext.cs b/lang/cs/Org.Apache.REEF.Driver/Context/IClosedContext.cs
index 365ff10..7ae5443 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Context/IClosedContext.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Context/IClosedContext.cs
@@ -19,6 +19,9 @@
 
 namespace Org.Apache.REEF.Driver.Context
 {
+    /// <summary>
+    /// A closed context.
+    /// </summary>
     public interface IClosedContext : IContext
     {
         /// <summary>