/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 {
  versions = [:]
  libs = [:]
}

// Add Scala version
def defaultScala213Version = '2.13.16'
if (hasProperty('scalaVersion')) {
  if (scalaVersion == '2.13') {
    versions["scala"] = defaultScala213Version
  }  else {
    versions["scala"] = scalaVersion
  }
} else {
  versions["scala"] = defaultScala213Version
}

/* Resolve base Scala version according to these patterns:
 1. generally available Scala versions (such as: 2.13.z) corresponding base versions will be: 2.13 (respectively)
 2. pre-release Scala versions (i.e. milestone/rc, such as: 2.13.0-M5, 2.13.0-RC1, 2.14.0-M1, etc.) will have identical base versions;
    rationale: pre-release Scala versions are not binary compatible with each other and that's the reason why libraries include the full
    Scala release string in their name for pre-releases (see dependencies below with an artifact name suffix '_$versions.baseScala')
*/
if ( !versions.scala.contains('-') ) {
  versions["baseScala"] = versions.scala.substring(0, versions.scala.lastIndexOf("."))
} else {
  versions["baseScala"] = versions.scala
}

// When adding, removing or updating dependencies, please also update the LICENSE-binary file accordingly.
// See https://issues.apache.org/jira/browse/KAFKA-12622 for steps to verify the LICENSE-binary file is correct.
versions += [
  activation: "1.1.1",
  apacheda: "1.0.2",
  apacheds: "2.0.0-M24",
  argparse4j: "0.7.0",
  bcpkix: "1.80",
  caffeine: "3.2.0",
  bndlib: "7.1.0",
  checkstyle: project.hasProperty('checkstyleVersion') ? checkstyleVersion : "10.20.2",
  commonsBeanutils: "1.11.0",
  commonsLang: "3.18.0",
  commonsValidator: "1.9.0",
  classgraph: "4.8.179",
  gradle: "8.14.3",
  grgit: "4.1.1",
  httpclient: "4.5.14",
  jackson: "2.19.0",
  jacoco: "0.8.13",
  javassist: "3.30.2-GA",
  jetty: "12.0.22",
  jersey: "3.1.10",
  jline: "3.30.4",
  jmh: "1.37",
  hamcrest: "3.0",
  scalaLogging: "3.9.5",
  jaxAnnotation: "1.3.2",
  jaxb: "2.3.1",
  jakartaRs: "3.1.0",
  jakartaServletApi: "6.1.0",
  jfreechart: "1.5.6",
  jopt: "5.0.4",
  jose4j: "0.9.6",
  junit: "5.13.1",
  jqwik: "1.9.2",
  kafka_0110: "0.11.0.3",
  kafka_10: "1.0.2",
  kafka_11: "1.1.1",
  kafka_20: "2.0.1",
  kafka_21: "2.1.1",
  kafka_22: "2.2.2",
  kafka_23: "2.3.1",
  kafka_24: "2.4.1",
  kafka_25: "2.5.1",
  kafka_26: "2.6.3",
  kafka_27: "2.7.2",
  kafka_28: "2.8.2",
  kafka_30: "3.0.2",
  kafka_31: "3.1.2",
  kafka_32: "3.2.3",
  kafka_33: "3.3.2",
  kafka_34: "3.4.1",
  kafka_35: "3.5.2",
  kafka_36: "3.6.2",
  kafka_37: "3.7.2",
  kafka_38: "3.8.1",
  kafka_39: "3.9.1",
  kafka_40: "4.0.0",
  kafka_41: "4.1.0",
  log4j2: "2.25.1",
  // When updating lz4 make sure the compression levels in org.apache.kafka.common.record.CompressionType are still valid
  lz4: "1.8.0",
  mavenArtifact: "3.9.6",
  metrics: "2.2.0",
  mockito: "5.14.2",
  opentelemetryProto: "1.3.2-alpha",
  protobuf: "3.25.5", // a dependency of opentelemetryProto
  pcollections: "4.0.2",
  re2j: "1.8",
  rocksDB: "10.1.3",
  // When updating the scalafmt version please also update the version field in checkstyle/.scalafmt.conf. scalafmt now
  // has the version field as mandatory in its configuration, see
  // https://github.com/scalameta/scalafmt/releases/tag/v3.1.0.
  scalafmt: "3.7.14",
  scoverage: "2.0.11",
  slf4j: "1.7.36",
  snappy: "1.1.10.7",
  spotbugs: "4.9.4",
  mockOAuth2Server: "2.2.1",
  zinc: "1.9.2",
  // When updating the zstd version, please do as well in docker/native/native-image-configs/resource-config.json
  // Also make sure the compression levels in org.apache.kafka.common.record.CompressionType are still valid
  zstd: "1.5.6-10",
  junitPlatform: "1.13.1",
  hdrHistogram: "2.2.2",
  hash4j: "0.22.0"
]

libs += [
  activation: "javax.activation:activation:$versions.activation",
  apacheda: "org.apache.directory.api:api-all:$versions.apacheda",
  apachedsCoreApi: "org.apache.directory.server:apacheds-core-api:$versions.apacheds",
  apachedsInterceptorKerberos: "org.apache.directory.server:apacheds-interceptor-kerberos:$versions.apacheds",
  apachedsProtocolShared: "org.apache.directory.server:apacheds-protocol-shared:$versions.apacheds",
  apachedsProtocolKerberos: "org.apache.directory.server:apacheds-protocol-kerberos:$versions.apacheds",
  apachedsProtocolLdap: "org.apache.directory.server:apacheds-protocol-ldap:$versions.apacheds",
  apachedsLdifPartition: "org.apache.directory.server:apacheds-ldif-partition:$versions.apacheds",
  apachedsMavibotPartition: "org.apache.directory.server:apacheds-mavibot-partition:$versions.apacheds",
  apachedsJdbmPartition: "org.apache.directory.server:apacheds-jdbm-partition:$versions.apacheds",
  argparse4j: "net.sourceforge.argparse4j:argparse4j:$versions.argparse4j",
  bcpkix: "org.bouncycastle:bcpkix-jdk18on:$versions.bcpkix",
  bndlib:"biz.aQute.bnd:biz.aQute.bndlib:$versions.bndlib",
  caffeine: "com.github.ben-manes.caffeine:caffeine:$versions.caffeine",
  classgraph: "io.github.classgraph:classgraph:$versions.classgraph",
  commonsBeanutils: "commons-beanutils:commons-beanutils:$versions.commonsBeanutils",
  commonsLang: "org.apache.commons:commons-lang3:$versions.commonsLang",
  commonsValidator: "commons-validator:commons-validator:$versions.commonsValidator",
  jacksonAnnotations: "com.fasterxml.jackson.core:jackson-annotations:$versions.jackson",
  jacksonDatabind: "com.fasterxml.jackson.core:jackson-databind:$versions.jackson",
  jacksonDatabindYaml: "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:$versions.jackson",
  jacksonDataformatCsv: "com.fasterxml.jackson.dataformat:jackson-dataformat-csv:$versions.jackson",
  jacksonJDK8Datatypes: "com.fasterxml.jackson.datatype:jackson-datatype-jdk8:$versions.jackson",
  jacksonBlackbird: "com.fasterxml.jackson.module:jackson-module-blackbird:$versions.jackson",
  jacksonJakartarsJsonProvider: "com.fasterxml.jackson.jakarta.rs:jackson-jakarta-rs-json-provider:$versions.jackson",
  jaxAnnotationApi: "javax.annotation:javax.annotation-api:$versions.jaxAnnotation",
  jaxbApi: "javax.xml.bind:jaxb-api:$versions.jaxb",
  jakartaRsApi: "jakarta.ws.rs:jakarta.ws.rs-api:$versions.jakartaRs",
  jakartaServletApi: "jakarta.servlet:jakarta.servlet-api:$versions.jakartaServletApi",
  jaxrs2Jakarta: "io.swagger.core.v3:swagger-jaxrs2-jakarta:$swaggerVersion",
  javassist: "org.javassist:javassist:$versions.javassist",
  jettyServer: "org.eclipse.jetty:jetty-server:$versions.jetty",
  jettyClient: "org.eclipse.jetty:jetty-client:$versions.jetty",
  jettyServlet: "org.eclipse.jetty.ee10:jetty-ee10-servlet:$versions.jetty",
  jettyServlets: "org.eclipse.jetty.ee10:jetty-ee10-servlets:$versions.jetty",
  jerseyContainerServlet: "org.glassfish.jersey.containers:jersey-container-servlet:$versions.jersey",
  jerseyHk2: "org.glassfish.jersey.inject:jersey-hk2:$versions.jersey",
  jline: "org.jline:jline:$versions.jline",
  jmhCore: "org.openjdk.jmh:jmh-core:$versions.jmh",
  jmhCoreBenchmarks: "org.openjdk.jmh:jmh-core-benchmarks:$versions.jmh",
  jmhGeneratorAnnProcess: "org.openjdk.jmh:jmh-generator-annprocess:$versions.jmh",
  joptSimple: "net.sf.jopt-simple:jopt-simple:$versions.jopt",
  jose4j: "org.bitbucket.b_c:jose4j:$versions.jose4j",
  junitJupiter: "org.junit.jupiter:junit-jupiter:$versions.junit",
  junitJupiterApi: "org.junit.jupiter:junit-jupiter-api:$versions.junit",
  junitPlatformSuiteEngine: "org.junit.platform:junit-platform-suite-engine:$versions.junitPlatform",
  junitPlatformLanucher: "org.junit.platform:junit-platform-launcher:$versions.junitPlatform",
  jqwik: "net.jqwik:jqwik:$versions.jqwik",
  hamcrest: "org.hamcrest:hamcrest:$versions.hamcrest",
  kafkaStreams_0110: "org.apache.kafka:kafka-streams:$versions.kafka_0110",
  kafkaStreams_10: "org.apache.kafka:kafka-streams:$versions.kafka_10",
  kafkaStreams_11: "org.apache.kafka:kafka-streams:$versions.kafka_11",
  kafkaStreams_20: "org.apache.kafka:kafka-streams:$versions.kafka_20",
  kafkaStreams_21: "org.apache.kafka:kafka-streams:$versions.kafka_21",
  kafkaStreams_22: "org.apache.kafka:kafka-streams:$versions.kafka_22",
  kafkaStreams_23: "org.apache.kafka:kafka-streams:$versions.kafka_23",
  kafkaStreams_24: "org.apache.kafka:kafka-streams:$versions.kafka_24",
  kafkaStreams_25: "org.apache.kafka:kafka-streams:$versions.kafka_25",
  kafkaStreams_26: "org.apache.kafka:kafka-streams:$versions.kafka_26",
  kafkaStreams_27: "org.apache.kafka:kafka-streams:$versions.kafka_27",
  kafkaStreams_28: "org.apache.kafka:kafka-streams:$versions.kafka_28",
  kafkaStreams_30: "org.apache.kafka:kafka-streams:$versions.kafka_30",
  kafkaStreams_31: "org.apache.kafka:kafka-streams:$versions.kafka_31",
  kafkaStreams_32: "org.apache.kafka:kafka-streams:$versions.kafka_32",
  kafkaStreams_33: "org.apache.kafka:kafka-streams:$versions.kafka_33",
  kafkaStreams_34: "org.apache.kafka:kafka-streams:$versions.kafka_34",
  kafkaStreams_35: "org.apache.kafka:kafka-streams:$versions.kafka_35",
  kafkaStreams_36: "org.apache.kafka:kafka-streams:$versions.kafka_36",
  kafkaStreams_37: "org.apache.kafka:kafka-streams:$versions.kafka_37",
  kafkaStreams_38: "org.apache.kafka:kafka-streams:$versions.kafka_38",
  kafkaStreams_39: "org.apache.kafka:kafka-streams:$versions.kafka_39",
  kafkaStreams_40: "org.apache.kafka:kafka-streams:$versions.kafka_40",
  kafkaStreams_41: "org.apache.kafka:kafka-streams:$versions.kafka_41",
  log4j1Bridge2Api: "org.apache.logging.log4j:log4j-1.2-api:$versions.log4j2",
  log4j2Api: "org.apache.logging.log4j:log4j-api:$versions.log4j2",
  log4j2Core: "org.apache.logging.log4j:log4j-core:$versions.log4j2",
  lz4: "org.lz4:lz4-java:$versions.lz4",
  metrics: "com.yammer.metrics:metrics-core:$versions.metrics",
  mockitoCore: "org.mockito:mockito-core:$versions.mockito",
  mockitoJunitJupiter: "org.mockito:mockito-junit-jupiter:$versions.mockito",
  pcollections: "org.pcollections:pcollections:$versions.pcollections",
  opentelemetryProto: "io.opentelemetry.proto:opentelemetry-proto:$versions.opentelemetryProto",
  protobuf: "com.google.protobuf:protobuf-java:$versions.protobuf",
  re2j: "com.google.re2j:re2j:$versions.re2j",
  rocksDBJni: "org.rocksdb:rocksdbjni:$versions.rocksDB",
  scalaLibrary: "org.scala-lang:scala-library:$versions.scala",
  scalaLogging: "com.typesafe.scala-logging:scala-logging_$versions.baseScala:$versions.scalaLogging",
  scalaReflect: "org.scala-lang:scala-reflect:$versions.scala",
  slf4jApi: "org.slf4j:slf4j-api:$versions.slf4j",
  slf4jLog4j2: "org.apache.logging.log4j:log4j-slf4j-impl:$versions.log4j2",
  snappy: "org.xerial.snappy:snappy-java:$versions.snappy",
  spotbugs: "com.github.spotbugs:spotbugs-annotations:$versions.spotbugs",
  swaggerAnnotations: "io.swagger.core.v3:swagger-annotations:$swaggerVersion",
  mockOAuth2Server: "no.nav.security:mock-oauth2-server:$versions.mockOAuth2Server",
  jfreechart: "org.jfree:jfreechart:$versions.jfreechart",
  mavenArtifact: "org.apache.maven:maven-artifact:$versions.mavenArtifact",
  zstd: "com.github.luben:zstd-jni:$versions.zstd",
  httpclient: "org.apache.httpcomponents:httpclient:$versions.httpclient",
  hdrHistogram: "org.hdrhistogram:HdrHistogram:$versions.hdrHistogram",
  hash4j: "com.dynatrace.hash4j:hash4j:$versions.hash4j",
]
