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() {