aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--project/Build.scala7
-rw-r--r--scalastyle-config.xml109
-rw-r--r--src/main/scala/com/drivergrp/core/app.scala20
-rw-r--r--src/main/scala/com/drivergrp/core/rest.scala2
4 files changed, 126 insertions, 12 deletions
diff --git a/project/Build.scala b/project/Build.scala
index ebb24b4..c3ede93 100644
--- a/project/Build.scala
+++ b/project/Build.scala
@@ -1,6 +1,7 @@
import sbt._
import Keys._
import org.scalafmt.sbt.ScalaFmtPlugin.autoImport._
+import org.scalastyle.sbt.ScalastylePlugin._
import wartremover._
import wartremover.WartRemover.autoImport.wartremoverErrors
@@ -13,6 +14,8 @@ object BuildSettings {
Wart.Overloading, Wart.DefaultArguments, Wart.ToString, Wart.Any, Wart.Throw)
)
+ val compileScalastyle = taskKey[Unit]("compileScalastyle")
+
val buildSettings = Defaults.coreDefaultSettings ++ Seq (
organization := "com.drivergrp",
name := "core",
@@ -22,7 +25,9 @@ object BuildSettings {
"-language:higherKinds", "-language:implicitConversions", "-language:postfixOps",
"-Ywarn-infer-any", "-Ywarn-unused", "-Ywarn-unused-import"),
scalafmtConfig := Some(file(".scalafmt")),
- fork in run := true
+ fork in run := true,
+ compileScalastyle := (scalastyle in Compile).toTask("").value,
+ (compile in Compile) <<= ((compile in Compile) dependsOn compileScalastyle)
) ++ wartRemoverSettings ++ reformatOnCompileSettings
}
diff --git a/scalastyle-config.xml b/scalastyle-config.xml
new file mode 100644
index 0000000..9b74756
--- /dev/null
+++ b/scalastyle-config.xml
@@ -0,0 +1,109 @@
+<scalastyle>
+ <name>Scalastyle standard configuration</name>
+ <check level="error" class="org.scalastyle.file.FileTabChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.file.FileLengthChecker" enabled="true">
+ <parameters>
+ <parameter name="maxFileLength"><![CDATA[800]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.file.HeaderMatchesChecker" enabled="false">
+ <parameters>
+ <parameter name="header">package</parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.SpacesBeforePlusChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.SpacesAfterPlusChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.file.WhitespaceEndOfLineChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.file.FileLineLengthChecker" enabled="true">
+ <parameters>
+ <parameter name="maxLineLength"><![CDATA[160]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.ClassNamesChecker" enabled="true">
+ <parameters>
+ <parameter name="regex"><![CDATA[[A-Z][A-Za-z]*]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.ObjectNamesChecker" enabled="true">
+ <parameters>
+ <parameter name="regex"><![CDATA[[A-Za-z]*]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.PackageObjectNamesChecker" enabled="true">
+ <parameters>
+ <parameter name="regex"><![CDATA[^[a-z][A-Za-z]*$]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.EqualsHashCodeChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.IllegalImportsChecker" enabled="true">
+ <parameters>
+ <parameter name="illegalImports"><![CDATA[sun._,java.awt._]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.ParameterNumberChecker" enabled="true">
+ <parameters>
+ <parameter name="maxParameters"><![CDATA[8]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.MagicNumberChecker" enabled="false">
+ <parameters>
+ <parameter name="ignore"><![CDATA[-1,0,1,2,3]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.NoWhitespaceBeforeLeftBracketChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NoWhitespaceAfterLeftBracketChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.ReturnChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NullChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NoCloneChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NoFinalizeChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.CovariantEqualsChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NumberOfTypesChecker" enabled="true">
+ <parameters>
+ <parameter name="maxTypes"><![CDATA[30]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.CyclomaticComplexityChecker" enabled="true">
+ <parameters>
+ <parameter name="maximum"><![CDATA[10]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.UppercaseLChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.SimplifyBooleanExpressionChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.IfBraceChecker" enabled="true">
+ <parameters>
+ <parameter name="singleLineAllowed"><![CDATA[true]]></parameter>
+ <parameter name="doubleLineAllowed"><![CDATA[true]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.MethodLengthChecker" enabled="true">
+ <parameters>
+ <parameter name="maxLength"><![CDATA[50]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.MethodNamesChecker" enabled="true">
+ <parameters>
+ <parameter name="regex"><![CDATA[^[A-Za-z\\*][A-Za-z0-9]*$]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.ClassTypeParameterChecker" enabled="true">
+ <parameters>
+ <parameter name="regex"><![CDATA[^[A-Za-z]*$]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.NumberOfMethodsInTypeChecker" enabled="true">
+ <parameters>
+ <parameter name="maxMethods"><![CDATA[30]]></parameter>
+ </parameters>
+ </check>
+ <check level="error" class="org.scalastyle.scalariform.PublicMethodsHaveTypeChecker" enabled="false"/>
+ <check level="error" class="org.scalastyle.file.NewLineAtEofChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.file.NoNewLineAtEofChecker" enabled="false"/>
+ <check level="error" class="org.scalastyle.scalariform.DeprecatedJavaChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.EmptyClassChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.RedundantIfChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.MultipleStringLiteralsChecker" enabled="false"/>
+ <check level="error" class="org.scalastyle.scalariform.SpaceAfterCommentStartChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.ProcedureDeclarationChecker" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.NotImplementedErrorUsage" enabled="true"/>
+ <check level="error" class="org.scalastyle.scalariform.LowercasePatternMatchChecker" enabled="true"/>
+</scalastyle> \ 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 488fdd3..13663ab 100644
--- a/src/main/scala/com/drivergrp/core/app.scala
+++ b/src/main/scala/com/drivergrp/core/app.scala
@@ -6,11 +6,11 @@ import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
import akka.http.scaladsl.model.StatusCodes
import akka.http.scaladsl.server.Directives._
import akka.http.scaladsl.server.RouteResult._
-import akka.http.scaladsl.server.{ Route, RouteConcatenation }
+import akka.http.scaladsl.server.{Route, RouteConcatenation}
import akka.stream.ActorMaterializer
-import com.drivergrp.core.logging.{ Logger, TypesafeScalaLogger }
+import com.drivergrp.core.logging.{Logger, TypesafeScalaLogger}
import com.drivergrp.core.rest.Swagger
-import com.drivergrp.core.time.provider.{ SystemTimeProvider, TimeProvider }
+import com.drivergrp.core.time.provider.{SystemTimeProvider, TimeProvider}
import com.typesafe.config.Config
import org.slf4j.LoggerFactory
import spray.json.DefaultJsonProtocol
@@ -39,7 +39,7 @@ object app {
activateServices(modules)
scheduleServicesDeactivation(modules)
bindHttp(modules)
- Console.print(s"${ this.getClass.getName } App is started")
+ Console.print(s"${this.getClass.getName} App is started")
}
def stop() = {
@@ -47,11 +47,11 @@ object app {
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 ")
+ Console.print(s"${this.getClass.getName} App $addressTerminated stopped ")
}
}
- protected def bindHttp(modules: Seq[Module]) {
+ protected def bindHttp(modules: Seq[Module]): Unit = {
import SprayJsonSupport._
import DefaultJsonProtocol._
@@ -80,12 +80,12 @@ object app {
*/
protected def activateServices(services: Seq[Module]) = {
services.foreach { service =>
- Console.print(s"Service ${ service.name } starts ...")
+ Console.print(s"Service ${service.name} starts ...")
try {
service.activate()
} catch {
case t: Throwable =>
- log.fatal(s"Service ${ service.name } failed to activate", t)
+ log.fatal(s"Service ${service.name} failed to activate", t)
Console.print(" Failed! (check log)")
}
Console.println(" Done")
@@ -99,12 +99,12 @@ object app {
Runtime.getRuntime.addShutdownHook(new Thread() {
override def run(): Unit = {
services.foreach { service =>
- Console.print(s"Service ${ service.name } shutting down ...")
+ Console.print(s"Service ${service.name} shutting down ...")
try {
service.deactivate()
} catch {
case t: Throwable =>
- log.fatal(s"Service ${ service.name } failed to deactivate", t)
+ log.fatal(s"Service ${service.name} failed to deactivate", t)
Console.print(" Failed! (check log)")
}
Console.println(" Done")
diff --git a/src/main/scala/com/drivergrp/core/rest.scala b/src/main/scala/com/drivergrp/core/rest.scala
index 0f730ba..adbf716 100644
--- a/src/main/scala/com/drivergrp/core/rest.scala
+++ b/src/main/scala/com/drivergrp/core/rest.scala
@@ -138,7 +138,7 @@ object rest {
val materializer = ActorMaterializer()(actorSystem)
- override val host = "localhost:8080" //the url of your api, not swagger's json endpoint
+ override val host = "localhost:8080" // the url of your api, not swagger's json endpoint
override val basePath = config.getString("swagger.basePath")
override val apiDocsPath = config.getString("swagger.docsPath")