Package org.apache.pekko.serialization
Class Serialization
- java.lang.Object
-
- org.apache.pekko.serialization.Serialization
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSerialization.InformationSerialization information needed for serializing local actor refs, or if serializer library e.g.static classSerialization.Information$static classSerialization.Settings
-
Constructor Summary
Constructors Constructor Description Serialization(ExtendedActorSystem system)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description booleanAllowJavaSerialization()scala.util.Try<java.lang.Object>deserialize(byte[] bytes, int serializerId, java.lang.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, int serializerId, scala.Option<java.lang.Class<? extends T>> clazz)Deprecated.Use deserialize that accepts the `manifest` as a class name.<T> scala.util.Try<T>deserialize(byte[] bytes, java.lang.Class<T> clazz)Deserializes the given array of bytes using the specified type to look up what Serializer should be used.java.lang.ObjectdeserializeByteBuffer(java.nio.ByteBuffer buf, int serializerId, java.lang.String manifest)Deserializes the given ByteBuffer of bytes using the specified serializer id, using the optional type hint to the Serializer.SerializerfindSerializerFor(java.lang.Object o)Returns the Serializer configured for the given object, returns the NullSerializer if it's null.static Serialization.InformationgetCurrentTransportInformation()Gets the serialization information from aThreadLocalthat was assigned viawithTransportInformation(org.apache.pekko.actor.ExtendedActorSystem, scala.Function0<T>).LoggingAdapterlog()scala.util.Try<byte[]>serialize(java.lang.Object o)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 java.lang.StringserializedActorPath(ActorRef actorRef)The serialized path of an actorRef, based on the current transport serialization information.scala.collection.immutable.Map<java.lang.Object,Serializer>serializerByIdentity()Maps from a Serializer Identity (Int) to a Serializer instance (optimization)SerializerserializerFor(java.lang.Class<?> clazz)Returns the configured Serializer for the given Class.scala.util.Try<Serializer>serializerOf(java.lang.String serializerFQN)Tries to load the specified Serializer by the fully-qualified name; the actual loading is performed by the system’spekko.actor.DynamicAccess.Serialization.Settingssettings()ExtendedActorSystemsystem()static <T> TwithTransportInformation(ExtendedActorSystem system, scala.Function0<T> f)Sets serialization information in aThreadLocaland runsf.
-
-
-
Constructor Detail
-
Serialization
public Serialization(ExtendedActorSystem system)
-
-
Method Detail
-
serializedActorPath
public static java.lang.String serializedActorPath(ActorRef actorRef)
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
public static <T> T withTransportInformation(ExtendedActorSystem system, scala.Function0<T> f)
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
public static Serialization.Information 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:
java.lang.IllegalStateException- if the information was not set
-
system
public ExtendedActorSystem system()
-
settings
public Serialization.Settings settings()
-
AllowJavaSerialization
public boolean AllowJavaSerialization()
-
log
public LoggingAdapter log()
-
serialize
public scala.util.Try<byte[]> serialize(java.lang.Object o)
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
public <T> scala.util.Try<T> deserialize(byte[] bytes, int serializerId, scala.Option<java.lang.Class<? extends T>> clazz)Deprecated.Use deserialize that accepts the `manifest` as a class name. Since Akka 2.6.0.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.
-
deserialize
public scala.util.Try<java.lang.Object> deserialize(byte[] bytes, int serializerId, java.lang.String manifest)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 java.lang.Object deserializeByteBuffer(java.nio.ByteBuffer buf, int serializerId, java.lang.String manifest) throws java.io.NotSerializableExceptionDeserializes 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:
java.io.NotSerializableException
-
deserialize
public <T> scala.util.Try<T> deserialize(byte[] bytes, java.lang.Class<T> clazz)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
public Serializer findSerializerFor(java.lang.Object o)
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
public Serializer serializerFor(java.lang.Class<?> clazz) throws java.io.NotSerializableException
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:
java.io.NotSerializableException
-
serializerOf
public scala.util.Try<Serializer> serializerOf(java.lang.String serializerFQN)
Tries to load the specified Serializer by the fully-qualified name; the actual loading is performed by the system’spekko.actor.DynamicAccess.
-
serializerByIdentity
public scala.collection.immutable.Map<java.lang.Object,Serializer> serializerByIdentity()
Maps from a Serializer Identity (Int) to a Serializer instance (optimization)
-
-