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 2016/02/10 21:35:08 UTC

reef git commit: [REEF-760] Populate ActiveContext.ParentId

Repository: reef
Updated Branches:
  refs/heads/master 1137cdee0 -> 76cea200c


[REEF-760] Populate ActiveContext.ParentId

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

Pull Request:
  This closes #836


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

Branch: refs/heads/master
Commit: 76cea200c5714449a8a5e2168f03669161048b76
Parents: 1137cde
Author: Andrew Chung <af...@gmail.com>
Authored: Wed Feb 10 10:39:32 2016 -0800
Committer: Dongjoon Hyun <do...@apache.org>
Committed: Wed Feb 10 12:32:06 2016 -0800

----------------------------------------------------------------------
 lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp      | 7 +++++++
 lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h                 | 2 ++
 .../Bridge/Clr2java/IActiveContextClr2Java.cs                 | 2 ++
 lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs | 5 +++--
 .../Functional/Bridge/TestContextStack.cs                     | 5 +++++
 .../java/org/apache/reef/javabridge/ActiveContextBridge.java  | 7 +++++++
 6 files changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp b/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
index f5e6bcf..51ff432 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
+++ b/lang/cs/Org.Apache.REEF.Bridge/ActiveContextClr2Java.cpp
@@ -40,6 +40,8 @@ namespace Org {
 							jclass jclassActiveContext = env->GetObjectClass(_jobjectActiveContext);
 							jmethodID jmidGetContextId = env->GetMethodID(jclassActiveContext, "getContextId", "()Ljava/lang/String;");
 							_jstringId = CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, _jobjectActiveContext, jmidGetContextId);
+							jmethodID jmidGetParentContextId = env->GetMethodID(jclassActiveContext, "getParentContextId", "()Ljava/lang/String;");
+							_jstringParentId = CommonUtilities::CallGetMethodNewGlobalRef<jstring>(env, _jobjectActiveContext, jmidGetParentContextId);
 							_jstringEvaluatorId = CommonUtilities::GetJObjectEvaluatorId(env, _jobjectActiveContext, jclassActiveContext);
 
 							ManagedLog::LOGGER->LogStop("ActiveContextClr2Java::ActiveContextClr2Java");
@@ -119,6 +121,11 @@ namespace Org {
 							ManagedLog::LOGGER->LogStop("ActiveContextClr2Java::Close");
 						}
 
+						String^ ActiveContextClr2Java::GetParentId() {
+							JNIEnv *env = RetrieveEnv(_jvm);
+							return ManagedStringFromJavaString(env, _jstringParentId);
+						}
+
 						String^ ActiveContextClr2Java::GetId() {
 							JNIEnv *env = RetrieveEnv(_jvm);
 							return ManagedStringFromJavaString(env, _jstringId);

http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/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 97dca5c..bfb04ab 100644
--- a/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
+++ b/lang/cs/Org.Apache.REEF.Bridge/Clr2JavaImpl.h
@@ -76,6 +76,7 @@ namespace Org {
                         public ref class ActiveContextClr2Java : public IActiveContextClr2Java {
                             jobject _jobjectActiveContext = NULL;
                             jstring _jstringId = NULL;
+                            jstring _jstringParentId = NULL;
                             jstring _jstringEvaluatorId = NULL;
                             JavaVM* _jvm;
                         public:
@@ -86,6 +87,7 @@ namespace Org {
                             virtual void SubmitContext(String^ contextConfigStr);
                             virtual void Close();
                             virtual void OnError(String^ message);
+                            virtual String^ GetParentId();
                             virtual String^ GetId();
                             virtual String^ GetEvaluatorId();
                             virtual IEvaluatorDescriptor^ GetEvaluatorDescriptor();

http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IActiveContextClr2Java.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IActiveContextClr2Java.cs b/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IActiveContextClr2Java.cs
index 8319585..119b110 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IActiveContextClr2Java.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Clr2java/IActiveContextClr2Java.cs
@@ -31,6 +31,8 @@ namespace Org.Apache.REEF.Driver.Bridge.Clr2java
 
         string GetId();
 
+        string GetParentId();
+
         string GetEvaluatorId();
 
         IEvaluatorDescriptor GetEvaluatorDescriptor();

http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs
index b96b238..8c0af97 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/ActiveContext.cs
@@ -32,12 +32,14 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
     {
         private static readonly Logger Logger = Logger.GetLogger(typeof(ActiveContext));
         private readonly AvroConfigurationSerializer _serializer;
+        private readonly Optional<string> _parentId; 
 
         internal ActiveContext(IActiveContextClr2Java clr2Java)
         {
             InstanceId = Guid.NewGuid().ToString("N");
             Clr2Java = clr2Java;
             _serializer = new AvroConfigurationSerializer();
+            _parentId = Optional<string>.OfNullable(clr2Java.GetParentId());
         }
 
         [DataMember]
@@ -57,8 +59,7 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
 
         public Optional<string> ParentId
         {
-            // TODO[REEF-760]: Implement
-            get { return Optional<string>.Empty(); }
+            get { return _parentId; }
         }
 
         public IEvaluatorDescriptor EvaluatorDescriptor

http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestContextStack.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestContextStack.cs b/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestContextStack.cs
index 50e3c91..273718c 100644
--- a/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestContextStack.cs
+++ b/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestContextStack.cs
@@ -122,9 +122,14 @@ namespace Org.Apache.REEF.Tests.Functional.Bridge
                                     GenericType<InjectableInterfaceImpl>.Class)
                                     .Build();
 
+                        Assert.False(value.ParentId.IsPresent());
+
                         value.SubmitContext(Configurations.Merge(stackingContextConfig, contextConfig));
                         break;
                     case ContextTwoId:
+                        Assert.True(value.ParentId.IsPresent());
+                        Assert.Equal(value.ParentId.Value, ContextOneId);
+
                         value.SubmitTask(
                             TaskConfiguration.ConfigurationModule.Set(TaskConfiguration.Identifier, "contextStackTestTask")
                                 .Set(TaskConfiguration.Task, GenericType<TestContextStackTask>.Class)

http://git-wip-us.apache.org/repos/asf/reef/blob/76cea200/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
----------------------------------------------------------------------
diff --git a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
index 84637f8..3fb82f2 100644
--- a/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
+++ b/lang/java/reef-bridge-java/src/main/java/org/apache/reef/javabridge/ActiveContextBridge.java
@@ -56,6 +56,13 @@ public final class ActiveContextBridge extends NativeBridge implements Identifia
   }
 
   /**
+   * @return the context ID of the parent.
+   */
+  public String getParentContextId() {
+    return jactiveContext.getParentId().get();
+  }
+
+  /**
    * @return the Evaluator ID of the Evaluator on which the Context runs.
    */
   public String getEvaluatorId() {