[REEF-1966] Allow user to define app.config for Evaluator
* Use user define `app.config` for Evaluator if any. Otherwise, use
default.
* Remove `app.config` file from Evaluator project
JIRA:
[REEF-1966](https://issues.apache.org/jira/browse/REEF-1966)
Pull Request:
This closes #1421
Project: http://git-wip-us.apache.org/repos/asf/reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/reef/commit/d4595493
Tree: http://git-wip-us.apache.org/repos/asf/reef/tree/d4595493
Diff: http://git-wip-us.apache.org/repos/asf/reef/diff/d4595493
Branch: refs/heads/REEF-335
Commit: d459549354a144c94152c8b7ffc323ea186f01fb
Parents: e43019f
Author: jwang98052 <[email protected]>
Authored: Tue Dec 12 16:21:27 2017 -0800
Committer: Markus Weimer <[email protected]>
Committed: Mon Feb 5 19:55:06 2018 -0800
----------------------------------------------------------------------
.../Common/DriverFolderPreparationHelper.cs | 14 +++++++++++---
.../Org.Apache.REEF.Evaluator.csproj | 3 ++-
2 files changed, 13 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/reef/blob/d4595493/lang/cs/Org.Apache.REEF.Client/Common/DriverFolderPreparationHelper.cs
----------------------------------------------------------------------
diff --git
a/lang/cs/Org.Apache.REEF.Client/Common/DriverFolderPreparationHelper.cs
b/lang/cs/Org.Apache.REEF.Client/Common/DriverFolderPreparationHelper.cs
index 229d9e5..f51a3c4 100644
--- a/lang/cs/Org.Apache.REEF.Client/Common/DriverFolderPreparationHelper.cs
+++ b/lang/cs/Org.Apache.REEF.Client/Common/DriverFolderPreparationHelper.cs
@@ -48,7 +48,7 @@ namespace Org.Apache.REEF.Client.Common
@" </assemblyBinding>" +
@" </runtime>" +
@"</configuration>";
- private const string EvaluatorExecutable =
"Org.Apache.REEF.Evaluator.exe.config";
+ private const string EvaluatorExecutableConfig =
"Org.Apache.REEF.Evaluator.exe.config";
private static readonly Logger Logger =
Logger.GetLogger(typeof(DriverFolderPreparationHelper));
private readonly AvroConfigurationSerializer _configurationSerializer;
@@ -154,8 +154,16 @@ namespace Org.Apache.REEF.Client.Common
File.WriteAllText(Path.Combine(driverFolderPath,
_fileNames.GetBridgeExeConfigPath()), config);
// generate .config file for Evaluator executable
- File.WriteAllText(Path.Combine(driverFolderPath,
_fileNames.GetGlobalFolderPath(), EvaluatorExecutable),
- DefaultDriverConfigurationFileContents);
+ var userDefinedEvaluatorConfigFileName = Path.Combine(JarFolder,
EvaluatorExecutableConfig);
+ var evaluatorConfigFilName = Path.Combine(driverFolderPath,
_fileNames.GetGlobalFolderPath(), EvaluatorExecutableConfig);
+ string evaluatorAppConfigString =
DefaultDriverConfigurationFileContents;
+
+ if (File.Exists(userDefinedEvaluatorConfigFileName))
+ {
+ evaluatorAppConfigString =
File.ReadAllText(userDefinedEvaluatorConfigFileName);
+ }
+ Logger.Log(Level.Verbose, "Create EvaluatorConfigFile {0} with
config {1}.", evaluatorConfigFilName, evaluatorAppConfigString);
+ File.WriteAllText(evaluatorConfigFilName,
evaluatorAppConfigString);
}
}
}
http://git-wip-us.apache.org/repos/asf/reef/blob/d4595493/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
index 7b567c8..8d2a818 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
+++ b/lang/cs/Org.Apache.REEF.Evaluator/Org.Apache.REEF.Evaluator.csproj
@@ -67,6 +67,7 @@ under the License.
<ItemGroup>
<None Include="$(SolutionDir)\App.config">
<Link>App.config</Link>
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Org.Apache.REEF.Evaluator.nuspec" />
<None Include="packages.config" />
@@ -96,4 +97,4 @@ under the License.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets"
Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import
Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets"
Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')"
/>
-</Project>
+</Project>
\ No newline at end of file