* Don't apply dilation to scheduler parameter
* Clarify ExecutionContext usage
* Clarify comment on timePasses
* Make ExplicitlyTriggeredScheduler internals private
* List currently scheduled tasks in one log message
* Execute immediately if (initialDelay <= Duration.Zero)
* Don't reschedule if scheduled task fails
* Be more efficient about logging
* Widen `timePasses` delay for now
https://github.com/akka/akka/pull/24243#discussion_r160985493 for some
discussion on what to do instead
* Remove mechanism for mixing in config from a test trait
* missing for some error cases
* in the states recoveryStarted and recovering it has got the permit and
it must returned if the actor is stopped due to some error in those
states
* it would have been a lot easier to do such in postStop but we can't
introduce new things in the trait Eventsourced due to BC
* Suppress 'match is not exhaustive!' warning
Not super clean, but gets rid of the compiler warning shown every time this
file is compiled.
* Using a NotImplementedError rather than a MatchError
This is needed because the `ActorSystemAdapter` is instantiated early on
in the typed ActorSystem initialization process already when the infrastructure
is created to run the typed guardian. This is too early to initialize
the typed extensions. The new untyped LoadTypedExtension is only loaded
later on when the untyped ActorSystem is ready.
Serializers are initialized early on even before the underlying untyped
ActorSystem is fully initialized. Accessing extensions might trigger
a chain of initialization that might step on uninitialized internal bits
later on.
* Replacement of spawnAdapter, we could could keep spawnAdapter as
an internal feature (we know about the resource leak risk)
* The new ActorContext.messageAdapter can be used in the
same way as spawnAdapter but without the risk of unbounded
resource leak.
* Only one message transformer per class is supported to avoid
unbounded growth of registered transformers in case they are
registered repeatedly. That is also a way to replace transformers,
if that would be needed.
* It's still encouraged to register the transformers in a top level
deferred, but other usages are possible. It would still be wrong
to capture incoming message specific context in the transformer
function.
* The transformation function is run inside the actor.
* One single spawnAdapter ref is used for all transformers. It wraps
the message in an internal Transform message.
* rename to spawnMessageAdapter and only kept it as internal in scaladsl
* update chat room example to use child actors
* docs