From d20a55914c968047bc8539a3b2809af541f18a1f Mon Sep 17 00:00:00 2001 From: Nikita Bykov <49442273+nikita-bykov@users.noreply.github.com> Date: Wed, 13 Jan 2021 10:48:09 +0300 Subject: [PATCH] [Windows] Move the list of installed Java versions to toolset (#2369) * added java to toolset * updated java tests * fixed windows2016.json * fixed tests * fixed java.Tests * fixed Java.Tests.ps1 Co-authored-by: Nikita Bykov --- .../scripts/Installers/Install-JavaTools.ps1 | 4 ++-- images/win/scripts/Tests/Java.Tests.ps1 | 22 +++++++++---------- images/win/toolsets/toolset-2016.json | 6 +++++ images/win/toolsets/toolset-2019.json | 6 +++++ images/win/windows2016.json | 3 +++ 5 files changed, 28 insertions(+), 13 deletions(-) diff --git a/images/win/scripts/Installers/Install-JavaTools.ps1 b/images/win/scripts/Installers/Install-JavaTools.ps1 index 4852f64c1..f84da8acd 100644 --- a/images/win/scripts/Installers/Install-JavaTools.ps1 +++ b/images/win/scripts/Installers/Install-JavaTools.ps1 @@ -77,8 +77,8 @@ function Install-JavaFromAdoptOpenJDK { Extract-7Zip -Path $archivePath -DestinationPath $DestinationPath } -$jdkVersions = @(7, 8, 11, 13) -$defaultVersion = 8 +$jdkVersions = (Get-ToolsetContent).java.versions +$defaultVersion = (Get-ToolsetContent).java.default $javaRootPath = "C:\Program Files\Java\" foreach ($jdkVersion in $jdkVersions) { diff --git a/images/win/scripts/Tests/Java.Tests.ps1 b/images/win/scripts/Tests/Java.Tests.ps1 index 9ca9be194..63332d0f1 100644 --- a/images/win/scripts/Tests/Java.Tests.ps1 +++ b/images/win/scripts/Tests/Java.Tests.ps1 @@ -1,5 +1,8 @@ Describe "Java" { - It "Java is default" -TestCases @(@{ DefaultJavaVersion = 8 }) { + [array]$jdkVersions = (Get-ToolsetContent).java.versions | ForEach-Object { @{Version = $_} } + $defaultVersion = (Get-ToolsetContent).java.default + + It "Java is default" -TestCases @(@{ DefaultJavaVersion = $defaultVersion }) { $actualJavaPath = Get-EnvironmentVariable "JAVA_HOME" $expectedJavaPath = Get-EnvironmentVariable "JAVA_HOME_${DefaultJavaVersion}_X64" @@ -17,20 +20,17 @@ Describe "Java" { "$ToolName -version" | Should -ReturnZeroExitCode } - It "Java " -TestCases @( - @{ Version = "1.7" } - @{ Version = "1.8" } - @{ Version = "11" } - @{ Version = "13" } - ) { - $versionNumber = $version.Split(".") | Select-Object -Last 1 - - $javaVariableValue = Get-EnvironmentVariable "JAVA_HOME_${versionNumber}_X64" + It "Java " -TestCases $jdkVersions { + $javaVariableValue = Get-EnvironmentVariable "JAVA_HOME_${Version}_X64" $javaVariableValue | Should -Not -BeNullOrEmpty $javaPath = Join-Path $javaVariableValue "bin\java" $result = Get-CommandResult "`"$javaPath`" -version" $result.ExitCode | Should -Be 0 + + if ($Version -eq 7 -or $Version -eq 8) { + $Version = "1.${Version}" + } $result.Output[0] | Should -Match ([regex]::Escape("openjdk version `"${Version}.")) } -} \ No newline at end of file +} diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index fd791981b..f727992cb 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -140,6 +140,12 @@ ] } ], + "java": { + "default": "8", + "versions": [ + "7", "8", "11", "13" + ] + }, "android": { "platform_min_version": "19", "build_tools_min_version": "19.1.0", diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index 14d08b46a..b89c0f94f 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -140,6 +140,12 @@ ] } ], + "java": { + "default": "8", + "versions": [ + "7", "8", "11", "13" + ] + }, "android": { "platform_min_version": "19", "build_tools_min_version": "19.1.0", diff --git a/images/win/windows2016.json b/images/win/windows2016.json index e1c63c101..782691b71 100644 --- a/images/win/windows2016.json +++ b/images/win/windows2016.json @@ -200,6 +200,9 @@ }, { "type": "powershell", + "environment_vars": [ + "TOOLSET_JSON_PATH={{user `toolset_json_path`}}" + ], "scripts": [ "{{ template_dir }}/scripts/Installers/Install-AzureCli.ps1", "{{ template_dir }}/scripts/Installers/Install-AzureDevOpsCli.ps1",