# Versions of external dependencies used by the gradle plugin.

# For bazel, changes to this file will require
# a re-run of the third_party_build_generator:
# bazel run //tools/base/bazel:third_party_build_generator

activation = com.sun.activation:javax.activation:1.2.0
aether_connector = org.eclipse.aether:aether-connector-basic:1.0.2.v20150114
aether_transport_file = org.eclipse.aether:aether-transport-file:1.0.2.v20150114
aether_transport_http = org.eclipse.aether:aether-transport-http:1.0.2.v20150114
antlr3 = org.antlr:antlr:3.5.2
antlr4 = org.antlr:antlr4:4.5.3
antlr_runtime = org.antlr:antlr-runtime:3.5.2
apache_commons_codec = commons-codec:commons-codec:1.10
apache_commons_io = commons-io:commons-io:2.4
apache_commons_lang = commons-lang:commons-lang:2.6
apache_commons_logging = commons-logging:commons-logging:1.2
apache_compress = org.apache.commons:commons-compress:1.20
apache_httpclient = org.apache.httpcomponents:httpclient:4.5.6
apache_httpcore = org.apache.httpcomponents:httpcore:4.4.10
apache_httpmime = org.apache.httpcomponents:httpmime:4.5.6
apache_maven_aether = org.apache.maven:maven-aether-provider:3.3.9
asm = org.ow2.asm:asm:7.0
asm_analysis = org.ow2.asm:asm-analysis:7.0
asm_commons = org.ow2.asm:asm-commons:7.0
asm_tree = org.ow2.asm:asm-tree:7.0
asm_util = org.ow2.asm:asm-util:7.0
auto_value = com.google.auto.value:auto-value:1.6.2
auto_value_annotations = com.google.auto.value:auto-value-annotations:1.6.3
auto_common = com.google.auto:auto-common:0.10
bouncycastle_pkix = org.bouncycastle:bcpkix-jdk15on:1.56
bouncycastle_prov = org.bouncycastle:bcprov-jdk15on:1.56
bundle_tool = com.android.tools.build:bundletool:1.4.0
aapt2_proto = com.android.tools.build:aapt2-proto:4.1.0-alpha01-6193524
dokka = org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.17-g004
ecj = org.eclipse.jdt.core.compiler:ecj:4.6.1
fastutil = it.unimi.dsi:fastutil:8.4.0
findbugs_jsr = com.google.code.findbugs:jsr305:3.0.2
flatbuffers = com.google.flatbuffers:flatbuffers-java:1.12.0
groovy = org.codehaus.groovy:groovy-all:2.4.15
grpc = io.grpc:grpc-all:1.21.1
gson = com.google.code.gson:gson:2.8.6
guava = com.google.guava:guava:28.1-jre
intellij_annotations = org.jetbrains:annotations:13.0
javawriter = com.squareup:javawriter:2.5.0
jcommander = com.beust:jcommander:1.64
javapoet = com.squareup:javapoet:1.10.0
jaxb_runtime = org.glassfish.jaxb:jaxb-runtime:2.3.2
javax_inject = javax.inject:javax.inject:1
jaxb_xjc = org.glassfish.jaxb:jaxb-xjc:2.3.2
jimfs = com.google.jimfs:jimfs:1.1
jopt = net.sf.jopt-simple:jopt-simple:4.9
json_simple = com.googlecode.json-simple:json-simple:1.1
juniversalchardet = com.googlecode.juniversalchardet:juniversalchardet:1.0.3
gradle_tooling_api = org.gradle:gradle-tooling-api:6.8-rc-5
# kotlin version used to build the plugin. This must stay in sync with
# the version used to build Studio
# To change the version used by test project, update TestUtils.KOTLIN_VERSION_FOR_TESTS
kotlin_android_extensions_runtime = org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.4.21
kotlin_gradle_plugin = org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.21
kotlin_reflect = org.jetbrains.kotlin:kotlin-reflect:1.4.21
kotlin_stdlib = org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21
kotlin_test = org.jetbrains.kotlin:kotlin-test:1.4.21
kxml = net.sf.kxml:kxml2:2.3.0
proguard = net.sf.proguard:proguard-gradle:6.0.3
jetifier_core = com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09
jetifier_processor = com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta09
# Keep the proto runtime version in sync with the proto compiler version in
# tools/base/bazel/proto.bzl
protobuf = com.google.protobuf:protobuf-java:3.10.0
protobuf_util = com.google.protobuf:protobuf-java-util:3.10.0
tensorflow_lite_metadata = org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2
transform_api_deprecated = com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
trove4j = org.jetbrains.intellij.deps:trove4j:1.0.20181211
unified_test_platform = com.google.testing.platform:core-proto:0.0.7-dev
unified_test_platform_device_provider = com.google.testing.platform:android-device-provider-local:0.0.7-dev
unified_test_platform_launcher = com.google.testing.platform:launcher:0.0.7-dev
xerces = xerces:xercesImpl:2.12.0

#When updating jacoco versions also update JacocoOptions.DEFAULT_VERSION
jacoco_agent = org.jacoco:org.jacoco.agent:0.7.9
jacoco_core = org.jacoco:org.jacoco.core:0.7.9
jacoco_report = org.jacoco:org.jacoco.report:0.7.9

# Include test dependencies here as well, so that we take them into
# consideration when computing version numbers.
easymock = org.easymock:easymock:3.3
equalsverifier = nl.jqno.equalsverifier:equalsverifier:3.4.1
google_api_client = com.google.api-client:google-api-client:1.22.0
google_storage_client = com.google.apis:google-api-services-storage:v1-rev82-1.22.0
jsoup = org.jsoup:jsoup:1.6.3
junit = junit:junit:4.13
junit_vintage_engine = org.junit.vintage:junit-vintage-engine:4.12.3
junit_jupiter = org.junit.jupiter:junit-jupiter-api:5.0.3
junit_jupiter_engine = org.junit.jupiter:junit-jupiter-engine:5.0.3
mockito_core = org.mockito:mockito-core:3.4.6
smali_dexlib = org.smali:dexlib2:2.2.4
baksmali_dexlib = org.smali:baksmali:2.2.4
truth = com.google.truth:truth:0.44
truth_java8_extension = com.google.truth.extensions:truth-java8-extension:0.44
netty_all = io.netty:netty-all:4.1.13.Final
checker_compat_qual = org.checkerframework:checker-compat-qual:2.5.5
checker_qual = org.checkerframework:checker-qual:2.8.1
compile_testing = com.google.testing.compile:compile-testing:0.16
tink = com.google.crypto.tink:tink:1.3.0-rc2
