From 80b391dbf1bde6502b57cc57a3f60327bafb2667 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Wed, 10 May 2023 17:36:53 -0400 Subject: [PATCH 1/6] Support testing with JDK 17 Context: https://github.com/xamarin/xamarin-android/pull/8029 Update `` task to emit a new `$(Java*MajorVersion)` MSBuild property. This is used by `src/Java.Base` so that it knows which JDK version it's binding. Begin explicitly qualifying all `$(Jdk*)` and `$(Java*)` MSBuild properties to explicitly disambiguate between JDK 1.8 and JDK-11 contexts. Eventually we may "swap" things so that properties without a version are for e.g. JDK 11 (17, etc.) and `$(Jdk8*)` is for JDK 1.8-requiring contexts. Note: to get this to *build* we had to update `src/Java.Base` to support binding against JDK-17, which was an expected diversion. This "JDK-17 Java.Base binding" was a "time limited" effort. --- Configuration.Override.props.in | 6 +++--- Directory.Build.props | 6 +++--- Documentation/BuildConfiguration.md | 4 ++-- .../Java.Interop.BootstrapTasks/JdkInfo.cs | 11 ++++++++-- build-tools/scripts/Prepare.targets | 6 ++++-- src/Java.Base/Java.Base.csproj | 1 + src/Java.Base/Java.Base.targets | 1 + src/Java.Base/Java.Lang/Class.cs | 14 +++++++++++++ src/Java.Base/Java.Lang/Double.cs | 16 +++++++++++++++ src/Java.Base/Java.Lang/Float.cs | 16 +++++++++++++++ src/Java.Base/Java.Lang/Integer.cs | 16 +++++++++++++++ src/Java.Base/Java.Lang/Long.cs | 16 +++++++++++++++ src/Java.Base/Java.Lang/String.cs | 20 +++++++++++++++++++ src/Java.Base/Transforms/Metadata.xml | 19 ++++++++++++++++++ src/Java.Interop/Java.Interop.targets | 4 ++-- src/java-interop/java-interop.targets | 2 +- tests/Java.Base-Tests/Java.Base-Tests.targets | 4 ++-- .../Java.Interop-PerformanceTests.targets | 4 ++-- .../Java.Interop-Tests.targets | 4 ++-- .../Java.Interop.Export-Tests.csproj | 4 ++-- tests/NativeTiming/NativeTiming.targets | 2 +- ...marin.Android.Tools.Bytecode-Tests.targets | 4 ++-- .../java-source-utils.targets | 2 +- 23 files changed, 155 insertions(+), 27 deletions(-) create mode 100644 src/Java.Base/Java.Lang/Class.cs create mode 100644 src/Java.Base/Java.Lang/Double.cs create mode 100644 src/Java.Base/Java.Lang/Float.cs create mode 100644 src/Java.Base/Java.Lang/Integer.cs create mode 100644 src/Java.Base/Java.Lang/Long.cs diff --git a/Configuration.Override.props.in b/Configuration.Override.props.in index d73ecfe83..fa16949f9 100644 --- a/Configuration.Override.props.in +++ b/Configuration.Override.props.in @@ -1,14 +1,14 @@ - /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/jli/libjli.dylib + /Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdk/Contents/Home/jre/jli/libjli.dylib /Library/Frameworks/Mono.framework/Libraries/libmonosgen-2.0.1.dylib $(MSBuildThisFileDirectory)bin\$(Configuration)\ - - + + diff --git a/Directory.Build.props b/Directory.Build.props index 95d93ffc2..6cd5d4023 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -33,8 +33,8 @@ Condition=" Exists('$(MSBuildThisFileDirectory)bin\Build$(Configuration)\Version.props') " /> 1.8 1.8 <_BootClassPath Condition=" '$(JreRtJarPath)' != '' ">-bootclasspath "$(JreRtJarPath)" - <_JavacSourceOptions>-source $(JavacSourceVersion) -target $(JavacTargetVersion) $(_BootClassPath) + <_Javac8SourceOptions>-source $(JavacSourceVersion) -target $(JavacTargetVersion) $(_BootClassPath) $([System.IO.Path]::GetFullPath ('$(XamarinAndroidToolsDirectory)')) diff --git a/Documentation/BuildConfiguration.md b/Documentation/BuildConfiguration.md index 424adfbc2..dd2d6a172 100644 --- a/Documentation/BuildConfiguration.md +++ b/Documentation/BuildConfiguration.md @@ -21,8 +21,8 @@ Overridable MSBuild properties include: [`java-interop`](src/java-interop) against. By default this is probed for from numerous locations within [`build-tools/scripts/jdk.mk`](build-tools/scripts/jdk.mk). -* `$(JavaCPath)`: Path to the `javac` command-line tool, by default set to `javac`. -* `$(JarPath)`: Path to the `jar` command-line tool, by default set to `jar`. +* `$(JavaC8Path)`: Path to the `javac` command-line tool, by default set to `javac`. +* `$(Jar8Path)`: Path to the `jar` command-line tool, by default set to `jar`. * It may be desirable to override these on Windows, depending on your `PATH`. * `$(UtilityOutputFullPath)`: Directory to place various utilities such as [`class-parse`](tools/class-parse), [`generator`](tools/generator), diff --git a/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks/JdkInfo.cs b/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks/JdkInfo.cs index 4022755b7..dcd3f6580 100644 --- a/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks/JdkInfo.cs +++ b/build-tools/Java.Interop.BootstrapTasks/Java.Interop.BootstrapTasks/JdkInfo.cs @@ -61,7 +61,7 @@ public override bool Execute () JavaHomePath = jdk.HomePath; Directory.CreateDirectory (Path.GetDirectoryName (PropertyFile.ItemSpec)); - WritePropertyFile (jdk.JavaPath, jdk.JarPath, jdk.JavacPath, jdk.JdkJvmPath, rtJarPath, jdk.IncludePath); + WritePropertyFile (jdk, rtJarPath); if (MakeFragmentFile != null) { Directory.CreateDirectory (Path.GetDirectoryName (MakeFragmentFile.ItemSpec)); @@ -117,8 +117,14 @@ Action CreateLogger () return logger; } - void WritePropertyFile (string javaPath, string jarPath, string javacPath, string jdkJvmPath, string rtJarPath, IEnumerable includes) + void WritePropertyFile (XATInfo jdk, string rtJarPath) { + var jarPath = jdk.JarPath; + var javacPath = jdk.JavacPath; + var javaPath = jdk.JavaPath; + var jdkJvmPath = jdk.JdkJvmPath; + var includes = jdk.IncludePath; + var msbuild = XNamespace.Get ("http://schemas.microsoft.com/developer/msbuild/2003"); var jdkJvmP = $"JdkJvm{PropertyNameModifier}Path"; var project = new XElement (msbuild + "Project", @@ -129,6 +135,7 @@ void WritePropertyFile (string javaPath, string jarPath, string javacPath, strin new XElement (msbuild + "ItemGroup", includes.Select (i => new XElement (msbuild + $"Jdk{PropertyNameModifier}IncludePath", new XAttribute ("Include", i)))))), new XElement (msbuild + "PropertyGroup", + CreateProperty (msbuild, $"Java{PropertyNameModifier}MajorVersion", jdk.Version.Major.ToString ()), CreateProperty (msbuild, $"Java{PropertyNameModifier}SdkDirectory", JavaHomePath), CreateProperty (msbuild, $"Java{PropertyNameModifier}Path", javaPath), CreateProperty (msbuild, $"JavaC{PropertyNameModifier}Path", javacPath), diff --git a/build-tools/scripts/Prepare.targets b/build-tools/scripts/Prepare.targets index 411f954dc..16a08da4f 100644 --- a/build-tools/scripts/Prepare.targets +++ b/build-tools/scripts/Prepare.targets @@ -19,20 +19,22 @@ + PropertyFile="$(_TopDir)\bin\Build$(Configuration)\JdkInfo-8.props"> $(JAVA_HOME_11_X64) + 11.99.0 diff --git a/src/Java.Base/Java.Base.csproj b/src/Java.Base/Java.Base.csproj index 15a118a6f..9dc73853b 100644 --- a/src/Java.Base/Java.Base.csproj +++ b/src/Java.Base/Java.Base.csproj @@ -5,6 +5,7 @@ true enable $(NoWarn);8764 + 9.0 diff --git a/src/Java.Base/Java.Base.targets b/src/Java.Base/Java.Base.targets index 4240630c7..e837a52fd 100644 --- a/src/Java.Base/Java.Base.targets +++ b/src/Java.Base/Java.Base.targets @@ -2,6 +2,7 @@ $(UtilityOutputFullPath)generator.dll + $(DefineConstants);JAVA_$(Java11MajorVersion) diff --git a/src/Java.Base/Java.Lang/Class.cs b/src/Java.Base/Java.Lang/Class.cs new file mode 100644 index 000000000..434284856 --- /dev/null +++ b/src/Java.Base/Java.Lang/Class.cs @@ -0,0 +1,14 @@ +using System; +using Java.Interop; + +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; + +namespace Java.Lang { + public partial class Class { + + } +} + +#endif // JAVA_17 diff --git a/src/Java.Base/Java.Lang/Double.cs b/src/Java.Base/Java.Lang/Double.cs new file mode 100644 index 000000000..4db8e9f8c --- /dev/null +++ b/src/Java.Base/Java.Lang/Double.cs @@ -0,0 +1,16 @@ +using System; +using Java.Interop; + +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; + +namespace Java.Lang { + public partial class Double { + + Java.Lang.Object? IConstantDesc.ResolveConstantDesc (MethodHandles.Lookup? lookup) => + ResolveConstantDesc (lookup); + } +} + +#endif // JAVA_17 diff --git a/src/Java.Base/Java.Lang/Float.cs b/src/Java.Base/Java.Lang/Float.cs new file mode 100644 index 000000000..cae8a69a8 --- /dev/null +++ b/src/Java.Base/Java.Lang/Float.cs @@ -0,0 +1,16 @@ +using System; +using Java.Interop; + +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; + +namespace Java.Lang { + public partial class Float { + + Java.Lang.Object? IConstantDesc.ResolveConstantDesc (MethodHandles.Lookup? lookup) => + ResolveConstantDesc (lookup); + } +} + +#endif // JAVA_17 diff --git a/src/Java.Base/Java.Lang/Integer.cs b/src/Java.Base/Java.Lang/Integer.cs new file mode 100644 index 000000000..ba316813b --- /dev/null +++ b/src/Java.Base/Java.Lang/Integer.cs @@ -0,0 +1,16 @@ +using System; +using Java.Interop; + +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; + +namespace Java.Lang { + public partial class Integer { + + Java.Lang.Object? IConstantDesc.ResolveConstantDesc (MethodHandles.Lookup? lookup) => + ResolveConstantDesc (lookup); + } +} + +#endif // JAVA_17 diff --git a/src/Java.Base/Java.Lang/Long.cs b/src/Java.Base/Java.Lang/Long.cs new file mode 100644 index 000000000..27706e2ce --- /dev/null +++ b/src/Java.Base/Java.Lang/Long.cs @@ -0,0 +1,16 @@ +using System; +using Java.Interop; + +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; + +namespace Java.Lang { + public partial class Long { + + Java.Lang.Object? IConstantDesc.ResolveConstantDesc (MethodHandles.Lookup? lookup) => + ResolveConstantDesc (lookup); + } +} + +#endif // JAVA_17 diff --git a/src/Java.Base/Java.Lang/String.cs b/src/Java.Base/Java.Lang/String.cs index bc580cfb4..1d0528694 100644 --- a/src/Java.Base/Java.Lang/String.cs +++ b/src/Java.Base/Java.Lang/String.cs @@ -3,7 +3,27 @@ using System.Collections.Generic; using Java.Interop; +#if JAVA_17 +using Java.Lang.Invoke; +using Java.Lang.Constants; +#endif // JAVA_17 + namespace Java.Lang { public partial class String : IEnumerable, IEnumerable { + +#if JAVA_17 + unsafe Java.Lang.Object? IConstantDesc.ResolveConstantDesc (MethodHandles.Lookup? lookup) + { + const string __id = "resolveConstantDesc.(Ljava/lang/invoke/MethodHandles$Lookup;)Ljava/lang/String;"; + try { + JniArgumentValue* __args = stackalloc JniArgumentValue [1]; + __args [0] = new JniArgumentValue (lookup); + var __rm = _members.InstanceMethods.InvokeAbstractObjectMethod (__id, this, __args); + return JniEnvironment.Runtime.ValueManager.GetValue(ref __rm, JniObjectReferenceOptions.CopyAndDispose); + } finally { + global::System.GC.KeepAlive (lookup); + } + } +#endif // JAVA_17 } } diff --git a/src/Java.Base/Transforms/Metadata.xml b/src/Java.Base/Transforms/Metadata.xml index ced7d892c..3c140ca5a 100644 --- a/src/Java.Base/Transforms/Metadata.xml +++ b/src/Java.Base/Transforms/Metadata.xml @@ -6,6 +6,8 @@ + + JavaFinalize @@ -62,4 +64,21 @@ java.lang.Object + + + + override + reabstract + IAnnotatedElement + reabstract + IAnnotatedElement + reabstract + IAnnotatedElement diff --git a/src/Java.Interop/Java.Interop.targets b/src/Java.Interop/Java.Interop.targets index 235ceb1fe..2524a3853 100644 --- a/src/Java.Interop/Java.Interop.targets +++ b/src/Java.Interop/Java.Interop.targets @@ -28,8 +28,8 @@ Inputs="@(CompileJavaInteropJar)" Outputs="$(OutputPath)java-interop.jar"> - - + + -DENABLE_MONO_INTEGRATION=ON - <_JdkDirs>"-DJDK_INCLUDE_LIST=@(JdkIncludePath, ';')" + <_JdkDirs>"-DJDK_INCLUDE_LIST=@(Jdk11IncludePath, ';')" <_Jni_c>"-DJNI_C_PATH=$(MSBuildThisFileDirectory)$(IntermediateOutputPath)jni.c" <_ExtraArgs>$([MSBuild]::Escape('$(_JdkDirs) $(_Jni_c) $(_EnableMono) $(_MonoDirs) $(_MonoLib)')) diff --git a/tests/Java.Base-Tests/Java.Base-Tests.targets b/tests/Java.Base-Tests/Java.Base-Tests.targets index 01d86c744..9f1a96571 100644 --- a/tests/Java.Base-Tests/Java.Base-Tests.targets +++ b/tests/Java.Base-Tests/Java.Base-Tests.targets @@ -42,8 +42,8 @@ <_JcwSourceReal Include="$(IntermediateOutputPath)java\**\*.java;java\**\*.java" /> - - + + diff --git a/tests/Java.Interop-PerformanceTests/Java.Interop-PerformanceTests.targets b/tests/Java.Interop-PerformanceTests/Java.Interop-PerformanceTests.targets index f3866e5d6..ec3f85551 100644 --- a/tests/Java.Interop-PerformanceTests/Java.Interop-PerformanceTests.targets +++ b/tests/Java.Interop-PerformanceTests/Java.Interop-PerformanceTests.targets @@ -5,8 +5,8 @@ Inputs="@(JavaPerformanceTestJar)" Outputs="$(OutputPath)performance-test.jar"> - - + + diff --git a/tests/Java.Interop-Tests/Java.Interop-Tests.targets b/tests/Java.Interop-Tests/Java.Interop-Tests.targets index e3910c046..dbc581b0b 100644 --- a/tests/Java.Interop-Tests/Java.Interop-Tests.targets +++ b/tests/Java.Interop-Tests/Java.Interop-Tests.targets @@ -13,9 +13,9 @@ Lines="@(_Source)" Overwrite="True" /> - + - + diff --git a/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj b/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj index 90aeccaab..f5d8689c5 100644 --- a/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj +++ b/tests/Java.Interop.Export-Tests/Java.Interop.Export-Tests.csproj @@ -34,8 +34,8 @@ - - + + diff --git a/tests/NativeTiming/NativeTiming.targets b/tests/NativeTiming/NativeTiming.targets index b393bdb5b..a6493b258 100644 --- a/tests/NativeTiming/NativeTiming.targets +++ b/tests/NativeTiming/NativeTiming.targets @@ -47,7 +47,7 @@ Outputs="$(OutputPath)%(_NativeTimingLib.Dir)$(_NativeTimingLibName)"> - <_JdkDirs>"-DJDK_INCLUDE_LIST=@(JdkIncludePath, ';')" + <_JdkDirs>"-DJDK_INCLUDE_LIST=@(Jdk11IncludePath, ';')" <_Cmake diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets b/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets index 2d1437ea8..76fac347f 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.targets @@ -19,8 +19,8 @@ Inputs="@(TestJar);@(TestJarNoParameters);@(TestJarJdk11)" Outputs="@(_BuildClassOutputs)"> - - + + diff --git a/tools/java-source-utils/java-source-utils.targets b/tools/java-source-utils/java-source-utils.targets index ed1c790d4..14fd625f6 100644 --- a/tools/java-source-utils/java-source-utils.targets +++ b/tools/java-source-utils/java-source-utils.targets @@ -49,7 +49,7 @@ Inputs="@(CompileTestJavaResources)" Outputs="@(CompileTestJavaResources->'%(RelativeDir)%(Filename).class')"> From 5c4bfff712546bff7c82221d6795f1a0e29318c9 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Thu, 11 May 2023 19:51:41 -0400 Subject: [PATCH 2/6] Fix unit test failures Unit tests "manually" read the `JdkInfo*.props` files, and since the file names and property names changed, things broke. Oops. --- tests/TestJVM/TestJVM.cs | 4 ++-- .../Xamarin.Android.Tools.Bytecode-Tests/ConfiguredJdkInfo.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/TestJVM/TestJVM.cs b/tests/TestJVM/TestJVM.cs index c8d956e5f..d0faed60d 100644 --- a/tests/TestJVM/TestJVM.cs +++ b/tests/TestJVM/TestJVM.cs @@ -93,7 +93,7 @@ static string GetOutputDirectoryName () if (buildName.Contains ('-')) { buildName = buildName.Substring (0, buildName.IndexOf ('-')); } - var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo.props"); + var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo-11.props"); if (!File.Exists (jdkPropFile)) { return null; } @@ -105,7 +105,7 @@ static string GetOutputDirectoryName () .Elements (msbuild + "Choose") .Elements (msbuild + "When") .Elements (msbuild + "PropertyGroup") - .Elements (msbuild + "JdkJvmPath") + .Elements (msbuild + "JdkJvm11Path") .FirstOrDefault (); if (jdkJvmPath == null) { return null; diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/ConfiguredJdkInfo.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/ConfiguredJdkInfo.cs index 9126fbeaa..83eb32a63 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/ConfiguredJdkInfo.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/ConfiguredJdkInfo.cs @@ -33,7 +33,7 @@ static string ReadJavaSdkDirectoryFromJdkInfoProps () if (buildName.IndexOf ("-", StringComparison.Ordinal) >= 0) { buildName = buildName.Substring (0, buildName.IndexOf ('-')); } - var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo.props"); + var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo-8.props"); if (!File.Exists (jdkPropFile)) { return null; } @@ -43,7 +43,7 @@ static string ReadJavaSdkDirectoryFromJdkInfoProps () var jdkProps = XDocument.Load (jdkPropFile); var jdkPath = jdkProps.Elements () .Elements (msbuild + "PropertyGroup") - .Elements (msbuild + "JavaSdkDirectory") + .Elements (msbuild + "Java8SdkDirectory") .FirstOrDefault (); if (jdkPath == null) { return null; From d07d9f20f7bf643c971c99051dcf161a82f58309 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Fri, 12 May 2023 13:59:09 -0400 Subject: [PATCH 3/6] JDK 17 requires a new gradle (?!) Use Gradle 8.1.1, fix `build.gradle` so it works with Gradle 8.1.1. --- build-tools/gradle/gradle/wrapper/gradle-wrapper.properties | 2 +- tools/java-source-utils/build.gradle | 5 +++-- .../com/microsoft/android/JavaSourceUtilsOptionsTest.java | 2 -- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/build-tools/gradle/gradle/wrapper/gradle-wrapper.properties b/build-tools/gradle/gradle/wrapper/gradle-wrapper.properties index 6b3851a8a..fae08049a 100644 --- a/build-tools/gradle/gradle/wrapper/gradle-wrapper.properties +++ b/build-tools/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/tools/java-source-utils/build.gradle b/tools/java-source-utils/build.gradle index 4fff4b577..d232f08e6 100644 --- a/tools/java-source-utils/build.gradle +++ b/tools/java-source-utils/build.gradle @@ -52,11 +52,12 @@ jar { } { exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA' } - archiveName 'java-source-utils.jar' + archiveFileName.set('java-source-utils.jar') } test { reports { - junitXml.enabled = true + junitXml { + } } } diff --git a/tools/java-source-utils/src/test/java/com/microsoft/android/JavaSourceUtilsOptionsTest.java b/tools/java-source-utils/src/test/java/com/microsoft/android/JavaSourceUtilsOptionsTest.java index 771b5f85c..34f684481 100644 --- a/tools/java-source-utils/src/test/java/com/microsoft/android/JavaSourceUtilsOptionsTest.java +++ b/tools/java-source-utils/src/test/java/com/microsoft/android/JavaSourceUtilsOptionsTest.java @@ -9,8 +9,6 @@ import org.junit.Test; -import jdk.nashorn.internal.AssertsEnabled; - import static org.junit.Assert.*; public class JavaSourceUtilsOptionsTest { From a2e2df52c72d9ec686ba8510dec753e5fe855a98 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Fri, 12 May 2023 19:05:28 -0400 Subject: [PATCH 4/6] Fix jnimarshalmethodgen JdkInfo.props rename strikes again! --- tools/jnimarshalmethod-gen/App.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/jnimarshalmethod-gen/App.cs b/tools/jnimarshalmethod-gen/App.cs index adf938648..0d66539b2 100644 --- a/tools/jnimarshalmethod-gen/App.cs +++ b/tools/jnimarshalmethod-gen/App.cs @@ -320,7 +320,7 @@ static string ReadJavaSdkDirectoryFromJdkInfoProps () if (buildName.Contains ('-')) { buildName = buildName.Substring (0, buildName.IndexOf ('-')); } - var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo.props"); + var jdkPropFile = Path.Combine (binDir, buildName, "JdkInfo-11.props"); if (!File.Exists (jdkPropFile)) { return null; } @@ -332,7 +332,7 @@ static string ReadJavaSdkDirectoryFromJdkInfoProps () .Elements (msbuild + "Choose") .Elements (msbuild + "When") .Elements (msbuild + "PropertyGroup") - .Elements (msbuild + "JdkJvmPath") + .Elements (msbuild + "JdkJvm11Path") .FirstOrDefault (); if (jdkJvmPath == null) { return null; From 30c41f9eb03c914bbad286562e0f1c0b9b39edb6 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Fri, 12 May 2023 19:11:17 -0400 Subject: [PATCH 5/6] set JAVA_HOME=$(Java8SdkDirectory) Looks like tools/java-source-utils tests still require JDK 1.8 to pass on CI? --- tools/java-source-utils/java-source-utils.targets | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/java-source-utils/java-source-utils.targets b/tools/java-source-utils/java-source-utils.targets index 14fd625f6..552c342c9 100644 --- a/tools/java-source-utils/java-source-utils.targets +++ b/tools/java-source-utils/java-source-utils.targets @@ -7,7 +7,7 @@ Outputs="$(OutputPath)\java-source-utils.jar"> @@ -40,7 +40,7 @@ DependsOnTargets="_BuildJava;_CopyJavaType_java"> @@ -58,7 +58,7 @@ DependsOnTargets="_BuildJava"> @@ -67,7 +67,7 @@ DependsOnTargets="_BuildJava"> @@ -75,7 +75,7 @@ @@ -88,7 +88,7 @@ From cb29a4bd729722e5a9301d22785095ada225af2f Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Fri, 12 May 2023 19:55:17 -0400 Subject: [PATCH 6/6] Fix `make run-tests` `` was failing because `JI_JVM_PATH` was being set to an empty string. --- build-tools/scripts/RunNUnitTests.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build-tools/scripts/RunNUnitTests.targets b/build-tools/scripts/RunNUnitTests.targets index 2ece387e0..805d811e3 100644 --- a/build-tools/scripts/RunNUnitTests.targets +++ b/build-tools/scripts/RunNUnitTests.targets @@ -13,8 +13,8 @@ <_Run Condition=" '$(RUN)' != '' ">--run="$(RUN)" @@ -27,7 +27,7 @@ - +