Repository: incubator-reef
Updated Branches:
refs/heads/master d32c698e0 -> c9b0376e8
[REEF-676] Made *Task.ActiveContext immutable
* Made `ActiveContext` immutable in `RunningTask`, `CompletedTask` and
`SuspendedTask` implementations and interfaces.
* Deleted the spurious `IRunningTask` in O.A.R.Common. To do this, I
had to move `EvaluatorException` into the `Driver`.
* In order to make that new `EvaluatorException` `internal`, I added
the Bridge as a friend assembly of the Driver.
JIRA:
[REEF-676](https://issues.apache.org/jira/browse/REEF-676)
Pull Request:
This closes #472
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/c9b0376e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/c9b0376e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/c9b0376e
Branch: refs/heads/master
Commit: c9b0376e8b025bd2ad6096b50a7bef87d61ca4a2
Parents: d32c698
Author: Markus Weimer <[email protected]>
Authored: Tue Sep 8 13:55:13 2015 -0700
Committer: Andrew Chung <[email protected]>
Committed: Thu Sep 10 10:41:04 2015 -0700
----------------------------------------------------------------------
.../Exceptions/EvaluatorException.cs | 74 --------------------
.../Org.Apache.REEF.Common.csproj | 2 -
.../Tasks/IRunningTask.cs | 53 --------------
.../Bridge/Events/CompletedTask.cs | 7 --
.../Bridge/Events/FailedEvaluator.cs | 1 -
.../Bridge/Events/RunningTask.cs | 10 ---
.../Bridge/Events/SuspendedTask.cs | 8 ---
.../Evaluator/EvaluatorException.cs | 74 ++++++++++++++++++++
.../Evaluator/IFailedEvaluator.cs | 1 -
.../Org.Apache.REEF.Driver.csproj | 1 +
.../Properties/AssemblyInfo.cs | 12 ++++
.../Task/ICompletedTask.cs | 7 +-
.../Org.Apache.REEF.Driver/Task/IRunningTask.cs | 8 +--
.../Task/ISuspendedTask.cs | 10 ++-
14 files changed, 101 insertions(+), 167 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Common/Exceptions/EvaluatorException.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Exceptions/EvaluatorException.cs
b/lang/cs/Org.Apache.REEF.Common/Exceptions/EvaluatorException.cs
deleted file mode 100644
index 319b4f2..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Exceptions/EvaluatorException.cs
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using Org.Apache.REEF.Common.Tasks;
-using Org.Apache.REEF.Utilities;
-
-namespace Org.Apache.REEF.Common.Exceptions
-{
- public class EvaluatorException : System.Exception, IIdentifiable
- {
- private readonly string _evaluatorId;
-
- public EvaluatorException(string evaluatorId)
- {
- _evaluatorId = evaluatorId;
- RunningTask = null;
- }
-
- public EvaluatorException(string evaluatorId, string message,
System.Exception cause)
- : base(message, cause)
- {
- _evaluatorId = evaluatorId;
- RunningTask = null;
- }
-
- public EvaluatorException(string evaluatorId, string message)
- : this(evaluatorId, message, (IRunningTask)null)
- {
- }
-
- public EvaluatorException(string evaluatorId, string message,
IRunningTask runningTask)
- : base(message)
- {
- _evaluatorId = evaluatorId;
- RunningTask = runningTask;
- }
-
- public EvaluatorException(string evaluatorId, System.Exception cause)
- : this(evaluatorId, cause, null)
- {
- }
-
- public EvaluatorException(string evaluatorId, Exception cause,
IRunningTask runningTask)
- : base(string.Empty, cause)
- {
- _evaluatorId = evaluatorId;
- RunningTask = runningTask;
- }
-
- public IRunningTask RunningTask { get; set; }
-
- public string Id
- {
- get { return _evaluatorId; }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
index 5a2a7d6..59c8a24 100644
--- a/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
+++ b/lang/cs/Org.Apache.REEF.Common/Org.Apache.REEF.Common.csproj
@@ -85,7 +85,6 @@ under the License.
<Compile Include="Evaluator\Parameters\EvaluatorConfigurationProviders.cs"
/>
<Compile Include="Events\IContextStart.cs" />
<Compile Include="Events\IContextStop.cs" />
- <Compile Include="Exceptions\EvaluatorException.cs" />
<Compile Include="Exceptions\JobException.cs" />
<Compile Include="Files\PathUtilities.cs" />
<Compile Include="IContextAndTaskSubmittable.cs" />
@@ -143,7 +142,6 @@ under the License.
<Compile Include="Tasks\Events\ITaskStart.cs" />
<Compile Include="Tasks\Events\ITaskStop.cs" />
<Compile Include="Tasks\IDriverMessageHandler.cs" />
- <Compile Include="Tasks\IRunningTask.cs" />
<Compile Include="Tasks\ITask.cs" />
<Compile Include="Tasks\ITaskMessageSource.cs" />
<Compile Include="Tasks\TaskConfiguration.cs" />
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Common/Tasks/IRunningTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Tasks/IRunningTask.cs
b/lang/cs/Org.Apache.REEF.Common/Tasks/IRunningTask.cs
deleted file mode 100644
index 236da5a..0000000
--- a/lang/cs/Org.Apache.REEF.Common/Tasks/IRunningTask.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using Org.Apache.REEF.Utilities;
-
-namespace Org.Apache.REEF.Common.Tasks
-{
- /// <summary>
- /// Represents a running Task
- /// </summary>
- public interface IRunningTask : IIdentifiable, IDisposable
- {
- /// <summary>
- /// Sends the message to the running task.
- /// </summary>
- /// <param name="message"></param>
- void OnNext(byte[] message);
-
- /// <summary>
- /// Signal the task to suspend.
- /// </summary>
- /// <param name="message">a message that is sent to the Task.</param>
- void Suspend(byte[] message);
-
- /// <summary>
- /// Sends the message to the running task.
- /// </summary>
- void Suspend();
-
- /// <summary>
- /// Signal the task to shut down.
- /// </summary>
- /// <param name="message">a message that is sent to the Task.</param>
- void Dispose(byte[] message);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/CompletedTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/CompletedTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/CompletedTask.cs
index 6617b97..cb44f59 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/CompletedTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/CompletedTask.cs
@@ -22,15 +22,12 @@ using System.Runtime.Serialization;
using Org.Apache.REEF.Driver.Bridge.Clr2java;
using Org.Apache.REEF.Driver.Context;
using Org.Apache.REEF.Driver.Task;
-using Org.Apache.REEF.Utilities.Logging;
namespace Org.Apache.REEF.Driver.Bridge.Events
{
[DataContract]
internal class CompletedTask : ICompletedTask
{
- private static readonly Logger LOGGER =
Logger.GetLogger(typeof(CompletedTask));
-
internal CompletedTask(ICompletedTaskClr2Java completedTaskClr2Java)
{
InstanceId = Guid.NewGuid().ToString("N");
@@ -57,10 +54,6 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
{
return new ActiveContext(ActiveContextClr2Java);
}
-
- set
- {
- }
}
[DataMember]
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/FailedEvaluator.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/FailedEvaluator.cs
b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/FailedEvaluator.cs
index 4feec3f..8ba8730 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/FailedEvaluator.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/FailedEvaluator.cs
@@ -20,7 +20,6 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
-using Org.Apache.REEF.Common.Exceptions;
using Org.Apache.REEF.Driver.Bridge.Clr2java;
using Org.Apache.REEF.Driver.Evaluator;
using Org.Apache.REEF.Driver.Task;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/RunningTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/RunningTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/RunningTask.cs
index b6f6a5c..7e9901b 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/RunningTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/RunningTask.cs
@@ -45,11 +45,6 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
{
return new ActiveContext(_activeContextClr2Java);
}
-
- set
- {
- ActiveContext = value;
- }
}
public string Id
@@ -65,11 +60,6 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
_runningTaskClr2Java.Send(message);
}
- public void OnNext(byte[] message)
- {
- throw new NotImplementedException();
- }
-
public void Suspend(byte[] message)
{
throw new NotImplementedException();
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/SuspendedTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/SuspendedTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/SuspendedTask.cs
index 3a9415c..a29eec6 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/SuspendedTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Bridge/Events/SuspendedTask.cs
@@ -44,10 +44,6 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
{
return SuspendedTaskClr2Java.Get();
}
-
- set
- {
- }
}
public string Id
@@ -64,10 +60,6 @@ namespace Org.Apache.REEF.Driver.Bridge.Events
{
return new ActiveContext(ActiveContextClr2Java);
}
-
- set
- {
- }
}
[DataMember]
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Evaluator/EvaluatorException.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Evaluator/EvaluatorException.cs
b/lang/cs/Org.Apache.REEF.Driver/Evaluator/EvaluatorException.cs
new file mode 100644
index 0000000..7c57a44
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Driver/Evaluator/EvaluatorException.cs
@@ -0,0 +1,74 @@
+/**
+ * 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.
+ */
+
+using System;
+using Org.Apache.REEF.Driver.Task;
+using Org.Apache.REEF.Utilities;
+
+namespace Org.Apache.REEF.Driver.Evaluator
+{
+ // Public only such that it can be used in the bridge.
+ /// <summary>
+ /// </summary>
+ public sealed class EvaluatorException : Exception, IIdentifiable
+ {
+ private readonly string _evaluatorId;
+ private readonly IRunningTask _runningTask;
+
+ internal EvaluatorException(string evaluatorId, IRunningTask
runningTask = null)
+ {
+ _evaluatorId = evaluatorId;
+ _runningTask = runningTask;
+ }
+
+ internal EvaluatorException(string evaluatorId, string message,
Exception cause, IRunningTask runningTask = null)
+ : base(message, cause)
+ {
+ _evaluatorId = evaluatorId;
+ _runningTask = runningTask;
+ }
+
+ internal EvaluatorException(string evaluatorId, string message,
IRunningTask runningTask = null)
+ : base(message)
+ {
+ _evaluatorId = evaluatorId;
+ _runningTask = runningTask;
+ }
+
+ internal EvaluatorException(string evaluatorId, Exception cause,
IRunningTask runningTask = null)
+ : base(string.Empty, cause)
+ {
+ _evaluatorId = evaluatorId;
+ _runningTask = runningTask;
+ }
+
+ /// <summary>
+ /// The task that was running on the Evaluator or null if none was
running exists.
+ /// </summary>
+ public IRunningTask RunningTask
+ {
+ get { return _runningTask; }
+ }
+
+ public string Id
+ {
+ get { return _evaluatorId; }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Evaluator/IFailedEvaluator.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Evaluator/IFailedEvaluator.cs
b/lang/cs/Org.Apache.REEF.Driver/Evaluator/IFailedEvaluator.cs
index a87d01c..bbb06e0 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Evaluator/IFailedEvaluator.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Evaluator/IFailedEvaluator.cs
@@ -19,7 +19,6 @@
using System;
using System.Collections.Generic;
-using Org.Apache.REEF.Common.Exceptions;
using Org.Apache.REEF.Driver.Bridge.Events;
using Org.Apache.REEF.Driver.Task;
using Org.Apache.REEF.Utilities;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
index 8a7af98..dd0b2cd 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
+++ b/lang/cs/Org.Apache.REEF.Driver/Org.Apache.REEF.Driver.csproj
@@ -130,6 +130,7 @@ under the License.
<Compile Include="DriverConfigurationSettings.cs" />
<Compile Include="DriverSubmissionSettings.cs" />
<Compile Include="Evaluator\EvaluatorDescriptorImpl.cs" />
+ <Compile Include="Evaluator\EvaluatorException.cs" />
<Compile Include="Evaluator\EvaluatorRequest.cs" />
<Compile Include="Evaluator\EvaluatorRequestBuilder.cs" />
<Compile Include="Evaluator\IAllocatedEvaluator.cs" />
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
b/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
index 81cf2d4..ae8b2f4 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Properties/AssemblyInfo.cs
@@ -18,6 +18,7 @@
*/
using System.Reflection;
+using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
@@ -52,3 +53,14 @@ using System.Runtime.InteropServices;
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.13.0.0")]
[assembly: AssemblyFileVersion("0.13.0.0")]
+
+// Allow the bridge access to `internal` APIs
+#if DEBUG
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Bridge")]
+#else
+[assembly: InternalsVisibleTo("Org.Apache.REEF.Bridge, publickey=" +
+
"00240000048000009400000006020000002400005253413100040000010001005df3e621d886a9"
+
+
"9c03469d0f93a9f5d45aa2c883f50cd158759e93673f759ec4657fd84cc79d2db38ef1a2d914cc"
+
+
"b7c717846a897e11dd22eb260a7ce2da2dccf0263ea63e2b3f7dac24f28882aa568ef544341d17"
+
+
"618392a1095f4049ad079d4f4f0b429bb535699155fd6a7652ec7d6c1f1ba2b560f11ef3a86b5945d288cf")]
+#endif
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Task/ICompletedTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Task/ICompletedTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Task/ICompletedTask.cs
index bfd15c7..a7b00a2 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Task/ICompletedTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Task/ICompletedTask.cs
@@ -24,6 +24,9 @@ namespace Org.Apache.REEF.Driver.Task
{
public interface ICompletedTask : IMessage, IIdentifiable
{
- IActiveContext ActiveContext { get; set; }
+ /// <summary>
+ /// The Context on which this task was executed.
+ /// </summary>
+ IActiveContext ActiveContext { get; }
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Task/IRunningTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Task/IRunningTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Task/IRunningTask.cs
index cba82dd..4c99f1b 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Task/IRunningTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Task/IRunningTask.cs
@@ -31,13 +31,7 @@ namespace Org.Apache.REEF.Driver.Task
/// <summary>
/// the context the task is running on.
/// </summary>
- IActiveContext ActiveContext { get; set; }
-
- /// <summary>
- /// Sends the message to the running task.
- /// </summary>
- /// <param name="message"></param>
- void OnNext(byte[] message);
+ IActiveContext ActiveContext { get; }
/// <summary>
/// Sends the message
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c9b0376e/lang/cs/Org.Apache.REEF.Driver/Task/ISuspendedTask.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Driver/Task/ISuspendedTask.cs
b/lang/cs/Org.Apache.REEF.Driver/Task/ISuspendedTask.cs
index 6478c8f..02978ea 100644
--- a/lang/cs/Org.Apache.REEF.Driver/Task/ISuspendedTask.cs
+++ b/lang/cs/Org.Apache.REEF.Driver/Task/ISuspendedTask.cs
@@ -22,8 +22,14 @@ using Org.Apache.REEF.Utilities;
namespace Org.Apache.REEF.Driver.Task
{
+ /// <summary>
+ /// Represents a suspended task.
+ /// </summary>
public interface ISuspendedTask : IMessage, IIdentifiable
{
- IActiveContext ActiveContext { get; set; }
+ /// <summary>
+ /// The Context on which the task was suspended.
+ /// </summary>
+ IActiveContext ActiveContext { get; }
}
-}
+}
\ No newline at end of file