Skip to content

Commit

Permalink
[Mono.Android-Tests] Run Java.Interop tests as well. (#3393)
Browse files Browse the repository at this point in the history
Context: xamarin/monodroid@e318861
Context: 7d32ef3
Context: 1a2eb95

When use of Java.Interop.dll was originally added in
xamarin/monodroid@e318861, it didn't implement the "full"
Java.Interop.JniRuntime abstraction, which meant that until
commit 1a2eb95, trying to instantiate a JavaInt32Array instance
would result in a NotImplementedException, because of
Android.Runtime.AndroidValueManager.AddPeer().

Commit 1a2eb95 removed the exception but didn't implement
JniRuntime.JniValueManager.AddPeer(), meaning even though a
JavaInt32Array could be instantiated, it wouldn't work
"properly", e.g. JniRuntime.JniValueManager.PeekPeer() wouldn't
find the JavaInt32Array instance when given the same handle.

This in turn "happened" because Mono.Android-Tests.dll never
executed the unit tests for Java.Interop.dll, which it couldn't
do, because it didn't fully support the semantics.

Add the Java.Interop.dll unit tests to Mono.Android-Tests.dll, and
fix Mono.Android.dll and company so that they can actually pass:

    Add a new Java.Interop-Tests.csproj project to "host" the
    Java.Interop unit tests in a MonoAndroid-profile project.

    Add java-interop.jar to the javac command line generated by
    Jar.targets, so that e.g. com.xamarin.java_interop.ManagedPeer
    can be used.

    Update Mono.Android.dll so that the Java.Interop unit tests
    work. This includes "migrating" the (jobject => instance) mapping
    previously accessible via Java.Lang.Object.GetObject<T>() into
    Android.Runtime.AndroidValueManager.

    AndroidRuntime.GetExceptionForThrowable() will now "unwrap" a
    Java.Interop.JavaProxyThrowable instance.

    AndroidTypeManager.GetSimpleReferences() can't use
    JNIEnv.GetJniName() on-device because that always returns
    java/lang/Object, even if a type can't be found, which breaks
    several Java.Interop unit tests. Use
    JNIEnv.monodroid_typemap_managed_to_java() instead.

    AndroidTypeManager.RegisterNativeMembers() will now invoke
    JniRuntime.JniTypeManager.RegisterNativeMembers() when methods
    is empty, so that classes can handle their own registration. This
    was needed so that
    Java.InteropTests.CallVirtualFromConstructorDerived could
    actually be properly instantiated and participate in tests.

    Java.Interop.TypeManager.CreateProxy() now supports
    Java.Interop-style
    (ref JniObjectReference, JniObjectReferenceOptions)
    constructors.

    Java.Interop.JavaObject and Java.Interop.JavaException are now
    bridgeable types, and can participate in GC's.

    This means that e.g. JavaInt32Array instances won't be
    prematurely collected.

    src/monodroid will also verify that bridgeable types contain
    the fields required for use, and provide a better error message
    when any fields are missing.

    The Java.Lang.Object and Java.Lang.Throwable finalizers must
    check Environment.HasShutdownStarted before using
    JniEnvironment.Runtime, as finalization order is unspecified,
    so the JniRuntime instance may have been finalized first.

With the new changes, the size of
Xamarin.Forms_Performance_Integration-Signed.apk increases by ~4kb.
I consider this negligible.

App startup time isn't significantly impacted either: the average of
five Xamarin.Forms_Performance_Integration app launches is 706.2ms
with these changes, vs. 706.8ms without these changes.

Other Build System Changes:

    Set $(AndroidLinkMode)=r8 in various projects for consistency
    with 4bb4b2e.

    Make Mono.Android-Tests debuggable in Release config, so that
    GREF logs/etc. can be easily extracted from device, if necessary.

    Split up external/Java.Interop checkout & preparation logic so
    that it is usable within unit test environments, which don't
    contain a full build tree.

    Add some build-time test-related artifacts to
    @(_BuildStatusFiles) so that build-time log files are kept.

TODO:

    Java.Lang.Object should be updated to inherit from
    Java.Interop.JavaObject

    Java.Lang.Throwable should be updated to inherit from
    Java.Interop.JavaException

    generator needs to be updated to begin avoiding the JNIEnv
    methods, so that non-Java.Lang.*-inheriting types can be used.
  • Loading branch information
jonpryor authored and radekdoulik committed Dec 20, 2019
1 parent 7ff7cb8 commit 130905e
Show file tree
Hide file tree
Showing 51 changed files with 894 additions and 346 deletions.
43 changes: 28 additions & 15 deletions Xamarin.Android-Tests.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27428.2037
# Visual Studio Version 16
VisualStudioVersion = 16.0.29411.108
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Android-Tests", "src\Mono.Android\Test\Mono.Android-Tests.csproj", "{40EAD437-216B-4DF4-8258-3F47E1672C3A}"
EndProject
Expand Down Expand Up @@ -90,6 +90,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Android-Test.Library",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Android-TestsMultiDex", "tests\Runtime-MultiDex\Mono.Android-TestsMultiDex.csproj", "{9ECBEA14-B79F-4F92-9266-495C03A32571}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop.GenericMarshaler", "external\Java.Interop\src\Java.Interop.GenericMarshaler\Java.Interop.GenericMarshaler.csproj", "{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Java.Interop-Tests", "src\Mono.Android\Test\Java.Interop-Tests\Java.Interop-Tests.csproj", "{6CB00820-A66B-43E5-8785-ED456C6E9F39}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Java.Interop", "external\Java.Interop\src\Java.Interop\Java.Interop.csproj", "{94BD81F7-B06F-4295-9636-F8A3B6BDC762}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Mono.Android\Test\Mono.Android-Test.Shared.projitems*{0ab4956e-6fb9-4da0-9d49-ab65a3ff403a}*SharedItemsImports = 13
Expand All @@ -111,6 +117,10 @@ Global
{2305B00D-DE81-4744-B0DA-357835CAFE5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2305B00D-DE81-4744-B0DA-357835CAFE5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2305B00D-DE81-4744-B0DA-357835CAFE5A}.Release|Any CPU.Build.0 = Release|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Release|Any CPU.Build.0 = Release|Any CPU
{05768F39-7BAF-43E6-971E-712F5771E88E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{05768F39-7BAF-43E6-971E-712F5771E88E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{05768F39-7BAF-43E6-971E-712F5771E88E}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -223,18 +233,6 @@ Global
{056ED976-618F-4A3E-910E-AA25230C2296}.Debug|Any CPU.Build.0 = Debug|Any CPU
{056ED976-618F-4A3E-910E-AA25230C2296}.Release|Any CPU.ActiveCfg = Release|Any CPU
{056ED976-618F-4A3E-910E-AA25230C2296}.Release|Any CPU.Build.0 = Release|Any CPU
{B160F0E7-799A-4EB9-92B8-D71623C7674A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B160F0E7-799A-4EB9-92B8-D71623C7674A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B160F0E7-799A-4EB9-92B8-D71623C7674A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B160F0E7-799A-4EB9-92B8-D71623C7674A}.Release|Any CPU.Build.0 = Release|Any CPU
{FA8EEC88-CA3C-4D69-B206-54B392570DC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FA8EEC88-CA3C-4D69-B206-54B392570DC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FA8EEC88-CA3C-4D69-B206-54B392570DC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FA8EEC88-CA3C-4D69-B206-54B392570DC6}.Release|Any CPU.Build.0 = Release|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2}.Release|Any CPU.Build.0 = Release|Any CPU
{8B5E63B7-8C18-4BA7-BAAB-A1955B257F5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8B5E63B7-8C18-4BA7-BAAB-A1955B257F5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8B5E63B7-8C18-4BA7-BAAB-A1955B257F5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -249,13 +247,26 @@ Global
{9ECBEA14-B79F-4F92-9266-495C03A32571}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ECBEA14-B79F-4F92-9266-495C03A32571}.Release|Any CPU.Build.0 = Release|Any CPU
{9ECBEA14-B79F-4F92-9266-495C03A32571}.Release|Any CPU.Deploy.0 = Release|Any CPU
{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF}.Release|Any CPU.Build.0 = Release|Any CPU
{6CB00820-A66B-43E5-8785-ED456C6E9F39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CB00820-A66B-43E5-8785-ED456C6E9F39}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CB00820-A66B-43E5-8785-ED456C6E9F39}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6CB00820-A66B-43E5-8785-ED456C6E9F39}.Release|Any CPU.Build.0 = Release|Any CPU
{94BD81F7-B06F-4295-9636-F8A3B6BDC762}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94BD81F7-B06F-4295-9636-F8A3B6BDC762}.Debug|Any CPU.Build.0 = Debug|Any CPU
{94BD81F7-B06F-4295-9636-F8A3B6BDC762}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94BD81F7-B06F-4295-9636-F8A3B6BDC762}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{40EAD437-216B-4DF4-8258-3F47E1672C3A} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{2305B00D-DE81-4744-B0DA-357835CAFE5A} = {43A4FB09-279A-4138-8027-EC1E1CED2E8A}
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2} = {43A4FB09-279A-4138-8027-EC1E1CED2E8A}
{05768F39-7BAF-43E6-971E-712F5771E88E} = {D6BFEDF6-2F48-44B2-9553-F2F6F92531BD}
{9D5C83B5-70D5-4CC2-9DB7-78B23DC8F255} = {D6BFEDF6-2F48-44B2-9553-F2F6F92531BD}
{EF798EB3-D639-4E09-9DB0-233E67F727B0} = {2EFFECF5-1CCA-4005-AE62-1D6F01C88DF4}
Expand All @@ -280,10 +291,12 @@ Global
{F4DAFD78-BE76-46C9-A1AD-85D8C91CD77B} = {9B63992C-2201-4BB0-BD00-D637B481A995}
{2DD1EE75-6D8D-4653-A800-0A24367F7F38} = {9B63992C-2201-4BB0-BD00-D637B481A995}
{37CAA28C-40BE-4253-BA68-CC5D7316A617} = {68B8E272-5B12-47AA-8923-550B9CE535C7}
{6BE66B30-9346-4DA6-B09A-0CDC1DFE33C2} = {43A4FB09-279A-4138-8027-EC1E1CED2E8A}
{0AB4956E-6FB9-4DA0-9D49-AB65A3FF403A} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{8CB5FF58-FF95-43B9-9064-9ACE9525866F} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{9ECBEA14-B79F-4F92-9266-495C03A32571} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{D1243BAB-23CA-4566-A2A3-3ADA2C2DC3AF} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{6CB00820-A66B-43E5-8785-ED456C6E9F39} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
{94BD81F7-B06F-4295-9636-F8A3B6BDC762} = {EFBC4DC0-DBFF-4DAA-B0B8-6D0CB02A25F5}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8643CD20-B195-4919-8135-27549488237E}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\*.projitems" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\*.cmake" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Build$(Configuration)\*.targets" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\XABuildConfig.cs" Condition="Exists('$(XamarinAndroidSourcePath)bin\Test$(Configuration)\XABuildConfig.cs')" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\*.binlog" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\prepare*.log" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\*.mk" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\*.projitems" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\*.cmake" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)bin\Test$(Configuration)\*.targets" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)external\Java.Interop\bin\Build$(Configuration)\*.props" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)**\ThirdPartyNotices.txt" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)**\config.log" />
<_BuildStatusFiles Include="$(XamarinAndroidSourcePath)**\config.status" />
Expand Down
19 changes: 16 additions & 3 deletions build-tools/scripts/Jar.targets
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,20 @@
<JavaCPath Condition=" '$(JavaCPath)' == '' ">$(JavaSdkDirectory)\bin\javac</JavaCPath>
</PropertyGroup>
</Target>
<Target Name="_GetJavaInteropJarPath">
<PropertyGroup>
<_JIJar_InTree>$([System.IO.Path]::GetFullPath ('$(XAInstallPrefix)'))\xbuild\Xamarin\Android\java-interop.jar</_JIJar_InTree>
<_JIJar_System Condition=" '$(_XamarinAndroidMSBuildDirectory)' != '' ">$(_XamarinAndroidMSBuildDirectory)\java-interop.jar</_JIJar_System>
<_JavaInteropJarPath Condition=" Exists($(_JIJar_InTree)) ">$(_JIJar_InTree)</_JavaInteropJarPath>
<_JavaInteropJarPath Condition=" '$(_JavaInteropJarPath)' == '' ">$(_JIJar_System)</_JavaInteropJarPath>
</PropertyGroup>
<Error
Condition=" '$(_JavaInteropJarPath)' == '' "
Text="Could not determine path to `java-interop.jar`."
/>
</Target>
<Target Name="BuildTestJarFile"
DependsOnTargets="_GetJavacVersions"
DependsOnTargets="_GetJavacVersions;_GetJavaInteropJarPath"
Inputs="@(TestJarEntry)"
Outputs="%(TestJarEntry.OutputFile)">
<ItemGroup>
Expand All @@ -25,10 +37,11 @@
<_Jar>"$(JarPath)"</_Jar>
<_Targets>-source $(_JavacSourceVersion) -target $(_JavacTargetVersion)</_Targets>
<_DestDir>$(IntermediateOutputPath)__CreateTestJarFile-bin</_DestDir>
<_AndroidJar>-cp "$(AndroidSdkDirectory)\platforms\android-$(_AndroidApiLevelName)\android.jar"</_AndroidJar>
<_AndroidJar>-bootclasspath "$(AndroidSdkDirectory)\platforms\android-$(_AndroidApiLevelName)\android.jar"</_AndroidJar>
<_CP>-cp "$(_JavaInteropJarPath)"</_CP>
</PropertyGroup>
<MakeDir Directories="$(_DestDir)" />
<Exec Command="$(_Javac) $(_Targets) -d &quot;$(_DestDir)&quot; $(_AndroidJar) @(_JavacSource->'&quot;%(Identity)&quot;', ' ')" />
<Exec Command="$(_Javac) $(_Targets) -d &quot;$(_DestDir)&quot; $(_AndroidJar) $(_CP) @(_JavacSource->'&quot;%(Identity)&quot;', ' ')" />
<Exec
Command="$(_Jar) cf &quot;classes.jar&quot; ."
WorkingDirectory="$(_DestDir)"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System;

namespace Xamarin.Android.Prepare
{
[Scenario (isDefault: false)]
partial class Scenario_PrepareExternal : ScenarioNoStandardEndSteps
{
public Scenario_PrepareExternal ()
: base ("PrepareExternal", "Prepare external submodules", Context.Instance)
{}

protected override void AddSteps (Context context)
{
Steps.Add (new Step_PrepareExternal ());
Steps.Add (new Step_PrepareExternalJavaInterop ());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ protected override void AddSteps (Context context)
throw new ArgumentNullException (nameof (context));

Steps.Add (new Step_GenerateFiles (atBuildStart: true, onlyRequired: true));
Steps.Add (new Step_PrepareExternalJavaInterop ());
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ protected override void AddSteps (Context context)
Steps.Add (new Step_GenerateFiles (atBuildStart: true));
Steps.Add (new Step_PrepareProps ());
Steps.Add (new Step_PrepareExternal ());
Steps.Add (new Step_PrepareExternalJavaInterop ());
Steps.Add (new Step_PrepareLocal ());
Steps.Add (new Step_DownloadMonoArchive ());
AddRequiredOSSpecificSteps (true);
Expand Down
25 changes: 0 additions & 25 deletions build-tools/xaprepare/xaprepare/Steps/Step_PrepareExternal.Unix.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,31 +24,6 @@ async Task<bool> ExecuteOSSpecific (Context context, NuGetRunner nuget)
if (!result)
return false;

string javaInteropDir = context.Properties.GetRequiredValue (KnownProperties.JavaInteropFullPath);
Log.StatusLine ();
result = await make.Run (
logTag: "java-interop-prepare",
workingDirectory: javaInteropDir,
arguments: new List <string> {
"prepare",
$"CONFIGURATION={context.Configuration}",
$"JAVA_HOME={context.OS.JavaHome}",
$"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}",
}
);
if (!result)
return false;

Log.StatusLine ();
result = await make.Run (
logTag: "java-interop-props",
workingDirectory: javaInteropDir,
arguments: new List <string> {
$"bin/Build{context.Configuration}/JdkInfo.props",
$"CONFIGURATION={context.Configuration}",
$"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}",
}
);
return result;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

namespace Xamarin.Android.Prepare
{
partial class Step_PrepareExternalJavaInterop
{
async Task<bool> ExecuteOSSpecific (Context context)
{
string javaInteropDir = context.Properties.GetRequiredValue (KnownProperties.JavaInteropFullPath);
Log.StatusLine ();
var make = new MakeRunner (context) {
NoParallelJobs = true
};
var result = await make.Run (
logTag: "java-interop-prepare",
workingDirectory: javaInteropDir,
arguments: new List <string> {
"prepare",
$"CONFIGURATION={context.Configuration}",
$"JAVA_HOME={context.OS.JavaHome}",
$"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}",
}
);
if (!result)
return false;

Log.StatusLine ();
result = await make.Run (
logTag: "java-interop-props",
workingDirectory: javaInteropDir,
arguments: new List <string> {
$"bin/Build{context.Configuration}/JdkInfo.props",
$"CONFIGURATION={context.Configuration}",
$"JI_MAX_JDK={Configurables.Defaults.MaxJDKVersion}",
}
);
return result;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.IO;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Xamarin.Android.Prepare
{
partial class Step_PrepareExternalJavaInterop
{
async Task<bool> ExecuteOSSpecific (Context context)
{
return true;
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;

namespace Xamarin.Android.Prepare
{
partial class Step_PrepareExternalJavaInterop : Step
{
public Step_PrepareExternalJavaInterop ()
: base ("Preparing external/Java.Interop")
{}

protected override async Task<bool> Execute (Context context)
{
return await ExecuteOSSpecific (context);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class JavaInterop_External_Dependencies_Group : ThirdPartyNoticeGroup
new JavaInterop_xamarin_Java_Interop_TPN (),
new JavaInterop_gityf_crc_TPN (),
new JavaInterop_xamarin_mono_cecil_TPN (),
new JavaInterop_jonpryor_mono_linq_expressions_TPN (),
new JavaInterop_jbevain_mono_linq_expressions_TPN (),
new JavaInterop_mono_csharp_TPN (),
new JavaInterop_mono_LineEditor_TPN (),
new JavaInterop_mono_Options_TPN (),
Expand Down Expand Up @@ -82,12 +82,12 @@ class JavaInterop_xamarin_mono_cecil_TPN : ThirdPartyNotice
public override string LicenseText => null;
}

class JavaInterop_jonpryor_mono_linq_expressions_TPN : ThirdPartyNotice
class JavaInterop_jbevain_mono_linq_expressions_TPN : ThirdPartyNotice
{
static readonly Uri url = new Uri ("https://github.com/jonpryor/mono.linq.expressions/");
static readonly Uri url = new Uri ("https://github.com/jbevain/mono.linq.expressions/");

public override string LicenseFile => null;
public override string Name => "jonpryor/mono.linq.expressions";
public override string Name => "jbevain/mono.linq.expressions";
public override Uri SourceUrl => url;

public override string LicenseText => @"
Expand Down
4 changes: 4 additions & 0 deletions build-tools/xaprepare/xaprepare/xaprepare.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@
<Compile Include="OperatingSystems\OS.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Scenarios\Scenario_AndroidToolchain.cs" />
<Compile Include="Scenarios\Scenario_PrepareExternal.cs" />
<Compile Include="Scenarios\Scenario_PrepareExternalGitDependencies.cs" />
<Compile Include="Scenarios\Scenario_PrepareImageDependencies.cs" />
<Compile Include="Scenarios\Scenario_Required.cs" />
Expand All @@ -142,6 +143,7 @@
<Compile Include="Steps\Step_InstallMonoRuntimes.cs" />
<Compile Include="Steps\Step_PrepareExternal.cs" />
<Compile Include="Steps\Step_PrepareExternalGitDependencies.cs" />
<Compile Include="Steps\Step_PrepareExternalJavaInterop.cs" />
<Compile Include="Steps\Step_PrepareImageDependencies.cs" />
<Compile Include="Steps\Step_PrepareLocal.cs" />
<Compile Include="Steps\Step_PrepareMSBuild.cs" />
Expand Down Expand Up @@ -196,6 +198,7 @@
<Compile Include="Steps\Step_BuildMonoRuntimes.Unix.cs" />
<Compile Include="Steps\Step_GenerateFiles.Unix.cs" />
<Compile Include="Steps\Step_PrepareExternal.Unix.cs" />
<Compile Include="Steps\Step_PrepareExternalJavaInterop.Unix.cs" />
<Compile Include="Steps\Step_PrepareImageDependencies.Unix.cs" />
<Compile Include="ToolRunners\MakeRunner.Unix.cs" />
<Compile Include="ToolRunners\MakeRunner.OutputSink.Unix.cs" />
Expand Down Expand Up @@ -259,6 +262,7 @@
<Compile Include="Steps\Step_GenerateFiles.Windows.cs" />
<Compile Include="Steps\Step_InstallCorrettoOpenJDK.Windows.cs" />
<Compile Include="Steps\Step_PrepareExternal.Windows.cs" />
<Compile Include="Steps\Step_PrepareExternalJavaInterop.Windows.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
Expand Down
Loading

0 comments on commit 130905e

Please sign in to comment.