// Copyright (C) 2010 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.

// *** THIS PACKAGE HAS SPECIAL LICENSING CONDITIONS.  PLEASE
//     CONSULT THE OWNERS AND opensource-licensing@google.com BEFORE
//     DEPENDING ON IT IN YOUR PROJECT. ***
package {
    // See: http://go/android-license-faq
    // A large-scale-change added 'default_applicable_licenses' to import
    // all of the 'license_kinds' from "prebuilts_tools_license"
    // to get the below license kinds:
    //   SPDX-license-identifier-Apache-2.0
    //   SPDX-license-identifier-BSD
    //   SPDX-license-identifier-CC-BY
    //   SPDX-license-identifier-CDDL
    //   SPDX-license-identifier-CDDL-1.0
    //   SPDX-license-identifier-CPL-1.0
    //   SPDX-license-identifier-EPL
    //   SPDX-license-identifier-GPL
    //   SPDX-license-identifier-GPL-2.0
    //   SPDX-license-identifier-ICU
    //   SPDX-license-identifier-ISC
    //   SPDX-license-identifier-LGPL
    //   SPDX-license-identifier-LGPL-2.1
    //   SPDX-license-identifier-LGPL-3.0
    //   SPDX-license-identifier-MIT
    //   SPDX-license-identifier-MPL
    //   SPDX-license-identifier-MPL-1.0
    //   SPDX-license-identifier-MPL-1.1
    //   SPDX-license-identifier-MPL-2.0
    //   SPDX-license-identifier-Unicode-DFS
    //   SPDX-license-identifier-Unlicense
    //   SPDX-license-identifier-W3C
    //   legacy_by_exception_only (by exception only)
    //   legacy_notice
    //   legacy_unencumbered
    default_applicable_licenses: ["prebuilts_tools_license"],
}

java_import {
    name: "byte-buddy-prebuilt-jar",
    jars: ["repository/net/bytebuddy/byte-buddy/1.6.5/byte-buddy-1.6.5.jar"],
    sdk_version: "current",
}

java_import {
    name: "diffutils-prebuilt-jar",
    jars: ["repository/com/googlecode/java-diff-utils/diffutils/1.3.0/diffutils-1.3.0.jar"],
    sdk_version: "current",
    host_supported: true,
}

java_import_host {
    name: "google-auth-library-credentials-0.13.0",
    jars: ["repository/com/google/auth/google-auth-library-credentials/0.13.0/google-auth-library-credentials-0.13.0.jar"],
}

java_import_host {
    name: "google-auth-library-oauth2-http-0.13.0",
    jars: ["repository/com/google/auth/google-auth-library-oauth2-http/0.13.0/google-auth-library-oauth2-http-0.13.0.jar"],
}

java_import_host {
    name: "google-http-client-jackson2-1.28.0",
    jars: ["repository/com/google/http-client/google-http-client-jackson2/1.28.0/google-http-client-jackson2-1.28.0.jar"],
}

java_import {
    name: "gson-prebuilt-jar",
    jars: ["repository/com/google/code/gson/gson/2.8.0/gson-2.8.0.jar"],
    sdk_version: "current",
    host_supported: true,
}

java_import {
    name: "guava-listenablefuture-prebuilt-jar",
    jars: ["repository/com/google/guava/guava/listenablefuture/1.0/listenablefuture-1.0.jar"],
    sdk_version: "current",
    apex_available: [
        "//apex_available:platform",
        "//apex_available:anyapex",
    ],
}

java_import {
    name: "mockito2-prebuilt-jar",
    jars: ["repository/org/mockito/mockito-core/2.7.6/mockito-core-2.7.6.jar"],
    sdk_version: "current",
}

java_import {
    name: "objenesis-prebuilt-jar",
    jars: ["repository/org/objenesis/objenesis/2.5/objenesis-2.5.jar"],
}

java_import {
    name: "truth-prebuilt-jar",
    jars: ["repository/com/google/truth/truth/1.0.1/truth-1.0.1.jar"],
    sdk_version: "current",
    host_supported: true,
}

// TODO: remove in favor of external/javapoet
java_import_host {
    name: "javapoet-prebuilt-jar",
    jars: ["repository/com/squareup/javapoet/1.8.0/javapoet-1.8.0.jar"],
}

java_import_host {
    name: "protobuf-java-util-prebuilt-jar",
    jars: ["repository/com/google/protobuf/protobuf-java-util/3.0.2/protobuf-java-util-3.0.2.jar"],
}

java_import_host {
    name: "grpc-netty-shaded-1.16.1-jar",
    jars: ["repository/io/grpc/grpc-netty-shaded/1.16.1/grpc-netty-shaded-1.16.1.jar"],
    visibility: ["//external/grpc-grpc-java/netty/shaded"],
}

java_import_host {
    name: "trove-prebuilt",
    jars: ["repository/net/sf/trove4j/trove4j/1.1/trove4j-1.1.jar"],
}

java_import_host {
    name: "jna-prebuilt",
    jars: ["repository/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"],
}

java_import_host {
    name: "compile-testing-prebuilt",
    jars: ["repository/com/google/testing/compile/compile-testing/0.19/compile-testing-0.19.jar"],
}

// Compatibility wrappers. TODO: Remove.

java_library_host {
    name: "truth-prebuilt-host-jar",
    static_libs: ["truth-prebuilt-jar"],
}

// Combined libraries.

java_library_static {
    name: "mockito-robolectric-prebuilt",
    static_libs: [
        "byte-buddy-prebuilt-jar",
        "mockito2-prebuilt-jar",
        "objenesis-prebuilt-jar",
    ],
    sdk_version: "current",
}

java_library_static {
    name: "truth-prebuilt",
    static_libs: [
        "truth-prebuilt-jar",
        "asm-7.0",
        "diffutils-prebuilt-jar",
        "guava",
    ],
    host_supported: true,
    sdk_version: "current",
}

// Wrapper for the above. TODO: Remove.
java_library_host {
    name: "truth-host-prebuilt",
    static_libs: ["truth-prebuilt"],
}

java_import {
    name: "metalava-tools-common-m2-deps",
    host_supported: true,
    jars: [
        "repository/org/ow2/asm/asm/6.1.1/asm-6.1.1.jar",
        "repository/org/ow2/asm/asm-tree/6.1.1/asm-tree-6.1.1.jar",
        "repository/com/google/guava/guava/23.0/guava-23.0.jar",
        "repository/org/jetbrains/trove4j/trove4j/20160824/trove4j-20160824.jar",
        "repository/javax/xml/bind/jaxb-api/2.2.12-b140109.1041/jaxb-api-2.2.12-b140109.1041.jar",
    ],
}

java_import {
  name: "dokka-tools-common-m2-deps",
  host_supported: true,
  jars: [
    "repository/com/intellij/core-analysis/intellij-core-analysis.jar",
    "repository/org/jetbrains/kotlin/kotlin-compiler/1.3.61-release-180/kotlin-compiler-1.3.61-release-180.jar",
    "repository/com/squareup/okhttp4/okhttp/4.0.0/okhttp-4.0.0-RC1.jar",
    "repository/com/sampullara/cli/1.1.2/cli-parser-1.1.2.jar",
    "repository/ru/yole/jkid/jkid-8fc7f12e1a.jar",
    "repository/com/google/inject/guice/3.0/guice-3.0.jar",
    "repository/org/jetbrains/markdown/0.1.41/markdown-0.1.41.jar",
    "repository/org/jsoup/jsoup/1.8.3/jsoup-1.8.3.jar",
    "repository/kotlinx/html/jvm/0.6.8/kotlinx-html-jvm-0.6.8-google.jar",
    "repository/org/jetbrains/intellij/deps/trove4j/1.0.20181211/trove4j-1.0.20181211.jar",
    "repository/org/jetbrains/kotlin/kotlin-script-runtime/1.3.61-release-180/kotlin-script-runtime-1.3.61-release-180-sources.jar",
    "repository/org/jetbrains/kotlin/kotlin-reflect/1.3.61-release-180/kotlin-reflect-1.3.61-release-180.jar",
    "repository/org/jetbrains/kotlin/kotlin-plugin-ij193/1.3.61-release-180/kotlin-plugin-ij193-1.3.61-release-180.jar",
  ],
}

java_import {
    name: "accessibility-test-framework",
    jars: [
        "repository/com/google/android/apps/common/testing/accessibility/framework/accessibility-test-framework/2.0/accessibility-test-framework-2.0.jar",
    ],
}

java_import {
    name: "javawriter",
    jars: [
        "repository/com/squareup/javawriter/2.1.1/javawriter-2.1.1.jar",
    ],
}

// TODO: remove in favor of kotlinx_metadata_jvm
java_import {
    name: "kotlinx-metadata-jvm",
    jars: ["repository/org/jetbrains/kotlinx/kotlinx-metadata-jvm/0.1.0/kotlinx-metadata-jvm-0.1.0.jar"],
    host_supported: true,
}

java_import {
    name: "antlr4",
    jars: ["repository/org/antlr/antlr4/4.7.2/antlr4-4.7.2.jar"],
    host_supported: true,
}

java_import_host {
    name: "com.google.api.grpc_proto-google-common-protos-prebuilt-jar",
    jars: ["repository/com/google/api/grpc/proto-google-common-protos/1.14.0/proto-google-common-protos-1.14.0.jar"],
}

java_import {
    name: "auto-factory-1.0-beta7",
    jars: ["repository/com/google/auto/factory/auto-factory/1.0-beta7/auto-factory-1.0-beta7.jar"],
    host_supported: true,
}

java_import {
    name: "commons-codec",
    jars: ["repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar"],
    host_supported: true,
}

java_import {
    name: "xerial-sqlite-jdbc",
    jars: ["repository/org/xerial/sqlite-jdbc/3.28.0/sqlite-jdbc-3.28.0.jar"],
    host_supported: true,
}

java_import {
    name: "jetbrains-annotations",
    jars: ["repository/org/jetbrains/annotations/13.0/annotations-13.0.jar"],
    host_supported: true,
}

java_import {
    name: "kotlinx-coroutines-core-nodeps",
    jars: ["repository/org/jetbrains/kotlinx/kotlinx-coroutines-core/1.3.0/kotlinx-coroutines-core-1.3.0.jar"],
}

// TODO: remove in favor of kotlinx_coroutines
java_library_static {
    name: "kotlinx-coroutines-core",
    static_libs: [
        "kotlinx-coroutines-core-nodeps",
        "kotlin-stdlib"
    ],
    sdk_version: "current",
}

java_import {
    name: "kotlinx-coroutines-android-nodeps",
    jars: ["repository/org/jetbrains/kotlinx/kotlinx-coroutines-android/1.3.0/kotlinx-coroutines-android-1.3.0.jar"],
}

// TODO: remove in favor of kotlinx_coroutines_android
java_library_static {
    name: "kotlinx-coroutines-android",
    static_libs: [
        "kotlin-stdlib",
        "kotlinx-coroutines-core",
        "kotlinx-coroutines-android-nodeps"
    ],
    sdk_version: "current",
}

java_import {
    name: "kotlinx-coroutines-core-jvm",
    jars: ["repository/org/jetbrains/kotlinx/kotlinx-coroutines-core-jvm/1.4.2/kotlinx-coroutines-core-jvm-1.4.2.jar"],
}

java_import_host {
    name: "javax-annotation-api-prebuilt-host-jar",
    jars: ["repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar"],
}

build = ["robolectric.bp"]

java_import_host {
    name: "protobuf-lite",
    jars: ["repository/com/google/protobuf/protobuf-lite/3.0.1/protobuf-lite-3.0.1.jar"],
}

java_import_host {
    name: "jsoup-1.6.3",
    jars: ["repository/org/jsoup/jsoup/1.6.3/jsoup-1.6.3.jar"],
}

java_import {
    name: "flogger-0.5.1",
    jars: ["repository/com/google/flogger/flogger/0.5.1/flogger-0.5.1.jar"],
    host_supported: true,
}

java_import {
    name: "symbol-processing-api",
    jars: ["repository/com/google/devtools/ksp/symbol-processing-api/1.4.10-dev-experimental-20201110/symbol-processing-api-1.4.10-dev-experimental-20201110.jar"],
    host_supported: true,
}
