* 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
This is mainly intended to keep the git history as neat as possible.
No actual conversion yet, so now both the rst and the paradox docs
are broken, which will be fixed in the next commits.
Issue: #22453
Mode inlined example for Shared Mutable State to its own class
Add additional wrong case when the message is mutable
Includes auto reformated code
* because with Scala 2.12 it can't infer the right overload
* prefer the `() =>`, but here it's clear that it's a callback
* similar in ActorSystem.registerOnTermination
* CoordinatedShutdown that can run tasks for configured phases in order (DAG)
* coordinate handover/shutdown of singleton with cluster exiting/shutdown
* phase config obj with depends-on list
* integrate graceful leaving of sharding in coordinated shutdown
* add timeout and recover
* add some missing artery ports to tests
* leave via CoordinatedShutdown.run
* optionally exit-jvm in last phase
* run via jvm shutdown hook
* send ExitingConfirmed to leader before shutdown of Exiting
to not have to wait for failure detector to mark it as
unreachable before removing
* the unreachable signal is still kept as a safe guard if
message is lost or leader dies
* PhaseClusterExiting vs MemberExited in ClusterSingletonManager
* terminate ActorSystem when cluster shutdown (via Down)
* add more predefined and custom phases
* reference documentation
* migration guide
* problem when the leader order was sys2, sys1, sys3,
then sys3 could not perform it's duties and move Leving sys1 to
Exiting because it was observing sys1 as unreachable
* exclude Leaving with exitingConfirmed from convergence condidtion
Update documentation to specify that value class arguments are not
supported for Prop creation using the recommended classOf[] approach.
Issue: #20735, #16444
* and don't show AkkaSpec in doc code
(cherry picked from commit 23be60395cdea846ef168960cd05e88c6bd29556)
Conflicts:
akka-docs/rst/scala/code/docs/actor/FaultHandlingDocSpec.scala
akka-docs/rst/scala/fault-tolerance.rst
* deprecates awaitTermination, shutdown and isTerminated
* introduces a terminate-method that returns a Future[Unit]
* introduces a whenTerminated-method that returns a Future[Unit]
* simplifies the implementation by removing blocking constructs
* adds tests for terminate() and whenTerminated
* The Java with Lambda support documentation for AbstractActor and AbstractFSM are now on par with Scala
* Many small fixes and additions of missing things
* Added an AbstractActorContext that has convenience functions for getChild and getChildren