aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@drivergrp.com>2016-07-18 17:23:03 -0400
committervlad <vlad@drivergrp.com>2016-07-18 17:23:03 -0400
commit87aceccc72a6790d5fc2f842b27c7d9af36cfe95 (patch)
treeb05be5cc071633f7c0a8f04885056b362a5ec106
parent7b9e1b4045dc693158640004b48c5fa42fb3b20d (diff)
downloaddriver-core-87aceccc72a6790d5fc2f842b27c7d9af36cfe95.tar.gz
driver-core-87aceccc72a6790d5fc2f842b27c7d9af36cfe95.tar.bz2
driver-core-87aceccc72a6790d5fc2f842b27c7d9af36cfe95.zip
Wart remover brought to core
-rw-r--r--.gitignore2
-rw-r--r--project/Build.scala15
-rw-r--r--project/plugins.sbt7
-rw-r--r--project/sbt-ui.sbt3
-rw-r--r--src/main/scala/com/drivergrp/core/app.scala9
-rw-r--r--src/main/scala/com/drivergrp/core/core.scala2
-rw-r--r--src/main/scala/com/drivergrp/core/messages.scala2
-rw-r--r--src/main/scala/com/drivergrp/core/rest.scala2
-rw-r--r--src/main/scala/com/drivergrp/core/time.scala9
9 files changed, 34 insertions, 17 deletions
diff --git a/.gitignore b/.gitignore
index 4530652..ffa72aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,4 +15,4 @@ project/plugins/project/
# Scala-IDE specific
.scala_dependencies
.worksheet
-.idea \ No newline at end of file
+.idea/ \ No newline at end of file
diff --git a/project/Build.scala b/project/Build.scala
index 60eef38..0e39ce3 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -1,7 +1,19 @@
import sbt._
import Keys._
+import org.scalafmt.sbt.ScalaFmtPlugin.autoImport.scalafmtConfig
+import wartremover._
+import wartremover.WartRemover.autoImport.wartremoverErrors
+
+
object BuildSettings {
+
+ val wartRemoverSettings = Seq(
+ wartremoverErrors in (Compile, compile) ++= Warts.allBut(
+ Wart.AsInstanceOf, Wart.Nothing, Wart.Option2Iterable, Wart.ExplicitImplicitTypes,
+ Wart.Overloading, Wart.DefaultArguments, Wart.ToString, Wart.Any, Wart.Throw)
+ )
+
val buildSettings = Defaults.coreDefaultSettings ++ Seq (
organization := "com.drivergrp",
name := "core",
@@ -10,8 +22,9 @@ object BuildSettings {
scalacOptions := Seq("-unchecked", "-deprecation", "-feature", "-Xlint", "-encoding", "utf8",
"-language:higherKinds", "-language:implicitConversions", "-language:postfixOps",
"-Ywarn-infer-any", "-Ywarn-unused", "-Ywarn-unused-import"),
+ scalafmtConfig := Some(file(".scalafmt")),
fork in run := true
- )
+ ) ++ wartRemoverSettings
}
object DriverBuild extends Build {
diff --git a/project/plugins.sbt b/project/plugins.sbt
index e69de29..ee760ea 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -0,0 +1,7 @@
+// Code style plugins
+addSbtPlugin("com.geirsson" % "sbt-scalafmt" % "0.2.10")
+addSbtPlugin("org.wartremover" % "sbt-wartremover" % "1.0.1")
+addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.8.0")
+
+// This plugin represents functionality that is to be added to sbt in the future
+addSbtPlugin("org.scala-sbt" % "sbt-core-next" % "0.1.1") \ No newline at end of file
diff --git a/project/sbt-ui.sbt b/project/sbt-ui.sbt
deleted file mode 100644
index 7c28b97..0000000
--- a/project/sbt-ui.sbt
+++ /dev/null
@@ -1,3 +0,0 @@
-// This plugin represents functionality that is to be added to sbt in the future
-
-addSbtPlugin("org.scala-sbt" % "sbt-core-next" % "0.1.1") \ No newline at end of file
diff --git a/src/main/scala/com/drivergrp/core/app.scala b/src/main/scala/com/drivergrp/core/app.scala
index 06d8e02..cae3c6b 100644
--- a/src/main/scala/com/drivergrp/core/app.scala
+++ b/src/main/scala/com/drivergrp/core/app.scala
@@ -44,9 +44,10 @@ object app {
def stop() = {
http.shutdownAllConnectionPools().onComplete { _ =>
- actorSystem.terminate()
- Await.result(actorSystem.whenTerminated, 30.seconds)
- Console.print(s"${this.getClass.getName} App is stopped")
+ val _ = actorSystem.terminate()
+ val terminated = Await.result(actorSystem.whenTerminated, 30.seconds)
+ val addressTerminated = if(terminated.addressTerminated) "is" else "is not"
+ Console.print(s"${this.getClass.getName} App $addressTerminated stopped ")
}
}
@@ -66,7 +67,7 @@ object app {
))
}
- http.bindAndHandle(
+ val _ = http.bindAndHandle(
route2HandlerFlow(logRequestResult("log")(
modules.map(_.route).foldLeft(versionRoute ~ swaggerRoutes) { _ ~ _ })),
interface, port)(materializer)
diff --git a/src/main/scala/com/drivergrp/core/core.scala b/src/main/scala/com/drivergrp/core/core.scala
index 51459a7..bd6b698 100644
--- a/src/main/scala/com/drivergrp/core/core.scala
+++ b/src/main/scala/com/drivergrp/core/core.scala
@@ -20,7 +20,7 @@ package object core {
}
- trait Tagged[+V, +Tag]
+ private[core] trait Tagged[+V, +Tag]
type @@[+V, +Tag] = V with Tagged[V, Tag]
type Id[+Tag] = Long @@ Tag
diff --git a/src/main/scala/com/drivergrp/core/messages.scala b/src/main/scala/com/drivergrp/core/messages.scala
index bcc20d7..894a6ea 100644
--- a/src/main/scala/com/drivergrp/core/messages.scala
+++ b/src/main/scala/com/drivergrp/core/messages.scala
@@ -20,7 +20,7 @@ object messages {
}
}
- case class Messages(map: Map[String, String], locale: Locale, log: Logger) {
+ final case class Messages(map: Map[String, String], locale: Locale, log: Logger) {
/**
* Returns message for the key
diff --git a/src/main/scala/com/drivergrp/core/rest.scala b/src/main/scala/com/drivergrp/core/rest.scala
index 4e8ea3e..0f730ba 100644
--- a/src/main/scala/com/drivergrp/core/rest.scala
+++ b/src/main/scala/com/drivergrp/core/rest.scala
@@ -156,7 +156,7 @@ object rest {
config.getString("swagger.apiInfo.license"),
config.getString("swagger.apiInfo.licenseUrl")
)),
- vendorExtensions = Map())
+ vendorExtensions = Map.empty[String, AnyRef])
def swaggerUI = get {
pathPrefix("") {
diff --git a/src/main/scala/com/drivergrp/core/time.scala b/src/main/scala/com/drivergrp/core/time.scala
index 2502a70..074e99d 100644
--- a/src/main/scala/com/drivergrp/core/time.scala
+++ b/src/main/scala/com/drivergrp/core/time.scala
@@ -21,7 +21,7 @@ object time {
val Weeks = Week
- case class Time(millis: Long) extends AnyVal {
+ final case class Time(millis: Long) extends AnyVal {
def isBefore(anotherTime: Time): Boolean = millis < anotherTime.millis
@@ -30,17 +30,16 @@ object time {
def advanceBy(duration: Duration): Time = Time(millis + duration.length)
}
- case class TimeRange(start: Time, end: Time)
+ final case class TimeRange(start: Time, end: Time)
implicit def timeOrdering: Ordering[Time] = Ordering.by(_.millis)
def startOfMonth(time: Time) = {
- make(new GregorianCalendar()) { cal =>
+ Time(make(new GregorianCalendar()) { cal =>
cal.setTime(new Date(time.millis))
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH))
- Time(cal.getTime.getTime)
- }
+ }.getTime.getTime)
}
def textualDate(time: Time): String =