# 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.
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.12
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:6.0
asm_analysis = org.ow2.asm:asm-analysis:6.0
asm_commons = org.ow2.asm:asm-commons:6.0
asm_tree = org.ow2.asm:asm-tree:6.0
asm_util = org.ow2.asm:asm-util:6.0
auto_value = com.google.auto.value:auto-value:1.5.2
bouncycastle_pkix = org.bouncycastle:bcpkix-jdk15on:1.56
bouncycastle_prov = org.bouncycastle:bcprov-jdk15on:1.56
bundle_tool = com.android.tools.build:bundletool:0.7.2
aapt2_proto = com.android.tools.build:aapt2-proto:0.3.1
ecj = org.eclipse.jdt.core.compiler:ecj:4.6.1
fastutil = it.unimi.dsi:fastutil:7.2.0
findbugs_jsr = com.google.code.findbugs:jsr305:3.0.2
groovy = org.codehaus.groovy:groovy-all:2.4.15
grpc = io.grpc:grpc-all:1.0.1
gson = com.google.code.gson:gson:2.8.0
guava = com.google.guava:guava:26.0-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.8.0
jaxb_runtime = org.glassfish.jaxb:jaxb-runtime:2.2.11
javax_inject = javax.inject:javax.inject:1
jaxb_xjc = org.glassfish.jaxb:jaxb-xjc:2.2.11
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:5.1.1
# 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.3.21
kotlin_gradle_plugin = org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21
kotlin_reflect = org.jetbrains.kotlin:kotlin-reflect:1.3.21
kotlin_stdlib = org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21
kotlin_test = org.jetbrains.kotlin:kotlin-test:1.3.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-beta02
jetifier_processor = com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta02
# 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.4.0
protobuf_util = com.google.protobuf:protobuf-java-util:3.4.0
transform_api_deprecated = com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
trove4j = org.jetbrains.trove4j:trove4j:20160824

#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:2.1.5
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.12
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:2.19.0
smali_dexlib = org.smali:dexlib2:2.2.4
baksmali_dexlib = org.smali:baksmali:2.2.4
truth = com.google.truth:truth:0.34
netty_all = io.netty:netty-all:4.1.13.Final
