* the order was also wrong in the AbstractPersistentActorWithTimers
* mima complains about this change for AbstractPersistentActor and
AbstractPersistentActorWithAtLeastOnceDelivery, but I think it is ok
This once failed where the intial shopping cart before adding an item
was not empty. I've also changed the item prices to be different for
each test just in case we're picking up state from a previous test
(which seems unlikey given the pid is a random uuid)
* Apply [Boy scout rule](https://github.com/akka/akka/blob/master/CONTRIBUTING.md#additional-guidelines)
* [Bug#23329] PersistentFSM: andThen callbacks are not executed when stay()
* [fixes#23329] PersistentFSM: andThen callbacks go execute when stay()
* At documentation: there is nothing said about events applied should decide to invoke andThen or not.
* At code: andThen callback can be specified whether any events/state transition applied or not.
Added call to nextState.afterTransitionDo(stateData) even if there are no eventsToPersist
`State.using` is a valid pattern in regular FSM. However, for persistent FSM
it makes no sense and is marked as `private[akka]`. The `private[akka]` modifier does
not translate into bytecode so that Java users won't see that it should not be used.
Deprecating it will allow us to remove it in the future.
Fixes#23739.
* backport of the timers from Akka Typed, #16742
* also fixed a small bug in FSM timers, which could result in that
a timer from a previous incarnation was let through to new
incarnation after restart
* no more need for the complicated "how to" section in docs of
how to schedule periodic messages
* Use snapshot-after in config to periodical snapshot in PersistentFSM (#21563)
* akka.persistence.fsm.snapshot-after is either off or a numerical value
* Use Akka Extension for snapshot-after in PersistentFSM
When starting many persistent actors at the same time the journal
its data store is protected from being overloaded by limiting number
of recoveries that can be in progress at the same time.
(cherry picked from commit afc9df17a7faf2a239598788ff48f3bf2cd7b605)
* re-implement javadsl testkit
* fix mima problem
* rebase master
* move ImplicitSender/DefaultTimeout to scaladsl
* undo the change of moving scala api
* fix return type and add doc
* resolve conflicts and add more comments
* Receive class that wraps PartialFunction, to avoid
scary scala types
* move AbstractActorContext to AbstractActor.ActorContext
* converting docs, many, many UntypedActor
* removing UntypedActor docs
* add unit test for ReceiveBuilder
* MiMa filters
* consistent use of getContext(), self(), sender()
* rename cross references
* migration guide
* skip samples for now
* improve match type safetyi, add matchUnchecked
* the `? extends P` caused code like this to compile:
`match(String.class, (Integer i) -> {})`
* added matchUnchecked, since it can still be useful (um, convenient)
to be able to do:
`matchUnchecked(List.class, (List<String> list) -> {})`
* eleminate some scala.Option
* preRestart
* findChild
* ActorIdentity.getActorRef
* The reason is to have a consistent approach for Sequence and
TimeBasedUUID, which are both intended as unique event identifiers.
* This means that you can use the offset that is returned in `EventEnvelope`
as the `offset` parameter in a subsequent query.