Skip to content

Commit 6325492

Browse files
committed
upgrade persistence dependencies
1 parent 150177b commit 6325492

28 files changed

+322
-151
lines changed

api/src/main/scala/app/softnetwork/resource/api/ResourceApi.scala

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ import app.softnetwork.resource.message.ResourceMessages.{ResourceCommand, Resou
1111
import app.softnetwork.resource.model.Resource
1212
import app.softnetwork.resource.persistence.typed.ResourceBehavior
1313
import app.softnetwork.session.CsrfCheck
14+
import app.softnetwork.session.config.Settings
15+
import app.softnetwork.session.model.SessionManagers
16+
import com.softwaremill.session.{SessionConfig, SessionManager}
17+
import org.softnetwork.session.model.Session
1418

1519
trait ResourceApi extends ResourceApplication[Resource] { _: SchemaProvider with CsrfCheck =>
1620

@@ -19,4 +23,13 @@ trait ResourceApi extends ResourceApplication[Resource] { _: SchemaProvider with
1923
_ => ResourceBehavior
2024

2125
def resourceSwagger: ActorSystem[_] => SwaggerEndpoint
26+
27+
def sessionConfig: SessionConfig = Settings.Session.DefaultSessionConfig
28+
29+
override protected def sessionType: Session.SessionType =
30+
Settings.Session.SessionContinuityAndTransport
31+
32+
override protected def manager(implicit sessionConfig: SessionConfig): SessionManager[Session] =
33+
SessionManagers.basic
34+
2235
}

api/src/main/scala/app/softnetwork/resource/api/ResourceToLocalFileSystemApi.scala

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,14 @@ import app.softnetwork.resource.persistence.query.{
1111
}
1212
import app.softnetwork.resource.service.LocalFileSystemResourceServiceEndpoints
1313
import app.softnetwork.session.CsrfCheck
14-
import app.softnetwork.session.service.SessionEndpoints
14+
import app.softnetwork.session.config.Settings
15+
import app.softnetwork.session.service.SessionMaterials
16+
import com.softwaremill.session.{SessionConfig, SessionManager}
1517
import com.typesafe.config.Config
1618
import org.slf4j.{Logger, LoggerFactory}
19+
import org.softnetwork.session.model.Session
20+
21+
import scala.concurrent.ExecutionContext
1722

1823
trait ResourceToLocalFileSystemApi extends ResourceApi { self: SchemaProvider with CsrfCheck =>
1924
override def resourceToExternalProcessorStream
@@ -26,12 +31,18 @@ trait ResourceToLocalFileSystemApi extends ResourceApi { self: SchemaProvider wi
2631
override def config: Config = ResourceToLocalFileSystemApi.this.config
2732
}
2833

29-
def resourceSwagger: ActorSystem[_] => SwaggerEndpoint = sys =>
30-
new LocalFileSystemResourceServiceEndpoints with SwaggerEndpoint {
31-
override implicit def system: ActorSystem[_] = sys
32-
lazy val log: Logger = LoggerFactory getLogger getClass.getName
33-
override def sessionEndpoints: SessionEndpoints = self.sessionEndpoints(system)
34-
override val applicationVersion: String = systemVersion()
35-
}
34+
def resourceSwagger: ActorSystem[_] => SwaggerEndpoint =
35+
sys =>
36+
new LocalFileSystemResourceServiceEndpoints with SwaggerEndpoint with SessionMaterials {
37+
override implicit def system: ActorSystem[_] = sys
38+
override lazy val ec: ExecutionContext = sys.executionContext
39+
lazy val log: Logger = LoggerFactory getLogger getClass.getName
40+
override implicit def sessionConfig: SessionConfig = self.sessionConfig
41+
override protected def sessionType: Session.SessionType = self.sessionType
42+
override implicit def manager(implicit
43+
sessionConfig: SessionConfig
44+
): SessionManager[Session] = self.manager
45+
override val applicationVersion: String = systemVersion()
46+
}
3647

3748
}

api/src/main/scala/app/softnetwork/resource/api/ResourceToLocalFileSystemEndpointsApi.scala

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,29 @@ import app.softnetwork.resource.service.{
1010
ResourceServiceEndpoints
1111
}
1212
import app.softnetwork.session.CsrfCheck
13+
import app.softnetwork.session.service.SessionMaterials
14+
import com.softwaremill.session.{SessionConfig, SessionManager}
15+
import org.slf4j.{Logger, LoggerFactory}
16+
import org.softnetwork.session.model.Session
17+
18+
import scala.concurrent.ExecutionContext
1319

1420
trait ResourceToLocalFileSystemEndpointsApi
1521
extends ResourceToLocalFileSystemApi
16-
with ResourceEndpoints[Resource] { _: SchemaProvider with CsrfCheck =>
22+
with ResourceEndpoints[Resource] { self: SchemaProvider with CsrfCheck =>
1723

18-
override def resourceEndpoints: ActorSystem[_] => ResourceServiceEndpoints = system =>
19-
LocalFileSystemResourceServiceEndpoints(system, sessionEndpoints(system))
24+
override def resourceEndpoints: ActorSystem[_] => ResourceServiceEndpoints =
25+
sys =>
26+
new LocalFileSystemResourceServiceEndpoints with SessionMaterials {
27+
override implicit def manager(implicit
28+
sessionConfig: SessionConfig
29+
): SessionManager[Session] = self.manager
30+
override protected def sessionType: Session.SessionType = self.sessionType
31+
override def log: Logger = LoggerFactory getLogger getClass.getName
32+
override implicit def system: ActorSystem[_] = sys
33+
override implicit lazy val ec: ExecutionContext = sys.executionContext
34+
override implicit def sessionConfig: SessionConfig = self.sessionConfig
35+
}
2036

2137
override def endpoints: ActorSystem[_] => List[Endpoint] = system =>
2238
super.endpoints(system) :+ resourceSwagger(system)

api/src/main/scala/app/softnetwork/resource/api/ResourceToLocalFileSystemRoutesApi.scala

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,30 @@ import app.softnetwork.resource.launch.ResourceRoutes
77
import app.softnetwork.resource.model.Resource
88
import app.softnetwork.resource.service.{LocalFileSystemResourceService, ResourceService}
99
import app.softnetwork.session.CsrfCheckHeader
10+
import app.softnetwork.session.service.SessionMaterials
11+
import com.softwaremill.session.{SessionConfig, SessionManager}
12+
import org.slf4j.{Logger, LoggerFactory}
13+
import org.softnetwork.session.model.Session
14+
15+
import scala.concurrent.ExecutionContext
1016

1117
trait ResourceToLocalFileSystemRoutesApi
1218
extends ResourceToLocalFileSystemApi
1319
with ResourceRoutes[Resource]
14-
with CsrfCheckHeader { _: SchemaProvider =>
20+
with CsrfCheckHeader { self: SchemaProvider =>
1521

16-
override def resourceService: ActorSystem[_] => ResourceService = system =>
17-
LocalFileSystemResourceService(system, sessionService(system))
22+
override def resourceService: ActorSystem[_] => ResourceService =
23+
sys =>
24+
new LocalFileSystemResourceService with SessionMaterials {
25+
override implicit def manager(implicit
26+
sessionConfig: SessionConfig
27+
): SessionManager[Session] = self.manager
28+
override protected def sessionType: Session.SessionType = self.sessionType
29+
override def log: Logger = LoggerFactory getLogger getClass.getName
30+
override implicit def system: ActorSystem[_] = sys
31+
override implicit lazy val ec: ExecutionContext = sys.executionContext
32+
override implicit def sessionConfig: SessionConfig = self.sessionConfig
33+
}
1834

1935
override def apiRoutes: ActorSystem[_] => List[ApiRoute] = system =>
2036
super.apiRoutes(system) :+ resourceSwagger(system)

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ ThisBuild / organization := "app.softnetwork"
22

33
name := "resource"
44

5-
ThisBuild / version := "0.3.0"
5+
ThisBuild / version := "0.4.0"
66

77
ThisBuild / scalaVersion := "2.12.18"
88

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,10 @@
11
package app.softnetwork.resource.service
22

3-
import akka.actor.typed.ActorSystem
43
import app.softnetwork.resource.handlers.ResourceHandler
54
import app.softnetwork.resource.spi.LocalFileSystemProvider
6-
import app.softnetwork.session.service.SessionService
7-
import org.slf4j.{Logger, LoggerFactory}
5+
import app.softnetwork.session.service.SessionMaterials
86

97
trait LocalFileSystemResourceService
108
extends ResourceService
119
with LocalFileSystemProvider
12-
with ResourceHandler
13-
14-
object LocalFileSystemResourceService {
15-
def apply(
16-
aSystem: ActorSystem[_],
17-
aSessionService: SessionService
18-
): LocalFileSystemResourceService =
19-
new LocalFileSystemResourceService {
20-
override implicit def system: ActorSystem[_] = aSystem
21-
override def sessionService: SessionService = aSessionService
22-
lazy val log: Logger = LoggerFactory getLogger getClass.getName
23-
}
24-
}
10+
with ResourceHandler { _: SessionMaterials => }
Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,10 @@
11
package app.softnetwork.resource.service
22

3-
import akka.actor.typed.ActorSystem
43
import app.softnetwork.resource.handlers.ResourceHandler
54
import app.softnetwork.resource.spi.LocalFileSystemProvider
6-
import app.softnetwork.session.service.SessionEndpoints
7-
import org.slf4j.{Logger, LoggerFactory}
5+
import app.softnetwork.session.service.SessionMaterials
86

97
trait LocalFileSystemResourceServiceEndpoints
108
extends ResourceServiceEndpoints
119
with LocalFileSystemProvider
12-
with ResourceHandler
13-
14-
object LocalFileSystemResourceServiceEndpoints {
15-
def apply(
16-
_system: ActorSystem[_],
17-
_sessionEndpoints: SessionEndpoints
18-
): LocalFileSystemResourceServiceEndpoints =
19-
new LocalFileSystemResourceServiceEndpoints {
20-
override implicit def system: ActorSystem[_] = _system
21-
lazy val log: Logger = LoggerFactory getLogger getClass.getName
22-
override def sessionEndpoints: SessionEndpoints = _sessionEndpoints
23-
}
24-
}
10+
with ResourceHandler { _: SessionMaterials => }

core/src/main/scala/app/softnetwork/resource/service/ResourceService.scala

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package app.softnetwork.resource.service
22

3+
import akka.actor.typed.ActorSystem
34
import akka.http.scaladsl.model.{HttpResponse, StatusCodes}
45
import akka.http.scaladsl.server.{Directives, Route}
56
import akka.stream.Materializer
@@ -11,10 +12,11 @@ import app.softnetwork.resource.handlers.GenericResourceHandler
1112
import app.softnetwork.resource.message.ResourceMessages._
1213
import com.softwaremill.session.CsrfDirectives._
1314
import com.softwaremill.session.CsrfOptions._
14-
import org.softnetwork.session.model.Session._
1515
import app.softnetwork.resource.spi._
1616
import app.softnetwork.serialization.commonFormats
17-
import app.softnetwork.session.service.SessionService
17+
import app.softnetwork.session.config.Settings
18+
import app.softnetwork.session.service.{ServiceWithSessionDirectives, SessionMaterials}
19+
import com.softwaremill.session.SessionConfig
1820
import com.typesafe.scalalogging.StrictLogging
1921
import de.heikoseeberger.akkahttpjson4s.Json4sSupport
2022
import org.json4s.{jackson, Formats}
@@ -27,15 +29,18 @@ trait ResourceService
2729
with DefaultComplete
2830
with Json4sSupport
2931
with StrictLogging
32+
with ServiceWithSessionDirectives[ResourceCommand, ResourceResult]
3033
with LoadResourceService
3134
with ApiRoute {
32-
_: GenericResourceHandler with ResourceProvider =>
35+
_: GenericResourceHandler with ResourceProvider with SessionMaterials =>
3336

3437
implicit def serialization: Serialization.type = jackson.Serialization
3538

3639
implicit def formats: Formats = commonFormats
3740

38-
def sessionService: SessionService
41+
implicit def sessionConfig: SessionConfig = Settings.Session.DefaultSessionConfig
42+
43+
override implicit def ts: ActorSystem[_] = system
3944

4045
val route: Route = {
4146
pathPrefix(ResourceSettings.ResourcePath) {
@@ -70,7 +75,7 @@ trait ResourceService
7075
// check anti CSRF token
7176
hmacTokenCsrfProtection(checkHeader) {
7277
// check if a session exists
73-
sessionService.requiredSession { session =>
78+
requiredSession(sc, gt) { session =>
7479
post {
7580
extractRequestContext { ctx =>
7681
implicit val materializer: Materializer = ctx.materializer

core/src/main/scala/app/softnetwork/resource/service/ResourceServiceEndpoints.scala

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package app.softnetwork.resource.service
22

3+
import akka.actor.typed.ActorSystem
34
import akka.stream.scaladsl.{FileIO, Source}
45
import akka.util.ByteString
5-
import app.softnetwork.api.server.{ApiErrors, SwaggerApiEndpoint}
6+
import app.softnetwork.api.server.ApiErrors
67
import app.softnetwork.resource.config.ResourceSettings
78
import app.softnetwork.resource.handlers.GenericResourceHandler
89
import app.softnetwork.resource.message.ResourceMessages._
910
import app.softnetwork.resource.spi.{ResourceProvider, SimpleResource}
10-
import app.softnetwork.session.service.ServiceWithSessionEndpoints
11+
import app.softnetwork.session.config.Settings
12+
import app.softnetwork.session.service.{ServiceWithSessionEndpoints, SessionMaterials}
13+
import com.softwaremill.session.SessionConfig
1114
import org.apache.tika.mime.MediaType
1215
import org.softnetwork.session.model.Session
1316
import sttp.capabilities.akka.AkkaStreams
@@ -22,10 +25,14 @@ import scala.concurrent.Future
2225
trait ResourceServiceEndpoints
2326
extends LoadResourceService
2427
with ServiceWithSessionEndpoints[ResourceCommand, ResourceResult] {
25-
_: GenericResourceHandler with ResourceProvider =>
28+
_: GenericResourceHandler with ResourceProvider with SessionMaterials =>
2629

2730
import app.softnetwork.serialization._
2831

32+
implicit def sessionConfig: SessionConfig
33+
34+
override implicit def ts: ActorSystem[_] = system
35+
2936
def error(e: ResourceError): ApiErrors.ErrorInfo =
3037
e match {
3138
case ResourceNotFound => ApiErrors.NotFound(ResourceNotFound)

project/Versions.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
object Versions {
22

3-
val genericPersistence = "0.4.1"
3+
val genericPersistence = "0.5.0"
44

55
val scalatest = "3.2.16"
66
}

0 commit comments

Comments
 (0)