support-payment-api/build.sbt (66 lines of code) (raw):

import LibraryVersions._ name := "payment-api" version := "0.1" scalacOptions ++= Seq( "-Ywarn-unused:imports", "-Ymacro-annotations", ) addCompilerPlugin("org.typelevel" % "kind-projector_2.13.4" % "0.13.2") libraryDependencies ++= Seq( "com.amazonaws" % "aws-java-sdk-ssm" % awsClientVersion, "com.amazonaws" % "aws-java-sdk-sqs" % awsClientVersion, "com.amazonaws" % "aws-java-sdk-s3" % awsClientVersion, "com.amazonaws" % "aws-java-sdk-ec2" % awsClientVersion, "com.amazonaws" % "aws-java-sdk-cloudwatch" % awsClientVersion, "com.amazonaws" % "aws-java-sdk-sqs" % awsClientVersion, "com.amazon.pay" % "amazon-pay-java-sdk" % "3.6.2", "com.beachape" %% "enumeratum" % "1.7.3", "com.beachape" %% "enumeratum-circe" % "1.7.3", "com.dripower" %% "play-circe" % playCirceVersion, "org.typelevel" %% "simulacrum" % "1.0.1", "com.stripe" % "stripe-java" % stripeVersion, "com.gocardless" % "gocardless-pro" % "2.10.0", "io.circe" %% "circe-core" % circeVersion, "io.circe" %% "circe-generic" % circeVersion, "io.circe" %% "circe-parser" % circeVersion, "org.playframework.anorm" %% "anorm" % "2.7.0", "org.scalatest" %% "scalatest" % "3.0.9" % "test", "org.scalatestplus" %% "mockito-3-4" % "3.2.10.0" % "test", "org.mockito" % "mockito-core" % "4.11.0", "org.typelevel" %% "cats-core" % catsVersion, "com.github.blemale" %% "scaffeine" % "4.1.0", // This is required to force aws libraries to use the latest version of jackson "com.fasterxml.jackson.core" % "jackson-databind" % jacksonDatabindVersion, "com.fasterxml.jackson.core" % "jackson-annotations" % jacksonVersion, "com.fasterxml.jackson.core" % "jackson-core" % jacksonVersion, "com.fasterxml.jackson.dataformat" % "jackson-dataformat-cbor" % jacksonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jdk8" % jacksonVersion, "com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310" % jacksonVersion, "com.fasterxml.jackson.module" %% "jackson-module-scala" % jacksonVersion, "com.google.guava" % "guava" % "25.1-jre", // -- added explicitly - snyk report avoid logback vulnerability "com.paypal.sdk" % "rest-api-sdk" % "1.14.0" exclude ("org.apache.logging.log4j", "log4j-slf4j-impl"), pekkoHttpServer, // or use nettyServer for Netty logback, // add Play logging support jdbc, ws, "com.lihaoyi" %% "pprint" % "0.8.1", "com.github.blemale" %% "scaffeine" % "3.1.0", /** This is to satisfy `amazon-pay-java-sdk` dependencies as jaxb has been removed from Java 8 => Java 11. * * As per the docs, this should work: see https://eclipse-ee4j.github.io/jaxb-ri/ * * ``` * "jakarta.xml.bind" % "jakarta.xml.bind-api" % "4.0.0", * "com.sun.xml.bind" % "jaxb-impl" % "4.0.3" % Runtime, * ``` * * But annoyingly we still get this error: `java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException` */ "com.sun.xml.bind" % "jaxb-core" % "2.3.0.1", "javax.xml.bind" % "jaxb-api" % "2.3.1", "com.sun.xml.bind" % "jaxb-impl" % "2.3.1", ) excludeDependencies ++= Seq( // Exclude htmlunit due to a vulnerability. Brought in via play-test via fluentlenium-core and htmlunit-driver but we // don't need it. The vulnerability is fixed in v3 onwards, but the lib was renamed so I don't think we can force a // newer version by specifying it in the dependencies. ExclusionRule("net.sourceforge.htmlunit", "htmlunit"), ) dependencyOverrides += "com.fasterxml.jackson.core" % "jackson-databind" % jacksonDatabindVersion dependencyOverrides += "commons-io" % "commons-io" % "2.14.0" % Test resolvers ++= Resolver.sonatypeOssRepos("releases") Debian / packageName := name.value packageSummary := "Payment API Play App" packageDescription := """API for reader revenue payments""" maintainer := "Reader Revenue <reader.revenue.dev@theguardian.com>" riffRaffUploadArtifactBucket := Option("riffraff-artifact") riffRaffUploadManifestBucket := Option("riffraff-builds") riffRaffManifestProjectName := "support:payment-api-mono" riffRaffPackageType := (Debian / packageBin).value riffRaffArtifactResources += (file("cdk/cdk.out/Payment-API-PROD.template.json"), "cfn/Payment-API-PROD.template.json") riffRaffArtifactResources += (file("cdk/cdk.out/Payment-API-CODE.template.json"), "cfn/Payment-API-CODE.template.json")