From bd5066740dc42e71cb7bc3d8e5cf4db47f200d8f Mon Sep 17 00:00:00 2001 From: Eike Kettner Date: Wed, 6 May 2020 22:04:51 +0200 Subject: [PATCH] Joex depends on backend module The job executor depends on backend module, since it may control the application via user tasks. The `ONode` can now be moved from the store module into the backend module. --- build.sbt | 75 +++++++++++-------- .../scala/docspell/backend/BackendApp.scala | 1 - .../scala/docspell/backend}/ops/ONode.scala | 2 +- .../scala/docspell/joex/JoexAppImpl.scala | 2 +- 4 files changed, 46 insertions(+), 34 deletions(-) rename modules/{store/src/main/scala/docspell/store => backend/src/main/scala/docspell/backend}/ops/ONode.scala (97%) diff --git a/build.sbt b/build.sbt index 04a89ead..c31fd161 100644 --- a/build.sbt +++ b/build.sbt @@ -7,6 +7,10 @@ import microsites.ExtraMdFileConfig val toolsPackage = taskKey[Seq[File]]("Package the scripts/extension tools") val elmCompileMode = settingKey[ElmCompileMode]("How to compile elm sources") + + +// --- Settings + val sharedSettings = Seq( organization := "com.github.eikek", scalaVersion := "2.13.2", @@ -46,7 +50,6 @@ lazy val noPublish = Seq( publishArtifact := false ) - val elmSettings = Seq( elmCompileMode := ElmCompileMode.Debug, Compile/resourceGenerators += Def.task { @@ -139,6 +142,8 @@ val openapiScalaSettings = Seq( })) ) + + // --- Modules // Base module, everything depends on this – including restapi and @@ -286,35 +291,6 @@ val joexapi = project.in(file("modules/joexapi")). openapiSpec := (Compile/resourceDirectory).value/"joex-openapi.yml" ).dependsOn(common) -val joex = project.in(file("modules/joex")). - enablePlugins(BuildInfoPlugin - , JavaServerAppPackaging - , DebianPlugin - , SystemdPlugin). - settings(sharedSettings). - settings(testSettings). - settings(debianSettings("docspell-joex")). - settings(buildInfoSettings). - settings( - name := "docspell-joex", - libraryDependencies ++= - Dependencies.fs2 ++ - Dependencies.http4s ++ - Dependencies.circe ++ - Dependencies.pureconfig ++ - Dependencies.emilTnef ++ - Dependencies.emilMarkdown ++ - Dependencies.emilJsoup ++ - Dependencies.jsoup ++ - Dependencies.yamusca ++ - Dependencies.loggingApi ++ - Dependencies.logging.map(_ % Runtime), - addCompilerPlugin(Dependencies.kindProjectorPlugin), - addCompilerPlugin(Dependencies.betterMonadicFor), - buildInfoPackage := "docspell.joex", - reStart/javaOptions ++= Seq(s"-Dconfig.file=${(LocalRootProject/baseDirectory).value/"local"/"dev.conf"}") - ).dependsOn(store, extract, convert, analysis, joexapi, restapi) - val backend = project.in(file("modules/backend")). disablePlugins(RevolverPlugin). settings(sharedSettings). @@ -343,6 +319,39 @@ val webapp = project.in(file("modules/webapp")). openapiElmConfig := ElmConfig().withJson(ElmJson.decodePipeline) ) + + +// --- Application(s) + +val joex = project.in(file("modules/joex")). + enablePlugins(BuildInfoPlugin + , JavaServerAppPackaging + , DebianPlugin + , SystemdPlugin). + settings(sharedSettings). + settings(testSettings). + settings(debianSettings("docspell-joex")). + settings(buildInfoSettings). + settings( + name := "docspell-joex", + libraryDependencies ++= + Dependencies.fs2 ++ + Dependencies.http4s ++ + Dependencies.circe ++ + Dependencies.pureconfig ++ + Dependencies.emilTnef ++ + Dependencies.emilMarkdown ++ + Dependencies.emilJsoup ++ + Dependencies.jsoup ++ + Dependencies.yamusca ++ + Dependencies.loggingApi ++ + Dependencies.logging.map(_ % Runtime), + addCompilerPlugin(Dependencies.kindProjectorPlugin), + addCompilerPlugin(Dependencies.betterMonadicFor), + buildInfoPackage := "docspell.joex", + reStart/javaOptions ++= Seq(s"-Dconfig.file=${(LocalRootProject/baseDirectory).value/"local"/"dev.conf"}") + ).dependsOn(store, backend, extract, convert, analysis, joexapi, restapi) + val restserver = project.in(file("modules/restserver")). enablePlugins(BuildInfoPlugin , JavaServerAppPackaging @@ -379,6 +388,10 @@ val restserver = project.in(file("modules/restserver")). reStart/javaOptions ++= Seq(s"-Dconfig.file=${(LocalRootProject/baseDirectory).value/"local"/"dev.conf"}") ).dependsOn(restapi, joexapi, backend, webapp) + + +// --- Microsite Documentation + val microsite = project.in(file("modules/microsite")). disablePlugins(RevolverPlugin). enablePlugins(MicrositesPlugin). @@ -464,7 +477,7 @@ val root = project.in(file(".")). -// --- helpers +// --- Helpers def copyWebjarResources(src: Seq[File], base: File, artifact: String, version: String, logger: Logger): Seq[File] = { val targetDir = base/"META-INF"/"resources"/"webjars"/artifact/version diff --git a/modules/backend/src/main/scala/docspell/backend/BackendApp.scala b/modules/backend/src/main/scala/docspell/backend/BackendApp.scala index 7cddeead..331d79d4 100644 --- a/modules/backend/src/main/scala/docspell/backend/BackendApp.scala +++ b/modules/backend/src/main/scala/docspell/backend/BackendApp.scala @@ -5,7 +5,6 @@ import docspell.backend.auth.Login import docspell.backend.ops._ import docspell.backend.signup.OSignup import docspell.store.Store -import docspell.store.ops.ONode import docspell.store.queue.JobQueue import docspell.store.usertask.UserTaskStore diff --git a/modules/store/src/main/scala/docspell/store/ops/ONode.scala b/modules/backend/src/main/scala/docspell/backend/ops/ONode.scala similarity index 97% rename from modules/store/src/main/scala/docspell/store/ops/ONode.scala rename to modules/backend/src/main/scala/docspell/backend/ops/ONode.scala index c31621f3..722ceef3 100644 --- a/modules/store/src/main/scala/docspell/store/ops/ONode.scala +++ b/modules/backend/src/main/scala/docspell/backend/ops/ONode.scala @@ -1,4 +1,4 @@ -package docspell.store.ops +package docspell.backend.ops import cats.effect.{Effect, Resource} import cats.implicits._ diff --git a/modules/joex/src/main/scala/docspell/joex/JoexAppImpl.scala b/modules/joex/src/main/scala/docspell/joex/JoexAppImpl.scala index e17c4b98..28489b59 100644 --- a/modules/joex/src/main/scala/docspell/joex/JoexAppImpl.scala +++ b/modules/joex/src/main/scala/docspell/joex/JoexAppImpl.scala @@ -10,7 +10,7 @@ import docspell.joex.scheduler._ import docspell.joexapi.client.JoexClient import docspell.store.Store import docspell.store.queue._ -import docspell.store.ops.ONode +import docspell.backend.ops.ONode import docspell.store.records.RJobLog import fs2.concurrent.SignallingRef import scala.concurrent.ExecutionContext