// Copyright (C) 2007 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

//
// Definitions for building the Android core library and associated tests.
//

// The Android core library provides low-level APIs for use by the rest of the
// Android software stack. It is made up of various parts, some of which can be
// found in libcore/ and other parts that can be found in various external/
// directories.
//
// libcore has some sub-directories that follow a common structure:
// e.g. dalvik, dom, harmony-tests, json, jsr166-tests, luni, libart, ojluni,
// support, xml, xmlpull.
//
// The structure of these is generally:
//
//   src/
//       main/               # To be shipped on every device.
//            java/          # Java source for library code.
//            native/        # C/C++ source for library code.
//            resources/     # Support files.
//       test/               # Built only on demand, for testing.
//            java/          # Java source for tests.
//            native/        # C/C++ source for tests (rare).
//            resources/     # Support files.
//
// All subdirectories are optional.

build = [
    "openjdk_java_files.bp",
    "non_openjdk_java_files.bp",
]

// The Java files and their associated resources.
filegroup {
    name: "core-luni-resources",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "luni/src/main/java/",
    srcs: [
        "luni/src/main/java/java/util/logging/logging.properties",
        "luni/src/main/java/java/security/security.properties",
    ],
}

filegroup {
    name: "core-ojluni-resources",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "ojluni/src/main/resources/",
    srcs: [
        "ojluni/src/main/resources/**/*",
    ],
}

core_resources = [
    ":core-luni-resources",
    ":core-ojluni-resources",
]

// The source files that go into core-oj.
filegroup {
    name: "core_oj_java_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [":openjdk_java_files"],
}

// http://b/129765390, http://b/188966706
// 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.
rewrite_openjdk_doc_links = "sed -E 's" +
    "!(\\{@docRoot\\}/\\.\\./|[./]+)((platform|technotes).+)\">" +
    "!https://docs.oracle.com/javase/8/docs/\\2\">!' " +
    "$(in) " +
    "| sed -E 's" + // Android doesn't have java.base in the API docs
    "!(\\{@docRoot\\}/)(java\\.base/)(.+)\">" +
    "!\\1reference/\\3\">!' " +
    "| sed -E 's" +
    "!(\\{@docRoot\\}/\\.\\./)(specs/.+)\">" +
    "!https://docs.oracle.com/en/java/javase/17/docs/\\2\">!' " +
    " > $(out) " +
    "&& ! grep '{@docRoot}/../' $(out)" // exit with 1 if "{@docRoot}/../" still exists.

// OpenJDK source is not annotated with @hide so we need this separate
// filegroup for just the parts that contribute to the API.
gensrcs {
    name: "core_oj_api_files",
    cmd: rewrite_openjdk_doc_links,
    srcs: [":openjdk_javadoc_files"],
    output_extension: "java",
}

// The source files that go into core-libart.l
filegroup {
    name: "core_libart_java_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [
        ":non_openjdk_java_files",
    ],
}

// Some parts of libart are not annotated with @hide so we need this separate
// filegroup for just the parts that contribute to the API.
filegroup {
    name: "core_libart_api_files",
    srcs: [
        ":non_openjdk_javadoc_files",
    ],
}

// The set of files for the ART module that contribute to one or more API
// surfaces. This includes files that are in the public API as well as those
// that are not but which have been marked up with @hide plus one or more of
// the API defining annotations.
//
// Some source files in :core_oj_api_files and :openjdk_mmodule_extra_files are
// annotated by applying annotations to the .annotated.java stubs files in
// ojluni/annotated/mmodules and rather than in the original source. See the comments
// in openjdk_java_files.bp for more details.
filegroup {
    name: "art_module_api_files",
    visibility: [
        "//libcore:__subpackages__",
    ],
    srcs: [
        ":apache-xml_api_files",
        ":bouncycastle_java_files",
        ":core_oj_api_files",
        ":core_libart_api_files",
        ":okhttp_api_files",
        ":openjdk_mmodule_extra_files",
    ],
}

java_defaults {
    name: "libcore_java_defaults",
    visibility: [
        "//libcore:__subpackages__",
    ],
    javacflags: [
        //"-Xlint:all",
        //"-Xlint:-serial,-deprecation,-unchecked",
    ],
    dxflags: [
        "--android-platform-build",
        "--core-library",
    ],
    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF", // Ignore missing @Override.
            "-Xep:ConstantOverflow:WARN", // Known constant overflow in SplittableRandom
            "-Xep:UnicodeInCode:WARN", // XML parser uses line feeds in whitespace
            "-Xep:ReturnValueIgnored:WARN",
            "-Xep:HashtableContains:WARN",
            "-Xep:ComparableType:WARN",
            "-Xep:IdentityBinaryExpression:WARN",
            "-Xep:BoxedPrimitiveEquality:WARN",
            "-Xep:EmptyTopLevelDeclaration:WARN",
            "-Xep:GetClassOnClass:WARN",
            "-Xep:NullableOnContainingClass:WARN",
            "-Xep:GetClassOnAnnotation:WARN",
        ],
    },
    lint: {
        warning_checks: [
            "SuspiciousIndentation",
            "NewApi",
        ],
    },
    min_sdk_version: "31",
}

//
// Build for the target (device).
//

// A target used to bootstrap compilation for the core library.
//
// See core-all-system-modules for more details.
java_library {
    name: "core-all",
    defaults: ["libcore_java_defaults"],

    srcs: [
        // Use the source code for the I18N module intra core API as using the
        // compiled version does not work due to limitations in either soong or the javac
        // toolchain. See http://b/142056316 for more details.
        ":i18n.module.intra.core.api{.public.stubs.source}",
        ":core_oj_java_files",
        ":core_libart_java_files",
        // framework-api-annotations contain API annotations, e.g. @SystemApi.
        ":framework-api-annotations",
        ":openjdk_lambda_stub_files",
        ":app-compat-annotations-source",

        // Use the okhttp source too to allow libcore code to reference it
        // directly.
        ":okhttp_impl_files",
    ],

    sdk_version: "none",
    system_modules: "none",
    patch_module: "java.base",
    openjdk9: {
        srcs: ["luni/src/module/java/module-info.java"],
    },

    java_resources: core_resources,

    installable: false,

    plugins: [
        "compat-changeid-annotation-processor",
        "unsupportedappusage-annotation-processor",
    ],
    libs: [
        "conscrypt.module.intra.core.api",
    ],
}

platform_compat_config {
    name: "libcore-platform-compat-config",
    src: ":core-all",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
    ],
}

// A system modules definition for use by core library targets only. It only
// contains the core-all jar, which contains the classes that end up in core-oj,
// core-libart as well as the lambda stubs needed to compile Java lambda code.
// It does not contain other parts of core library like conscrypt, bouncycastle,
// etc. This system_modules definition is used to bootstrap compilation for
// other parts of the core library like core-oj, core-libart, conscrypt,
// bouncycastle, etc. It is also used to compile Libcore tests, as well as ART
// Java tests (run-tests).
java_system_modules {
    name: "core-all-system-modules",

    // Visibility is deliberately restricted to a small set of build modules that
    // the core library team control.
    visibility: [
        "//art/test:__subpackages__",
        "//external/apache-harmony:__subpackages__",
        "//external/apache-xml",
        "//external/okhttp",
        "//libcore:__subpackages__",
    ],

    libs: ["core-all"],
}

// Contains the parts of core library associated with OpenJDK.
java_library {
    name: "core-oj",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
        "//external/wycheproof",
        "//libcore/benchmarks",
        "//packages/modules/ArtPrebuilt",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
    defaults: ["libcore_java_defaults"],
    installable: true,
    hostdex: true,

    srcs: [":core_oj_java_files"],
    java_resources: core_resources,

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    jacoco: {
        exclude_filter: [
            "java.lang.Class",
            "java.lang.Long",
            "java.lang.Number",
            "java.lang.Object",
            "java.lang.String",
            "java.lang.invoke.MethodHandle",
            "java.lang.invoke.VarHandle",
            "java.lang.ref.Reference",
            "java.lang.reflect.Proxy",
            "java.util.AbstractMap",
            "java.util.HashMap",
            "java.util.HashMap$Node",
            "java.util.Map",
        ],
    },

    hiddenapi_additional_annotations: [
        "core-oj-hiddenapi-annotations",
    ],

    errorprone: {
        javacflags: [
            "-Xep:ReturnValueIgnored:WARN",
            "-Xep:HashtableContains:WARN",
            "-Xep:ComparableType:WARN",
            "-Xep:IdentityBinaryExpression:WARN",
            "-Xep:BoxedPrimitiveEquality:WARN",
            "-Xep:EmptyTopLevelDeclaration:WARN",
            "-Xep:GetClassOnClass:WARN",
        ],
    },
}

// Contains parts of core library not associated with OpenJDK. Contains not
// just java.*, javax.* code but also android.system.* and various internal
// libcore.* packages.
java_library {
    name: "core-libart",
    visibility: [
        "//art/build/apex",
        "//art/build/sdk",
        "//external/wycheproof",
        "//libcore/benchmarks",
        "//packages/modules/ArtPrebuilt",
    ],
    apex_available: [
        "com.android.art",
        "com.android.art.debug",
    ],
    defaults: ["libcore_java_defaults"],
    installable: true,
    hostdex: true,

    srcs: [":core_libart_java_files"],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    jacoco: {
        exclude_filter: [
            "java.lang.DexCache",
            "dalvik.system.ClassExt",
        ],
    },

    target: {
        hostdex: {
            required: [
                // Files used to simulate the /system, runtime APEX and tzdata
                // APEX dir structure on host.
                "icu_tzdata.dat_host_tzdata_apex",
                "tzdata_host",
                "tzdata_host_tzdata_apex",
                "tzlookup.xml_host_tzdata_apex",
                "tz_version_host",
                "tz_version_host_tzdata_apex",
            ],
        },
        darwin: {
            enabled: false,
        },
    },

    errorprone: {
        javacflags: [
            "-Xep:EmptyTopLevelDeclaration:WARN",
            "-Xep:GetClassOnAnnotation:WARN",
            "-Xep:NullableOnContainingClass:WARN",
        ],
    },
}

// Java library for use on host, e.g. by robolectric or layoutlib.
java_library {
    name: "core-libart-for-host",
    visibility: [
        "//art/build/sdk",
        "//external/robolectric",
        "//external/robolectric-shadows",
        "//frameworks/layoutlib",
    ],
    static_libs: [
        "core-libart",
    ],
    sdk_version: "none",
    system_modules: "none",
}

// Provided solely to contribute information about which hidden parts of the
// core-oj API are used by apps.
//
// Usually, e.g. for core-libart, the UnsupportedAppUsage annotations are
// added to the source that is compiled directly into the bootjar and the build
// system extracts the information about UnsupportedAppUsage directly from
// there.
//
// This approach of having separate annotated source and a separate build
// target was taken for ojluni to avoid having to maintain local patches in the
// ojluni source for UnsupportedAppUsage annotations as that would make it more
// difficult to pull down changes from upstream.
//
java_library {
    name: "core-oj-hiddenapi-annotations",
    // Do not allow this to be accessed from outside this directory.
    visibility: ["//libcore:__subpackages__"],
    defaults: ["libcore_java_defaults"],
    compile_dex: true,

    srcs: [":openjdk_hiddenapi_javadoc_files"],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",
    plugins: ["unsupportedappusage-annotation-processor"],

    errorprone: {
        javacflags: [
            "-Xep:ComparableType:WARN",
        ],
    },
}

java_defaults {
    name: "core_lambda_stubs_defaults",
    defaults: ["libcore_java_defaults"],
    hostdex: true,

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",

    installable: false,
    include_srcs: true,
}

// Creates a jar that exists to satisfy javac when compiling source code that
// contains lambdas. This contains all classes / methods required by javac
// when generating invoke-dynamic lambda implementation code, even those that
// are also in the public SDK API from API level 26 onwards.
java_library {
    name: "core-lambda-stubs",
    visibility: [
        "//visibility:public",
    ],
    defaults: ["core_lambda_stubs_defaults"],
    srcs: [
        ":openjdk_lambda_stub_files",
        ":openjdk_lambda_duplicate_stub_files",
    ],
    // This jar is packaged as part of the SDK, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

// An alternative to core-lambda-stubs that omits openjdk_lambda_duplicate_stub_files
// because those classes are also part of the core library public SDK API
// (since API level 26).
java_library {
    name: "core-lambda-stubs-for-system-modules",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
        "//frameworks/base",
        "//frameworks/base/api",
    ],
    defaults: ["core_lambda_stubs_defaults"],
    srcs: [
        ":openjdk_lambda_stub_files",
    ],
    include_srcs: true,
    // This jar is packaged as part of the SDK, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

// This is an empty jar that exists for backwards compatibility with T (and below).
// Historically, it existed to satisfy javac when compiling source code that
// contains @Generated annotations.
// This is no longer necessary since @Generated was added to ART's Public API
// surface in U.
java_library {
    name: "core-generated-annotation-stubs",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
        "//frameworks/base",
        "//frameworks/base/api",
    ],
    defaults: ["libcore_java_defaults"],
    srcs: [
    ],
    hostdex: true,
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    patch_module: "java.base",
    installable: false,
    include_srcs: true,
    // This jar is packaged as part of the SDK, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

// Builds libcore test rules
java_library_static {
    name: "core-test-rules",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/core/runner-axt",
        "//cts/tests/tests/util",
        "//external/conscrypt",
        "//external/conscrypt/apex/tests",
        "//frameworks/base/location/tests/locationtests",
        "//frameworks/base/core/tests/coretests",
        "//frameworks/base/wifi/tests",
        "//libcore/ojluni/src/test",
        "//libcore/luni/src/test/java9compatibility",
        "//packages/modules/Wifi/framework/tests",
    ],
    hostdex: true,
    srcs: [
        "dalvik/test-rules/src/main/**/*.java",
        "test-rules/src/main/**/*.java",
    ],
    static_libs: [
        "junit",
        "platform-test-annotations",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
}

// Builds platform_compat test rules
java_library_static {
    name: "core-compat-test-rules",
    visibility: [
        "//art/build/sdk",
        "//frameworks/base/tests/PlatformCompatGating/test-rules",
    ],
    srcs: [
        "luni/src/main/java/android/compat/**/*.java",
        "test-rules/src/platform_compat/**/*.java",
        "luni/src/main/java/libcore/api/CorePlatformApi.java",
        "luni/src/main/java/libcore/api/IntraCoreApi.java",
    ],
    static_libs: [
        "junit",
        "guava",
    ],
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    // This builds classes that are in the java.base Java module:
    patch_module: "java.base",
    hostdex: true,

    errorprone: {
        javacflags: [
            "-Xep:EmptyTopLevelDeclaration:WARN",
            "-Xep:GetClassOnAnnotation:WARN",
        ],
    },
}

// Builds the core-tests-support library used by various tests.
java_library_static {
    name: "core-tests-support",
    visibility: [
        "//art/build/sdk",
        "//cts/apps/CtsVerifier",
        "//cts/tests/tests/keystore",
        "//cts/tests/tests/net",
        "//cts/hostsidetests/statsdatom/apps/statsdapp",
        "//cts/tests/tests/net/api23Test",
        "//external/apache-harmony",
        "//frameworks/base/core/tests/coretests",
        "//frameworks/base/apct-tests/perftests/core",
        "//libcore/benchmarks",
        "//packages/apps/KeyChain/tests",
        "//system/timezone/distro/core",
        "//packages/modules/Connectivity/tests:__subpackages__",
    ],
    hostdex: true,
    srcs: ["support/src/test/java/**/*.java"],

    sdk_version: "core_platform",
    // Make sure that this will be added to the sdk snapshot for S.
    min_sdk_version: "S",
    libs: ["junit"],
    static_libs: [
        "bouncycastle-unbundled",
        "bouncycastle-bcpkix-unbundled",
        "bouncycastle-ocsp-unbundled",
    ],
    errorprone: {
        javacflags: [
            "-Xep:BoxedPrimitiveEquality:WARN",
        ],
    },
}

// Used to generate the prebuilt file luni/src/test/resources/prebuilt-dex-from-java.dex.
// The reason why we pre-build this dex file is to stabilize the test result from the
// dexer / javac / other toolchains change.
// Regenerate the prebuilt file with the following command:
//   m core-tests-prebuilt-dex-from-java &&
//   unzip out/soong/.intermediates/libcore/core-tests-prebuilt-dex-from-java/android_common/dex/core-tests-prebuilt-dex-from-java.jar classes.dex \
//   -d libcore/luni/src/test/resources/ && mv libcore/luni/src/test/resources/classes.dex libcore/luni/src/test/resources/prebuilt-dex-from-java.dex
java_test {
    name: "core-tests-prebuilt-dex-from-java",
    srcs: ["luni/src/test/dex_src/**/*.java"],
    compile_dex: true,
    defaults: ["libcore_java_defaults"],
    sdk_version: "none",
    system_modules: "core-all-system-modules",

    visibility: [
        "//libcore:__subpackages__",
    ],
}

// Builds the jsr166-tests library.
java_test {
    name: "jsr166-tests",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/libcore/jsr166",
    ],
    srcs: ["jsr166-tests/src/test/java/**/*.java"],
    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "junit",
    ],
    errorprone: {
        javacflags: [
            "-Xep:DoNotCall:OFF",
            "-Xep:ModifyingCollectionWithItself:WARN",
            "-Xep:ReturnValueIgnored:WARN",
            "-Xep:HashtableContains:WARN",
        ],
    },
}

// A filegroup that provides access to a source file for a toolchain test that
// checks Java 9 language features are handled properly by JarJar.
filegroup {
    name: "core-java-9-language-features-source",
    srcs: ["luni/src/main/java/libcore/internal/Java9LanguageFeatures.java"],
    visibility: ["//libcore/luni/src/test/java9language"],
}

// A filegroup that provides access to a source file for a toolchain test that
// checks Java 11 language features are handled properly by JarJar.
filegroup {
    name: "core-java-11-language-features-source",
    srcs: ["luni/src/main/java/libcore/internal/Java11LanguageFeatures.java"],
    visibility: ["//libcore/luni/src/test/java11language"],
}

// A filegroup that provides access to a source file for a toolchain test that
// checks Java 17 language features are handled properly by JarJar.
filegroup {
    name: "core-java-17-language-features-source",
    srcs: ["luni/src/main/java/libcore/internal/Java17LanguageFeatures.java"],
    visibility: ["//libcore/luni/src/test/java17language"],
}

genrule {
    name: "core-tests-smali-dex",
    srcs: ["luni/src/test/java/**/*.smali"],
    cmd: "$(location android-smali) ass --api 28 -o $(out) $(in)",
    out: ["core-tests-smali.dex"],
    tools: ["android-smali"],
}

filegroup {
    name: "core-ojtests-javax-resources",
    // Set path to keep the resources and .class files in the same directory in the jar file.
    path: "ojluni/src",
    srcs: ["ojluni/src/test/javax/**/*"],
    exclude_srcs: ["ojluni/src/test/javax/**/*.java"],
}

filegroup {
    name: "core-ojtests-java-resources",
    // Set path to keep the resources and .class files in the same directory in the jar file.
    path: "ojluni/src",
    srcs: [
        "ojluni/src/test/java/util/regex/**/*",
        "ojluni/src/test/java/util/Base64/**/*",
        "ojluni/src/test/java/util/Scanner/**/*",
        "ojluni/src/test/java/util/Properties/**/*",
    ],
    exclude_srcs: ["ojluni/src/test/java/**/*.java"],
}

// Builds the core-tests library.
java_test {
    name: "core-tests",
    visibility: [
        "//art/build/sdk",
        "//cts/tests/libcore/luni",
    ],
    defaults: ["libcore_java_defaults"],
    hostdex: true,
    srcs: [
        "dalvik/src/test/java/**/*.java",
        "dalvik/test-rules/src/test/java/**/*.java",
        "dom/src/test/java/**/*.java",
        "harmony-tests/src/test/java/**/*.java",
        "json/src/test/java/**/*.java",
        "luni/src/test/java/**/*.java",
        "test-rules/src/test/java/**/*.java",
        "xml/src/test/java/**/*.java",
    ],
    exclude_srcs: [
        "harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/*.java",
        "luni/src/test/java/libcore/java/util/zip/Zip64Test.java",
        "luni/src/test/java/libcore/java/util/zip/Zip64FileTest.java",
        "luni/src/test/java/libcore/javax/crypto/**/*.java",
        "luni/src/test/java/libcore/javax/net/ssl/**/*.java",
        "luni/src/test/java/org/apache/harmony/crypto/**/*.java",
    ],

    java_resource_dirs: [
        "*/src/test/java",
        "*/src/test/resources",
    ],
    exclude_java_resource_dirs: [
        "ojluni/src/test/java",
        "ojluni/src/test/javax",
        "ojluni/src/test/resources",
    ],

    java_resources: [
        ":annotations-test",
        ":filesystemstest",
        ":parameter-metadata-test",
        ":core-tests-smali-dex",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",
    libs: [
        "okhttp",
        "bouncycastle",
    ],

    static_libs: [
        "apache-xml-tests",
        "core-compat-test-rules",
        "core-java-9-compatibility-tests",
        "core-java-9-language-tests",
        "core-java-11-language-tests",
        "core-java-17-language-tests",
        "core-test-rules",
        "core-tests-support",
        "junit-params",
        "libcore-crypto-tests",
        "mockftpserver",
        "mockito-target",
        "mockwebserver",
        "nist-pkix-tests",
        "slf4j-jdk14",
        "sqlite-jdbc",
    ],

    errorprone: {
        javacflags: [
            "-Xep:TryFailThrowable:ERROR",
            "-Xep:ComparisonOutOfRange:ERROR",
            "-Xep:DoNotCall:OFF",
            "-Xep:ArrayToString:WARN",
            "-Xep:SelfEquals:WARN",
            "-Xep:SelfComparison:WARN",
            "-Xep:ReturnValueIgnored:WARN",
            "-Xep:BoxedPrimitiveEquality:WARN",
            "-Xep:SizeGreaterThanOrEqualsZero:WARN",
            "-Xep:MisusedDayOfYear:WARN",
            "-Xep:InvalidTimeZoneID:WARN",
            "-Xep:CollectionToArraySafeParameter:WARN",
            "-Xep:ModifyingCollectionWithItself:WARN",
            "-Xep:ComparableType:WARN",
            "-Xep:UnusedCollectionModifiedInPlace:WARN",
            "-Xep:HashtableContains:WARN",
            "-Xep:DoubleBraceInitialization:WARN",
            "-Xep:RandomModInteger:WARN",
            "-Xep:IdentityBinaryExpression:WARN",
            "-Xep:UnnecessaryStringBuilder:OFF", // https://github.com/google/error-prone/issues/4195
            "-Xep:InvalidPatternSyntax:WARN",
        ],
    },

    test_config: "AndroidTest-core-tests.xml",
}

java_test {
    name: "libcore-crypto-tests",

    visibility: [
        "//art/build/sdk",
        "//external/conscrypt/apex/tests",
    ],
    exclude_srcs: [
        "luni/src/test/java/libcore/javax/crypto/CipherTest.java",
        "luni/src/test/java/libcore/javax/crypto/spec/ChaCha20ParameterSpecTest.java",
    ],
    srcs: [
        "harmony-tests/src/test/java/org/apache/harmony/tests/javax/net/ssl/*.java",
        "luni/src/test/java/libcore/javax/crypto/**/*.java",
        "luni/src/test/java/libcore/javax/net/ssl/**/*.java",
        "luni/src/test/java/libcore/libcore/util/SerializationTester.java",
        "luni/src/test/java/libcore/sun/security/**/*.java",
        "luni/src/test/java/org/apache/harmony/crypto/**/*.java",
    ],

    java_resource_dirs: [
        "luni/src/test/java",
        "luni/src/test/resources",
        "support/src/test/java",
    ],

    sdk_version: "none",
    system_modules: "core-all-system-modules",

    static_libs: [
        "core-test-rules",
        "core-tests-support",
        "junit-params",
        "mockito-target",
    ],

    errorprone: {
        javacflags: [
            "-Xep:ArrayToString:WARN",
            "-Xep:ReturnValueIgnored:WARN",
        ],
    },
}

java_genrule {
    name: "libcore-non-cts-tests-txt",
    host_supported: true,
    srcs: [
        ":apache-harmony-tests{.jar}",
        ":conscrypt-tests{.jar}",
        ":core-tests{.jar}",
        ":core-ojtests{.jar}",
    ],
    tools: ["non-cts-json-generator"],
    out: ["libcore-non-cts-tests.txt"],
    cmd: "$(location non-cts-json-generator) $(in) > $(out)",
}

// Exports annotated stubs source files in ojluni/annotations/sdk to make them
// available to metalava. Used for nullability annotations in OpenJDK source.
droiddoc_exported_dir {
    name: "ojluni-annotated-sdk-stubs",
    visibility: [
        "//libcore:__subpackages__",
    ],
    path: "ojluni/annotations/sdk",
}

droiddoc_exported_dir {
    name: "ojluni-annotated-nullability-stubs",
    path: "ojluni/annotations/sdk/nullability",
}

// Exports annotated stubs source files in ojluni/annotations/mmodules to make
// them available to metalava. Used for core platform API and intra-core API
// annotations in OpenJDK source.
droiddoc_exported_dir {
    name: "ojluni-annotated-mmodule-stubs",
    visibility: [
        "//libcore/mmodules/intracoreapi",
    ],
    path: "ojluni/annotations/mmodule",
}

droiddoc_exported_dir {
    name: "ojluni-annotated-flagged-stubs",
    path: "ojluni/annotations/flagged_api",
    visibility: ["//visibility:private"],
}

// A file containing the list of tags that are "known" to us from the OpenJdk
// source code and so should not cause an error or warning.
filegroup {
    name: "known-oj-tags",
    visibility: [
        "//frameworks/base",
        "//frameworks/base/api",
    ],
    srcs: [
        "known_oj_tags.txt",
    ],
}

// A special set of stubs containing the minimal set of self consistent
// classes for which a system module can be created. Every system module must
// contain the java.lang classes so the set was constructed by starting with
// the java.lang classes and then adding their transitive dependencies without
// splitting packages. So, if one class from a package is used then all classes
// in that package were added to the set.
//
// Needed for java-current-stubs-system-modules.
droidstubs {
    name: "java-current-stubs-source",
    srcs: [
        ":core_oj_api_files",
        ":core_libart_api_files",
    ],
    installable: false,
    sdk_version: "none",
    system_modules: "none",

    args: "--stub-packages java.*:javax.*:org.w3c.dom.*:org.xml.sax.*",
}

java_library {
    name: "java.current.stubs",
    srcs: [":java-current-stubs-source"],
    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF",
        ],
    },
    patch_module: "java.base",
    sdk_version: "none",
    system_modules: "none",
}

// A special set of system modules needed to build art.module.public.api
java_system_modules {
    name: "java-current-stubs-system-modules",
    libs: [
        // Minimal set of classes required for a system module.
        "java.current.stubs",
    ],
}

java_library {
    name: "framework-api-annotations-lib",
    srcs: [":framework-api-annotations"],
    sdk_version: "none",
    patch_module: "java.base",
    system_modules: "core-all-system-modules",
    installable: false,
    visibility: [
        "//visibility:private",
    ],
}

// Define the public SDK API provided by the ART module.
java_sdk_library {
    name: "art.module.public.api",
    visibility: [
        "//art/build/sdk",
        "//build/soong/java/core-libraries",
        "//frameworks/base",
        "//frameworks/base/api",

        // DO NOT REMOVE: Legacy visibility, needed for snapshots that are
        // generated for the S build.
        "//libcore/mmodules/core_platform_api",
    ],
    srcs: [
        ":core_oj_api_files",
        ":core_libart_api_files",

        // Some source files in :core_oj_api_files and :openjdk_mmodule_extra_files are
        // annotated by applying annotations to the .annotated.java stubs files in
        // ojluni/annotated/mmodules and rather than in the original source. See the comments
        // in openjdk_java_files.bp for more details.
        ":openjdk_mmodule_extra_files",
        ":okhttp_api_files",
    ],
    api_srcs: [
        ":openjdk_javadoc_only_files",
    ],
    libs: [
        // Put framework-api-annotations into libs to avoid exposing the definition of framework's
        // annotations from libcore (wrong place) instead of framework (correct place).
        "framework-api-annotations-lib",
        // Provide access to I18N constants that are used to initialize
        // constants in the public API. i.e. to allow the value of the
        // java.text.CollectionElementIterator.NULLORDER to be initialized from
        // android.icu.text.CollationElementIterator.NULLORDER.
        "i18n.module.intra.core.api.stubs",
    ],
    stub_only_static_libs: ["notices-for-stubs-jar"],

    // Make dex jars for the stubs available for use by hiddenapi processing.
    compile_dex: true,

    public: {
        enabled: true,
    },
    system: {
        enabled: true,
    },
    module_lib: {
        enabled: true,
    },

    api_only: true,
    droiddoc_options: [
        "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.* ",
        "--hide-annotation libcore.api.Hide",
    ],

    merge_inclusion_annotations_dirs: [
        "ojluni-annotated-flagged-stubs",
        "ojluni-annotated-mmodule-stubs",
    ],
    // Emit nullability annotations from the source to the stub files.
    annotations_enabled: true,

    merge_annotations_dirs: [
        "metalava-manual",
        "ojluni-annotated-sdk-stubs",
    ],

    doctag_files: [
        ":known-oj-tags",
    ],

    errorprone: {
        javacflags: [
            "-Xep:MissingOverride:OFF",
        ],
    },
    patch_module: "java.base",
    sdk_version: "none",
    system_modules: "java-current-stubs-system-modules",
    // The base name for the artifacts that are automatically published to the
    // dist and which end up in one of the sub-directories of prebuilts/sdk.
    // As long as this matches the name of the artifacts in prebuilts/sdk then
    // the API will be checked for compatibility against the latest released
    // version of the API.
    dist_stem: "art",
    dist_group: "android",
}

// Target for validating nullability annotations for correctness and
// completeness. To check that there are no nullability errors:
//   m art-module-public-api-stubs-nullability-validation
// To check that there are only the expected nullability warnings:
//   m art-module-public-api-stubs-nullability-validation-check-nullability-warnings
// (If that check fails, it will provide instructions on how to proceed,
// including the command to run to update the expected warnings file.)
droidstubs {
    name: "art-module-public-api-stubs-nullability-validation",
    srcs: [":art_module_api_files"],
    installable: false,
    sdk_version: "none",
    system_modules: "none",
    annotations_enabled: true,
    args: "--hide-annotation libcore.api.Hide " +
        "--validate-nullability-from-merged-stubs ",
    merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"],
    merge_annotations_dirs: [
        // N.B. Stubs in this filegroup will be validated:
        "ojluni-annotated-nullability-stubs",
    ],
    // The list of classes which have nullability annotations included in the source.
    // (This is in addition to those which have annotations in the merged stubs.)
    validate_nullability_from_list: "nullability_annotated_classes.txt",
    // The expected set of warnings about missing annotations:
    check_nullability_warnings: "nullability_warnings.txt",
}

// A special set of system modules for building the following library for use
// in the art-module-public-api-system-modules.
java_system_modules {
    name: "api-annotations-system-modules",
    libs: [
        "art.module.public.api.stubs",
    ],
}

// A library that contains annotations that define API surfaces (core
// platform, intra core and the hidden API) along with some supporting
// constants. The annotations are source only and do not introduce any runtime
// dependencies. Specially built for use in system modules definitions to
// avoid introducing compile time cycles.
java_library {
    name: "art.module.api.annotations.for.system.modules",
    visibility: [
        "//build/soong/java/core-libraries",
    ],
    srcs: [
        ":api_surface_annotation_files",
    ],

    installable: false,
    sdk_version: "none",
    system_modules: "api-annotations-system-modules",
    patch_module: "java.base",
    // This jar is packaged as part of the SDK, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

// Create a library containing the api surface annotations, built against
// core_current for use by the annotation processor in frameworks/base.
java_library {
    name: "art.module.api.annotations",
    visibility: [
        "//art/build/sdk",
        "//external/icu/android_icu4j",
        "//frameworks/base",
        "//frameworks/base/api",
    ],
    host_supported: true,
    srcs: [
        ":api_surface_annotation_files",
    ],
    sdk_version: "core_current",
    // Make sure that this will be added to the sdk snapshot for S.
    min_sdk_version: "S",
    // This jar is packaged as part of the ART module host exports, use -target 8 so that it works
    // with old JDKs.
    java_version: "1.8",
}

java_api_contribution {
    name: "art-module-public-api-public-stubs",
    api_surface: "public",
    api_file: "api/current.txt",
    visibility: [
        "//build/orchestrator/apis",
    ],
}

java_api_contribution {
    name: "art-module-public-api-module-lib-stubs",
    api_surface: "module-lib",
    api_file: "api/module-lib-current.txt",
    visibility: [
        "//build/orchestrator/apis",
    ],
}

java_api_contribution {
    name: "art-module-public-api-system-stubs",
    api_surface: "system",
    api_file: "api/system-current.txt",
    visibility: [
        "//build/orchestrator/apis",
    ],
}
