diff options
12 files changed, 8 insertions, 65 deletions
@@ -72,9 +72,14 @@ lazy val `core-messaging` = project .dependsOn(`core-reporting`) .settings(testdeps) +lazy val `core-database` = project + .enablePlugins(LibraryPlugin) + .dependsOn(`core-types`) + .settings(testdeps) + lazy val `core-init` = project .enablePlugins(LibraryPlugin) - .dependsOn(`core-reporting`, `core-storage`, `core-messaging`, `core-rest`) + .dependsOn(`core-reporting`, `core-storage`, `core-messaging`, `core-rest`, `core-database`) .settings(testdeps) lazy val core = project @@ -91,5 +96,5 @@ lazy val core = project s"https://github.com/drivergroup/driver-core/blob/master€{FILE_PATH}.scala" ) ) - .dependsOn(`core-types`, `core-rest`, `core-reporting`, `core-storage`, `core-messaging`, `core-init`) + .dependsOn(`core-types`, `core-rest`, `core-reporting`, `core-storage`, `core-messaging`, `core-database`, `core-init`) .settings(testdeps) diff --git a/src/main/scala/xyz/driver/core/database/Converters.scala b/core-database/src/main/scala/xyz/driver/core/database/Converters.scala index ad79abf..b0054ad 100644 --- a/src/main/scala/xyz/driver/core/database/Converters.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/Converters.scala @@ -1,7 +1,5 @@ package xyz.driver.core.database -import xyz.driver.core.rest.errors.DatabaseException - import scala.reflect.ClassTag /** @@ -24,3 +22,4 @@ trait Converters { query.map(expectValid[ADT](mapper, _)) } } +final case class DatabaseException(message: String = "Database access error") extends RuntimeException(message) diff --git a/src/main/scala/xyz/driver/core/database/PatchedHsqldbProfile.scala b/core-database/src/main/scala/xyz/driver/core/database/PatchedHsqldbProfile.scala index e2efd32..e2efd32 100644 --- a/src/main/scala/xyz/driver/core/database/PatchedHsqldbProfile.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/PatchedHsqldbProfile.scala diff --git a/src/main/scala/xyz/driver/core/database/Repository.scala b/core-database/src/main/scala/xyz/driver/core/database/Repository.scala index 5d7f787..5d7f787 100644 --- a/src/main/scala/xyz/driver/core/database/Repository.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/Repository.scala diff --git a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala b/core-database/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala index 8293371..8293371 100644 --- a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala diff --git a/src/main/scala/xyz/driver/core/database/database.scala b/core-database/src/main/scala/xyz/driver/core/database/database.scala index bd20b54..bd20b54 100644 --- a/src/main/scala/xyz/driver/core/database/database.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/database.scala diff --git a/src/main/scala/xyz/driver/core/database/package.scala b/core-database/src/main/scala/xyz/driver/core/database/package.scala index aee14c6..aee14c6 100644 --- a/src/main/scala/xyz/driver/core/database/package.scala +++ b/core-database/src/main/scala/xyz/driver/core/database/package.scala diff --git a/src/test/scala/xyz/driver/core/database/DatabaseTest.scala b/core-database/src/test/scala/xyz/driver/core/database/DatabaseTest.scala index 8d2a4ac..8d2a4ac 100644 --- a/src/test/scala/xyz/driver/core/database/DatabaseTest.scala +++ b/core-database/src/test/scala/xyz/driver/core/database/DatabaseTest.scala diff --git a/core-rest/src/main/scala/xyz/driver/core/json.scala b/core-rest/src/main/scala/xyz/driver/core/json.scala index edc2347..40888aa 100644 --- a/core-rest/src/main/scala/xyz/driver/core/json.scala +++ b/core-rest/src/main/scala/xyz/driver/core/json.scala @@ -383,7 +383,6 @@ object json extends PathMatchers with Unmarshallers { case _: ResourceNotFoundException => "ResourceNotFoundException" case _: ExternalServiceException => "ExternalServiceException" case _: ExternalServiceTimeoutException => "ExternalServiceTimeoutException" - case _: DatabaseException => "DatabaseException" } { case "InvalidInputException" => jsonFormat(InvalidInputException, "message") case "InvalidActionException" => jsonFormat(InvalidActionException, "message") @@ -392,7 +391,6 @@ object json extends PathMatchers with Unmarshallers { case "ExternalServiceException" => jsonFormat(ExternalServiceException, "serviceName", "serviceMessage", "serviceException") case "ExternalServiceTimeoutException" => jsonFormat(ExternalServiceTimeoutException, "message") - case "DatabaseException" => jsonFormat(DatabaseException, "message") } } diff --git a/core-rest/src/main/scala/xyz/driver/core/rest/DriverRoute.scala b/core-rest/src/main/scala/xyz/driver/core/rest/DriverRoute.scala index 911e306..b94f611 100644 --- a/core-rest/src/main/scala/xyz/driver/core/rest/DriverRoute.scala +++ b/core-rest/src/main/scala/xyz/driver/core/rest/DriverRoute.scala @@ -88,9 +88,6 @@ trait DriverRoute { case e: ExternalServiceTimeoutException => log.error("Service timeout error", e) StatusCodes.GatewayTimeout - case e: DatabaseException => - log.error("Database error", e) - StatusCodes.InternalServerError } { (ctx: RequestContext) => diff --git a/core-rest/src/main/scala/xyz/driver/core/rest/errors/serviceException.scala b/core-rest/src/main/scala/xyz/driver/core/rest/errors/serviceException.scala index f2962c9..b43a1d3 100644 --- a/core-rest/src/main/scala/xyz/driver/core/rest/errors/serviceException.scala +++ b/core-rest/src/main/scala/xyz/driver/core/rest/errors/serviceException.scala @@ -22,6 +22,3 @@ final case class ExternalServiceException( final case class ExternalServiceTimeoutException(serviceName: String) extends ServiceException(s"$serviceName took too long to respond") - -final case class DatabaseException(override val message: String = "Database access error") - extends ServiceException(message) diff --git a/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala b/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala deleted file mode 100644 index 5939efb..0000000 --- a/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala +++ /dev/null @@ -1,53 +0,0 @@ -/** Code ported from "de.geekonaut" %% "slickmdc" % "1.0.0" - * License: @see https://github.com/AVGP/slickmdc/blob/master/LICENSE - * Blog post: @see http://50linesofco.de/post/2016-07-01-slick-and-slf4j-mdc-logging-in-scala.html - */ -package xyz.driver.core -package database - -import java.util.concurrent._ -import java.util.concurrent.atomic.AtomicInteger - -import scala.concurrent._ -import com.typesafe.scalalogging.StrictLogging -import slick.util.AsyncExecutor - -import logging.MdcExecutionContext - -/** Taken from the original Slick AsyncExecutor and simplified - * @see https://github.com/slick/slick/blob/3.1/slick/src/main/scala/slick/util/AsyncExecutor.scala - */ -object MdcAsyncExecutor extends StrictLogging { - - /** Create an AsyncExecutor with a fixed-size thread pool. - * - * @param name The name for the thread pool. - * @param numThreads The number of threads in the pool. - */ - def apply(name: String, numThreads: Int): AsyncExecutor = { - new AsyncExecutor { - val tf = new DaemonThreadFactory(name + "-") - - lazy val executionContext = { - new MdcExecutionContext(ExecutionContext.fromExecutor(Executors.newFixedThreadPool(numThreads, tf))) - } - - def close(): Unit = {} - } - } - - def default(name: String = "AsyncExecutor.default"): AsyncExecutor = apply(name, 20) - - private class DaemonThreadFactory(namePrefix: String) extends ThreadFactory { - private[this] val group = - Option(System.getSecurityManager).fold(Thread.currentThread.getThreadGroup)(_.getThreadGroup) - private[this] val threadNumber = new AtomicInteger(1) - - def newThread(r: Runnable): Thread = { - val t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement, 0) - if (!t.isDaemon) t.setDaemon(true) - if (t.getPriority != Thread.NORM_PRIORITY) t.setPriority(Thread.NORM_PRIORITY) - t - } - } -} |