=per #15429 Rewrite persistence documentation and samples for 2.3.4 changes

(cherry picked from commit 02351e32f110a8c4a249f0f3f84bae5898d1a836)

Conflicts:
	akka-samples/akka-sample-persistence-java-lambda/tutorial/index.html
	akka-samples/akka-sample-persistence-java/tutorial/index.html
	akka-samples/akka-sample-persistence-scala/build.sbt
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ConversationRecoveryExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/PersistentActorExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ProcessorChannelExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/ProcessorChannelRemoteExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/SnapshotExample.scala
	akka-samples/akka-sample-persistence-scala/src/main/scala/sample/persistence/StreamExample.scala
	akka-samples/akka-sample-persistence-scala/tutorial/index.html
This commit is contained in:
Patrik Nordwall 2014-06-25 12:51:21 +02:00
parent 062d304b73
commit d6ffdf521c
35 changed files with 1091 additions and 2276 deletions

View file

@ -5,34 +5,40 @@ import akka.persistence._
object SnapshotExample extends App {
final case class ExampleState(received: List[String] = Nil) {
def update(s: String) = copy(s :: received)
def updated(s: String): ExampleState = copy(s :: received)
override def toString = received.reverse.toString
}
class ExampleProcessor extends Processor {
class ExamplePersistentActor extends PersistentActor {
var state = ExampleState()
def receive = {
case Persistent(s, snr) => state = state.update(s"${s}-${snr}")
def receiveCommand: Actor.Receive = {
case "print" => println("current state = " + state)
case "snap" => saveSnapshot(state)
case SaveSnapshotSuccess(metadata) => // ...
case SaveSnapshotFailure(metadata, reason) => // ...
case s: String =>
persist(s) { evt => state = state.updated(evt) }
}
def receiveRecover: Actor.Receive = {
case SnapshotOffer(_, s: ExampleState) =>
println("offered state = " + s)
state = s
case "print" => println("current state = " + state)
case "snap" => saveSnapshot(state)
case evt: String =>
state = state.updated(evt)
}
}
val system = ActorSystem("example")
val processor = system.actorOf(Props(classOf[ExampleProcessor]), "processor-3-scala")
val persistentActor = system.actorOf(Props(classOf[ExamplePersistentActor]), "persistentActor-3-scala")
processor ! Persistent("a")
processor ! Persistent("b")
processor ! "snap"
processor ! Persistent("c")
processor ! Persistent("d")
processor ! "print"
persistentActor ! "a"
persistentActor ! "b"
persistentActor ! "snap"
persistentActor ! "c"
persistentActor ! "d"
persistentActor ! "print"
Thread.sleep(1000)
system.shutdown()