// Copyright 2019 The Nomulus Authors. All Rights Reserved.
//
// 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.

ext {
    // Direct dependencies and compile-time transitive dependencies (i.e.,
    // those flagged as undeclared-dependency by Nebula-lint).
    dependencyList = [
      'args4j:args4j:2.0.26',
      'com.beust:jcommander:1.60',
      'com.google.api-client:google-api-client-java6:1.27.0',
      'com.google.api-client:google-api-client:1.29.2',
      'com.google.apis:google-api-services-admin-directory:directory_v1-rev72-1.22.0',
      'com.google.apis:google-api-services-appengine:v1-rev101-1.25.0',
      'com.google.apis:google-api-services-bigquery:v2-rev325-1.22.0',
      'com.google.apis:google-api-services-cloudkms:v1-rev12-1.22.0',
      'com.google.apis:google-api-services-dataflow:v1b3-rev196-1.22.0',
      'com.google.apis:google-api-services-dns:v2beta1-rev6-1.22.0',
      'com.google.apis:google-api-services-drive:v2-rev160-1.19.1',
      'com.google.apis:google-api-services-groupssettings:v1-rev60-1.22.0',
      'com.google.apis:google-api-services-monitoring:v3-rev11-1.22.0',
      'com.google.apis:google-api-services-sheets:v4-rev483-1.22.0',
      'com.google.apis:google-api-services-storage:v1-rev150-1.22.0',
      'com.google.appengine.tools:appengine-gcs-client:0.6',
      'com.google.appengine.tools:appengine-mapreduce:0.9',
      'com.google.appengine.tools:appengine-pipeline:0.2.13',
      'com.google.appengine:appengine-api-1.0-sdk:1.9.48',
      'com.google.appengine:appengine-api-stubs:1.9.48',
      'com.google.appengine:appengine-remote-api:1.9.48',
      'com.google.appengine:appengine-testing:1.9.58',
      'com.google.auth:google-auth-library-credentials:0.16.1',
      'com.google.auth:google-auth-library-oauth2-http:0.16.1',
      'com.google.auto.value:auto-value-annotations:1.6.3',
      'com.google.auto.value:auto-value:1.6.3',
      'com.google.closure-stylesheets:closure-stylesheets:1.5.0',
      'com.google.cloud.sql:postgres-socket-factory:1.0.12',
      'com.google.cloud:google-cloud-core:1.59.0',
      'com.google.cloud:google-cloud-storage:1.59.0',
      'com.google.code.findbugs:jsr305:3.0.2',
      'com.google.code.gson:gson:2.8.5',
      'com.google.dagger:dagger-compiler:2.21',
      'com.google.dagger:dagger:2.21',
      'com.google.errorprone:error_prone_annotations:2.3.3',
      'com.google.flogger:flogger-system-backend:0.1',
      'com.google.flogger:flogger:0.1',
      'com.google.guava:guava-testlib:28.1-jre',
      'com.google.guava:guava:28.1-jre',
      'com.google.gwt:gwt-user:2.8.2',
      'com.google.http-client:google-http-client-appengine:1.29.2',
      'com.google.http-client:google-http-client-jackson2:1.29.2',
      'com.google.http-client:google-http-client:1.29.2',
      'com.google.javascript:closure-compiler:v20190301',
      'com.google.monitoring-client:contrib:1.0.6',
      'com.google.monitoring-client:metrics:1.0.6',
      'com.google.monitoring-client:stackdriver:1.0.6',
      'com.google.oauth-client:google-oauth-client-java6:1.27.0',
      'com.google.oauth-client:google-oauth-client-jetty:1.28.0',
      'com.google.oauth-client:google-oauth-client:1.29.2',
      'com.google.re2j:re2j:1.1',
      'com.google.template:soy:2018-03-14',
      'com.google.truth.extensions:truth-java8-extension:1.0',
      'com.google.truth:truth:1.0',
      'com.googlecode.json-simple:json-simple:1.1.1',
      'com.ibm.icu:icu4j:57.1',
      'com.jcraft:jsch:0.1.55',
      'com.sun.activation:javax.activation:1.2.0',
      'com.sun.xml.bind:jaxb-impl:2.2.11',
      'com.sun.xml.bind:jaxb-osgi:2.2.11',
      'com.sun.xml.bind:jaxb-xjc:2.2.11',
      'com.thoughtworks.qdox:qdox:1.12.1',
      'dnsjava:dnsjava:2.1.7',
      'io.github.classgraph:classgraph:4.8.52',
      'io.github.java-diff-utils:java-diff-utils:4.0',
      'io.netty:netty-buffer:4.1.31.Final',
      'io.netty:netty-codec-http:4.1.31.Final',
      'io.netty:netty-codec:4.1.31.Final',
      'io.netty:netty-common:4.1.31.Final',
      'io.netty:netty-handler:4.1.31.Final',
      'io.netty:netty-tcnative-boringssl-static:2.0.22.Final',
      'io.netty:netty-transport:4.1.31.Final',
      'javax.annotation:javax.annotation-api:1.3.2',
      'javax.annotation:jsr250-api:1.0',
      'javax.inject:javax.inject:1',
      'javax.mail:mail:1.4',
      'javax.persistence:javax.persistence-api:2.2',
      'javax.servlet:servlet-api:2.5',
      'javax.xml.bind:jaxb-api:2.3.0',
      'jline:jline:1.0',
      'joda-time:joda-time:2.9.2',
      'junit:junit:4.12',
      'org.apache.avro:avro:1.8.2',
      'org.apache.beam:beam-runners-direct-java:2.16.0',
      'org.apache.beam:beam-runners-google-cloud-dataflow-java:2.16.0',
      'org.apache.beam:beam-sdks-java-core:2.16.0',
      'org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.16.0',
      'org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.16.0',
      'org.apache.commons:commons-lang3:3.8.1',
      'org.apache.commons:commons-text:1.6',
      'org.apache.ftpserver:ftplet-api:1.0.6',
      'org.apache.ftpserver:ftpserver-core:1.0.6',
      'org.apache.httpcomponents:httpclient:4.5.2',
      'org.apache.httpcomponents:httpcore:4.4.4',
      'org.apache.sshd:sshd-core:2.0.0',
      'org.apache.sshd:sshd-scp:2.0.0',
      'org.apache.sshd:sshd-sftp:2.0.0',
      'org.apache.tomcat:tomcat-annotations-api:8.0.5',
      'org.bouncycastle:bcpg-jdk15on:1.61',
      'org.bouncycastle:bcpkix-jdk15on:1.61',
      'org.bouncycastle:bcprov-jdk15on:1.61',
      'org.flywaydb:flyway-core:5.2.4',
      'org.glassfish.jaxb:jaxb-runtime:2.3.0',
      'org.hamcrest:hamcrest-all:1.3',
      'org.hamcrest:hamcrest-core:1.3',
      'org.hamcrest:hamcrest-library:1.3',
      'org.hibernate:hibernate-core:5.4.4.Final',
      'org.hibernate:hibernate-hikaricp:5.4.4.Final',
      'org.joda:joda-money:1.0.1',
      'org.json:json:20160810',
      'org.mockito:mockito-core:2.25.0',
      'org.mortbay.jetty:jetty:6.1.26',
      'org.postgresql:postgresql:42.2.6',
      'org.seleniumhq.selenium:selenium-api:3.141.59',
      'org.seleniumhq.selenium:selenium-chrome-driver:3.141.59',
      'org.seleniumhq.selenium:selenium-java:3.141.59',
      'org.seleniumhq.selenium:selenium-remote-driver:3.141.59',
      'org.testcontainers:jdbc:1.12.1',
      'org.testcontainers:postgresql:1.12.1',
      'org.testcontainers:selenium:1.12.1',
      'org.testcontainers:testcontainers:1.12.1',
      'org.yaml:snakeyaml:1.17',
      'pl.pragmatists:JUnitParams:1.1.1',
      'xerces:xmlParserAPIs:2.6.2',
      'xpp3:xpp3:1.1.4c'
    ]

    dependencyMap = dependencyList.collectEntries {
      def fields = it.split(':')
      def key = fields[0] + ':' + fields[1]
      [key, it]
    }
}
