content: [versions]
  activemq-artemis = "2.42.0"
  application-insights = "2.6.4"
  archunit = "1.4.1"
  asmForPlugins = "7.3.1"
  aspectjweaver = "1.9.24"
  assertj = "3.27.6"
  awaitility = "4.3.0"
  caffeine = "2.9.3"
  cloudwatch2 = "2.35.4"
  colt = "1.2.0"
  dagger = "2.57.2"
  dropwizard-metrics = "4.2.37"
  dropwizard-metrics5 = "5.0.5"
  dynatrace-utils = "2.4.0"
  ehcache2 = "2.10.9.2"
  ehcache3 = "3.11.1"
  gmetric4j = "1.0.10"
  google-cloud-monitoring = "3.77.0"
  grpc = "1.76.0"
  grpcKotlin = "1.4.3"
  guava = "32.1.3-jre"
  guice = "5.1.0"
  h2 = "2.4.240"
  hazelcast = "5.3.8"
  hdrhistogram = "2.2.2"
  hibernate = "5.6.15.Final"
  # 2.6.0 requires JDK 11
  hsqldb = "2.7.4"
  httpcomponents-async = "4.1.5"
  httpcomponents-client = "4.5.14"
  httpcomponents-client5 = "5.5.1"
  # metrics are better with https://github.com/Netflix/Hystrix/pull/1568 introduced
  # in hystrix 1.5.12, but Netflix re-released 1.5.11 as 1.5.18 late in 2018.
  # <=1.5.11 or 1.5.18 doesn't break with Micrometer, but open metrics won't be correct necessarily.
  hystrix = "1.5.12"
  jackson-databind = "2.20.0"
  javax-cache = "1.1.1"
  javax-inject = "1"
  jaxb = "2.3.1"
  jetty9 = "9.4.58.v20250814"
  jetty11 = "11.0.16"
  jetty12 = "12.0.6"
  jersey3 = "3.1.11"
  jmh = "1.37"
  # latest version of jOOQ to run tests against
  jooqNew = "3.20.6"
  jsr107 = "1.1.1"
  jsr305 = "3.0.2"
  junit = "5.14.0"
  kafka = "2.8.2"
  kafka-junit = "4.2.10"
  latency-utils = "2.0.3"
  logback-latest = "1.5.19"
  log4j = "2.25.2"
  maven-resolver = "1.9.24"
  mockito5 = "5.18.0"
  mongo = "4.11.5"
  netty = "4.2.6.Final"
  newrelic-api = "5.14.0"
  # Kotlin 1.7 sample will fail from OkHttp 4.12.0 due to okio dependency being a Kotlin 1.9 module
  okhttp = "4.11.0"
  postgre = "42.7.8"
  prometheus = "1.4.1"
  prometheusSimpleClient = "0.16.0"
  reactor = "2022.0.22"
  rest-assured = "5.5.6"
  signalfx = "1.0.49"
  slf4j = "1.7.36"
  spectator-atlas = "1.9.0"
  spring5 = "5.3.39"
  spring6 = "6.2.11"
  spring-javaformat = "0.0.47"
  testcontainers = "1.21.3"
  tomcat = "8.5.100"
  wavefront = "3.4.3"
  wiremock = "2.35.2"
  wiremock-junit5 = "1.3.1"
  
  [libraries]
  activemqArtemisJakartaClient = { module = "org.apache.activemq:artemis-jakarta-client", version.ref = "activemq-artemis" }
  activemqArtemisJunit5 = { module = "org.apache.activemq:artemis-junit-5", version.ref = "activemq-artemis" }
  applicationInsights = { module = "com.microsoft.azure:applicationinsights-core", version.ref = "application-insights" }
  archunitJunit5 = { module = "com.tngtech.archunit:archunit-junit5", version.ref = "archunit" }
  asmForPlugins = { module = "org.ow2.asm:asm", version.ref = "asmForPlugins" }
  aspectjrt = { module = "org.aspectj:aspectjrt", version.ref = "aspectjweaver" }
  aspectjweaver = { module = "org.aspectj:aspectjweaver", version.ref = "aspectjweaver" }
  assertj = { module = "org.assertj:assertj-core", version.ref = "assertj" }
  awaitility = { module = "org.awaitility:awaitility", version.ref = "awaitility" }
  caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
  cloudwatch2 = { module = "software.amazon.awssdk:cloudwatch", version.ref = "cloudwatch2" }
  colt = { module = "colt:colt", version.ref = "colt" }
  commonsPool2 = "org.apache.commons:commons-pool2:2.12.1"
  contextPropagation = { module = "io.micrometer:context-propagation", version = "1.2.0-M1" }
  dagger = { module = "com.google.dagger:dagger", version.ref = "dagger" }
  daggerCompiler = { module = "com.google.dagger:dagger-compiler", version.ref = "dagger" }
  dropwizardMetricsCore = { module = "io.dropwizard.metrics:metrics-core", version.ref = "dropwizard-metrics" }
  dropwizardMetricsGraphite = { module = "io.dropwizard.metrics:metrics-graphite", version.ref = "dropwizard-metrics" }
  dropwizardMetricsJmx = { module = "io.dropwizard.metrics:metrics-jmx", version.ref = "dropwizard-metrics" }
  dropwizardMetricsCore5 = { module = "io.dropwizard.metrics5:metrics-core", version.ref = "dropwizard-metrics5" }
  dynatraceUtils = { module = "com.dynatrace.metric.util:dynatrace-metric-utils-java", version.ref = "dynatrace-utils" }
  ehcache2 = { module = "net.sf.ehcache:ehcache", version.ref = "ehcache2" }
  ehcache3 = { module = "org.ehcache:ehcache", version.ref = "ehcache3" }
  errorprone = { module = "com.google.errorprone:error_prone_core", version = "2.42.0" }
  felixFramework = "org.apache.felix:org.apache.felix.framework:7.0.5"
  felixScr = "org.apache.felix:org.apache.felix.scr:2.2.14"
  gmetric4j = { module = "info.ganglia.gmetric4j:gmetric4j", version.ref = "gmetric4j" }
  googleCloudLibrariesBom = { module = "com.google.cloud:libraries-bom", version = "26.70.0" }
  googleCloudMonitoring = { module = "com.google.cloud:google-cloud-monitoring", version.ref = "google-cloud-monitoring" }
  googleOauth2Http = { module = "com.google.auth:google-auth-library-oauth2-http", version = "1.39.1"}
  grpcApi = { module = "io.grpc:grpc-api", version.ref = "grpc" }
  grpcCore = { module = "io.grpc:grpc-core", version.ref = "grpc" }
  grpcInprocess = { module = "io.grpc:grpc-inprocess", version.ref = "grpc" }
  grpcServices = { module = "io.grpc:grpc-services", version.ref = "grpc" }
  grpcTestingProto = { module = "io.grpc:grpc-testing-proto", version.ref = "grpc" }
  grpcKotlinStub = { module = "io.grpc:grpc-kotlin-stub", version.ref = "grpcKotlin" }
  guava = { module = "com.google.guava:guava", version.ref = "guava" }
  guice = { module = "com.google.inject:guice", version.ref = "guice" }
  h2 = { module = "com.h2database:h2", version.ref = "h2" }
  hazelcast = { module = "com.hazelcast:hazelcast", version.ref = "hazelcast" }
  hdrhistogram = { module = "org.hdrhistogram:HdrHistogram", version.ref = "hdrhistogram" }
  hibernateEntitymanager = { module = "org.hibernate:hibernate-entitymanager", version.ref = "hibernate" }
  hsqldb = { module = "org.hsqldb:hsqldb", version.ref = "hsqldb" }
  httpcomponents-async = { module = "org.apache.httpcomponents:httpasyncclient", version.ref = "httpcomponents-async" }
  httpcomponents-client = { module = "org.apache.httpcomponents:httpclient", version.ref = "httpcomponents-client" }
  httpcomponents-client5 = { module = "org.apache.httpcomponents.client5:httpclient5", version.ref = "httpcomponents-client5" }
  hystrix = { module = "com.netflix.hystrix:hystrix-core", version.ref = "hystrix" }
  jacksonDatabind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson-databind" }
  jakarta-annotationApi = { module = "jakarta.annotation:jakarta.annotation-api", version = "3.0.0" }
  jakarta-injectApi = { module = "jakarta.inject:jakarta.inject-api", version = "2.0.1" }
  jakarta-jmsApi = { module = "jakarta.jms:jakarta.jms-api", version = "3.0.0" }
  jakarta-servletApi = { module = "jakarta.servlet:jakarta.servlet-api", version = "5.0.0" }
  javalin = { module = "io.javalin:javalin", version = "5.6.5" }
  javax-cacheApi = { module = "javax.cache:cache-api", version.ref = "javax-cache" }
  javax-inject = { module = "javax.inject:javax.inject", version.ref = "javax-inject" }
  javax-servletApi = { module = "javax.servlet:javax.servlet-api", version = "4.0.1" }
  jaxbApi = { module = "javax.xml.bind:jaxb-api", version.ref = "jaxb" }
  jcstressCore = { module = "org.openjdk.jcstress:jcstress-core", version = "0.16" }
  jetty9Client = { module = "org.eclipse.jetty:jetty-client", version.ref = "jetty9" }
  jetty9Server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty9" }
  jetty9Servlet = { module = "org.eclipse.jetty:jetty-servlet", version.ref = "jetty9" }
  jetty11Server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty11" }
  jetty12Server = { module = "org.eclipse.jetty:jetty-server", version.ref = "jetty12" }
  jetty12Client = { module = "org.eclipse.jetty:jetty-client", version.ref = "jetty12" }
  jersey2Server = { module = "org.glassfish.jersey.core:jersey-server", version = "2.47" }
  jersey2Hk2 = { module = "org.glassfish.jersey.inject:jersey-hk2", version = "2.47" }
  jersey2TestFrameworkInmemory = { module = "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-inmemory", version = "2.47" }
  jersey2TestFrameworkJdkHttp = { module = "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jdk-http", version = "2.47" }
  jersey3ContainerJdkHttp = { module = "org.glassfish.jersey.containers:jersey-container-jdk-http", version.ref = "jersey3" }
  jersey3Hk2 = { module = "org.glassfish.jersey.inject:jersey-hk2", version.ref = "jersey3" }
  jersey3TestFrameworkJdkHttp = { module = "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-jdk-http", version.ref = "jersey3" }
  jmhCore = { module = "org.openjdk.jmh:jmh-core", version.ref = "jmh" }
  jmhAnnotationProcessor = { module = "org.openjdk.jmh:jmh-generator-annprocess", version.ref = "jmh" }
  # 3.14.x is the newest version of OSS jOOQ that supports Java 8
  jooq = { module = "org.jooq:jooq", version = "3.14.16" }
  jooqLatest = { module = "org.jooq:jooq", version.ref = "jooqNew" }
  jsonPath = { module = "com.jayway.jsonpath:json-path", version = "2.9.0" }
  jspecify = { module = "org.jspecify:jspecify", version = "1.0.0" }
  jsr107 = { module = "org.jsr107.ri:cache-ri-impl", version.ref = "jsr107" }
  jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
  junitBom = { module = "org.junit:junit-bom", version.ref = "junit" }
  junitJupiter = { module = "org.junit.jupiter:junit-jupiter" }
  junitLoggingExtension = "com.innoq:junit5-logging-extension:0.2.0"
  junitPlatformLauncher = { module = "org.junit.platform:junit-platform-launcher" }
  kafkaClients = { module = "org.apache.kafka:kafka-clients", version.ref = "kafka" }
  kafkaStreams = { module = "org.apache.kafka:kafka-streams", version.ref = "kafka" }
  kafkaJunit = { module = "com.github.charithe:kafka-junit", version.ref = "kafka-junit" }
  kotlinxCoroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.7.3" }
  latencyUtils = { module = "org.latencyutils:LatencyUtils", version.ref = "latency-utils" }
  lmaxDisruptor = "com.lmax:disruptor:3.4.4"
  logback12 = { module = "ch.qos.logback:logback-classic", version = "1.5.19" }
  logbackLatest = {module = "ch.qos.logback:logback-classic", version.ref = "logback-latest" }
  log4j = { module = "org.apache.logging.log4j:log4j-core", version.ref = "log4j" }
  mavenResolverConnectorBasic = { module = "org.apache.maven.resolver:maven-resolver-connector-basic", version.ref = "maven-resolver" }
  mavenResolverTransportHttp = { module = "org.apache.maven.resolver:maven-resolver-transport-http", version.ref = "maven-resolver" }
  mavenResolverProvider = { module = "org.apache.maven:maven-resolver-provider", version = "3.9.11" }
  mockitoCore5 = { module = "org.mockito:mockito-core", version.ref = "mockito5" }
  mongoSync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "mongo" }
  nettyBom = { module = "io.netty:netty-bom", version.ref = "netty" }
  newrelicApi = { module = "com.newrelic.agent.java:newrelic-api", version.ref = "newrelic-api" }
  nullAway = { module = "com.uber.nullaway:nullaway", version = "0.12.10" }
  okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
  # some proto are marked alpha, hence the alpha version. metrics proto is what we use and it is marked stable
  openTelemetry-proto = { module = "io.opentelemetry.proto:opentelemetry-proto", version = "1.8.0-alpha" }
  osgiJunit5 = "org.osgi:org.osgi.test.junit5:1.3.0"
  postgre = { module = "org.postgresql:postgresql", version.ref = "postgre" }
  prometheusMetricsBom = { module = "io.prometheus:prometheus-metrics-bom", version.ref = "prometheus" }
  prometheusMetrics = { module = "io.prometheus:prometheus-metrics-core" }
  prometheusMetricsExpositionFormats = { module = "io.prometheus:prometheus-metrics-exposition-formats" }
  prometheusMetricsTracerCommon = { module = "io.prometheus:prometheus-metrics-tracer-common" }
  prometheusSimpleClientBom = { module = "io.prometheus:simpleclient_bom", version.ref = "prometheusSimpleClient" }
  prometheusSimpleClient = { module = "io.prometheus:simpleclient_common" }
  prometheusSimpleClientPushgateway = { module = "io.prometheus:simpleclient_pushgateway" }
  reactorBom = { module = "io.projectreactor:reactor-bom", version.ref = "reactor" }
  restAssured = { module = "io.rest-assured:rest-assured", version.ref = "rest-assured" }
  retrofit2 = { module = "com.squareup.retrofit2:retrofit", version = "2.12.0" }
  signalfx = { module = "com.signalfx.public:signalfx-java", version.ref = "signalfx" }
  slf4jApi = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" }
  slfj4Simple = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }
  spectatorAtlas = { module = "com.netflix.spectator:spectator-reg-atlas", version.ref = "spectator-atlas" }
  spring5-core = { module = "org.springframework:spring-core", version.ref = "spring5" }
  spring-javaformatCheckstyle = { module = "io.spring.javaformat:spring-javaformat-checkstyle", version.ref = "spring-javaformat" }
  spring6-aop = { module = "org.springframework:spring-aop", version.ref = "spring6" }
  spring6-context = { module = "org.springframework:spring-context", version.ref = "spring6" }
  systemStubsJupiter = { module = "uk.org.webcompere:system-stubs-jupiter", version = "2.1.8" }
  testcontainers-junitJupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "testcontainers" }
  testcontainers-kafka = { module = "org.testcontainers:kafka", version.ref = "testcontainers" }
  testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "testcontainers" }
  testcontainers-mongodb = { module = "org.testcontainers:mongodb", version.ref = "testcontainers" }
  testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" }
  tomcatEmbed = { module = "org.apache.tomcat.embed:tomcat-embed-core", version.ref = "tomcat" }
  wavefront = { module = "com.wavefront:wavefront-sdk-java", version.ref = "wavefront" }
  wiremock = { module = "com.github.tomakehurst:wiremock-jre8-standalone", version.ref = "wiremock" }
  wiremockJunit5 = { module = "ru.lanwen.wiremock:wiremock-junit5", version.ref = "wiremock-junit5" }
  
  # plugin dependencies
  plugin-errorprone = { module = "net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin", version = "4.3.0" }
  plugin-license = { module = "gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin", version = "0.16.1" }
  plugin-nebulaRelease = { module = "com.netflix.nebula:nebula-release-plugin", version = "18.0.8" }
  plugin-nebulaPublishing = { module = "com.netflix.nebula:nebula-publishing-plugin", version = "20.3.0" }
  plugin-nebulaProject = { module = "com.netflix.nebula:nebula-project-plugin", version = "10.1.5" }
  plugin-nebulaInfo = { module = "com.netflix.nebula:gradle-info-plugin", version = "12.1.6" }
  plugin-noHttp = { module = "io.spring.nohttp:nohttp-gradle", version = "0.0.11" }
  plugin-nexusPublish = { module = "io.github.gradle-nexus:publish-plugin", version = "1.3.0" }
  plugin-javaformat = { module = "io.spring.javaformat:spring-javaformat-gradle-plugin", version.ref = "spring-javaformat" }
  plugin-japicmp = { module = "me.champeau.gradle:japicmp-gradle-plugin", version = "0.4.6" }
  plugin-downloadTask = { module = "de.undercouch:gradle-download-task", version = "5.6.0" }
  plugin-spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version = "6.25.0" }
  plugin-bnd = "biz.aQute.bnd:biz.aQute.bnd.gradle:6.4.0"
  plugin-bndForJava17 = "biz.aQute.bnd:biz.aQute.bnd.gradle:7.1.0"
  
  [plugins]
  kotlin19 = { id = "org.jetbrains.kotlin.jvm", version = "1.9.25" }
  kotlin17 = { id = "org.jetbrains.kotlin.jvm", version = "1.7.22" }
  jcstress = { id = "io.github.reyerizo.gradle.jcstress", version = "0.8.15" }
  aspectj = { id = 'io.freefair.aspectj.post-compile-weaving', version = '8.14.2' }
  