[Xamarin.Android.Tools.AndroidSdk] Revert JDK validation #34
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context: dotnet/android#2004
Context: https://jenkins.mono-project.com/job/xamarin-android-pr-builder/3656/testReport/junit/Xamarin.Android.Build.Tests/ResolveSdksTaskTests/ResolveSdkTiming___Debug/
Before commit 7553056, the only validation performed on the
AndroidSdkInfo'sjavaSdkPathparameter was "does{javaSdkPath}/bin/jarsignerexist?This is the world the xamarin-android unit tests assumed, as it
would create
{javaSdkPath}/bin/jarsignerand{javaSdkPath}/bin/javac.bash(among others), but not{javaSdkPath/bin/javac.Then came commit 7553056, which altered
AndroidSdkUnix.ValidateJavaSdkLocation()semantics so that it nowrequired the presence of
{javaSdkPath}/bin/javac.This changed caused the xamarin-android unit tests to fail:
The "expected" and "actual" values are reversed; the actual problem is
that the
javaSdkPathvalue provided to theAndroidSdkInfoconstructor --
/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/bin/TestDebug/temp/ResolveSdkTiming/jdk-- is "ignored", because it doesn't pass validation,
prompting
AndroidSdkInfoto callAndroidSdkUnix.GetJavaSdkPath(),which returns a "system" location,
/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home.As such, the original
javaSdkPathvalue is not preserved andreturned by the
AndroidSdkInfo.JavaSdkPathproperty.Fix this by removing the
AndroidSdkUnix.ValidateJavaSdkLocation()method: it doesn't appear to actually be useful in this instance, as
the base
AndroidSdkBase.ValidateJavaSdkLocation()already checksfor the presence of
{javaSdkPath}/bin/jarsigner.