Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f55941e authored by Tobias Thierer's avatar Tobias Thierer
Browse files

Refactoring: Rewrite links in Metalava instead of carrying patches.

Another CL in this topic introduces the metalava feature flag
--replace-documentation <ancestor java packages> <regex> <replacement>
to perform regex replacements in the documentation of some elements.

This CL uses that feature to re-write links in libcore/ojluni/
documentation that previously carried patches.

Since .bp files don't appear to support String literals that are not
(un)escaped, \ and $ occurring in the regexp/replacement parameters
need to be escaped in the .bp file.

Bug: 129765390
Test: Manually checked that this CL topic does not affect the result of
      "make ds-docs offline-sdk-docs"

Change-Id: Idb7366530c4ab255c1348cf48881cf2bde31be1e
parent 8c4ef95c
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -1157,6 +1157,21 @@ metalava_framework_docs_args = "--manifest $(location core/res/AndroidManifest.x
    "--hide HiddenSuperclass --hide DeprecationMismatch --hide UnavailableSymbol " +
    "--hide SdkConstant --hide HiddenTypeParameter --hide Todo --hide Typo "

// http://b/129765390 Rewrite links to "platform" or "technotes" folders
// which are siblings (and thus outside of) {@docRoot}.
//
// We have to escape \ as \\ and $ as $$ here because they get resolved by
// different layers of the build tooling. The arguments are wrapped in '' so
// that the shell doesn't add yet another level of escaping.
metalava_framework_docs_args += " --replace-documentation " +
    // packages whose descendants to apply replacement to (all packages from
    // libcore/ojluni/src/main/java that contribute to documentation).
    "com.sun:java:javax:jdk.net:sun " +
    // regex of the string to replace
    "'(<a\\s+href\\s?=[\\*\\s]*\")(?:(?:\\{@docRoot\\}/\\.\\./)|(?:(?:\\.\\./)+))((?:platform|technotes).+)\">' " +
    // replacement (with $1, $2 backreferences to the regex groups)
    "'$$1https://docs.oracle.com/javase/8/docs/$$2\">' "

stubs_defaults {
    name: "framework-doc-stubs-default",
    srcs: [