diff --git a/src/main/g8/README.md b/src/main/g8/README.md index ddea108..773b5d6 100644 --- a/src/main/g8/README.md +++ b/src/main/g8/README.md @@ -2,6 +2,38 @@ TODO: CO-176: Add detailed documentation to the template project +## Compilation + +Compile the project by running: + +```bash +> sbt compile +``` + +## Testing + +Run the unit tests for the project by running: + +```bash +> sbt test +``` + +Run the integration tests for the project by running: + +```bash +> sbt dockerComposeUp # Start the docker environment +> sbt it:test # Run the integration tests +> sbt dockerComposeDown # Clean up the docker environment +``` + +Verify the formatting for the project by running: + +```bash +> sbt verify +``` + +This runs scalastyle and scalafmt checks on all files. + +--> \ No newline at end of file diff --git a/src/main/g8/build.sbt b/src/main/g8/build.sbt index 5f5f72a..e4febd3 100644 --- a/src/main/g8/build.sbt +++ b/src/main/g8/build.sbt @@ -31,7 +31,7 @@ lazy val serverMain = project .settings( name := "server", mainClass in Compile := - Some("$organisation_domain$.$organisation$.$name$.server.ServerMain"), + Some("$package$.server.ServerMain"), libraryDependencies ++= Seq( Akka.contrib, Akka.Http.jsonSpray, @@ -43,3 +43,10 @@ lazy val serverMain = project lazy val root = project .in(file(".")) .aggregate(core, serverMain) + +// This runs the same checks as the Verification stage of the Jenkins pipeline. +addCommandAlias( + "verify", + ";scalastyle;test:scalastyle;it:scalastyle " + + ";sbt:scalafmt::test;scalafmt::test;test:scalafmt::test;it:scalafmt::test" +) diff --git a/src/main/g8/default.properties b/src/main/g8/default.properties index 8b61110..64b66b5 100644 --- a/src/main/g8/default.properties +++ b/src/main/g8/default.properties @@ -3,3 +3,4 @@ name=CHANGE_ME project_description=CHANGE_ME organisation_domain=net organisation=cakesolutions +package=$organisation_domain$.$organisation$.$name$ diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/actor/CommonActor.scala b/src/main/g8/library/core/src/main/scala/$package$/core/actor/CommonActor.scala similarity index 94% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/actor/CommonActor.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/actor/CommonActor.scala index 6d61650..f59eeba 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/actor/CommonActor.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/actor/CommonActor.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.actor +package $package$.core.actor import com.github.levkhomich.akka.tracing.{ActorTracing, TracingActorLogging} @@ -31,5 +31,4 @@ trait CommonActor extends ActorTracing with TracingActorLogging { log.warning(s"Unhandled message: \$msg") super.unhandled(msg) } - } diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/BaseHttpHandler.scala b/src/main/g8/library/core/src/main/scala/$package$/core/api/BaseHttpHandler.scala similarity index 91% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/BaseHttpHandler.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/api/BaseHttpHandler.scala index 1ce3e54..79862d6 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/BaseHttpHandler.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/api/BaseHttpHandler.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.api +package $package$.core.api import scala.concurrent.{ExecutionContext, Future} @@ -12,7 +12,7 @@ import eu.timepit.refined.api.Refined import eu.timepit.refined.numeric._ import monix.eval.Task -import $organisation_domain$.$organisation$.$name$.core.application.ApplicationGlobalContext +import $package$.core.application.ApplicationGlobalContext /** * Common Http handler bootstrapping. @@ -56,8 +56,7 @@ object BaseHttpHandler { Http().bindAndHandle(Route.handlerFlow(route), hostname, port.value) def httpCleanUp: Task[Unit] = Task.deferFutureAction { implicit ec => - httpSocketBind - .flatMap(_.unbind()) + httpSocketBind.flatMap(_.unbind()).map(_ => ()) } Task diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/ExceptionHandling.scala b/src/main/g8/library/core/src/main/scala/$package$/core/api/ExceptionHandling.scala similarity index 92% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/ExceptionHandling.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/api/ExceptionHandling.scala index f9949ba..6a33e23 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/ExceptionHandling.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/api/ExceptionHandling.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.api +package $package$.core.api import scala.util.control.NonFatal diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/RejectionHandling.scala b/src/main/g8/library/core/src/main/scala/$package$/core/api/RejectionHandling.scala similarity index 92% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/RejectionHandling.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/api/RejectionHandling.scala index c351544..9a5fac7 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/api/RejectionHandling.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/api/RejectionHandling.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.api +package $package$.core.api import akka.event.LoggingAdapter import akka.http.scaladsl.model.StatusCodes.NotFound diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationBootstrapping.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationBootstrapping.scala similarity index 97% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationBootstrapping.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationBootstrapping.scala index 2f27ab4..97797b5 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationBootstrapping.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationBootstrapping.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application +package $package$.core.application import java.util.concurrent.atomic.AtomicBoolean @@ -16,7 +16,7 @@ import monix.eval.Task import monix.execution.{Cancelable, Scheduler} import org.slf4j.LoggerFactory -import $organisation_domain$.$organisation$.$name$.core.utils.ValueDiscard +import $package$.core.utils.ValueDiscard // \$COVERAGE-OFF\$ diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationGlobalContext.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationGlobalContext.scala similarity index 90% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationGlobalContext.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationGlobalContext.scala index c5cbe4f..e543f56 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/ApplicationGlobalContext.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/ApplicationGlobalContext.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application +package $package$.core.application import akka.actor.ActorSystem import akka.event.LoggingAdapter diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/StartUpLogging.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/StartUpLogging.scala similarity index 97% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/StartUpLogging.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/StartUpLogging.scala index f9a6915..918a155 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/StartUpLogging.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/StartUpLogging.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application +package $package$.core.application import java.lang.management.ManagementFactory diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategy.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/BackoffStrategy.scala similarity index 97% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategy.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/BackoffStrategy.scala index adef978..c5ab4a3 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategy.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/BackoffStrategy.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow import scala.concurrent.duration.{FiniteDuration, TimeUnit} diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryExceededException.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryExceededException.scala similarity index 80% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryExceededException.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryExceededException.scala index f6d185a..f6af6c0 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryExceededException.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryExceededException.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow /** * Exception message indicating that a task's retry logic has failed. diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryStrategy.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryStrategy.scala similarity index 95% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryStrategy.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryStrategy.scala index 2506da7..2441fa3 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/RetryStrategy.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/RetryStrategy.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow import scala.concurrent.duration._ diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetry.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetry.scala similarity index 94% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetry.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetry.scala index 9d940f1..a30da05 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetry.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetry.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow package internal diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala similarity index 96% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala index 62cbf5b..31e187a 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/internal/OnErrorRetryLimitedWithBackoff.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow package internal diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/package.scala b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/package.scala similarity index 91% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/package.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/package.scala index d8c8c91..24ba05d 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/package.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/application/workflow/package.scala @@ -1,8 +1,8 @@ -package $organisation_domain$.$organisation$.$name$.core.application +package $package$.core.application import monix.eval.Task -import $organisation_domain$.$organisation$.$name$.core.application.workflow.internal._ +import $package$.core.application.workflow.internal._ /** * Package object for adding retry logic to tasks. diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigurationFailure.scala b/src/main/g8/library/core/src/main/scala/$package$/core/config/ConfigurationFailure.scala similarity index 78% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigurationFailure.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/config/ConfigurationFailure.scala index b23f7e5..0c44dd3 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigurationFailure.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/config/ConfigurationFailure.scala @@ -1,7 +1,7 @@ -package $organisation_domain$.$organisation$.$name$.core.config +package $package$.core.config -import cakesolutions.config.ValueError import cats.data.NonEmptyList +import net.cakesolutions.config.ValueError /** * Exception case class that holds the configuration failures that occured diff --git a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/utils/ValueDiscard.scala b/src/main/g8/library/core/src/main/scala/$package$/core/utils/ValueDiscard.scala similarity index 88% rename from src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/utils/ValueDiscard.scala rename to src/main/g8/library/core/src/main/scala/$package$/core/utils/ValueDiscard.scala index 3d1c44b..370abd6 100644 --- a/src/main/g8/library/core/src/main/scala/$organisation_domain$/$organisation$/$name$/core/utils/ValueDiscard.scala +++ b/src/main/g8/library/core/src/main/scala/$package$/core/utils/ValueDiscard.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.utils +package $package$.core.utils /** * Function that allows values to be discarded in a visible way. diff --git a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategyTest.scala b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/BackoffStrategyTest.scala similarity index 98% rename from src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategyTest.scala rename to src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/BackoffStrategyTest.scala index 06c4911..78efdbb 100644 --- a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/BackoffStrategyTest.scala +++ b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/BackoffStrategyTest.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow import scala.concurrent.duration._ import scala.util.Random diff --git a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/WorkflowTest.scala b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/WorkflowTest.scala similarity index 97% rename from src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/WorkflowTest.scala rename to src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/WorkflowTest.scala index 267e2c2..2ab8878 100644 --- a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/WorkflowTest.scala +++ b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/WorkflowTest.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow import scala.concurrent.duration._ diff --git a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala similarity index 96% rename from src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala rename to src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala index e658f20..5388c2b 100644 --- a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala +++ b/src/main/g8/library/core/src/test/scala/$package$/core/application/workflow/internal/OnErrorRetryWithBackoffTest.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.application.workflow +package $package$.core.application.workflow package internal diff --git a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigHelper.scala b/src/main/g8/library/core/src/test/scala/$package$/core/config/ConfigHelper.scala similarity index 95% rename from src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigHelper.scala rename to src/main/g8/library/core/src/test/scala/$package$/core/config/ConfigHelper.scala index 2aaeb6a..67cdb4a 100644 --- a/src/main/g8/library/core/src/test/scala/$organisation_domain$/$organisation$/$name$/core/config/ConfigHelper.scala +++ b/src/main/g8/library/core/src/test/scala/$package$/core/config/ConfigHelper.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.core.config +package $package$.core.config import scala.util.Try diff --git a/src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/Akkarepo.scala b/src/main/g8/mains/server/src/it/scala/$package$/Akkarepo.scala similarity index 96% rename from src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/Akkarepo.scala rename to src/main/g8/mains/server/src/it/scala/$package$/Akkarepo.scala index bf2fb14..658008c 100644 --- a/src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/Akkarepo.scala +++ b/src/main/g8/mains/server/src/it/scala/$package$/Akkarepo.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$ +package $package$ import akka.http.scaladsl.Http import akka.http.scaladsl.model.HttpRequest diff --git a/src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/RestApiIntegrationTest.scala b/src/main/g8/mains/server/src/it/scala/$package$/RestApiIntegrationTest.scala similarity index 82% rename from src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/RestApiIntegrationTest.scala rename to src/main/g8/mains/server/src/it/scala/$package$/RestApiIntegrationTest.scala index d995857..a75a166 100644 --- a/src/main/g8/mains/server/src/it/scala/$organisation_domain$/$organisation$/$name$/RestApiIntegrationTest.scala +++ b/src/main/g8/mains/server/src/it/scala/$package$/RestApiIntegrationTest.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$ +package $package$ import scala.concurrent.ExecutionContext @@ -7,10 +7,11 @@ import akka.stream.ActorMaterializer import com.typesafe.config.Config import org.scalatest.{AsyncFreeSpec, Matchers} -import $organisation_domain$.$organisation$.$name$.core.config.ConfigHelper -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig +import $package$.core.config.ConfigHelper +import $package$.server.config.ValidatedServerConfig object RestApiIntegrationTest { + val requiredEnvVars: Map[String, String] = { // In CI environments, we use the eth0 or local-ipv4 address of the slave // instead of localhost @@ -18,9 +19,7 @@ object RestApiIntegrationTest { Map( "SERVER_HOST" -> appHost, - "SERVER_PORT" -> "9000", - "ZIPKIN_HOST" -> appHost, - "ZIPKIN_PORT" -> "9410" + "SERVER_PORT" -> "9000" ) } diff --git a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/ServerMain.scala b/src/main/g8/mains/server/src/main/scala/$package$/server/ServerMain.scala similarity index 64% rename from src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/ServerMain.scala rename to src/main/g8/mains/server/src/main/scala/$package$/server/ServerMain.scala index e0bb7bb..1a4f0c3 100644 --- a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/ServerMain.scala +++ b/src/main/g8/mains/server/src/main/scala/$package$/server/ServerMain.scala @@ -1,21 +1,21 @@ -package $organisation_domain$.$organisation$.$name$.server +package $package$.server import akka.http.scaladsl.server.Directives._ import cats.data.Validated import com.typesafe.config.Config import monix.eval.Task -import $organisation_domain$.$organisation$.$name$.core.api.BaseHttpHandler -import $organisation_domain$.$organisation$.$name$.core.application.{ApplicationBootstrapping, ApplicationGlobalContext} -import $organisation_domain$.$organisation$.$name$.core.config.ConfigurationFailure -import $organisation_domain$.$organisation$.$name$.server.api.{CoreRoutes, SwaggerRoutes} -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig.ServerConfig +import $package$.core.api.BaseHttpHandler +import $package$.core.application.{ApplicationBootstrapping, ApplicationGlobalContext} +import $package$.core.config.ConfigurationFailure +import $package$.server.api.{CoreRoutes, SwaggerRoutes} +import $package$.server.config.ValidatedServerConfig +import $package$.server.config.ValidatedServerConfig.ServerConfig // \$COVERAGE-OFF\$ /** - * Service boostrapping. + * Service bootstrapping. */ object ServerMain extends ApplicationBootstrapping { diff --git a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutes.scala b/src/main/g8/mains/server/src/main/scala/$package$/server/api/CoreRoutes.scala similarity index 92% rename from src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutes.scala rename to src/main/g8/mains/server/src/main/scala/$package$/server/api/CoreRoutes.scala index 131bd6a..fba6cfc 100644 --- a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutes.scala +++ b/src/main/g8/mains/server/src/main/scala/$package$/server/api/CoreRoutes.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.server.api +package $package$.server.api import akka.http.scaladsl.model.{ContentTypes, HttpEntity} import akka.http.scaladsl.server.Directives._ diff --git a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutes.scala b/src/main/g8/mains/server/src/main/scala/$package$/server/api/SwaggerRoutes.scala similarity index 91% rename from src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutes.scala rename to src/main/g8/mains/server/src/main/scala/$package$/server/api/SwaggerRoutes.scala index a8de0ac..2260b48 100644 --- a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutes.scala +++ b/src/main/g8/mains/server/src/main/scala/$package$/server/api/SwaggerRoutes.scala @@ -1,10 +1,10 @@ -package $organisation_domain$.$organisation$.$name$.server.api +package $package$.server.api import akka.http.scaladsl.model.{ContentTypes, StatusCodes, Uri} import akka.http.scaladsl.server.Directives._ import akka.http.scaladsl.server.Route -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig +import $package$.server.config.ValidatedServerConfig /** * Factory defining the Swagger documentation endpoints. diff --git a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/config/ValidatedServerConfig.scala b/src/main/g8/mains/server/src/main/scala/$package$/server/config/ValidatedServerConfig.scala similarity index 77% rename from src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/config/ValidatedServerConfig.scala rename to src/main/g8/mains/server/src/main/scala/$package$/server/config/ValidatedServerConfig.scala index 9337dfc..c1d2fa8 100644 --- a/src/main/g8/mains/server/src/main/scala/$organisation_domain$/$organisation$/$name$/server/config/ValidatedServerConfig.scala +++ b/src/main/g8/mains/server/src/main/scala/$package$/server/config/ValidatedServerConfig.scala @@ -1,14 +1,13 @@ -package $organisation_domain$.$organisation$.$name$.server.config +package $package$.server.config -import cakesolutions.config._ +import cats.Applicative import cats.data.{NonEmptyList => NEL, Validated} -import cats.syntax.cartesian._ import com.typesafe.config.Config import eu.timepit.refined._ import eu.timepit.refined.api.Refined -import eu.timepit.refined.auto._ import eu.timepit.refined.numeric._ import eu.timepit.refined.string._ +import net.cakesolutions.config._ /** * Validated server configuration. @@ -50,10 +49,13 @@ object ValidatedServerConfig { implicit config: Config ): Validated[NEL[ValueFailure], ServerConfig] = { via[ServerConfig]("server") { implicit config => - (unchecked[SwaggerPathString]("swagger-ui.path") |@| - (unchecked[String](required("host", "NOT_SET")) |@| - unchecked[PositiveInt](required("port", "NOT_SET"))) - .map(new HttpConfig(_, _) {})).map(new ServerConfig(_, _) {}) + Applicative[ValidationFailure].map2( + unchecked[SwaggerPathString]("swagger-ui.path"), + Applicative[ValidationFailure].map2( + unchecked[String](required("host", "NOT_SET")), + unchecked[PositiveInt](required("port", "NOT_SET")) + )(new HttpConfig(_, _) {}) + )(new ServerConfig(_, _) {}) } } } diff --git a/src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutesSpec.scala b/src/main/g8/mains/server/src/test/scala/$package$/server/api/CoreRoutesSpec.scala similarity index 90% rename from src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutesSpec.scala rename to src/main/g8/mains/server/src/test/scala/$package$/server/api/CoreRoutesSpec.scala index c84a541..03b2d8a 100644 --- a/src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/CoreRoutesSpec.scala +++ b/src/main/g8/mains/server/src/test/scala/$package$/server/api/CoreRoutesSpec.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.server.api +package $package$.server.api import akka.http.scaladsl.testkit.ScalatestRouteTest import org.scalatest.{Matchers, WordSpec} diff --git a/src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutesSpec.scala b/src/main/g8/mains/server/src/test/scala/$package$/server/api/SwaggerRoutesSpec.scala similarity index 86% rename from src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutesSpec.scala rename to src/main/g8/mains/server/src/test/scala/$package$/server/api/SwaggerRoutesSpec.scala index f2ee699..aefd1c3 100644 --- a/src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/server/api/SwaggerRoutesSpec.scala +++ b/src/main/g8/mains/server/src/test/scala/$package$/server/api/SwaggerRoutesSpec.scala @@ -1,4 +1,4 @@ -package $organisation_domain$.$organisation$.$name$.server.api +package $package$.server.api import akka.http.scaladsl.server.Route import akka.http.scaladsl.testkit.ScalatestRouteTest @@ -6,9 +6,9 @@ import cats.data.Validated import com.typesafe.config.Config import org.scalatest.{Matchers, WordSpec} -import $organisation_domain$.$organisation$.$name$.core.config.{ConfigHelper, ConfigurationFailure} -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig -import $organisation_domain$.$organisation$.$name$.server.config.ValidatedServerConfig.ServerConfig +import $package$.core.config.{ConfigHelper, ConfigurationFailure} +import $package$.server.config.ValidatedServerConfig +import $package$.server.config.ValidatedServerConfig.ServerConfig object SwaggerRoutesSpec { val requiredEnvVars: Map[String, String] = diff --git a/src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/templating/CakeNewCommandSpec.scala b/src/main/g8/mains/server/src/test/scala/$package$/templating/CakeNewCommandSpec.scala similarity index 100% rename from src/main/g8/mains/server/src/test/scala/$organisation_domain$/$organisation$/$name$/templating/CakeNewCommandSpec.scala rename to src/main/g8/mains/server/src/test/scala/$package$/templating/CakeNewCommandSpec.scala diff --git a/src/main/g8/project/Dependencies.scala b/src/main/g8/project/Dependencies.scala index f698907..888fecf 100644 --- a/src/main/g8/project/Dependencies.scala +++ b/src/main/g8/project/Dependencies.scala @@ -8,20 +8,19 @@ import sbt._ object Dependencies { val cats: ModuleID = "org.typelevel" %% "cats" % "0.9.0" - val config: ModuleID = "com.typesafe" % "config" % "1.3.1" + val typesafeConfig: ModuleID = "com.typesafe" % "config" % "1.3.3" // TODO: CO-117: Refactor server.conf to remove swagger version information val swagger: ModuleID = "org.webjars" % "swagger-ui" % "3.0.21" - val validatedConfig: ModuleID = - "net.cakesolutions" %% "validated-config" % "1.0.2" + val validatedConfig: ModuleID = "net.cakesolutions" %% "validated-config" % "1.1.3" object Akka { - val version: String = "2.5.3" + val version: String = "2.5.13" val actor: ModuleID = "com.typesafe.akka" %% "akka-actor" % version val contrib: ModuleID = "com.typesafe.akka" %% "akka-contrib" % version object Http { - val version: String = "10.0.9" + val version: String = "10.1.3" val core: ModuleID = "com.typesafe.akka" %% "akka-http" % version val jsonSpray: ModuleID = @@ -44,7 +43,7 @@ object Dependencies { } object Refined { - val version: String = "0.8.2" + val version: String = "0.9.2" val core: ModuleID = "eu.timepit" %% "refined" % version val scalacheck: ModuleID = "eu.timepit" %% "refined-scalacheck" % version diff --git a/src/main/g8/project/ProjectPlugin.scala b/src/main/g8/project/ProjectPlugin.scala index 5116751..2766fac 100644 --- a/src/main/g8/project/ProjectPlugin.scala +++ b/src/main/g8/project/ProjectPlugin.scala @@ -22,7 +22,7 @@ object ProjectPlugin extends AutoPlugin { override val buildSettings = Seq( name := "$name$", organization := "$organisation_domain$.$organisation$", - buildInfoPackage := "$organisation_domain$.$organisation$.$name$.build", + buildInfoPackage := "$package$.build", buildInfoKeys := Seq[BuildInfoKey]( name, version, diff --git a/src/main/g8/project/project/PluginDependencies.scala b/src/main/g8/project/project/PluginDependencies.scala index 9132ad8..cc37d77 100644 --- a/src/main/g8/project/project/PluginDependencies.scala +++ b/src/main/g8/project/project/PluginDependencies.scala @@ -11,5 +11,5 @@ object PluginDependencies { val scalafmt: ModuleID = "com.lucidchart" % "sbt-scalafmt" % "1.10" val sbtHeader: ModuleID = "de.heikoseeberger" % "sbt-header" % "2.0.0" val scalastyle: ModuleID = - "org.scalastyle" %% "scalastyle-sbt-plugin" % "0.9.0" + "org.scalastyle" %% "scalastyle-sbt-plugin" % "1.0.0" }