project/Dependencies.scala (437 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * license agreements; and to You under the Apache License, version 2.0: * * https://www.apache.org/licenses/LICENSE-2.0 * * This file is part of the Apache Pekko project, which was derived from Akka. */ import sbt._ import Common.isScala3 import Keys._ import com.github.sbt.junit.jupiter.sbt.Import.JupiterKeys object Dependencies { val CronBuild = sys.env.get("GITHUB_EVENT_NAME").contains("schedule") val Scala213 = "2.13.16" // update even in link-validator.conf val Scala212 = "2.12.20" val Scala3 = "3.3.5" val ScalaVersions = Seq(Scala213, Scala212, Scala3) val PekkoVersion = PekkoCoreDependency.version val PekkoBinaryVersion = PekkoCoreDependency.default.link val InfluxDBJavaVersion = "2.23" val AvroVersion = "1.11.4" val AwsSdk2Version = "2.31.35" val NettyVersion = "4.2.0.Final" // Sync with plugins.sbt val PekkoGrpcBinaryVersion = "1.1" val PekkoHttpVersion = PekkoHttpDependency.version val PekkoStreamsCirceVersion = "1.1.0" val PekkoHttpBinaryVersion = PekkoHttpDependency.default.link val ScalaTestVersion = "3.2.19" val TestContainersScalaTestVersion = "0.43.0" val mockitoVersion = "4.11.0" // check even https://github.com/scalatest/scalatestplus-mockito/releases val protobufJavaVersion = "3.25.7" val hoverflyVersion = "0.19.1" val scalaCheckVersion = "1.18.1" // Legacy versions support Slf4J v1 for compatibility with older libs val Slf4jVersion = "2.0.17" val Slf4jLegacyVersion = "1.7.36" val LogbackVersion = "1.3.15" val LogbackLegacyVersion = "1.2.13" /** * Calculates the scalatest version in a format that is used for `org.scalatestplus` scalacheck artifacts * * @see * https://www.scalatest.org/user_guide/property_based_testing */ private def scalaTestPlusScalaCheckVersion(version: String) = version.split('.').take(2).mkString("-") val scalaTestScalaCheckArtifact = s"scalacheck-${scalaTestPlusScalaCheckVersion(scalaCheckVersion)}" val scalaTestScalaCheckVersion = s"$ScalaTestVersion.0" val scalaTestMockitoVersion = "3.2.18.0" val CouchbaseVersion = "2.7.23" val Couchbase3Version = "3.6.0" val CouchbaseVersionForDocs = "2.7" val GoogleAuthVersion = "1.34.0" val JwtScalaVersion = "10.0.4" val Log4jVersion = "2.24.3" // Releases https://github.com/FasterXML/jackson-databind/releases // CVE issues https://github.com/FasterXML/jackson-databind/issues?utf8=%E2%9C%93&q=+label%3ACVE // This should align with the Jackson minor version used in Pekko 1.1.x // https://github.com/apache/pekko/blob/main/project/Dependencies.scala val JacksonVersion = "2.19.0" val JacksonDatabindDependencies = Seq( "com.fasterxml.jackson.core" % "jackson-core" % JacksonVersion, "com.fasterxml.jackson.core" % "jackson-databind" % JacksonVersion) // wiremock has very outdated, CVE vulnerable dependencies private val jettyVersion = "9.4.57.v20241219" private val guavaVersion = "33.4.8-jre" private val wireMockDependencies = Seq( "com.github.tomakehurst" % "wiremock-jre8" % "2.35.2" % Test, "org.eclipse.jetty" % "jetty-server" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-servlet" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-servlets" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-webapp" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-proxy" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-alpn-server" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-alpn-java-server" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-alpn-openjdk8-server" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-alpn-java-client" % jettyVersion % Test, "org.eclipse.jetty" % "jetty-alpn-openjdk8-client" % jettyVersion % Test, "org.eclipse.jetty.http2" % "http2-server" % jettyVersion % Test, "com.google.guava" % "guava" % guavaVersion % Test, "com.fasterxml.jackson.core" % "jackson-core" % JacksonVersion % Test, "com.fasterxml.jackson.core" % "jackson-annotations" % JacksonVersion % Test, "com.fasterxml.jackson.core" % "jackson-databind" % JacksonVersion % Test, "commons-io" % "commons-io" % "2.19.0" % Test, "commons-fileupload" % "commons-fileupload" % "1.5" % Test, "com.jayway.jsonpath" % "json-path" % "2.9.0" % Test) val CommonSettings = Seq( // These libraries are added to all modules via the `Common` AutoPlugin libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-stream" % PekkoVersion)) val testkit = Seq( libraryDependencies := Seq( "org.scala-lang.modules" %% "scala-collection-compat" % "2.10.0", "org.apache.pekko" %% "pekko-stream" % PekkoVersion, "org.apache.pekko" %% "pekko-stream-testkit" % PekkoVersion, "org.apache.pekko" %% "pekko-slf4j" % PekkoVersion, "org.slf4j" % "slf4j-api" % Slf4jVersion, "ch.qos.logback" % "logback-classic" % LogbackVersion, "org.scalatest" %% "scalatest" % ScalaTestVersion, "com.dimafeng" %% "testcontainers-scala-scalatest" % TestContainersScalaTestVersion, "com.novocode" % "junit-interface" % "0.11", "junit" % "junit" % "4.13.2")) val Mockito = Seq( "org.mockito" % "mockito-core" % mockitoVersion % Test, // https://github.com/scalatest/scalatestplus-mockito/releases "org.scalatestplus" %% "mockito-4-11" % scalaTestMockitoVersion % Test) val Amqp = Seq( libraryDependencies ++= Seq( "com.rabbitmq" % "amqp-client" % "5.25.0", "org.scalatestplus" %% scalaTestScalaCheckArtifact % scalaTestScalaCheckVersion % Test) ++ Mockito) val AwsSpiPekkoHttp = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "software.amazon.awssdk" % "http-client-spi" % AwsSdk2Version, ("software.amazon.awssdk" % "dynamodb" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), ("software.amazon.awssdk" % "kinesis" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), ("software.amazon.awssdk" % "sns" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), ("software.amazon.awssdk" % "sqs" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), ("software.amazon.awssdk" % "s3" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), ("software.amazon.awssdk" % "http-client-tests" % AwsSdk2Version % "it,test").excludeAll( ExclusionRule("software.amazon.awssdk", "netty-nio-client")), "com.dimafeng" %% "testcontainers-scala" % TestContainersScalaTestVersion % Test, "com.github.sbt.junit" % "jupiter-interface" % JupiterKeys.jupiterVersion.value % Test, "org.scalatest" %% "scalatest" % ScalaTestVersion % "it,test", "ch.qos.logback" % "logback-classic" % LogbackVersion % "it,test")) val AwsLambda = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, ("software.amazon.awssdk" % "lambda" % AwsSdk2Version).excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client"))) ++ Mockito) val AzureStorageQueue = Seq( libraryDependencies ++= Seq( "com.microsoft.azure" % "azure-storage" % "8.6.6")) val CassandraVersionInDocs = "4.0" val CassandraDriverVersion = "4.19.0" val CassandraDriverVersionInDocs = "4.17" val Cassandra = Seq( libraryDependencies ++= JacksonDatabindDependencies ++ Seq( "org.apache.cassandra" % "java-driver-core" % CassandraDriverVersion, "io.netty" % "netty-handler" % NettyVersion, "org.apache.pekko" %% "pekko-discovery" % PekkoVersion % Provided)) val Couchbase = Seq( libraryDependencies ++= Seq( "com.couchbase.client" % "java-client" % CouchbaseVersion, "io.reactivex" % "rxjava-reactive-streams" % "1.2.1", "org.apache.pekko" %% "pekko-discovery" % PekkoVersion % Provided, "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion % Test, "com.fasterxml.jackson.core" % "jackson-databind" % JacksonVersion % Test, "com.fasterxml.jackson.module" %% "jackson-module-scala" % JacksonVersion % Test)) val Couchbase3 = Seq( libraryDependencies ++= Seq( "com.couchbase.client" % "java-client" % Couchbase3Version, "org.apache.pekko" %% "pekko-discovery" % PekkoVersion % Provided, "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion % Test, "com.fasterxml.jackson.core" % "jackson-databind" % JacksonVersion % Test, "com.fasterxml.jackson.module" %% "jackson-module-scala" % JacksonVersion % Test)) val `Doc-examples` = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-slf4j" % PekkoVersion, "org.apache.pekko" %% "pekko-stream-testkit" % PekkoVersion % Test, "org.apache.pekko" %% "pekko-connectors-kafka" % "1.1.0" % Test, "junit" % "junit" % "4.13.2" % Test, "org.scalatest" %% "scalatest" % ScalaTestVersion % Test)) val DynamoDB = Seq( libraryDependencies ++= Seq( ("software.amazon.awssdk" % "dynamodb" % AwsSdk2Version).excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client")), "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion)) val Elasticsearch = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "org.slf4j" % "jcl-over-slf4j" % Slf4jVersion % Test) ++ JacksonDatabindDependencies) val File = Seq( libraryDependencies ++= Seq( "com.google.jimfs" % "jimfs" % "1.3.0" % Test)) val avro4sVersion: Def.Initialize[String] = Def.setting { if (Common.isScala3.value) "5.0.9" else "4.1.1" } val AvroParquet = Seq( libraryDependencies ++= Seq( "org.apache.parquet" % "parquet-avro" % "1.15.2", "org.apache.avro" % "avro" % AvroVersion, ("org.apache.hadoop" % "hadoop-client" % "3.3.6" % Test).exclude("log4j", "log4j"), ("org.apache.hadoop" % "hadoop-common" % "3.3.6" % Test).exclude("log4j", "log4j"), "com.sksamuel.avro4s" %% "avro4s-core" % avro4sVersion.value % Test, "org.scalacheck" %% "scalacheck" % scalaCheckVersion % Test, "org.specs2" %% "specs2-core" % "4.21.0" % Test, "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "org.slf4j" % "log4j-over-slf4j" % Slf4jVersion % Test)) val Ftp = Seq( libraryDependencies ++= Seq( "commons-net" % "commons-net" % "3.11.1", "com.hierynomus" % "sshj" % "0.39.0", "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "ch.qos.logback" % "logback-classic" % LogbackVersion % Test) ++ Mockito) val GeodeVersion = "1.15.1" val GeodeVersionForDocs = "115" val Geode = Seq( libraryDependencies ++= { Seq("geode-core", "geode-cq") .map("org.apache.geode" % _ % GeodeVersion) ++ Seq( "com.fasterxml.jackson.datatype" % "jackson-datatype-joda" % JacksonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % JacksonVersion, "org.apache.logging.log4j" % "log4j-to-slf4j" % "2.24.3" % Test, "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "ch.qos.logback" % "logback-classic" % LogbackVersion % Test) ++ JacksonDatabindDependencies ++ (if (isScala3.value) Seq.empty // Equivalent and relevant shapeless functionality has been mainlined into Scala 3 language/stdlib else Seq( "com.chuusai" %% "shapeless" % "2.3.13")) }) val GoogleCommon = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "com.github.jwt-scala" %% "jwt-json-common" % JwtScalaVersion, "com.google.auth" % "google-auth-library-credentials" % GoogleAuthVersion, "io.specto" % "hoverfly-java" % hoverflyVersion % Test) ++ Mockito) val GoogleBigQuery = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-jackson" % PekkoHttpVersion % Provided, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "io.spray" %% "spray-json" % "1.3.6", "com.fasterxml.jackson.core" % "jackson-annotations" % JacksonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % JacksonVersion % Test, "io.specto" % "hoverfly-java" % hoverflyVersion % Test) ++ Mockito) val ArrowVersion = "16.0.0" val GoogleBigQueryStorage = Seq( // see Pekko gRPC version in plugins.sbt libraryDependencies ++= Seq( // https://github.com/googleapis/java-bigquerystorage/tree/master/proto-google-cloud-bigquerystorage-v1 "com.google.api.grpc" % "proto-google-cloud-bigquerystorage-v1" % "3.13.0" % "protobuf-src", "org.apache.avro" % "avro" % AvroVersion % "provided", "org.apache.arrow" % "arrow-vector" % ArrowVersion % "provided", "io.grpc" % "grpc-auth" % org.apache.pekko.grpc.gen.BuildInfo.grpcVersion, "com.google.protobuf" % "protobuf-java" % protobufJavaVersion % Runtime, "org.apache.pekko" %% "pekko-discovery" % PekkoVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-core" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-parsing" % PekkoHttpVersion, "org.apache.arrow" % "arrow-memory-netty" % ArrowVersion % Test, "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "ch.qos.logback" % "logback-classic" % LogbackVersion % Test) ++ Mockito) val GooglePubSub = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion) ++ Mockito ++ wireMockDependencies) val GooglePubSubGrpc = Seq( // see Pekko gRPC version in plugins.sbt libraryDependencies ++= Seq( // https://github.com/googleapis/java-pubsub/tree/master/proto-google-cloud-pubsub-v1/ "com.google.cloud" % "google-cloud-pubsub" % "1.139.1" % "protobuf-src", "io.grpc" % "grpc-auth" % org.apache.pekko.grpc.gen.BuildInfo.grpcVersion, "com.google.auth" % "google-auth-library-oauth2-http" % GoogleAuthVersion, "com.google.protobuf" % "protobuf-java" % protobufJavaVersion % Runtime, // pull in Pekko Discovery for our Pekko version "org.apache.pekko" %% "pekko-discovery" % PekkoVersion)) val GoogleFcm = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion) ++ Mockito) val GoogleStorage = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "io.specto" % "hoverfly-java" % hoverflyVersion % Test) ++ Mockito) val HBase = { val hbaseVersion = "1.4.14" val hadoopVersion = "2.7.7" Seq( libraryDependencies ++= Seq( ("org.apache.hbase" % "hbase-shaded-client" % hbaseVersion).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), ("org.apache.hbase" % "hbase-common" % hbaseVersion).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), ("org.apache.hadoop" % "hadoop-common" % hadoopVersion).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), ("org.apache.hadoop" % "hadoop-mapreduce-client-core" % hadoopVersion).exclude("log4j", "log4j").exclude( "org.slf4j", "slf4j-log4j12"), "org.slf4j" % "log4j-over-slf4j" % Slf4jVersion % Test)) } val HadoopVersion = "3.3.6" val Hdfs = Seq( libraryDependencies ++= Seq( ("org.apache.hadoop" % "hadoop-client" % HadoopVersion).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), "org.typelevel" %% "cats-core" % "2.13.0", ("org.apache.hadoop" % "hadoop-hdfs" % HadoopVersion % Test).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), ("org.apache.hadoop" % "hadoop-common" % HadoopVersion % Test).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), ("org.apache.hadoop" % "hadoop-minicluster" % HadoopVersion % Test).exclude("log4j", "log4j").exclude("org.slf4j", "slf4j-log4j12"), "org.slf4j" % "log4j-over-slf4j" % Slf4jVersion % Test) ++ Mockito) val HuaweiPushKit = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-spray-json" % PekkoHttpVersion, "com.github.jwt-scala" %% "jwt-json-common" % JwtScalaVersion) ++ Mockito) val InfluxDB = Seq( libraryDependencies ++= Seq( "org.influxdb" % "influxdb-java" % InfluxDBJavaVersion)) val IronMq = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.mdedetrich" %% "pekko-stream-circe" % PekkoStreamsCirceVersion, "org.mdedetrich" %% "pekko-http-circe" % PekkoStreamsCirceVersion)) val JakartaMs = { val artemisVersion = "2.19.1" Seq( libraryDependencies ++= Seq( "jakarta.jms" % "jakarta.jms-api" % "3.0.0" % Provided, "com.ibm.mq" % "com.ibm.mq.jakarta.client" % "9.4.2.1" % Test, "org.apache.activemq" % "artemis-server" % artemisVersion % Test, "org.apache.activemq" % "artemis-jakarta-client" % artemisVersion % Test, "org.apache.activemq" % "artemis-junit" % artemisVersion % Test, "com.github.pjfanning" % "jakartamswrapper" % "0.1.0" % Test) ++ Mockito) } val Jms = Seq( libraryDependencies ++= Seq( "javax.jms" % "javax.jms-api" % "2.0.1" % Provided, "com.ibm.mq" % "com.ibm.mq.allclient" % "9.4.2.1" % Test, "org.apache.activemq" % "activemq-broker" % "5.16.8" % Test, "org.apache.activemq" % "activemq-client" % "5.16.8" % Test, "io.github.sullis" %% "jms-testkit" % "1.0.4" % Test, "com.github.pjfanning" % "jmswrapper" % "0.1.0" % Test) ++ Mockito) val JsonStreaming = Seq( libraryDependencies ++= Seq( "com.github.jsurfer" % "jsurfer-jackson" % "1.6.5") ++ JacksonDatabindDependencies) val Kinesis = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "software.amazon.awssdk" % "kinesis" % AwsSdk2Version, "software.amazon.awssdk" % "firehose" % AwsSdk2Version, "software.amazon.kinesis" % "amazon-kinesis-client" % "3.0.2").map( _.excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client"))) ++ Seq( "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "ch.qos.logback" % "logback-classic" % LogbackVersion % Test) ++ Mockito) val KuduVersion = "1.17.1" val Kudu = Seq( libraryDependencies ++= Seq( "org.apache.kudu" % "kudu-client" % KuduVersion, "org.apache.logging.log4j" % "log4j-to-slf4j" % Log4jVersion % Test)) val MongoDb = Seq( crossScalaVersions -= Scala3, libraryDependencies ++= Seq( "org.mongodb.scala" %% "mongo-scala-driver" % "5.4.0")) val Mqtt = Seq( libraryDependencies ++= Seq( "org.eclipse.paho" % "org.eclipse.paho.client.mqttv3" % "1.2.5")) val MqttV5 = Seq( libraryDependencies ++= Seq( "org.eclipse.paho" % "org.eclipse.paho.mqttv5.client" % "1.2.5")) val MqttStreaming = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-actor-typed" % PekkoVersion, "org.apache.pekko" %% "pekko-actor-testkit-typed" % PekkoVersion % Test, "org.apache.pekko" %% "pekko-stream-typed" % PekkoVersion, "org.apache.pekko" %% "pekko-stream-testkit" % PekkoVersion % Test)) val OrientDB = Seq( libraryDependencies ++= JacksonDatabindDependencies ++ Seq( ("com.orientechnologies" % "orientdb-graphdb" % "3.2.39") .exclude("com.tinkerpop.blueprints", "blueprints-core"), "com.orientechnologies" % "orientdb-object" % "3.2.39")) val PravegaVersion = "0.13.0" val PravegaVersionForDocs = "latest" val Pravega = { Seq( libraryDependencies ++= Seq( "io.pravega" % "pravega-client" % PravegaVersion, "org.slf4j" % "slf4j-api" % Slf4jVersion % Test, "org.slf4j" % "log4j-over-slf4j" % Slf4jVersion % Test)) } val Reference = Seq( // connector specific library dependencies and resolver settings libraryDependencies ++= Seq( )) val S3 = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-xml" % PekkoHttpVersion, "software.amazon.awssdk" % "auth" % AwsSdk2Version, // in-memory filesystem for file related tests "com.google.jimfs" % "jimfs" % "1.3.0" % Test, "org.scalacheck" %% "scalacheck" % scalaCheckVersion % Test, "org.scalatestplus" %% scalaTestScalaCheckArtifact % scalaTestScalaCheckVersion % Test) ++ wireMockDependencies) val SpringWeb = { val SpringVersion = "5.3.39" val SpringBootVersion = "2.7.18" Seq( libraryDependencies ++= Seq( "org.springframework" % "spring-core" % SpringVersion, "org.springframework" % "spring-context" % SpringVersion, "org.springframework.boot" % "spring-boot-autoconfigure" % SpringBootVersion, // TODO should this be provided? "org.springframework.boot" % "spring-boot-configuration-processor" % SpringBootVersion % Optional, // for examples "org.springframework.boot" % "spring-boot-starter-web" % SpringBootVersion % Test)) } val SlickVersion = "3.5.1" val Slick = Seq( // Transitive dependency `scala-reflect` to avoid `NoClassDefFoundError`. // See: https://github.com/slick/slick/issues/2933 libraryDependencies ++= (CrossVersion.partialVersion(scalaVersion.value) match { case Some((2, _)) => Seq("org.scala-lang" % "scala-reflect" % scalaVersion.value) case _ => Nil }), libraryDependencies ++= Seq( "com.typesafe.slick" %% "slick" % SlickVersion, "com.typesafe.slick" %% "slick-hikaricp" % SlickVersion, "ch.qos.logback" % "logback-classic" % LogbackVersion % Test, "com.h2database" % "h2" % "2.2.224" % Test)) val Eventbridge = Seq( libraryDependencies ++= Seq( ("software.amazon.awssdk" % "eventbridge" % AwsSdk2Version).excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client")), "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion) ++ Mockito) val Sns = Seq( libraryDependencies ++= Seq( ("software.amazon.awssdk" % "sns" % AwsSdk2Version).excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client")), "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion) ++ Mockito) val SolrjVersion = "8.11.4" val SolrVersionForDocs = "8_11" val Solr = Seq( libraryDependencies ++= Seq( "org.apache.solr" % "solr-solrj" % SolrjVersion, ("org.apache.solr" % "solr-test-framework" % SolrjVersion % Test).exclude("org.apache.logging.log4j", "log4j-slf4j-impl"), "org.slf4j" % "log4j-over-slf4j" % Slf4jLegacyVersion % Test), dependencyOverrides ++= Seq( "org.slf4j" % "slf4j-api" % Slf4jLegacyVersion, "ch.qos.logback" % "logback-classic" % LogbackLegacyVersion)) val Sqs = Seq( libraryDependencies ++= Seq( ("software.amazon.awssdk" % "sqs" % AwsSdk2Version).excludeAll( ExclusionRule("software.amazon.awssdk", "apache-client"), ExclusionRule("software.amazon.awssdk", "netty-nio-client")), "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.mockito" % "mockito-inline" % mockitoVersion % Test) ++ Mockito) val Sse = Seq( libraryDependencies ++= Seq( "org.apache.pekko" %% "pekko-http" % PekkoHttpVersion, "org.apache.pekko" %% "pekko-http-testkit" % PekkoHttpVersion % Test)) val UnixDomainSocket = Seq( libraryDependencies ++= Seq( "com.github.jnr" % "jffi" % "1.3.13", // classifier "complete", // Is the classifier needed anymore? "com.github.jnr" % "jnr-unixsocket" % "0.38.23")) val Xml = Seq( libraryDependencies ++= Seq( "com.fasterxml" % "aalto-xml" % "1.3.3")) }