=per #16542 Don't store sender in PersistentRepr
* I think it originated from channels, or some idea that the sender should be revived (as good as possible) during replay, but that is pretty useless * It must still be in PersistentRepr for remote serialization * I didn't want to change to the built in sender when looping to the journal because keeping it together with the message makes it easier to do batching (queueing) * adjust tck
This commit is contained in:
parent
b7297e2887
commit
a2e5b3f8a4
8 changed files with 58 additions and 48 deletions
|
|
@ -17,6 +17,7 @@ import akka.persistence.AtLeastOnceDelivery.{ AtLeastOnceDeliverySnapshot ⇒ At
|
|||
import akka.persistence.AtLeastOnceDelivery.UnconfirmedDelivery
|
||||
import scala.collection.immutable.VectorBuilder
|
||||
import akka.persistence.fsm.PersistentFsmActor.StateChangeEvent
|
||||
import akka.actor.Actor
|
||||
|
||||
/**
|
||||
* Marker trait for all protobuf-serializable messages in `akka.persistence`.
|
||||
|
|
@ -119,7 +120,7 @@ class MessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer
|
|||
val builder = PersistentMessage.newBuilder
|
||||
|
||||
if (persistent.persistenceId != Undefined) builder.setPersistenceId(persistent.persistenceId)
|
||||
if (persistent.sender != null) builder.setSender(Serialization.serializedActorPath(persistent.sender))
|
||||
if (persistent.sender != Actor.noSender) builder.setSender(Serialization.serializedActorPath(persistent.sender))
|
||||
|
||||
builder.setPayload(persistentPayloadBuilder(persistent.payload.asInstanceOf[AnyRef]))
|
||||
builder.setSequenceNr(persistent.sequenceNr)
|
||||
|
|
@ -164,7 +165,7 @@ class MessageSerializer(val system: ExtendedActorSystem) extends BaseSerializer
|
|||
persistentMessage.getSequenceNr,
|
||||
if (persistentMessage.hasPersistenceId) persistentMessage.getPersistenceId else Undefined,
|
||||
persistentMessage.getDeleted,
|
||||
if (persistentMessage.hasSender) system.provider.resolveActorRef(persistentMessage.getSender) else null)
|
||||
if (persistentMessage.hasSender) system.provider.resolveActorRef(persistentMessage.getSender) else Actor.noSender)
|
||||
}
|
||||
|
||||
private def payload(persistentPayload: PersistentPayload): Any = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue