From 24f9b0fd85df7e0bcbe622edc6a28477c5fc06f1 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Tue, 30 May 2023 15:31:54 -0400 Subject: [PATCH] [build] Remove support for JDK 8. Context: 7a32bb976ab41dca91f6cff59b8caea9d01ea53d Context: https://stackoverflow.com/questions/55853220/handling-change-in-newlines-by-xml-transformation-for-cdata-from-java-8-to-java Context: https://bugs.java.com/bugdatabase/view_bug?bug_id=8223291 **Background**: Since commit bc5bcf4f, *two* JDKs were required in order to *fully* build and test Java.Interop: JDK 1.8 and JDK-11. This is because `src/Java.Interop` requires JDK-11+ to build, while some unit tests required JDK 1.8 to pass (because Java XML output changed between JDK 1.8 and JDK-11; see also 7a32bb97). Recently, a question arose: how well does .NET Android work with JDK 17? ([Android Studio recently bumped][0] the bundled JDK from JDK-11 to JDK-17.) The "straightforward" approach of "provision JDK-17 and just build everything with JDK-17" quickly meant that Java.Interop needed to build under JDK-17. This in turn segued into a "how do I make the MSBuild property meanings clearer", as `$(JavaCPath)` would be for JDK 1.8, while `$(JavaC11Path)` was for JDK-11, but with JDK-17 being provisioned `$(JavaC11Path)` *actually* was for JDK-17, which is just confusing. After discussion, we decided that we don't need to continue using JDK 1.8 anymore. Android API-31 requires JDK-11 in order to use various Android SDK build tools, and the Google Play Store requires a target SDK version of API-33 starting 2023-Aug. There is not much point in maintaining JDK 1.8 support. JDK 11 or later is now required. Update to use Gradle 8.1.1. This is needed for later JDK-17 support. `java/util/Collection.java` existed to help test API documentation import (when `$ANDROID_SDK_PATH` is set). JDK-11 does not support compiling `java/util/Collection.java` anymore; it errors out with: java/java/util/Collection.java:1: error: package exists in another module: java.base package java.util; ^ "Rename" this type to `android/animation/TypeEvaluator.java`, and update the API documentation import tests accordingly. Update the `ExpectedTypeDeclaration.MajorVersion` values to 0x37. The `.class` files for nested types has seen the addition of a new `NestHost` constant; see also: * https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.28 * https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-5.html#jvms-5.4.4 Update `ExpectedTypeDeclaration.ConstantPoolCount` as appropriate. Additional `NestHost`-related fallout is that `JavaType.class` now includes `com/xamarin/JavaType$RNC$RPNC` in the `InnerClasses` table. Update `tools/java-source-utils` unit tests so that JDK-11 can now be used to run (and pass!) the unit tests. (This previously required JDK 1.8.) [0]: https://web.archive.org/web/20230507035529/https://developer.android.com/studio/releases/#jdk-17 --- Configuration.Override.props.in | 6 +- Directory.Build.props | 4 +- build-tools/automation/azure-pipelines.yaml | 1 - .../automation/templates/core-build.yaml | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- build-tools/scripts/Prepare.targets | 15 +- src/Java.Base/Java.Base.targets | 4 +- .../IJavaInterfaceTests.cs | 2 +- .../JavaAnnotationTests.cs | 2 +- .../JavaEnumTests.cs | 2 +- .../JavaType.1MyStringListTests.cs | 4 +- .../JavaType.1Tests.cs | 4 +- .../JavaType.ASCTests.cs | 4 +- .../JavaType.PSCTests.cs | 4 +- .../JavaType.RNC.RPNCTests.cs | 4 +- .../JavaType.RNCTests.cs | 4 +- .../JavaTypeNoParametersTests.cs | 2 +- .../JavaTypeTests.cs | 12 +- .../NonGenericGlobalTypeTests.cs | 2 +- .../ParameterFixupTests.cs | 6 +- .../Resources/ParameterDescription.txt | 7 +- .../Resources/ParameterFixupApiXmlDocs.xml | 16 +- .../Resources/ParameterFixupFromDocs.xml | 38 ++-- ...amarin.Android.Tools.Bytecode-Tests.csproj | 2 +- ...marin.Android.Tools.Bytecode-Tests.targets | 11 +- .../java/android/animation/TypeEvaluator.java | 5 + .../java/java/util/Collection.java | 5 - tools/class-parse/Program.cs | 3 +- tools/java-source-utils/build.gradle | 5 +- .../android/JavadocXmlGeneratorTest.java | 65 ++---- .../src/test/resources/UnresolvedTypes.xml | 6 +- .../com/microsoft/android/DemoInfo.xml | 59 ++++++ .../com/microsoft/android/JavaType.xml | 192 +++++++++++++----- .../resources/com/microsoft/android/Outer.xml | 70 +++++-- 34 files changed, 354 insertions(+), 216 deletions(-) create mode 100644 tests/Xamarin.Android.Tools.Bytecode-Tests/java/android/animation/TypeEvaluator.java delete mode 100644 tests/Xamarin.Android.Tools.Bytecode-Tests/java/java/util/Collection.java create mode 100644 tools/java-source-utils/src/test/resources/com/microsoft/android/DemoInfo.xml diff --git a/Configuration.Override.props.in b/Configuration.Override.props.in index d73ecfe83..f9421ed40 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/microsoft-11.jdk/Contents/Home/lib/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 cf91bb5d3..314a40f53 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -58,8 +58,8 @@ $(MSBuildThisFileDirectory)build-tools\gradle $(GradleHome)\gradlew --stacktrace --no-daemon - 1.8 - 1.8 + 11 + 11 <_BootClassPath Condition=" '$(JreRtJarPath)' != '' ">-bootclasspath "$(JreRtJarPath)" <_JavacSourceOptions>-source $(JavacSourceVersion) -target $(JavacTargetVersion) $(_BootClassPath) diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml index d6a3d7105..f1c79490f 100644 --- a/build-tools/automation/azure-pipelines.yaml +++ b/build-tools/automation/azure-pipelines.yaml @@ -20,7 +20,6 @@ pr: variables: RunningOnCI: true Build.Configuration: Release - MaxJdkVersion: 8 DotNetCoreVersion: 7.x DotNetTargetFramework: net7.0 NetCoreTargetFrameworkPathSuffix: -$(DotNetTargetFramework) diff --git a/build-tools/automation/templates/core-build.yaml b/build-tools/automation/templates/core-build.yaml index 0283fcdae..5998bfac0 100644 --- a/build-tools/automation/templates/core-build.yaml +++ b/build-tools/automation/templates/core-build.yaml @@ -6,7 +6,7 @@ steps: displayName: Prepare Solution inputs: projects: Java.Interop.sln - arguments: '-c $(Build.Configuration) -target:Prepare -p:MaxJdkVersion=$(MaxJdkVersion)' + arguments: '-c $(Build.Configuration) -target:Prepare' - task: DotNetCoreCLI@2 displayName: Shut down existing build server 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..a409eae27 100644 --- a/build-tools/scripts/Prepare.targets +++ b/build-tools/scripts/Prepare.targets @@ -15,26 +15,15 @@ <_MaxJdk>$(MaxJdkVersion) <_MaxJdk Condition=" '$(_MaxJdk)' == '' ">$(JI_MAX_JDK) - $(JAVA_HOME_8_X64) + $(JAVA_HOME_11_X64) - - $(JAVA_HOME_11_X64) - - - - diff --git a/src/Java.Base/Java.Base.targets b/src/Java.Base/Java.Base.targets index 4240630c7..b9131750f 100644 --- a/src/Java.Base/Java.Base.targets +++ b/src/Java.Base/Java.Base.targets @@ -9,8 +9,8 @@ - - <_JavaBaseJmod>$(Java11SdkDirectory)/jmods/java.base.jmod + + <_JavaBaseJmod>$(JavaSdkDirectory)/jmods/java.base.jmod diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/IJavaInterfaceTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/IJavaInterfaceTests.cs index 1b23e8c9f..1f4a210ad 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/IJavaInterfaceTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/IJavaInterfaceTests.cs @@ -16,7 +16,7 @@ public void ClassFile_WithIJavaInterface_class () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, ConstantPoolCount = 23, AccessFlags = ClassAccessFlags.Interface | ClassAccessFlags.Abstract, diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaAnnotationTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaAnnotationTests.cs index e0ffadc4e..5309a7b51 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaAnnotationTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaAnnotationTests.cs @@ -16,7 +16,7 @@ public void ClassFile_WithJavaAnnotation_class () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, ConstantPoolCount = 23, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Interface | ClassAccessFlags.Abstract | ClassAccessFlags.Annotation, diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaEnumTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaEnumTests.cs index 559e0491e..da192250b 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaEnumTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaEnumTests.cs @@ -20,7 +20,7 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, ConstantPoolCount = 53, AccessFlags = ClassAccessFlags.Final | ClassAccessFlags.Super | ClassAccessFlags.Enum, diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1MyStringListTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1MyStringListTests.cs index 8f1ba151e..661b33852 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1MyStringListTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1MyStringListTests.cs @@ -26,9 +26,9 @@ public void ClassFileDescription () : new ParameterInfo ("val$value1", "Ljava/lang/Object;", "Ljava/lang/Object;"); var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 73, + ConstantPoolCount = 74, AccessFlags = ClassAccessFlags.Super, FullName = "com/xamarin/JavaType$1MyStringList", Superclass = new TypeInfo ("java/util/ArrayList", "Ljava/util/ArrayList;"), diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1Tests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1Tests.cs index 35e515c53..c8bcb0e44 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1Tests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.1Tests.cs @@ -16,9 +16,9 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 47, + ConstantPoolCount = 48, AccessFlags = ClassAccessFlags.Super, FullName = "com/xamarin/JavaType$1", Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"), diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.ASCTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.ASCTests.cs index 89c4fda3f..c8bc6d01c 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.ASCTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.ASCTests.cs @@ -16,9 +16,9 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 23, + ConstantPoolCount = 24, Deprecated = true, AccessFlags = ClassAccessFlags.Super, FullName = "com/xamarin/JavaType$ASC", diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.PSCTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.PSCTests.cs index 9981e326d..e7c2977a0 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.PSCTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.PSCTests.cs @@ -16,9 +16,9 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 20, + ConstantPoolCount = 21, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract, FullName = "com/xamarin/JavaType$PSC", Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"), diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNC.RPNCTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNC.RPNCTests.cs index a2e7fc336..9957bf876 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNC.RPNCTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNC.RPNCTests.cs @@ -16,9 +16,9 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 46, + ConstantPoolCount = 47, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract, FullName = "com/xamarin/JavaType$RNC$RPNC", Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"), diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNCTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNCTests.cs index 7a65d19d2..92e8f1d02 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNCTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaType.RNCTests.cs @@ -16,9 +16,9 @@ public void ClassFileDescription () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 44, + ConstantPoolCount = 45, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super | ClassAccessFlags.Abstract, FullName = "com/xamarin/JavaType$RNC", Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"), diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeNoParametersTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeNoParametersTests.cs index 46a3aea2c..13c33b063 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeNoParametersTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeNoParametersTests.cs @@ -16,7 +16,7 @@ public void ClassFile_WithNonGenericGlobalType_class () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, ConstantPoolCount = 18, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super, diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeTests.cs index e91428eb0..6039d0598 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/JavaTypeTests.cs @@ -18,9 +18,9 @@ public void ClassFile_WithJavaType_class () { var c = LoadClassFile ("JavaType.class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, - ConstantPoolCount = 198, + ConstantPoolCount = 202, AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Super, FullName = "com/xamarin/JavaType", Superclass = new TypeInfo ("java/lang/Object", "Ljava/lang/Object;"), @@ -65,6 +65,12 @@ public void ClassFile_WithJavaType_class () InnerName = null, AccessFlags = 0, }, + new ExpectedInnerClassInfo { + InnerClassName = "com/xamarin/JavaType$RNC$RPNC", + OuterClassName = "com/xamarin/JavaType$RNC", + InnerName = "RPNC", + AccessFlags = ClassAccessFlags.Public | ClassAccessFlags.Abstract, + }, }, Fields = { new ExpectedFieldDeclaration { @@ -143,7 +149,7 @@ public void ClassFile_WithJavaType_class () Name = "STATIC_FINAL_STRING", Descriptor = "Ljava/lang/String;", AccessFlags = FieldAccessFlags.Public | FieldAccessFlags.Static | FieldAccessFlags.Final, - ConstantValue = "String(stringIndex=188 Utf8=\"Hello, \\\"embedded\0Nulls\" and \ud83d\udca9!\")", + ConstantValue = "String(stringIndex=190 Utf8=\"Hello, \\\"embedded\0Nulls\" and \ud83d\udca9!\")", }, new ExpectedFieldDeclaration { Name = "STATIC_FINAL_BOOL_FALSE", diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/NonGenericGlobalTypeTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/NonGenericGlobalTypeTests.cs index c599c791a..706660a9f 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/NonGenericGlobalTypeTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/NonGenericGlobalTypeTests.cs @@ -16,7 +16,7 @@ public void ClassFile_WithNonGenericGlobalType_class () { var c = LoadClassFile (JavaType + ".class"); new ExpectedTypeDeclaration { - MajorVersion = 0x34, + MajorVersion = 0x37, MinorVersion = 0, ConstantPoolCount = 16, AccessFlags = ClassAccessFlags.Super, diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/ParameterFixupTests.cs b/tests/Xamarin.Android.Tools.Bytecode-Tests/ParameterFixupTests.cs index 2fe450e55..7ed2eb372 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/ParameterFixupTests.cs +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/ParameterFixupTests.cs @@ -24,7 +24,7 @@ public void XmlDeclaration_FixedUpFromDocumentation() return; } try { - AssertXmlDeclaration ("Collection.class", "ParameterFixupFromDocs.xml", Path.Combine (Environment.GetEnvironmentVariable ("ANDROID_SDK_PATH"), "docs", "reference")); + AssertXmlDeclaration ("TypeEvaluator.class", "ParameterFixupFromDocs.xml", Path.Combine (Environment.GetEnvironmentVariable ("ANDROID_SDK_PATH"), "docs", "reference")); } catch (Exception ex) { Assert.Fail ("An unexpected exception was thrown : {0}", ex); } @@ -38,7 +38,7 @@ public void XmlDeclaration_FixedUpFromApiXmlDocumentation () try { tempFile = LoadToTempFile ("ParameterFixupApiXmlDocs.xml"); - AssertXmlDeclaration ("Collection.class", "ParameterFixupFromDocs.xml", tempFile); + AssertXmlDeclaration ("TypeEvaluator.class", "ParameterFixupFromDocs.xml", tempFile); } finally { if (File.Exists (tempFile)) File.Delete (tempFile); @@ -111,7 +111,7 @@ public void XmlDeclaration_FixedUpFromParameterDescription () try { tempFile = LoadToTempFile ("ParameterDescription.txt"); - AssertXmlDeclaration (new string [] { "Collection.class" }, "ParameterFixupFromDocs.xml", tempFile); + AssertXmlDeclaration (new string [] { "TypeEvaluator.class" }, "ParameterFixupFromDocs.xml", tempFile); } finally { if (File.Exists (tempFile)) diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterDescription.txt b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterDescription.txt index db04a6149..469ed8f49 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterDescription.txt +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterDescription.txt @@ -1,9 +1,8 @@  ; This is a comment line. -package java.util ; Anything after semicolon is comment. - class Collection - add(E e) - #ctor() +package android.animation ; Anything after semicolon is comment. + class TypeEvaluator + evaluate(float fraction, T startValue, T endValue) package com.xamarin interface NestedInterface.DnsSdTxtRecordListener diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupApiXmlDocs.xml b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupApiXmlDocs.xml index e79117970..ab1f555e0 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupApiXmlDocs.xml +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupApiXmlDocs.xml @@ -1,10 +1,12 @@  - - - - - - - + + + + + + + + + diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupFromDocs.xml b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupFromDocs.xml index 68db003c1..66cdcc2f6 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupFromDocs.xml +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/Resources/ParameterFixupFromDocs.xml @@ -1,47 +1,51 @@ + name="android.animation" + jni-name="android/animation"> - + jni-signature="(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;"> + name="fraction" + type="float" + jni-type="F" /> + + diff --git a/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj b/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj index 636482a8a..b7cadb7fa 100644 --- a/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj +++ b/tests/Xamarin.Android.Tools.Bytecode-Tests/Xamarin.Android.Tools.Bytecode-Tests.csproj @@ -46,7 +46,7 @@ - + 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..0f2fcdfc8 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 @@ -1,27 +1,24 @@ - + - - + <_BuildClassOutputs Include="@(TestJar->'$(IntermediateOutputPath)classes\%(RecursiveDir)%(Filename).class')" /> - <_BuildClassOutputs Include="@(TestJarJdk11->'$(IntermediateOutputPath)classes\%(RecursiveDir)%(Filename).class')" /> <_BuildClassOutputs Include="@(TestJarNoParameters->'$(IntermediateOutputPath)classes\%(RecursiveDir)%(Filename).class')" /> -