Repository: incubator-reef Updated Branches: refs/heads/master bfe115307 -> 7d7321496
[REEF-509] Remove Java ExecutorServiceConstructor from EvaluatorConfiguration for .Net Evaluator Currently the Evaluator configuration contains ExecutorServiceConstructor which is not used in .Net evaluator and .Net Tang will be not able to understand this class. This PR created separate code path for EvaluatorConfiguration in java based on the Evaluator Process. JIRA: [REEF-509](https://issues.apache.org/jira/browse/REEF-509) Pull Request: This closes #315 Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/7d732149 Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/7d732149 Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/7d732149 Branch: refs/heads/master Commit: 7d7321496e3d9126981ce64381e7131375f5be02 Parents: bfe1153 Author: Julia Wang <[email protected]> Authored: Fri Jul 24 17:05:19 2015 -0700 Committer: Markus Weimer <[email protected]> Committed: Sun Jul 26 18:51:59 2015 -0700 ---------------------------------------------------------------------- .../evaluator/AllocatedEvaluatorImpl.java | 9 ++++++++- .../evaluator/EvaluatorConfiguration.java | 20 +++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/7d732149/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/AllocatedEvaluatorImpl.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/AllocatedEvaluatorImpl.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/AllocatedEvaluatorImpl.java index d700bbc..5dc0502 100644 --- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/AllocatedEvaluatorImpl.java +++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/driver/evaluator/AllocatedEvaluatorImpl.java @@ -27,6 +27,7 @@ import org.apache.reef.driver.evaluator.EvaluatorDescriptor; import org.apache.reef.driver.evaluator.EvaluatorType; import org.apache.reef.driver.evaluator.EvaluatorProcess; import org.apache.reef.driver.evaluator.JVMProcessFactory; +import org.apache.reef.driver.evaluator.CLRProcess; import org.apache.reef.runtime.common.driver.api.ResourceLaunchEventImpl; import org.apache.reef.runtime.common.evaluator.EvaluatorConfiguration; import org.apache.reef.tang.Configuration; @@ -194,7 +195,13 @@ final class AllocatedEvaluatorImpl implements AllocatedEvaluator { final Optional<Configuration> taskConfiguration) { final String contextConfigurationString = this.configurationSerializer.toString(contextConfiguration); - ConfigurationModule evaluatorConfigurationModule = EvaluatorConfiguration.CONF + final ConfigurationModule evaluatorConfigModule; + if (this.evaluatorManager.getEvaluatorDescriptor().getProcess() instanceof CLRProcess) { + evaluatorConfigModule = EvaluatorConfiguration.CONFCLR; + } else { + evaluatorConfigModule = EvaluatorConfiguration.CONF; + } + ConfigurationModule evaluatorConfigurationModule = evaluatorConfigModule .set(EvaluatorConfiguration.APPLICATION_IDENTIFIER, this.jobIdentifier) .set(EvaluatorConfiguration.DRIVER_REMOTE_IDENTIFIER, this.remoteID) .set(EvaluatorConfiguration.EVALUATOR_IDENTIFIER, this.getId()) http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/7d732149/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java ---------------------------------------------------------------------- diff --git a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java index 6e48a6a..0b625e6 100644 --- a/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java +++ b/lang/java/reef-common/src/main/java/org/apache/reef/runtime/common/evaluator/EvaluatorConfiguration.java @@ -43,10 +43,13 @@ public final class EvaluatorConfiguration extends ConfigurationModuleBuilder { public static final OptionalParameter<String> TASK_CONFIGURATION = new OptionalParameter<>(); public static final OptionalParameter<Integer> HEARTBEAT_PERIOD = new OptionalParameter<>(); public static final OptionalParameter<String> APPLICATION_IDENTIFIER = new OptionalParameter<>(); - public static final ConfigurationModule CONF = new EvaluatorConfiguration() + + /** + * The EvaluatorConfigModuleBuilder which contains bindings shared for all kinds of Evaluators. + */ + private static final ConfigurationModuleBuilder EvaluatorConfigModuleBuilder = new EvaluatorConfiguration() .bindSetEntry(Clock.RuntimeStartHandler.class, EvaluatorRuntime.RuntimeStartHandler.class) .bindSetEntry(Clock.RuntimeStopHandler.class, EvaluatorRuntime.RuntimeStopHandler.class) - .bindConstructor(ExecutorService.class, ExecutorServiceConstructor.class) .bindNamedParameter(DriverRemoteIdentifier.class, DRIVER_REMOTE_IDENTIFIER) .bindNamedParameter(ErrorHandlerRID.class, DRIVER_REMOTE_IDENTIFIER) .bindNamedParameter(EvaluatorIdentifier.class, EVALUATOR_IDENTIFIER) @@ -55,7 +58,18 @@ public final class EvaluatorConfiguration extends ConfigurationModuleBuilder { .bindNamedParameter(InitialTaskConfiguration.class, TASK_CONFIGURATION) .bindNamedParameter(RootServiceConfiguration.class, ROOT_SERVICE_CONFIGURATION) .bindNamedParameter(ApplicationIdentifier.class, APPLICATION_IDENTIFIER) - .bindNamedParameter(LaunchID.class, APPLICATION_IDENTIFIER) + .bindNamedParameter(LaunchID.class, APPLICATION_IDENTIFIER); + + /** + * This is ConfigurationModule for CLR Evaluator. + */ + public static final ConfigurationModule CONFCLR = EvaluatorConfigModuleBuilder.build(); + + /** + * This is ConfigurationModule for Java Evaluator. + */ + public static final ConfigurationModule CONF = EvaluatorConfigModuleBuilder + .bindConstructor(ExecutorService.class, ExecutorServiceConstructor.class) .build(); private static final class ExecutorServiceConstructor implements ExternalConstructor<ExecutorService> {
