Package org.apache.pekko.serialization
Class Serialization
java.lang.Object
org.apache.pekko.serialization.Serialization
- All Implemented Interfaces:
Extension
Serialization module. Contains methods for serialization and deserialization as well as
locating a Serializer for a particular class as defined in the mapping in the configuration.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classSerialization information needed for serializing local actor refs, or if serializer library e.g.static classstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanscala.util.Try<Object>deserialize(byte[] bytes, int serializerId, String manifest) Deserializes the given array of bytes using the specified serializer id, using the optional type hint to the Serializer.<T> scala.util.Try<T>deserialize(byte[] bytes, Class<T> clazz) Deserializes the given array of bytes using the specified type to look up what Serializer should be used.deserializeByteBuffer(ByteBuffer buf, int serializerId, String manifest) Deserializes the given ByteBuffer of bytes using the specified serializer id, using the optional type hint to the Serializer.Returns the Serializer configured for the given object, returns the NullSerializer if it's null.static Serialization.InformationGets the serialization information from aThreadLocalthat was assigned viawithTransportInformation(org.apache.pekko.actor.ExtendedActorSystem, scala.Function0<T>).log()scala.util.Try<byte[]>Serializes the given AnyRef/java.lang.Object according to the Serialization configuration to either an Array of Bytes or an Exception if one was thrown.static StringserializedActorPath(ActorRef actorRef) The serialized path of an actorRef, based on the current transport serialization information.scala.collection.immutable.Map<Object,Serializer> Maps from a Serializer Identity (Int) to a Serializer instance (optimization)serializerFor(Class<?> clazz) Returns the configured Serializer for the given Class.scala.util.Try<Serializer>serializerOf(String serializerFQN) Tries to load the specified Serializer by the fully-qualified name; the actual loading is performed by the system’spekko.actor.DynamicAccess.settings()system()static <T> TwithTransportInformation(ExtendedActorSystem system, scala.Function0<T> f) Sets serialization information in aThreadLocaland runsf.
-
Constructor Details
-
Serialization
-
-
Method Details
-
serializedActorPath
The serialized path of an actorRef, based on the current transport serialization information. If there is no external address available in the givenActorRefthen the systems default address will be used and that is retrieved from the ThreadLocalSerialization.Informationthat was set withwithTransportInformation(org.apache.pekko.actor.ExtendedActorSystem, scala.Function0<T>). -
withTransportInformation
Sets serialization information in aThreadLocaland runsf. The information is needed for serializing local actor refs, or if serializer library e.g. custom serializer/deserializer in Jackson need access to the currentActorSystem. The currentSerialization.Informationcan be accessed withinfviagetCurrentTransportInformation().Pekko Remoting sets this value when serializing and deserializing messages, and when using the ordinary
serializeanddeserializemethods inSerializationthe value is also set automatically.- Returns:
- value returned by
f
-
getCurrentTransportInformation
Gets the serialization information from aThreadLocalthat was assigned viawithTransportInformation(org.apache.pekko.actor.ExtendedActorSystem, scala.Function0<T>). The information is needed for serializing local actor refs, or if serializer library e.g. custom serializer/deserializer in Jackson need access to the currentActorSystem.- Throws:
IllegalStateException- if the information was not set
-
system
-
settings
-
AllowJavaSerialization
public boolean AllowJavaSerialization() -
log
-
serialize
Serializes the given AnyRef/java.lang.Object according to the Serialization configuration to either an Array of Bytes or an Exception if one was thrown. -
deserialize
Deserializes the given array of bytes using the specified serializer id, using the optional type hint to the Serializer. Returns either the resulting object or an Exception if one was thrown. -
deserializeByteBuffer
public Object deserializeByteBuffer(ByteBuffer buf, int serializerId, String manifest) throws NotSerializableException Deserializes the given ByteBuffer of bytes using the specified serializer id, using the optional type hint to the Serializer. Returns either the resulting object or throws an exception if deserialization fails.- Throws:
NotSerializableException
-
deserialize
Deserializes the given array of bytes using the specified type to look up what Serializer should be used. Returns either the resulting object or an Exception if one was thrown. -
findSerializerFor
Returns the Serializer configured for the given object, returns the NullSerializer if it's null.Throws org.apache.pekko.ConfigurationException if no
serialization-bindingsis configured for the class of the object. -
serializerFor
Returns the configured Serializer for the given Class. The configured Serializer is used if the configured classisAssignableFromfrom theclazz, i.e. the configured class is a super class or implemented interface. In case of ambiguity it is primarily using the most specific configured class, and secondly the entry configured first.Throws java.io.NotSerializableException if no
serialization-bindingsis configured for the class.- Throws:
NotSerializableException
-
serializerOf
Tries to load the specified Serializer by the fully-qualified name; the actual loading is performed by the system’spekko.actor.DynamicAccess. -
serializerByIdentity
Maps from a Serializer Identity (Int) to a Serializer instance (optimization)
-