Skip to content

Commit

Permalink
Used common project definitions in scommons-admin
Browse files Browse the repository at this point in the history
  • Loading branch information
viktor-podzigun committed Jun 23, 2018
1 parent ab97d2b commit 2ed9478
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 281 deletions.
5 changes: 3 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import common.Common
import definitions._
import scommons.sbtplugin.project.CommonModule

lazy val `scommons-admin` = (project in file("."))
.settings(Common.settings)
.settings(CommonModule.settings: _*)
.settings(AdminModule.settings: _*)
.settings(
ideaExcludeFolders += s"${baseDirectory.value}/docs/_site"
)
Expand Down
14 changes: 0 additions & 14 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@ resolvers ++= Seq(
"Sonatype OSS Releases" at "https://oss.sonatype.org/content/repositories/releases"
)


addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.7")

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.20")

//use patched versions by now, to make scoverage work with scalajs-bundler
Expand All @@ -15,15 +12,4 @@ addSbtPlugin(("org.scommons.patched" % "sbt-scalajs-bundler" % "0.9.0-SNAPSHOT")
// "org.scommons.patched" % "sbt-scalajs-bundler" % "0.9.0-SNAPSHOT"
//)

//addSbtPlugin("ch.epfl.scala" % "sbt-scalajs-bundler" % "0.9.0")
//addSbtPlugin("ch.epfl.scala" % "sbt-web-scalajs-bundler" % "0.9.0")
//addSbtPlugin("com.vmunier" % "sbt-web-scalajs" % "1.0.6")

addSbtPlugin("com.typesafe.sbt" % "sbt-gzip" % "1.0.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-digest" % "1.1.1")

addSbtPlugin(("org.scommons.sbt" % "sbt-scommons-plugin" % "0.1.0-SNAPSHOT").changing())

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.6.0")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.1")
addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.2.4")
53 changes: 0 additions & 53 deletions project/src/main/scala/common/Common.scala

This file was deleted.

24 changes: 3 additions & 21 deletions project/src/main/scala/common/Libs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@ package common

import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import sbt._
import scommons.sbtplugin.project.CommonLibs

object Libs {
object Libs extends CommonLibs {

val scommonsApiVersion = "0.1.0-SNAPSHOT"
val scommonsServiceVersion = "0.1.0-SNAPSHOT"
val scommonsClientVersion = "0.1.0-SNAPSHOT"

val akkaVersion = "2.5.6"
private val playVer = "2.6.7"

//////////////////////////////////////////////////////////////////////////////
// shared dependencies

Expand All @@ -20,24 +18,8 @@ object Libs {

//////////////////////////////////////////////////////////////////////////////
// jvm dependencies

lazy val scommonsServicePlay = Def.setting("org.scommons.service" %% "scommons-service-play" % scommonsServiceVersion)
lazy val scommonsClientAssets = Def.setting("org.scommons.client" %% "scommons-client-assets" % scommonsClientVersion)

lazy val play = Def.setting("com.typesafe.play" %% "play" % playVer)
lazy val scaldiPlay = Def.setting("org.scaldi" %% "scaldi-play" % "0.5.17")

lazy val logback = Def.setting("ch.qos.logback" % "logback-classic" % "1.1.7")
lazy val slf4jApi = Def.setting("org.slf4j" % "slf4j-api" % "1.7.12")
lazy val log4jToSlf4j = Def.setting("org.apache.logging.log4j" % "log4j-to-slf4j" % "2.2")
lazy val jclOverSlf4j = Def.setting("org.slf4j" % "jcl-over-slf4j" % "1.7.12")

lazy val swaggerPlay = Def.setting("io.swagger" %% "swagger-play2" % "1.6.0")
lazy val swaggerAnnotations = Def.setting("io.swagger" % "swagger-annotations" % "1.5.16")
lazy val swaggerUi = Def.setting("org.webjars" % "swagger-ui" % "2.2.2")


//////////////////////////////////////////////////////////////////////////////
// js dependencies

lazy val scommonsClientUi = Def.setting("org.scommons.client" %%% "scommons-client-ui" % scommonsClientVersion)
}
18 changes: 2 additions & 16 deletions project/src/main/scala/common/TestLibs.scala
Original file line number Diff line number Diff line change
@@ -1,26 +1,12 @@
package common

import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import common.Libs._
import sbt._
import scommons.sbtplugin.project.CommonTestLibs

object TestLibs {

private val scalaTestVersion = "3.0.1"
private val scalaMockVersion = "3.6.0"
object TestLibs extends CommonTestLibs {

lazy val scommonsApiPlayWs = Def.setting("org.scommons.api" %% "scommons-api-play-ws" % scommonsApiVersion)

lazy val scalaTest = Def.setting("org.scalatest" %% "scalatest" % scalaTestVersion)
lazy val scalaMock = Def.setting("org.scalamock" %% "scalamock-scalatest-support" % scalaMockVersion)

lazy val mockito = Def.setting("org.mockito" % "mockito-all" % "1.9.5")

lazy val scalaTestPlusPlay = Def.setting("org.scalatestplus.play" %% "scalatestplus-play" % "3.1.2")
lazy val akkaStreamTestKit = Def.setting("com.typesafe.akka" %% "akka-stream-testkit" % akkaVersion)

// Scala.js dependencies

lazy val scalaTestJs = Def.setting("org.scalatest" %%% "scalatest" % scalaTestVersion)
lazy val scalaMockJs = Def.setting("org.scalamock" %%% "scalamock-scalatest-support" % scalaMockVersion)
}
53 changes: 13 additions & 40 deletions project/src/main/scala/definitions/AdminClient.scala
Original file line number Diff line number Diff line change
@@ -1,52 +1,25 @@
package definitions

import com.typesafe.sbt.web.SbtWeb
import common.Libs
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import sbt.Keys._
import sbt._
import scoverage.ScoverageKeys._
import webscalajs.ScalaJSWeb
import scommons.sbtplugin.project.CommonClientModule

import scalajsbundler.BundlingMode
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin
import scalajsbundler.sbtplugin.ScalaJSBundlerPlugin.autoImport._

object AdminClient extends ScalaJsModule {
object AdminClient extends AdminModule with CommonClientModule {

override val id: String = "scommons-admin-client"

override def base: File = file(id)

override def definition: Project = {
super.definition
.enablePlugins(ScalaJSBundlerPlugin, ScalaJSWeb, SbtWeb)
.settings(
coverageEnabled := false,

scalaJSUseMainModuleInitializer := true,
webpackBundlingMode := BundlingMode.LibraryOnly(),

//dev
webpackConfigFile in fastOptJS := Some(baseDirectory.value / "admin.webpack.config.js"),
//production
webpackConfigFile in fullOptJS := Some(baseDirectory.value / "admin.webpack.config.js"),
//reload workflow and tests
webpackConfigFile in Test := Some(baseDirectory.value / "test.webpack.config.js")
)
}

override val internalDependencies: Seq[ClasspathDep[ProjectReference]] = Seq(
override def internalDependencies: Seq[ClasspathDep[ProjectReference]] = Seq(
AdminClientApi.js
)

override val superRepoProjectsDependencies: Seq[(String, String, Option[String])] = Seq(
("scommons-client", "scommons-client-ui", None)
)

override val runtimeDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Seq(
Libs.scommonsClientUi.value
))
override def runtimeDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting {
super.runtimeDependencies.value ++ Seq(
// specify your custom runtime dependencies here
)
}

override val testDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Nil)
override def testDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting {
super.testDependencies.value ++ Seq[ModuleID](
// specify your custom test dependencies here
).map(_ % "test")
}
}
6 changes: 4 additions & 2 deletions project/src/main/scala/definitions/AdminClientApi.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package definitions

import common.{Common, Libs}
import common.Libs
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import org.scalajs.sbtplugin.cross.CrossProject
import sbt.Keys._
import sbt._
import scommons.sbtplugin.project.CommonModule

object AdminClientApi {

Expand All @@ -13,7 +14,8 @@ object AdminClientApi {
def base: File = file(id)

private lazy val `scommons-admin-client-api`: CrossProject = crossProject.crossType(CrossType.Pure).in(base)
.settings(Common.settings: _*)
.settings(CommonModule.settings: _*)
.settings(AdminModule.settings: _*)
.settings(
libraryDependencies ++= Seq(
Libs.scommonsApiCore.value,
Expand Down
26 changes: 26 additions & 0 deletions project/src/main/scala/definitions/AdminModule.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package definitions

import common.Libs
import sbt.Keys._
import sbt._
import scommons.sbtplugin.project.CommonModule

trait AdminModule extends CommonModule {

override val repoName = "scommons-admin"

val scommonsServiceVersion: String = Libs.scommonsServiceVersion
val scommonsClientVersion: String = Libs.scommonsClientVersion

override def definition: Project = {
super.definition
.settings(AdminModule.settings: _*)
}
}

object AdminModule {

val settings: Seq[Setting[_]] = Seq(
organization := "org.scommons.admin"
)
}
68 changes: 16 additions & 52 deletions project/src/main/scala/definitions/AdminServer.scala
Original file line number Diff line number Diff line change
@@ -1,72 +1,36 @@
package definitions

import com.typesafe.sbt.digest.Import.digest
import com.typesafe.sbt.gzip.Import.gzip
import com.typesafe.sbt.web.SbtWeb.autoImport._
import common.{Libs, TestLibs}
import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._
import play.sbt.routes.RoutesKeys
import play.sbt.{PlayImport, PlayLayoutPlugin, PlayScala}
import sbt._
import scommons.sbtplugin.WebpackAssetsPlugin.autoImport._
import scoverage.ScoverageKeys.coverageExcludedPackages
import scommons.sbtplugin.project.CommonPlayModule
import webscalajs.WebScalaJS.autoImport._

import scalajsbundler.sbtplugin.WebScalaJSBundlerPlugin

object AdminServer extends BasicModule {
object AdminServer extends AdminModule with CommonPlayModule {

override val id: String = "scommons-admin-server"

override def base: File = file(id)

override def definition: Project = {
super.definition
.enablePlugins(PlayScala, WebScalaJSBundlerPlugin)
.disablePlugins(PlayLayoutPlugin)
.configs(IntegrationTest)
.settings(Defaults.itSettings: _*)
.settings(
RoutesKeys.routesImport -= "controllers.Assets.Asset", //remove unused import warning from routes file
coverageExcludedPackages := "<empty>;Reverse.*;router.*",

scalaJSProjects := Seq(AdminClient.definition),
pipelineStages in Assets := Seq(scalaJSPipeline),
pipelineStages := Seq(digest, gzip),

// Expose as sbt-web assets some webpack build files of the `client` project
//npmAssets ++= WebpackAssets.ofProject(ShowcaseClient.definition) { build => (build / "styles").*** }.value
webpackAssets in fastOptJS ++= WebpackAssets.ofProject(fastOptJS, AdminClient.definition) { build => (build / "styles").*** }.value,
webpackAssets in fullOptJS ++= WebpackAssets.ofProject(fullOptJS, AdminClient.definition) { build => (build / "styles").*** }.value
scalaJSProjects := Seq(AdminClient.definition)
)
}

override val internalDependencies: Seq[ClasspathDep[ProjectReference]] = Seq(
override def internalDependencies: Seq[ClasspathDep[ProjectReference]] = Seq(
AdminClientApi.jvm
)

override val superRepoProjectsDependencies: Seq[(String, String, Option[String])] = Seq(
("scommons-service", "scommons-service-play", None)
)

override val runtimeDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Seq(
Libs.scommonsServicePlay.value,
Libs.scommonsClientAssets.value,

PlayImport.guice,
Libs.play.value,
Libs.scaldiPlay.value,
Libs.slf4jApi.value,
Libs.logback.value,
Libs.swaggerPlay.value,
Libs.swaggerAnnotations.value,
Libs.swaggerUi.value
))
override def runtimeDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting {
super.runtimeDependencies.value ++ Seq(
Libs.swaggerPlay.value,
Libs.swaggerAnnotations.value,
Libs.swaggerUi.value
)
}

override val testDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting(Seq(
TestLibs.scommonsApiPlayWs.value,
TestLibs.scalaTestPlusPlay.value,
TestLibs.akkaStreamTestKit.value,
TestLibs.mockito.value
).map(_ % "it,test"))
override def testDependencies: Def.Initialize[Seq[ModuleID]] = Def.setting {
super.testDependencies.value ++ Seq[ModuleID](
TestLibs.scommonsApiPlayWs.value
).map(_ % "it,test")
}
}
25 changes: 0 additions & 25 deletions project/src/main/scala/definitions/BasicModule.scala

This file was deleted.

Loading

0 comments on commit 2ed9478

Please sign in to comment.