Skip to content

Commit 36bc357

Browse files
committed
add trait Schema and update SchemaProvider
1 parent 64c1ed8 commit 36bc357

File tree

28 files changed

+141
-2845
lines changed

28 files changed

+141
-2845
lines changed

build.sbt

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

3131
name := "generic-persistence-api"
3232

33-
ThisBuild / version := "0.3.0.2"
33+
ThisBuild / version := "0.3.0.3"
3434

3535
ThisBuild / scalaVersion := "2.12.11"
3636

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package app.softnetwork.persistence.launch
2+
3+
import app.softnetwork.persistence.schema.InMemorySchemaProvider
4+
5+
trait InMemoryPersistenceGuardian extends PersistenceGuardian with InMemorySchemaProvider

core/src/main/scala/app/softnetwork/persistence/launch/PersistenceGuardian.scala

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import scala.language.implicitConversions
2323

2424
/** Created by smanciot on 15/05/2020.
2525
*/
26-
trait PersistenceGuardian extends ClusterDomainEventHandler {
26+
trait PersistenceGuardian extends ClusterDomainEventHandler { _: SchemaProvider =>
2727

2828
def config: Config
2929

@@ -50,8 +50,6 @@ trait PersistenceGuardian extends ClusterDomainEventHandler {
5050

5151
def startSystem: ActorSystem[_] => Unit = _ => ()
5252

53-
def schemaProvider: ActorSystem[_] => SchemaProvider
54-
5553
def banner: String =
5654
"""
5755
| ____ __ _ _ _
@@ -64,11 +62,10 @@ trait PersistenceGuardian extends ClusterDomainEventHandler {
6462

6563
def setup(): Behavior[ClusterDomainEvent] = {
6664
Behaviors.setup[ClusterDomainEvent] { context =>
67-
6865
val system = context.system
6966

7067
// initialize schema
71-
schemaProvider(system).initSchema()
68+
schema(system).initSchema()
7269

7370
val cluster: Cluster = Cluster(system)
7471

core/src/main/scala/app/softnetwork/persistence/launch/package.scala

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import akka.actor.typed.ActorSystem
44
import akka.cluster.ClusterEvent.ClusterDomainEvent
55
import app.softnetwork.persistence.message.{Command, CommandResult, Event}
66
import app.softnetwork.persistence.model.State
7-
import app.softnetwork.persistence.schema.SchemaProvider
87
import app.softnetwork.persistence.typed.EntityBehavior
98

109
package object launch {

core/src/main/scala/app/softnetwork/persistence/query/InMemoryOffsetProvider.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import akka.persistence.query.{Offset, Sequence}
55

66
import scala.concurrent.Future
77

8-
trait InMemoryOffsetProvider extends OffsetProvider {
8+
trait InMemoryOffsetProvider extends OffsetProvider { _: EventStream =>
99

1010
private[this] var _offset: Long = 0L
1111

core/src/main/scala/app/softnetwork/persistence/query/OffsetProvider.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@ import app.softnetwork.persistence.environment
77

88
import scala.concurrent.Future
99

10-
trait OffsetProvider extends EventStream {
10+
trait OffsetProvider { _: EventStream =>
1111

1212
implicit def classicSystem: classic.ActorSystem
1313

1414
protected final lazy val platformEventProcessorId: String = s"$eventProcessorId-$environment"
1515

1616
protected final lazy val platformTag: String = s"$tag-$environment"
1717

18-
protected def initOffset(): Unit = {}
19-
20-
protected def startOffset(): Offset = Offset.sequence(0L)
18+
protected def initOffset(): Unit = ()
2119

2220
/** Read current offset
2321
*
@@ -33,4 +31,8 @@ trait OffsetProvider extends EventStream {
3331
*/
3432
protected def writeOffset(offset: Offset): Future[Done]
3533

34+
protected def stopOffset(): Unit = ()
35+
36+
sys.addShutdownHook(stopOffset())
37+
3638
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package app.softnetwork.persistence.schema
2+
3+
/** Created by smanciot on 12/05/2021.
4+
*/
5+
trait InMemorySchema extends Schema {
6+
override def schemaType: SchemaType = EmptySchema
7+
8+
override def create(schema: String, separator: String): Unit = ()
9+
}
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package app.softnetwork.persistence.schema
2+
import akka.actor.typed.ActorSystem
23

3-
/** Created by smanciot on 12/05/2021.
4-
*/
54
trait InMemorySchemaProvider extends SchemaProvider {
6-
override def schemaType: SchemaType = EmptySchema
7-
8-
override def create(schema: String, separator: String): Unit = ()
5+
override def schema: ActorSystem[_] => Schema = _ => new InMemorySchema {}
96
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package app.softnetwork.persistence.schema
2+
3+
/** Created by smanciot on 07/05/2021.
4+
*/
5+
trait Schema {
6+
def schemaType: SchemaType
7+
8+
def initSchema(): Unit = {
9+
create(schemaType.schema)
10+
}
11+
12+
def create(schema: String, separator: String = ";"): Unit
13+
14+
}
Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
package app.softnetwork.persistence.schema
22

3-
/** Created by smanciot on 07/05/2021.
4-
*/
5-
trait SchemaProvider {
6-
def schemaType: SchemaType
3+
import akka.actor.typed.ActorSystem
74

8-
def initSchema(): Unit = {
9-
create(schemaType.schema)
10-
}
5+
trait SchemaProvider {
116

12-
def create(schema: String, separator: String = ";"): Unit
7+
def schema: ActorSystem[_] => Schema
138

149
}

0 commit comments

Comments
 (0)