blob: aefc5fe7e8d474669f8b6234551f15b9a7a0cc46 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ProjectGuid>{5094C35B-4FDB-4322-AC05-45D684501CBF}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Org.Apache.REEF.Client</RootNamespace>
<AssemblyName>Org.Apache.REEF.Client</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<RestorePackages>true</RestorePackages>
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<Import Project="$(SolutionDir)\build.props" />
<PropertyGroup>
<TempResxFile Condition="$(TempResxFile) == ''">$(SolutionDir)bin\$(PlatformTarget)\$(Configuration)\$(AssemblyName)\Resources.resx</TempResxFile>
<UseVSHostingProcess>false</UseVSHostingProcess>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Practices.TransientFaultHandling.Core, Version=5.1.1209.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>$(PackagesDir)\TransientFaultHandling.Core.5.1.1209.1\lib\NET4\Microsoft.Practices.TransientFaultHandling.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>$(PackagesDir)\Newtonsoft.Json.$(NewtonsoftJsonVersion)\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Hadoop.Avro">
<HintPath>$(PackagesDir)\Microsoft.Hadoop.Avro.$(AvroVersion)\lib\net45\Microsoft.Hadoop.Avro.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Runtime.Serialization" />
</ItemGroup>
<ItemGroup>
<Compile Include="API\AppParameters.cs" />
<Compile Include="API\AppParametersBuilder.cs" />
<Compile Include="API\ClientFactory.cs" />
<Compile Include="API\Exceptions\ClasspathException.cs" />
<Compile Include="API\Exceptions\JavaNotFoundException.cs" />
<Compile Include="API\IJobSubmission.cs" />
<Compile Include="API\IJobSubmissionBuilder.cs" />
<Compile Include="API\IREEFClient.cs" />
<Compile Include="API\JobParameters.cs" />
<Compile Include="API\JobParametersBuilder.cs" />
<Compile Include="API\JobRequest.cs" />
<Compile Include="API\JobRequestBuilder.cs" />
<Compile Include="API\JobSubmission.cs" />
<Compile Include="API\JobSubmissionBuilder.cs" />
<Compile Include="API\JobSubmissionBuilderFactory.cs" />
<Compile Include="API\TcpPortConfigurationModule.cs" />
<Compile Include="Avro\AvroAppSubmissionParameters.cs" />
<Compile Include="Avro\AvroJobSubmissionParameters.cs" />
<Compile Include="Avro\Local\AvroLocalAppSubmissionParameters.cs" />
<Compile Include="Avro\YARN\AvroYarnAppSubmissionParameters.cs" />
<Compile Include="Avro\YARN\AvroYarnJobSubmissionParameters.cs" />
<Compile Include="Avro\YARN\AvroYarnClusterJobSubmissionParameters.cs" />
<Compile Include="Common\DotNetFile.cs" />
<Compile Include="Common\ClientConstants.cs" />
<Compile Include="Common\DriverFolderPreparationHelper.cs" />
<Compile Include="Common\IFile.cs" />
<Compile Include="Common\IResourceArchiveFileGenerator.cs" />
<Compile Include="Common\FileSets.cs" />
<Compile Include="Common\IJavaClientLauncher.cs" />
<Compile Include="Common\IJobSubmissionResult.cs" />
<Compile Include="Common\JobSubmissionResult.cs" />
<Compile Include="Common\JavaClientLauncher.cs" />
<Compile Include="Common\ResourceArchiveFileGenerator.cs" />
<Compile Include="Common\ResourceHelper.cs" />
<Compile Include="Local\LocalClient.cs" />
<Compile Include="Local\LocalJobSubmissionResult.cs" />
<Compile Include="Local\LocalRuntimeClientConfiguration.cs" />
<Compile Include="Local\Parameters\LocalRuntimeDirectory.cs" />
<Compile Include="Local\Parameters\NumberOfEvaluators.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="YARN\HDI\HDInsightClientConfiguration.cs" />
<Compile Include="YARN\HDI\HDInsightCommandLineEnvironment.cs" />
<Compile Include="YARN\HDI\HDInsightCredential.cs" />
<Compile Include="YARN\HDI\HDInsightResourceFileRemoteUrlToClusterUrlConverter.cs" />
<Compile Include="YARN\HDI\HDInsightUrlProvider.cs" />
<Compile Include="YARN\HDI\NamedParameters.cs" />
<Compile Include="YARN\IdentityResourceFileRemoteUrlToClusterUrlConverter.cs" />
<Compile Include="YARN\IResourceFileRemoteUrlToClusterUrlConverter.cs" />
<Compile Include="YARN\IYarnCommandLineEnvironment.cs" />
<Compile Include="YARN\IYarnJobCommandProvider.cs" />
<Compile Include="YARN\IJobResourceUploader.cs" />
<Compile Include="YARN\IJobSubmissionDirectoryProvider.cs" />
<Compile Include="YARN\Parameters\DriverMaxMemoryAllicationPoolSizeMB.cs" />
<Compile Include="YARN\Parameters\DriverMaxPermSizeMB.cs" />
<Compile Include="YARN\RestClient\HttpClient.cs" />
<Compile Include="YARN\RestClient\IDeserializer.cs" />
<Compile Include="YARN\RestClient\IHttpClient.cs" />
<Compile Include="YARN\RestClient\IRequestFactory.cs" />
<Compile Include="YARN\RestClient\IRestClient.cs" />
<Compile Include="YARN\RestClient\ISerializer.cs" />
<Compile Include="YARN\RestClient\IYarnRestClientCredential.cs" />
<Compile Include="YARN\RestClient\Method.cs" />
<Compile Include="YARN\RestClient\NullYarnRestClientCredential.cs" />
<Compile Include="YARN\RestClient\RequestFactory.cs" />
<Compile Include="YARN\RestClient\RestClient.cs" />
<Compile Include="YARN\RestClient\RestJsonDeserializer.cs" />
<Compile Include="YARN\RestClient\RestJsonSerializer.cs" />
<Compile Include="YARN\RestClient\RestRequest.cs" />
<Compile Include="YARN\RestClient\RestResponse.cs" />
<Compile Include="YARN\RestClient\HttpClientRetryHandler.cs" />
<Compile Include="YARN\WindowsYarnJobCommandProvider.cs" />
<Compile Include="YARN\JobResource.cs" />
<Compile Include="YARN\JobSubmissionDirectoryProvider.cs" />
<Compile Include="YARN\LegacyJobResourceUploader.cs" />
<Compile Include="YARN\Parameters\EnableDebugLogging.cs" />
<Compile Include="YARN\Parameters\JobSubmissionDirectoryPrefixParameter.cs" />
<Compile Include="YARN\Parameters\SecurityTokenParameters.cs" />
<Compile Include="YARN\RestClient\DataModel\Acls.cs" />
<Compile Include="YARN\RestClient\DataModel\AmContainerSpec.cs" />
<Compile Include="YARN\RestClient\DataModel\ApplicationFinalState.cs" />
<Compile Include="YARN\RestClient\DataModel\ApplicationTag.cs" />
<Compile Include="YARN\RestClient\DataModel\ClusterHaState.cs" />
<Compile Include="YARN\RestClient\DataModel\ClusterState.cs" />
<Compile Include="YARN\RestClient\DataModel\Commands.cs" />
<Compile Include="YARN\RestClient\DataModel\Credentials.cs" />
<Compile Include="YARN\RestClient\DataModel\Environment.cs" />
<Compile Include="YARN\RestClient\DataModel\KeyValuePair.cs" />
<Compile Include="YARN\RestClient\DataModel\LocalResources.cs" />
<Compile Include="YARN\RestClient\DataModel\Secrets.cs" />
<Compile Include="YARN\RestClient\DataModel\ServiceData.cs" />
<Compile Include="YARN\RestClient\DataModel\SubmitApplication.cs" />
<Compile Include="YARN\RestClient\DataModel\Tokens.cs" />
<Compile Include="YARN\RestClient\IRestRequestExecutor.cs" />
<Compile Include="YARN\RestClient\IUrlProvider.cs" />
<Compile Include="YARN\RestClient\FileSystemJobResourceUploader.cs" />
<Compile Include="YARN\RestClient\MultipleRMUrlProvider.cs" />
<Compile Include="YARN\YarnJobSubmissionResult.cs" />
<Compile Include="YARN\YARNREEFClient.cs" />
<Compile Include="YARN\RestClient\RestRequestExecutor.cs" />
<Compile Include="YARN\RestClient\IYarnRMClient.cs" />
<Compile Include="YARN\RestClient\DataModel\Application.cs" />
<Compile Include="YARN\RestClient\DataModel\Applications.cs" />
<Compile Include="YARN\RestClient\DataModel\ApplicationState.cs" />
<Compile Include="YARN\RestClient\DataModel\ClusterInfo.cs" />
<Compile Include="YARN\RestClient\DataModel\ClusterMetrics.cs" />
<Compile Include="YARN\RestClient\DataModel\Error.cs" />
<Compile Include="YARN\RestClient\DataModel\Resouce.cs" />
<Compile Include="YARN\RestClient\DataModel\NewApplication.cs" />
<Compile Include="YARN\RestClient\YarnClient.cs" />
<Compile Include="YARN\RestClient\YarnClientNoCancellationToken.cs" />
<Compile Include="YARN\RestClient\YarnConfigurationUrlProvider.cs" />
<Compile Include="YARN\RestClient\YarnRestAPIException.cs" />
<Compile Include="YARN\YARNClientConfiguration.cs" />
<Compile Include="YARN\YarnCommandLineEnvironment.cs" />
<Compile Include="YARN\YarnREEFDotNetClient.cs" />
<Compile Include="YARN\YarnREEFDotNetParamSerializer.cs" />
<Compile Include="YARN\YarnREEFParamSerializer.cs" />
</ItemGroup>
<ItemGroup>
<None Include="Avro\README.md" />
<None Include="Org.Apache.REEF.Client.nuspec" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
<Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
<Name>Org.Apache.REEF.Utilities</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
<Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
<Name>Org.Apache.REEF.Tang</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
<Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
<Name>Org.Apache.REEF.Common</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
<Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
<Name>Org.Apache.REEF.Driver</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
<Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
<Name>Org.Apache.REEF.Network</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
<Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
<Name>Org.Apache.REEF.Wake</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Bridge\Org.Apache.REEF.Bridge.vcxproj">
<Project>{4e69d40a-26d6-4d4a-b96d-729946c07fe1}</Project>
<Name>Org.Apache.REEF.Bridge</Name>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Evaluator\Org.Apache.REEF.Evaluator.csproj">
<Project>{1b983182-9c30-464c-948d-f87eb93a8240}</Project>
<Name>Org.Apache.REEF.Evaluator</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
<Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
<Name>Org.Apache.REEF.Examples</Name>
</ProjectReference>
<ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.IO\Org.Apache.REEF.IO.csproj">
<Project>{DEC0F0A8-DBEF-4EBF-B69C-E2369C15ABF1}</Project>
<Name>Org.Apache.REEF.IO</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(TempResxFile)">
<Generator>ResXFileCodeGenerator</Generator>
<Visible>false</Visible>
</EmbeddedResource>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import Project="$(PackagesDir)\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.4.7.49.1\build\StyleCop.MSBuild.Targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
<!--begin jar reference-->
<PropertyGroup>
<BeforeBuildDependsOn>
$(BeforeBuildDependsOn);
RewriteClientResources;
</BeforeBuildDependsOn>
</PropertyGroup>
<!--
########################################################################
ReWrite client resx to point to correct version of jars
########################################################################
-->
<!--A Task that extracts the version from the pom in a given folder.-->
<UsingTask TaskName="UpdateClientResources" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<SnapshotNumber />
<ProjectFolder Required="true" />
<DebugOrRelease Required="true" />
<resxOutputPath Required="true" />
</ParameterGroup>
<Task>
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
<Using Namespace="System" />
<Using Namespace="System.IO" />
<Using Namespace="System.Xml" />
<Using Namespace="System.Linq" />
<Using Namespace="System.Xml.Linq" />
<Code Type="Fragment" Language="cs"><![CDATA[
var Version = XDocument.Load(Path.Combine(ProjectFolder, "pom.xml")).Descendants()
.Where(x => x.Name.ToString().Contains("version"))
.FirstOrDefault().Value;
var snapshortNumberAsString = ($(SnapshotNumber) >= 0 && $(SnapshotNumber) <=9) ? "0" + $(SnapshotNumber) : $(SnapshotNumber).ToString();
var reefVersion = Version;
var srcDir = @"lang\cs\Org.Apache.REEF.Client\Properties";
var binDir = @"lang\cs\bin\x64";
var resxInputPath = Path.Combine(ProjectFolder, srcDir, "Resources.xml");
var resourceDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge.JAR");
var clrDriverDir = Path.Combine(ProjectFolder, binDir, DebugOrRelease, "Org.Apache.REEF.Bridge");
var byteArrayType = ";System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
var jarRest = reefVersion + "-shaded.jar" + byteArrayType;
var dllResources = new Dictionary<string,string>();
dllResources.Add("reef_bridge_client", resourceDir + @"\reef-bridge-client-" + jarRest);
dllResources.Add("reef_bridge_driver", resourceDir + @"\reef-bridge-java-" + jarRest);
dllResources.Add("evaluator", resourceDir + "Org.Apache.REEF.Evaluator.exe" + byteArrayType);
dllResources.Add("reef_clrdriver", clrDriverDir + @"\Org.Apache.REEF.Bridge.exe" + byteArrayType);
dllResources.Add("ClientJarFullName", "reef-bridge-client-" + reefVersion + "-shaded.jar");
dllResources.Add("DriverJarFullName", "reef-bridge-java-" + reefVersion + "-shaded.jar");
dllResources.Add("ClrDriverFullName", "Org.Apache.REEF.Bridge.exe");
XElement root = XElement.Load(resxInputPath);
var resources = root.Descendants().Where(x => x.Name.LocalName == "data").ToList();
foreach (var resource in resources)
{
var resourceName = resource.Attribute("name").Value;
string replaceValue;
if (dllResources.TryGetValue(resourceName, out replaceValue))
{
var resourceValue = resource.Descendants().Where(x => x.Name.LocalName == "value").FirstOrDefault();
if (resourceValue != null)
{
resourceValue.Value = replaceValue;
}
}
}
var settings = new XmlWriterSettings
{
Indent = true,
IndentChars = " ",
NewLineChars = "\r\n",
NewLineHandling = NewLineHandling.Replace
};
(new FileInfo(resxOutputPath)).Directory.Create();
using (var wr = XmlWriter.Create(resxOutputPath, settings))
{
root.WriteTo(wr);
}
]]></Code>
</Task>
</UsingTask>
<!--
A Target that reWrites client resx to point to correct version of jars
-->
<Target Name="CopyJarFiles">
<MSBuild Targets="Build" BuildInParallel="$(BuildInParallel)" Properties="Chip=$(Chip);Lang=$(Lang)" Projects="@(ProjectFile)" />
<ItemGroup>
<MySourceFiles Include="$(Bindir)\**\Org.Apache.REEF.Bridge.JAR\*.jar" />
</ItemGroup>
<Copy SourceFiles="@(MySourceFiles)" DestinationFiles="@(MySourceFiles->'$(TargetDir)%(Filename)%(Extension)')" />
</Target>
<Target Name="RewriteClientResources" DependsOnTargets="CopyJarFiles">
<UpdateClientResources ProjectFolder="$(REEF_Source_Folder)" DebugOrRelease="$(Configuration)" resxOutputPath="$(TempResxFile)">
</UpdateClientResources>
</Target>
<Target Name="AfterBuild">
<Delete Files="$(TempResxFile)" />
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
</Target>
<Target Name="BeforeBuild" DependsOnTargets="$(BeforeBuildDependsOn);RewriteClientResources">
</Target>
</Project>