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/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/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/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 @@
-
+
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/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;
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/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/java-source-utils.targets b/tools/java-source-utils/java-source-utils.targets
index ed1c790d4..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">
@@ -49,7 +49,7 @@
Inputs="@(CompileTestJavaResources)"
Outputs="@(CompileTestJavaResources->'%(RelativeDir)%(Filename).class')">
@@ -58,7 +58,7 @@
DependsOnTargets="_BuildJava">
@@ -67,7 +67,7 @@
DependsOnTargets="_BuildJava">
@@ -75,7 +75,7 @@
@@ -88,7 +88,7 @@
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 {
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;