Repository: reef Updated Branches: refs/heads/master 4eadc7f03 -> 72fd9de12
[REEF-1167] Clean up O.A.R.Driver.Context.ContextConfiguration codepaths This addressed the issue by removing classes and codepaths related to O.A.R.Driver.Context.ContextConfiguration. JIRA: [REEF-1167](https://issues.apache.org/jira/browse/REEF-1167) Pull Request: Closes #859 Project: http://git-wip-us.apache.org/repos/asf/reef/repo Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/72fd9de1 Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/72fd9de1 Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/72fd9de1 Branch: refs/heads/master Commit: 72fd9de12816668baecf9ba3c0449c6c239e10a5 Parents: 4eadc7f Author: Andrew Chung <[email protected]> Authored: Thu Feb 25 10:07:54 2016 -0800 Committer: Mariia Mykhailova <[email protected]> Committed: Thu Feb 25 10:49:19 2016 -0800 ---------------------------------------------------------------------- .../Org.Apache.REEF.Common.csproj | 1 - .../Evaluator/Context/ContextConfiguration.cs | 140 ------------------- .../Evaluator/Context/ContextLifeCycle.cs | 11 -- .../Runtime/Evaluator/Context/ContextRuntime.cs | 69 +-------- .../Evaluator/Context/RootContextLauncher.cs | 13 +- .../Runtime/Evaluator/EvaluatorSettings.cs | 15 +- .../Runtime/Evaluator/Task/TaskLifeCycle.cs | 12 -- .../Runtime/Evaluator/Task/TaskRuntime.cs | 53 ------- .../Runtime/Evaluator/Task/TaskStatus.cs | 14 -- .../Context/ContextConfiguration.cs | 95 ------------- .../Context/ContextConfigurationOptions.cs | 61 -------- .../Defaults/DefaultContextMessageSource.cs | 39 ------ .../Defaults/DefaultContextStartHandler.cs | 48 ------- .../Defaults/DefaultContextStopHandler.cs | 48 ------- .../Org.Apache.REEF.Driver.csproj | 5 - .../EvaluatorConfigurationsTests.cs | 53 ------- .../Org.Apache.REEF.Network/Utilities/Utils.cs | 2 +- .../Functional/Bridge/TestSimpleContext.cs | 52 ------- 18 files changed, 5 insertions(+), 726 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/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 de1663f..8392257 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 @@ -131,7 +131,6 @@ under the License. <Compile Include="Files\REEFFileNames.cs" /> <Compile Include="Runtime\Evaluator\Constants.cs" /> <Compile Include="Runtime\Evaluator\Context\ContextClientCodeException.cs" /> - <Compile Include="Runtime\Evaluator\Context\ContextConfiguration.cs" /> <Compile Include="Runtime\Evaluator\Context\ContextLifeCycle.cs" /> <Compile Include="Runtime\Evaluator\Context\ContextManager.cs" /> <Compile Include="Runtime\Evaluator\Context\ContextRuntime.cs" /> http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextConfiguration.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextConfiguration.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextConfiguration.cs deleted file mode 100644 index e2c7f88..0000000 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextConfiguration.cs +++ /dev/null @@ -1,140 +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 System.Collections.Generic; -using System.Globalization; -using System.IO; -using Org.Apache.REEF.Tang.Formats.AvroConfigurationDataContract; -using Org.Apache.REEF.Tang.Interface; -using Org.Apache.REEF.Tang.Types; -using Org.Apache.REEF.Utilities.Logging; - -namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context -{ - // TODO[JIRA REEF-1167]: Remove class. - [Obsolete("Deprecated in 0.14. Will be removed.")] - internal sealed class ContextConfiguration : IConfiguration - { - private static readonly Logger LOGGER = Logger.GetLogger(typeof(ContextConfiguration)); - - private readonly Dictionary<string, string> _settings; - - public ContextConfiguration(string configString) - { - using (LOGGER.LogFunction("ContextConfiguration::ContextConfigurationn")) - { - ContainerDirectory = Directory.GetCurrentDirectory(); - - _settings = new Dictionary<string, string>(); - AvroConfiguration avroConfiguration = AvroConfiguration.GetAvroConfigurationFromEmbeddedString(configString); - foreach (ConfigurationEntry config in avroConfiguration.Bindings) - { - if (config.key.Contains(Constants.ContextIdentifier)) - { - config.key = Constants.ContextIdentifier; - LOGGER.Log(Level.Verbose, string.Format(CultureInfo.InvariantCulture, "{0} detected for context id with value {1}", config.key, config.value)); - } - _settings.Add(config.key, config.value); - } - if (!_settings.ContainsKey(Constants.ContextIdentifier)) - { - string msg = "Required parameter ContextIdentifier not provided."; - LOGGER.Log(Level.Error, msg); - Utilities.Diagnostics.Exceptions.Throw(new ArgumentException(msg), LOGGER); - } - } - } - - public string Id - { - get { return _settings[Constants.ContextIdentifier]; } - } - - public string ContainerDirectory { get; set; } - - public IConfigurationBuilder newBuilder() - { - throw new NotImplementedException(); - } - - public string GetNamedParameter(INamedParameterNode np) - { - throw new NotImplementedException(); - } - - public IClassHierarchy GetClassHierarchy() - { - throw new NotImplementedException(); - } - - public ISet<object> GetBoundSet(INamedParameterNode np) - { - throw new NotImplementedException(); - } - - public IClassNode GetBoundConstructor(IClassNode cn) - { - throw new NotImplementedException(); - } - - public IClassNode GetBoundImplementation(IClassNode cn) - { - throw new NotImplementedException(); - } - - public IConstructorDef GetLegacyConstructor(IClassNode cn) - { - throw new NotImplementedException(); - } - - public ICollection<IClassNode> GetBoundImplementations() - { - throw new NotImplementedException(); - } - - public ICollection<IClassNode> GetBoundConstructors() - { - throw new NotImplementedException(); - } - - public ICollection<INamedParameterNode> GetNamedParameters() - { - throw new NotImplementedException(); - } - - public ICollection<IClassNode> GetLegacyConstructors() - { - throw new NotImplementedException(); - } - - public IList<object> GetBoundList(INamedParameterNode np) - { - throw new NotImplementedException(); - } - - public IEnumerator<KeyValuePair<INamedParameterNode, object>> GetBoundSets() - { - throw new NotImplementedException(); - } - - public IDictionary<INamedParameterNode, IList<object>> GetBoundList() - { - throw new NotImplementedException(); - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextLifeCycle.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextLifeCycle.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextLifeCycle.cs index 46def9b..cec06f6 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextLifeCycle.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextLifeCycle.cs @@ -33,17 +33,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context private readonly ISet<IContextMessageSource> _contextMessageSources; private readonly ISet<IContextMessageHandler> _contextMessageHandlers; - // TODO[JIRA REEF-1167]: Remove constructor.. - [Inject] - public ContextLifeCycle([Parameter(typeof(ContextConfigurationOptions.ContextIdentifier))] string contextId) - { - Id = contextId; - _contextStartHandlers = new HashSet<IObserver<IContextStart>>(); - _contextStopHandlers = new HashSet<IObserver<IContextStop>>(); - _contextMessageSources = new HashSet<IContextMessageSource>(); - _contextMessageHandlers = new HashSet<IContextMessageHandler>(); - } - [Inject] private ContextLifeCycle( [Parameter(typeof(ContextConfigurationOptions.ContextIdentifier))] string contextId, http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextRuntime.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextRuntime.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextRuntime.cs index f0b9f75..7bc0863 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextRuntime.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/ContextRuntime.cs @@ -46,9 +46,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context // The parent context, if any. private readonly Optional<ContextRuntime> _parentContext; - // Flag indicating whether the ContextRuntime was constructed with the deprecated Constructor or not.] - // TODO[JIRA REEF-1167]: Remove variable. - private readonly bool _deprecatedTaskStart; private readonly Optional<ISet<object>> _injectedServices; // The child context, if any. @@ -75,49 +72,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context _contextInjector = serviceInjector.ForkInjector(contextConfiguration); _contextLifeCycle = _contextInjector.GetInstance<ContextLifeCycle>(); _parentContext = parentContext; - _deprecatedTaskStart = false; - _contextLifeCycle.Start(); - } - - /// <summary> - /// Create a new ContextRuntime for the root context. - /// </summary> - /// <param name="id">the ID of the context.</param> - /// <param name="serviceInjector">the serviceInjector to be used.</param> - /// <param name="contextConfiguration"> the Configuration for this context.</param> - /// TODO[JIRA REEF-1167]: Remove constructor. - [Obsolete("Deprecated in 0.14, will be removed.")] - public ContextRuntime( - string id, - IInjector serviceInjector, - IConfiguration contextConfiguration) - { - // This should only be used at the root context to support backward compatibility. - LOGGER.Log(Level.Info, "Instantiating root context"); - _contextLifeCycle = new ContextLifeCycle(id); - _serviceInjector = serviceInjector; - _parentContext = Optional<ContextRuntime>.Empty(); - _injectedServices = Optional<ISet<object>>.Empty(); - - try - { - _contextInjector = serviceInjector.ForkInjector(); - } - catch (Exception e) - { - Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER); - - Optional<string> parentId = ParentContext.IsPresent() ? - Optional<string>.Of(ParentContext.Value.Id) : - Optional<string>.Empty(); - ContextClientCodeException ex = new ContextClientCodeException(ContextClientCodeException.GetId(contextConfiguration), parentId, "Unable to spawn context", e); - - Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER); - } - - _deprecatedTaskStart = true; - - // Trigger the context start events on contextInjector. _contextLifeCycle.Start(); } @@ -272,9 +226,7 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context var taskInjector = _contextInjector.ForkInjector(taskConfiguration); - var taskRuntime = _deprecatedTaskStart - ? GetDeprecatedTaskRuntime(taskInjector, Id, taskConfiguration, heartBeatManager) - : taskInjector.GetInstance<TaskRuntime>(); + var taskRuntime = taskInjector.GetInstance<TaskRuntime>(); try { @@ -289,25 +241,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context } } - private TaskRuntime GetDeprecatedTaskRuntime( - IInjector taskInjector, string contextId, IConfiguration taskConfiguration, IHeartBeatManager heartBeatManager) - { - var taskId = string.Empty; - try - { - taskId = taskInjector.GetNamedInstance<TaskConfigurationOptions.Identifier, string>(); - } - catch (Exception e) - { - var ex = new TaskClientCodeException(string.Empty, Id, "Unable to instantiate the new task", e); - Utilities.Diagnostics.Exceptions.CaughtAndThrow(ex, Level.Error, "Cannot get instance of Task ID: " + e.StackTrace, LOGGER); - } - - LOGGER.Log(Level.Info, "Trying to inject task with configuration" + taskConfiguration); - - return new TaskRuntime(taskInjector, contextId, taskId, heartBeatManager); - } - /// <summary> /// Close this context. If there is a child context, this recursively closes it before closing this context. If /// there is an Task currently running, that will be closed. http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/RootContextLauncher.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/RootContextLauncher.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/RootContextLauncher.cs index f3babd6..60e749c 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/RootContextLauncher.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Context/RootContextLauncher.cs @@ -57,18 +57,9 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Context { if (_rootContext == null) { - // TODO[JIRA REEF-1167]: Remove use of deprecated ContextRuntime constructor and deprecatedContextConfiguration - var deprecatedContextConfiguration = _rootContextConfiguration as ContextConfiguration; - if (deprecatedContextConfiguration != null) - { - Logger.Log(Level.Info, "Using deprecated ContextConfiguration."); - _rootContext = new ContextRuntime(Id, _rootServiceInjector, _rootContextConfiguration); - } - else - { - _rootContext = new ContextRuntime(_rootServiceInjector, _rootContextConfiguration, Optional<ContextRuntime>.Empty()); - } + _rootContext = new ContextRuntime(_rootServiceInjector, _rootContextConfiguration, Optional<ContextRuntime>.Empty()); } + return _rootContext; } http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/EvaluatorSettings.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/EvaluatorSettings.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/EvaluatorSettings.cs index 36cce11..be7d625 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/EvaluatorSettings.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/EvaluatorSettings.cs @@ -113,20 +113,7 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator } _rootContextConfig = _serializer.FromString(rootContextConfigString); - try - { - _rootContextId = injector.ForkInjector(_rootContextConfig).GetNamedInstance<ContextConfigurationOptions.ContextIdentifier, string>(); - } - catch (InjectionException) - { - Logger.Log(Level.Info, "Using deprecated ContextConfiguration."); - - // TODO[JIRA REEF-1167]: Remove this catch. - var deprecatedContextConfig = new Context.ContextConfiguration(rootContextConfigString); - _rootContextConfig = deprecatedContextConfig; - _rootContextId = deprecatedContextConfig.Id; - } - + _rootContextId = injector.ForkInjector(_rootContextConfig).GetNamedInstance<ContextConfigurationOptions.ContextIdentifier, string>(); _rootTaskConfiguration = CreateTaskConfiguration(); _rootServiceConfiguration = CreateRootServiceConfiguration(); http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskLifeCycle.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskLifeCycle.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskLifeCycle.cs index 369fbf0..115f4d2 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskLifeCycle.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskLifeCycle.cs @@ -32,18 +32,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Task private readonly Optional<ITaskStart> _taskStart; private readonly Optional<ITaskStop> _taskStop; - /// <summary> - /// TODO[JIRA REEF-1167]: Remove constructor. - /// </summary> - [Obsolete("Deprecated in 0.14. Will be removed.")] - [Inject] - private TaskLifeCycle( - [Parameter(typeof(TaskConfigurationOptions.StartHandlers))] ISet<IObserver<ITaskStart>> taskStartHandlers, - [Parameter(typeof(TaskConfigurationOptions.StopHandlers))] ISet<IObserver<ITaskStop>> taskStopHandlers) - : this(taskStartHandlers, taskStopHandlers, Optional<ITaskStart>.Empty(), Optional<ITaskStop>.Empty()) - { - } - [Inject] private TaskLifeCycle( [Parameter(typeof(TaskConfigurationOptions.StartHandlers))] ISet<IObserver<ITaskStart>> taskStartHandlers, http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskRuntime.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskRuntime.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskRuntime.cs index ca86f32..dffae22 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskRuntime.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskRuntime.cs @@ -59,59 +59,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Task _suspendHandlerFuture = suspendHandlerFuture; } - /// <summary> - /// TODO[JIRA REEF-1167]: Remove constructor. - /// </summary> - [Obsolete("Deprecated in 0.14. Will be removed.")] - public TaskRuntime(IInjector taskInjector, string contextId, string taskId, IHeartBeatManager heartBeatManager) - { - var messageSources = Optional<ISet<ITaskMessageSource>>.Empty(); - try - { - var taskMessageSource = taskInjector.GetInstance<ITaskMessageSource>(); - messageSources = Optional<ISet<ITaskMessageSource>>.Of(new HashSet<ITaskMessageSource> { taskMessageSource }); - } - catch (Exception e) - { - Utilities.Diagnostics.Exceptions.Caught(e, Level.Warning, "Cannot inject task message source with error: " + e.StackTrace, Logger); - - // do not rethrow since this is benign - } - - try - { - _driverConnectionMessageHandler = Optional<IDriverConnectionMessageHandler>.Of(taskInjector.GetInstance<IDriverConnectionMessageHandler>()); - } - catch (InjectionException) - { - Logger.Log(Level.Info, "User did not implement IDriverConnectionMessageHandler."); - _driverConnectionMessageHandler = Optional<IDriverConnectionMessageHandler>.Empty(); - } - - try - { - _driverMessageHandler = Optional<IDriverMessageHandler>.Of(taskInjector.GetInstance<IDriverMessageHandler>()); - } - catch (InjectionException) - { - Logger.Log(Level.Info, "User did not implement IDriverMessageHandler."); - _driverMessageHandler = Optional<IDriverMessageHandler>.Empty(); - } - - try - { - _userTask = taskInjector.GetInstance<ITask>(); - } - catch (InjectionException ie) - { - const string errorMessage = "User did not implement IDriverMessageHandler."; - Utilities.Diagnostics.Exceptions.CaughtAndThrow(ie, Level.Error, errorMessage, Logger); - } - - Logger.Log(Level.Info, "task message source injected"); - _currentStatus = new TaskStatus(heartBeatManager, contextId, taskId, messageSources); - } - public string TaskId { get { return _currentStatus.TaskId; } http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskStatus.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskStatus.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskStatus.cs index ab10c63..88bdaa4 100644 --- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskStatus.cs +++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Task/TaskStatus.cs @@ -59,20 +59,6 @@ namespace Org.Apache.REEF.Common.Runtime.Evaluator.Task _contextId = contextId; } - /// <summary> - /// TODO[JIRA REEF-1167]: Remove constructor. - /// </summary> - [Obsolete("Deprecated in 0.14. Will be removed.")] - public TaskStatus(IHeartBeatManager heartBeatManager, string contextId, string taskId, Optional<ISet<ITaskMessageSource>> evaluatorMessageSources) - { - _heartBeatManager = heartBeatManager; - _taskLifeCycle = TangFactory.GetTang().NewInjector().GetInstance<TaskLifeCycle>(); - _evaluatorMessageSources = evaluatorMessageSources; - State = TaskState.Init; - _taskId = taskId; - _contextId = contextId; - } - public TaskState State { get http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfiguration.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfiguration.cs b/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfiguration.cs deleted file mode 100644 index 290a840..0000000 --- a/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfiguration.cs +++ /dev/null @@ -1,95 +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 System.Diagnostics.CodeAnalysis; -using Org.Apache.REEF.Common.Context; -using Org.Apache.REEF.Common.Events; -using Org.Apache.REEF.Common.Tasks; -using Org.Apache.REEF.Common.Tasks.Events; -using Org.Apache.REEF.Tang.Formats; -using Org.Apache.REEF.Tang.Util; -using Org.Apache.REEF.Utilities.Attributes; - -[module: SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate", Justification = "static field, typical usage in configurations")] - -namespace Org.Apache.REEF.Driver.Context -{ - // TODO[JIRA REEF-1167]: Delete class. - [ClientSide] - [Obsolete("Obsoleted in 0.14, please use Org.Apache.REEF.Common.ContextConfiguration instead.")] - public sealed class ContextConfiguration : ConfigurationModuleBuilder - { - /// <summary> - /// The identifier of the context. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly RequiredParameter<string> Identifier = new RequiredParameter<string>(); - - /// <summary> - /// for context start. Defaults to logging if not bound. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IObserver<IContextStart>> OnContextStart = new OptionalImpl<IObserver<IContextStart>>(); - - /// <summary> - /// for context stop. Defaults to logging if not bound. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IObserver<IContextStop>> OnContextStop = new OptionalImpl<IObserver<IContextStop>>(); - - /// <summary> - /// to be informed right before a Task enters its call() method. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IObserver<ITaskStart>> OnTaskStart = new OptionalImpl<IObserver<ITaskStart>>(); - - /// <summary> - /// to be informed right after a Task exits its call() method. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IObserver<ITaskStop>> OnTaskStop = new OptionalImpl<IObserver<ITaskStop>>(); - - /// <summary> - /// Source of messages to be called whenever the evaluator is about to make a heartbeat. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IContextMessageSource> OnSendMessage = new OptionalImpl<IContextMessageSource>(); - - /// <summary> - /// Driver has sent the context a message, and this parameter is used to register a handler on the context for processing that message. - /// </summary> - [SuppressMessage("Microsoft.Security", "CA2104:Do not declare read only mutable reference types", Justification = "not applicable")] - public static readonly OptionalImpl<IContextMessageHandler> OnMessage = new OptionalImpl<IContextMessageHandler>(); - - public static ConfigurationModule ConfigurationModule - { - get - { - return new ContextConfiguration() - .BindNamedParameter(GenericType<ContextConfigurationOptions.ContextIdentifier>.Class, Identifier) - .BindSetEntry(GenericType<ContextConfigurationOptions.StartHandlers>.Class, OnContextStart) - .BindSetEntry(GenericType<ContextConfigurationOptions.StopHandlers>.Class, OnContextStop) - .BindSetEntry(GenericType<ContextConfigurationOptions.ContextMessageSources>.Class, OnSendMessage) - .BindSetEntry(GenericType<ContextConfigurationOptions.ContextMessageHandlers>.Class, OnMessage) - .BindSetEntry(GenericType<TaskConfigurationOptions.StartHandlers>.Class, OnTaskStart) - .BindSetEntry(GenericType<TaskConfigurationOptions.StopHandlers>.Class, OnTaskStop) - .Build(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfigurationOptions.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfigurationOptions.cs b/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfigurationOptions.cs deleted file mode 100644 index df002ab..0000000 --- a/lang/cs/Org.Apache.REEF.Driver/Context/ContextConfigurationOptions.cs +++ /dev/null @@ -1,61 +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 System.Collections.Generic; -using Org.Apache.REEF.Common.Context; -using Org.Apache.REEF.Common.Events; -using Org.Apache.REEF.Driver.Context.Defaults; -using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Utilities.Attributes; - -namespace Org.Apache.REEF.Driver.Context -{ - /// <summary> - /// Configuration parameters for ContextConfiguration module. - /// </summary> - /// TODO[JIRA REEF-1167]: Remove this class. - [ClientSide] - [Obsolete("Obsoleted in 0.14, please use Org.Apache.REEF.Common.ContextConfiguration instead.")] - public static class ContextConfigurationOptions - { - [NamedParameter(documentation: "The identifier for the context.")] - public class ContextIdentifier : Name<string> - { - } - - [NamedParameter(documentation: "The set of event handlers for the ContextStart event", defaultClasses: new[] { typeof(DefaultContextStartHandler) })] - public class StartHandlers : Name<ISet<IObserver<IContextStart>>> - { - } - - [NamedParameter(documentation: "The set of event handlers for the ContextStop event", defaultClasses: new[] { typeof(DefaultContextStopHandler) })] - public class StopHandlers : Name<ISet<IObserver<IContextStop>>> - { - } - - [NamedParameter(documentation: "The set of ContextMessageSource implementations called during heartbeats.", defaultClasses: new[] { typeof(DefaultContextMessageSource) })] - public class ContextMessageSources : Name<ISet<IContextMessageSource>> - { - } - - [NamedParameter(documentation: "The set of Context message handlers.")] - public class ContextMessageHandlers : Name<ISet<IContextMessageHandler>> - { - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextMessageSource.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextMessageSource.cs b/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextMessageSource.cs deleted file mode 100644 index 5b83c29..0000000 --- a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextMessageSource.cs +++ /dev/null @@ -1,39 +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.Context; -using Org.Apache.REEF.Utilities; - -namespace Org.Apache.REEF.Driver.Context.Defaults -{ - /// <summary> - /// Default ContextMessageSource: return nothing. - /// </summary> - /// TODO[JIRA REEF-1167]: Remove this class. - [Obsolete("Deprecated in 0.14, please use Org.Apache.REEF.Common.Evaluator.Defaults.DefaultContextMessageSource instead.")] - public class DefaultContextMessageSource : IContextMessageSource - { - public Optional<ContextMessage> Message - { - get - { - return Optional<ContextMessage>.Empty(); - } - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStartHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStartHandler.cs b/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStartHandler.cs deleted file mode 100644 index 0483320..0000000 --- a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStartHandler.cs +++ /dev/null @@ -1,48 +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.Events; -using Org.Apache.REEF.Utilities.Logging; - -namespace Org.Apache.REEF.Driver.Context.Defaults -{ - /// <summary> - /// Default handler for ContextStart - /// </summary> - /// TODO[JIRA REEF-1167]: Remove this class. - [Obsolete("Deprecated in 0.14, please use Org.Apache.REEF.Common.Evaluator.Defaults.DefaultContextStartHandler instead.")] - public class DefaultContextStartHandler : IObserver<IContextStart> - { - private static readonly Logger LOGGER = Logger.GetLogger(typeof(DefaultContextStartHandler)); - - public void OnNext(IContextStart contextStart) - { - LOGGER.Log(Level.Info, "DefaultContextStartHandler received for context: " + contextStart.Id); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnCompleted() - { - throw new NotImplementedException(); - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStopHandler.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStopHandler.cs b/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStopHandler.cs deleted file mode 100644 index 3f2807a..0000000 --- a/lang/cs/Org.Apache.REEF.Driver/Context/Defaults/DefaultContextStopHandler.cs +++ /dev/null @@ -1,48 +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.Events; -using Org.Apache.REEF.Utilities.Logging; - -namespace Org.Apache.REEF.Driver.Context.Defaults -{ - /// <summary> - /// Default event handler for ContextStop - /// </summary> - /// TODO[JIRA REEF-1167]: Remove this class. - [Obsolete("Deprecated in 0.14, please use Org.Apache.REEF.Common.Evaluator.Defaults.DefaultContextStopHandler instead.")] - public class DefaultContextStopHandler : IObserver<IContextStop> - { - private static readonly Logger LOGGER = Logger.GetLogger(typeof(DefaultContextStopHandler)); - - public void OnNext(IContextStop contextStop) - { - LOGGER.Log(Level.Info, "DefaultContextStopHandler received for context: " + contextStop.Id); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnCompleted() - { - throw new NotImplementedException(); - } - } -} http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/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 5df9a58..299ae61 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 @@ -94,11 +94,6 @@ under the License. <Compile Include="Bridge\ReefHttpRequest.cs" /> <Compile Include="Bridge\ReefHttpResponse.cs" /> <Compile Include="Constants.cs" /> - <Compile Include="Context\ContextConfiguration.cs" /> - <Compile Include="Context\ContextConfigurationOptions.cs" /> - <Compile Include="Context\Defaults\DefaultContextMessageSource.cs" /> - <Compile Include="Context\Defaults\DefaultContextStartHandler.cs" /> - <Compile Include="Context\Defaults\DefaultContextStopHandler.cs" /> <Compile Include="Context\IActiveContext.cs" /> <Compile Include="Context\IClosedContext.cs" /> <Compile Include="Context\IContext.cs" /> http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs b/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs index 042752c..3b00cc3 100644 --- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs +++ b/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs @@ -16,17 +16,11 @@ // under the License. using Org.Apache.REEF.Common.Runtime.Evaluator.Utils; -using Org.Apache.REEF.Common.Services; -using Org.Apache.REEF.Common.Tasks; -using Org.Apache.REEF.Driver.Context; -using Org.Apache.REEF.Examples.HelloREEF; using Org.Apache.REEF.Tang.Formats; using Org.Apache.REEF.Tang.Implementations.Tang; using Org.Apache.REEF.Tang.Interface; using Org.Apache.REEF.Tang.Util; using Org.Apache.REEF.Utilities.Logging; -using Org.Apache.REEF.Wake.Remote.Parameters; -using Org.Apache.REEF.Wake.StreamingCodec; using Xunit; namespace Org.Apache.REEF.Evaluator.Tests @@ -35,7 +29,6 @@ namespace Org.Apache.REEF.Evaluator.Tests { private static readonly Logger Logger = Logger.GetLogger(typeof(EvaluatorConfigurationsTests)); private const string EvaluatorIdPrefix = "Node-"; - private const string ContextIdPrefix = "RootContext_"; private const string RemoteIdPrefix = "socket://"; private const string AppIdForTest = "REEF_LOCAL_RUNTIME"; @@ -84,51 +77,5 @@ namespace Org.Apache.REEF.Evaluator.Tests Assert.True(rid.StartsWith(RemoteIdPrefix)); Assert.True(launchId.Equals(AppIdForTest)); } - - /// <summary> - /// This test is to deserialize a evaluator configuration file using alias if the parameter cannot be - /// found in the class hierarchy. The config file used in the test was generated when running HelloRREEF. - /// It contains task and context configuration strings. - /// </summary> - [Fact] - [Trait("Priority", "0")] - [Trait("Category", "Unit")] - public void TestDeserializationForContextAndTask() - { - AvroConfigurationSerializer serializer = new AvroConfigurationSerializer(); - - var classHierarchy = TangFactory.GetTang() - .GetClassHierarchy(new string[] { typeof(ApplicationIdentifier).Assembly.GetName().Name }); - var config = serializer.FromFile("evaluator.conf", classHierarchy); - - IInjector evaluatorInjector = TangFactory.GetTang().NewInjector(config); - - string taskConfigString = evaluatorInjector.GetNamedInstance<InitialTaskConfiguration, string>(); - string contextConfigString = evaluatorInjector.GetNamedInstance<RootContextConfiguration, string>(); - - var contextClassHierarchy = TangFactory.GetTang().GetClassHierarchy(new string[] - { - typeof(ContextConfigurationOptions.ContextIdentifier).Assembly.GetName().Name - }); - var contextConfig = serializer.FromString(contextConfigString, contextClassHierarchy); - - var taskClassHierarchy = TangFactory.GetTang().GetClassHierarchy(new string[] - { - typeof(ITask).Assembly.GetName().Name, - typeof(HelloTask).Assembly.GetName().Name - }); - var taskConfig = serializer.FromString(taskConfigString, taskClassHierarchy); - - var contextInjector = evaluatorInjector.ForkInjector(contextConfig); - string contextId = contextInjector.GetNamedInstance<ContextConfigurationOptions.ContextIdentifier, string>(); - Assert.True(contextId.StartsWith(ContextIdPrefix)); - - var taskInjector = contextInjector.ForkInjector(taskConfig); - - string taskId = taskInjector.GetNamedInstance<TaskConfigurationOptions.Identifier, string>(); - ITask task = taskInjector.GetInstance<ITask>(); - Assert.True(taskId.StartsWith("HelloTask")); - Assert.True(task is HelloTask); - } } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Network/Utilities/Utils.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Network/Utilities/Utils.cs b/lang/cs/Org.Apache.REEF.Network/Utilities/Utils.cs index b5c15bc..5ba1eb0 100644 --- a/lang/cs/Org.Apache.REEF.Network/Utilities/Utils.cs +++ b/lang/cs/Org.Apache.REEF.Network/Utilities/Utils.cs @@ -15,8 +15,8 @@ // specific language governing permissions and limitations // under the License. +using Org.Apache.REEF.Common.Context; using Org.Apache.REEF.Common.Tasks; -using Org.Apache.REEF.Driver.Context; using Org.Apache.REEF.Tang.Exceptions; using Org.Apache.REEF.Tang.Implementations.Tang; using Org.Apache.REEF.Tang.Interface; http://git-wip-us.apache.org/repos/asf/reef/blob/72fd9de1/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestSimpleContext.cs ---------------------------------------------------------------------- diff --git a/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestSimpleContext.cs b/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestSimpleContext.cs index 3594a7f..44c5fe0 100644 --- a/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestSimpleContext.cs +++ b/lang/cs/Org.Apache.REEF.Tests/Functional/Bridge/TestSimpleContext.cs @@ -18,14 +18,12 @@ using System; using Org.Apache.REEF.Common.Tasks; using Org.Apache.REEF.Driver; -using Org.Apache.REEF.Driver.Bridge; using Org.Apache.REEF.Driver.Context; using Org.Apache.REEF.Driver.Evaluator; using Org.Apache.REEF.Driver.Task; using Org.Apache.REEF.Examples.AllHandlers; using Org.Apache.REEF.Examples.Tasks.HelloTask; using Org.Apache.REEF.Tang.Annotations; -using Org.Apache.REEF.Tang.Implementations.Tang; using Org.Apache.REEF.Tang.Interface; using Org.Apache.REEF.Tang.Util; using Org.Apache.REEF.Utilities.Logging; @@ -60,19 +58,6 @@ namespace Org.Apache.REEF.Tests.Functional.Bridge TestContextOnLocalRuntime(ContextDriverConfiguration()); } - /// <summary> - /// Does a simple test of context submission with deprecated configurations. - /// </summary> - [Fact] - [Trait("Priority", "1")] - [Trait("Category", "FunctionalGated")] - [Trait("Description", "Test deprecated Context ID submission on local runtime")] - //// TODO[JIRA REEF-1184]: add timeout 180 sec - public void TestDeprecatedContextOnLocalRuntime() - { - TestContextOnLocalRuntime(DeprecatedContextDriverConfiguration()); - } - private void TestContextOnLocalRuntime(IConfiguration configuration) { string testFolder = DefaultRuntimeFolder + Guid.NewGuid().ToString("N").Substring(0, 4); @@ -95,18 +80,6 @@ namespace Org.Apache.REEF.Tests.Functional.Bridge .Build(); } - private static IConfiguration DeprecatedContextDriverConfiguration() - { - return DriverConfiguration.ConfigurationModule - .Set(DriverConfiguration.OnDriverStarted, GenericType<TestContextHandlers>.Class) - .Set(DriverConfiguration.OnEvaluatorAllocated, GenericType<DeprecatedAllocatedEvaluatorHandler>.Class) - .Set(DriverConfiguration.OnContextActive, GenericType<TestContextHandlers>.Class) - .Set(DriverConfiguration.OnTaskMessage, GenericType<HelloTaskMessageHandler>.Class) - .Set(DriverConfiguration.OnTaskCompleted, GenericType<TestContextHandlers>.Class) - .Set(DriverConfiguration.OnTaskRunning, GenericType<TestContextHandlers>.Class) - .Build(); - } - private sealed class AllocatedEvaluatorHandler : IObserver<IAllocatedEvaluator> { [Inject] @@ -132,31 +105,6 @@ namespace Org.Apache.REEF.Tests.Functional.Bridge } } - private sealed class DeprecatedAllocatedEvaluatorHandler : IObserver<IAllocatedEvaluator> - { - [Inject] - private DeprecatedAllocatedEvaluatorHandler() - { - } - - public void OnNext(IAllocatedEvaluator value) - { - value.SubmitContext(REEF.Driver.Context.ContextConfiguration.ConfigurationModule - .Set(REEF.Driver.Context.ContextConfiguration.Identifier, ContextId) - .Build()); - } - - public void OnError(Exception error) - { - throw new NotImplementedException(); - } - - public void OnCompleted() - { - throw new NotImplementedException(); - } - } - private sealed class TestContextHandlers : IObserver<IDriverStarted>, IObserver<IActiveContext>, IObserver<IRunningTask>, IObserver<ICompletedTask> { private readonly IEvaluatorRequestor _requestor;
