Skip to content

Commit d582b80

Browse files
authored
Bump to dotnet/java-interop@13def0e1; %(JavaSourceJar.DocRootUrl) (#6662)
Context: dotnet/java-interop@13def0e Changes: dotnet/java-interop@d3f0c5c...32635fd * dotnet/java-interop@312fbf43: [jnienv-gen] Add possible C#9 function pointer backend * dotnet/java-interop@4cbc07a5: [Java.Interop.Tools.JavaSource] Replace TODO with To be added * dotnet/java-interop@0c90cf5c: [generator] Add support for <ns-replace> metadata. * dotnet/java-interop@13def0e1: [Java.Interop.Tools.JavaSource] Add {@docroot} support * dotnet/java-interop@88d6093c: [ci] Build without -m:1. * dotnet/java-interop@32635fd6: [Xamarin.Android.Tools.Bytecode] Extend api xml doc type detection Adds `%(JavaSourceJar.DocRootUrl)` to the set of metadata that is supported by `@(JavaSourceJar)`. Fix processing of `%(JavadocUrlPrefix)` and `%(JavadocUrlStyle)` metadata values. The `<_BuildAndroidJavadocXml/>` target has also been updated to use the new `java-source-utils.jar --doc-root-url` option.
1 parent 23a63c5 commit d582b80

File tree

12 files changed

+32
-5
lines changed

12 files changed

+32
-5
lines changed

Documentation/guides/building-apps/build-items.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,6 +370,11 @@ Starting in Xamarin.Android 11.3, the following MSBuild metadata is supported:
370370
online documentation. Only one style is currently supported:
371371
`developer.android.com/reference@2020-Nov`.
372372

373+
Starting in Xamarin.Android 12.3, the following MSBuild metadata is supported:
374+
375+
* `%(DocRootUrl)`: A URL prefix to use in place of all {@docroot}
376+
instances in the imported documentation.
377+
373378

374379
## LibraryProjectZip
375380

external/Java.Interop

src/Mono.Android/Mono.Android.targets

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@
7878
<_Doclink Include="https://developer.android.com/reference" />
7979
<_Doclink Include="--doc-url-style" />
8080
<_Doclink Include="developer.android.com/reference@2020-Nov" />
81+
<_Doclink Include="--doc-root-url" />
82+
<_Doclink Include="https://developer.android.com/" />
8183
</ItemGroup>
8284
<ItemGroup>
8385
<_AndroidSources Include="$(_AndroidStableSrcDir)\android\**\*.java" />

src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ This file is only used by binding projects.
7979
JavadocCopyrightFile="%(_JavaSourceJavadocXml.CopyrightFile)"
8080
JavadocUrlPrefix="%(_JavaSourceJavadocXml.UrlPrefix)"
8181
JavadocUrlStyle="%(_JavaSourceJavadocXml.UrlStyle)"
82+
JavadocDocRootUrl="%(_JavaSourceJavadocXml.DocRootUrl)"
8283
JavaMaximumHeapSize="$(JavaMaximumHeapSize)"
8384
JavaOptions="$(JavaOptions)"
8485
JavaSdkDirectory="$(_JavaSdkDirectory)"

src/Xamarin.Android.Build.Tasks/Tasks/JavaSourceUtils.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public class JavaSourceUtils : AndroidToolTask
3131
public ITaskItem JavadocCopyrightFile { get; set; }
3232
public string JavadocUrlPrefix { get; set; }
3333
public string JavadocUrlStyle { get; set; }
34+
public string JavadocDocRootUrl { get; set; }
3435

3536
public string JavaOptions { get; set; }
3637

@@ -139,11 +140,15 @@ string CreateResponseFile ()
139140
}
140141
if (!string.IsNullOrEmpty (JavadocUrlPrefix)) {
141142
AppendArg (response, "--doc-url-prefix");
142-
AppendArg (response, Path.GetFullPath (JavadocUrlPrefix));
143+
AppendArg (response, JavadocUrlPrefix);
143144
}
144145
if (!string.IsNullOrEmpty (JavadocUrlStyle)) {
145-
AppendArg (response, "--doc-link-style");
146-
AppendArg (response, Path.GetFullPath (JavadocUrlStyle));
146+
AppendArg (response, "--doc-url-style");
147+
AppendArg (response, JavadocUrlStyle);
148+
}
149+
if (!string.IsNullOrEmpty (JavadocDocRootUrl)) {
150+
AppendArg (response, "--doc-root-url");
151+
AppendArg (response, JavadocDocRootUrl);
147152
}
148153

149154
foreach (var path in InputFiles) {

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/BindingBuildTest.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,18 +470,29 @@ public void JavaSourceJar ()
470470
AndroidClassParser = "class-parse",
471471
};
472472
binding.SetProperty ("DocumentationFile", "UnnamedProject.xml");
473+
binding.SetProperty ("AndroidJavadocVerbosity", "full");
473474
using (var bindingBuilder = CreateDllBuilder ()) {
474475
binding.Jars.Add (new AndroidItem.EmbeddedJar ("javasourcejartest.jar") {
475476
BinaryContent = () => ResourceData.JavaSourceJarTestJar,
476477
});
478+
binding.OtherBuildItems.Add (new BuildItem ("None", "javadoc-copyright.xml") {
479+
BinaryContent = () => ResourceData.JavadocCopyright,
480+
});
477481
binding.OtherBuildItems.Add (new BuildItem ("JavaSourceJar", "javasourcejartest-sources.jar") {
478482
BinaryContent = () => ResourceData.JavaSourceJarTestSourcesJar,
483+
MetadataValues = "CopyrightFile=$(MSBuildThisFileDirectory)javadoc-copyright.xml;" +
484+
"UrlPrefix=https://developer.android.com/reference;" +
485+
"UrlStyle=developer.android.com/reference@2020-Nov;" +
486+
"DocRootUrl=https://developer.android.com",
479487
});
480488
Assert.IsTrue (bindingBuilder.Build (binding), "binding build should have succeeded");
481489

482490
var path = Path.Combine (Root, bindingBuilder.ProjectDirectory, binding.OutputPath, "UnnamedProject.xml");
483491
var xml = File.ReadAllText (path);
484492
Assert.IsTrue (xml.Contains ("<param name=\"name\">name to display.</param>"), "param `name` documentation not imported!");
493+
Assert.IsTrue (xml.Contains ("Includes a https://developer.android.com/test.html element."), "{@docRoot} value was not replaced!");
494+
Assert.IsTrue (xml.Contains ("<a href=\"https://developer.android.com/reference/com/xamarin/android/test/msbuildtest/JavaSourceJarTest#greet(java.lang.String,%20java.util.Date)\" title=\"Reference documentation\">"), "Java documentation URL was not imported!");
495+
Assert.IsTrue (xml.Contains ("<a href=\"https://developers.google.com/terms/site-policies\" title=\"Android Open Source Project\">Android Open Source Project</a>"), "Copyright file was not imported!");
485496
}
486497
}
487498

Binary file not shown.

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Utilities/ResourceData.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,15 @@ static class ResourceData
1616
static Lazy<byte []> library1Aar = new Lazy<byte []> (() => GetResourceData ("library1.aar"));
1717
static Lazy<byte []> library2Aar = new Lazy<byte []> (() => GetResourceData ("library2.aar"));
1818
static Lazy<byte []> apacheHttpClient_cs = new Lazy<byte []> (() => GetResourceData ("ApacheHttpClient.cs"));
19+
static Lazy<byte []> javadocCopyright = new Lazy<byte []> (() => GetResourceData ("javadoc-copyright.xml"));
1920

2021
public static byte[] JavaSourceJarTestJar => javaSourceJarTestJar.Value;
2122
public static byte[] JavaSourceJarTestSourcesJar => javaSourceJarTestSourcesJar.Value;
2223
public static byte[] JavaSourceJarTestJavadocJar => javaSourceJarTestJavadocJar.Value;
2324
public static byte [] Library1Aar => library1Aar.Value;
2425
public static byte [] Library2Aar => library2Aar.Value;
2526
public static byte [] ApacheHttpClient_cs => apacheHttpClient_cs.Value;
27+
public static byte [] JavadocCopyright => javadocCopyright.Value;
2628

2729
static byte[] GetResourceData (string name)
2830
{

0 commit comments

Comments
 (0)