Timout await extension initialization, #28301 (#28340)

* use the existing creation-timeout config
* and error message about the typical mistake of accessing
  SerializationExtension from constructor of serializer
* mention in docs
This commit is contained in:
Patrik Nordwall 2019-12-17 14:19:42 +01:00 committed by Johan Andrén
parent ffe769b4df
commit 00fc33d0a5
6 changed files with 55 additions and 6 deletions

View file

@ -127,6 +127,10 @@ bytes to different objects.
Then you only need to fill in the blanks, bind it to a name in your configuration and then
list which classes that should be serialized using it.
The serializers are initialized eagerly by the `SerializationExtension` when the `ActorSystem` is started and
therefore a serializer itself must not access the `SerializationExtension` from its constructor. Instead, it
should access the `SerializationExtension` lazily.
<a id="string-manifest-serializer"></a>
### Serializer with String Manifest

View file

@ -196,8 +196,7 @@ public class SerializationDocTest {
akka.actor.typed.ActorSystem.create(Behaviors.empty(), "example");
// Get the Serialization Extension
Serialization serialization =
SerializationExtension.get(akka.actor.typed.javadsl.Adapter.toClassic(system));
Serialization serialization = SerializationExtension.get(system);
// #programmatic-typed
}
}

View file

@ -214,12 +214,11 @@ package docs.serialization {
def demonstrateTypedActorSystem(): Unit = {
//#programmatic-typed
import akka.actor.typed.ActorSystem
import akka.actor.typed.scaladsl.adapter._
val system = ActorSystem(Behaviors.empty, "example")
// Get the Serialization Extension
val serialization = SerializationExtension(system.toClassic)
val serialization = SerializationExtension(system)
//#programmatic-typed
}