|
| 1 | +ThisBuild / version := "1.10.1" |
| 2 | +ThisBuild / scalaVersion := "2.12.20" |
| 3 | +ThisBuild / organization := "com.tesobe" |
| 4 | + |
| 5 | +// Java version compatibility |
| 6 | +ThisBuild / javacOptions ++= Seq("-source", "11", "-target", "11") |
| 7 | +ThisBuild / scalacOptions ++= Seq( |
| 8 | + "-unchecked", |
| 9 | + "-explaintypes", |
| 10 | + "-target:jvm-1.8", |
| 11 | + "-Yrangepos" |
| 12 | +) |
| 13 | + |
| 14 | +// Enable SemanticDB for Metals |
| 15 | +ThisBuild / semanticdbEnabled := true |
| 16 | +ThisBuild / semanticdbVersion := "4.13.9" |
| 17 | + |
| 18 | +// Fix dependency conflicts |
| 19 | +ThisBuild / libraryDependencySchemes += "org.scala-lang.modules" %% "scala-xml" % VersionScheme.Always |
| 20 | + |
| 21 | +lazy val liftVersion = "3.5.0" |
| 22 | +lazy val akkaVersion = "2.5.32" |
| 23 | +lazy val jettyVersion = "9.4.50.v20221201" |
| 24 | +lazy val avroVersion = "1.8.2" |
| 25 | + |
| 26 | +lazy val commonSettings = Seq( |
| 27 | + resolvers ++= Seq( |
| 28 | + "Sonatype OSS Releases" at "https://oss.sonatype.org/content/repositories/releases", |
| 29 | + "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots", |
| 30 | + "Artima Maven Repository" at "https://repo.artima.com/releases", |
| 31 | + "OpenBankProject M2 Repository" at "https://raw.githubusercontent.com/OpenBankProject/OBP-M2-REPO/master", |
| 32 | + "jitpack.io" at "https://jitpack.io" |
| 33 | + ) |
| 34 | +) |
| 35 | + |
| 36 | +lazy val obpCommons = (project in file("obp-commons")) |
| 37 | + .settings( |
| 38 | + commonSettings, |
| 39 | + name := "obp-commons", |
| 40 | + libraryDependencies ++= Seq( |
| 41 | + "net.liftweb" %% "lift-common" % liftVersion, |
| 42 | + "net.liftweb" %% "lift-util" % liftVersion, |
| 43 | + "net.liftweb" %% "lift-mapper" % liftVersion, |
| 44 | + "org.scala-lang" % "scala-reflect" % "2.12.20", |
| 45 | + "org.scalatest" %% "scalatest" % "3.2.15" % Test, |
| 46 | + "org.scalactic" %% "scalactic" % "3.2.15", |
| 47 | + "net.liftweb" %% "lift-json" % liftVersion, |
| 48 | + "com.alibaba" % "transmittable-thread-local" % "2.11.5", |
| 49 | + "org.apache.commons" % "commons-lang3" % "3.12.0", |
| 50 | + "org.apache.commons" % "commons-text" % "1.10.0", |
| 51 | + "com.google.guava" % "guava" % "32.0.0-jre" |
| 52 | + ) |
| 53 | + ) |
| 54 | + |
| 55 | +lazy val obpApi = (project in file("obp-api")) |
| 56 | + .dependsOn(obpCommons) |
| 57 | + .settings( |
| 58 | + commonSettings, |
| 59 | + name := "obp-api", |
| 60 | + libraryDependencies ++= Seq( |
| 61 | + // Core dependencies |
| 62 | + "net.liftweb" %% "lift-mapper" % liftVersion, |
| 63 | + "net.databinder.dispatch" %% "dispatch-lift-json" % "0.13.1", |
| 64 | + "ch.qos.logback" % "logback-classic" % "1.2.13", |
| 65 | + "org.slf4j" % "log4j-over-slf4j" % "1.7.26", |
| 66 | + "org.slf4j" % "slf4j-ext" % "1.7.26", |
| 67 | + |
| 68 | + // Security |
| 69 | + "org.bouncycastle" % "bcpg-jdk15on" % "1.70", |
| 70 | + "org.bouncycastle" % "bcpkix-jdk15on" % "1.70", |
| 71 | + "com.nimbusds" % "nimbus-jose-jwt" % "9.37.2", |
| 72 | + "com.nimbusds" % "oauth2-oidc-sdk" % "9.27", |
| 73 | + |
| 74 | + // Commons |
| 75 | + "org.apache.commons" % "commons-lang3" % "3.12.0", |
| 76 | + "org.apache.commons" % "commons-text" % "1.10.0", |
| 77 | + "org.apache.commons" % "commons-email" % "1.5", |
| 78 | + "org.apache.commons" % "commons-compress" % "1.26.0", |
| 79 | + "org.apache.commons" % "commons-pool2" % "2.11.1", |
| 80 | + |
| 81 | + // Database |
| 82 | + "org.postgresql" % "postgresql" % "42.4.4", |
| 83 | + "com.h2database" % "h2" % "2.2.220" % Runtime, |
| 84 | + "mysql" % "mysql-connector-java" % "8.0.30", |
| 85 | + "com.microsoft.sqlserver" % "mssql-jdbc" % "11.2.0.jre11", |
| 86 | + |
| 87 | + // Web |
| 88 | + "javax.servlet" % "javax.servlet-api" % "3.1.0" % Provided, |
| 89 | + "org.eclipse.jetty" % "jetty-server" % jettyVersion % Test, |
| 90 | + "org.eclipse.jetty" % "jetty-webapp" % jettyVersion % Test, |
| 91 | + "org.eclipse.jetty" % "jetty-util" % jettyVersion, |
| 92 | + |
| 93 | + // Akka |
| 94 | + "com.typesafe.akka" %% "akka-actor" % akkaVersion, |
| 95 | + "com.typesafe.akka" %% "akka-remote" % akkaVersion, |
| 96 | + "com.typesafe.akka" %% "akka-slf4j" % akkaVersion, |
| 97 | + "com.typesafe.akka" %% "akka-http-core" % "10.1.6", |
| 98 | + |
| 99 | + // Avro |
| 100 | + "com.sksamuel.avro4s" %% "avro4s-core" % avroVersion, |
| 101 | + |
| 102 | + // Twitter |
| 103 | + "com.twitter" %% "chill-akka" % "0.9.1", |
| 104 | + "com.twitter" %% "chill-bijection" % "0.9.1", |
| 105 | + |
| 106 | + // Cache |
| 107 | + "com.github.cb372" %% "scalacache-redis" % "0.9.3", |
| 108 | + "com.github.cb372" %% "scalacache-guava" % "0.9.3", |
| 109 | + |
| 110 | + // Utilities |
| 111 | + "com.github.dwickern" %% "scala-nameof" % "1.0.3", |
| 112 | + "org.javassist" % "javassist" % "3.25.0-GA", |
| 113 | + "com.alibaba" % "transmittable-thread-local" % "2.14.2", |
| 114 | + "org.clapper" %% "classutil" % "1.4.0", |
| 115 | + "com.github.grumlimited" % "geocalc" % "0.5.7", |
| 116 | + "com.github.OpenBankProject" % "scala-macros" % "v1.0.0-alpha.3", |
| 117 | + "org.scalameta" %% "scalameta" % "3.7.4", |
| 118 | + |
| 119 | + // Akka Adapter - exclude transitive dependency on obp-commons to use local module |
| 120 | + "com.github.OpenBankProject.OBP-Adapter-Akka-SpringBoot" % "adapter-akka-commons" % "v1.1.0" exclude("com.github.OpenBankProject.OBP-API", "obp-commons"), |
| 121 | + |
| 122 | + // JSON Schema |
| 123 | + "com.github.everit-org.json-schema" % "org.everit.json.schema" % "1.6.1", |
| 124 | + "com.networknt" % "json-schema-validator" % "1.0.87", |
| 125 | + |
| 126 | + // Swagger |
| 127 | + "io.swagger.parser.v3" % "swagger-parser" % "2.0.13", |
| 128 | + |
| 129 | + // Text processing |
| 130 | + "org.atteo" % "evo-inflector" % "1.2.2", |
| 131 | + |
| 132 | + // Payment |
| 133 | + "com.stripe" % "stripe-java" % "12.1.0", |
| 134 | + "com.twilio.sdk" % "twilio" % "9.2.0", |
| 135 | + |
| 136 | + // gRPC |
| 137 | + "com.thesamet.scalapb" %% "scalapb-runtime-grpc" % "0.8.4", |
| 138 | + "io.grpc" % "grpc-all" % "1.48.1", |
| 139 | + "io.netty" % "netty-tcnative-boringssl-static" % "2.0.27.Final", |
| 140 | + "org.asynchttpclient" % "async-http-client" % "2.10.4", |
| 141 | + |
| 142 | + // Database utilities |
| 143 | + "org.scalikejdbc" %% "scalikejdbc" % "3.4.0", |
| 144 | + |
| 145 | + // XML |
| 146 | + "org.scala-lang.modules" %% "scala-xml" % "1.2.0", |
| 147 | + |
| 148 | + // IBAN |
| 149 | + "org.iban4j" % "iban4j" % "3.2.7-RELEASE", |
| 150 | + |
| 151 | + // JavaScript |
| 152 | + "org.graalvm.js" % "js" % "22.0.0.2", |
| 153 | + "org.graalvm.js" % "js-scriptengine" % "22.0.0.2", |
| 154 | + "ch.obermuhlner" % "java-scriptengine" % "2.0.0", |
| 155 | + |
| 156 | + // Hydra |
| 157 | + "sh.ory.hydra" % "hydra-client" % "1.7.0", |
| 158 | + |
| 159 | + // HTTP |
| 160 | + "com.squareup.okhttp3" % "okhttp" % "4.12.0", |
| 161 | + "com.squareup.okhttp3" % "logging-interceptor" % "4.12.0", |
| 162 | + "org.apache.httpcomponents" % "httpclient" % "4.5.13", |
| 163 | + |
| 164 | + // RabbitMQ |
| 165 | + "com.rabbitmq" % "amqp-client" % "5.22.0", |
| 166 | + "net.liftmodules" %% "amqp_3.1" % "1.5.0", |
| 167 | + |
| 168 | + // Elasticsearch |
| 169 | + "org.elasticsearch" % "elasticsearch" % "8.14.0", |
| 170 | + "com.sksamuel.elastic4s" %% "elastic4s-client-esjava" % "8.5.2", |
| 171 | + |
| 172 | + // OAuth |
| 173 | + "oauth.signpost" % "signpost-commonshttp4" % "1.2.1.2", |
| 174 | + |
| 175 | + // Utilities |
| 176 | + "cglib" % "cglib" % "3.3.0", |
| 177 | + "com.sun.activation" % "jakarta.activation" % "1.2.2", |
| 178 | + "com.nulab-inc" % "zxcvbn" % "1.9.0", |
| 179 | + |
| 180 | + // Testing - temporarily disabled due to version incompatibility |
| 181 | + // "org.scalatest" %% "scalatest" % "2.2.6" % Test, |
| 182 | + |
| 183 | + // Jackson |
| 184 | + "com.fasterxml.jackson.core" % "jackson-databind" % "2.12.7.1", |
| 185 | + |
| 186 | + // Flexmark (markdown processing) |
| 187 | + "com.vladsch.flexmark" % "flexmark-profile-pegdown" % "0.40.8", |
| 188 | + "com.vladsch.flexmark" % "flexmark-util-options" % "0.64.0", |
| 189 | + |
| 190 | + // Connection pool |
| 191 | + "com.zaxxer" % "HikariCP" % "4.0.3", |
| 192 | + |
| 193 | + // Test dependencies |
| 194 | + "junit" % "junit" % "4.13.2" % Test, |
| 195 | + "org.scalatest" %% "scalatest" % "3.2.15" % Test, |
| 196 | + "org.seleniumhq.selenium" % "htmlunit-driver" % "2.36.0" % Test, |
| 197 | + "org.testcontainers" % "rabbitmq" % "1.20.3" % Test |
| 198 | + ) |
| 199 | + ) |
0 commit comments