Add serializer for akka.NotUsed (#24599) (#24600)

This commit is contained in:
Francisco José Bermejo Herrera 2018-03-05 17:38:17 +01:00 committed by Johannes Rudolph
parent d9249226c0
commit 6646eded2c
4 changed files with 12 additions and 5 deletions

View file

@ -55,6 +55,7 @@ You can enable them one by one adding by adding their bindings to the misc seria
```
akka.actor.serialization-bindings {
"akka.Done" = akka-misc
"akka.NotUsed" = akka-misc
"akka.actor.Address" = akka-misc
"akka.remote.UniqueAddress" = akka-misc
}

View file

@ -52,9 +52,10 @@ akka {
# The following are handled by the MiscMessageSerializer, but they are not enabled for
# compatibility reasons (it was added in Akka 2.5.[8,9]). Enable them by adding:
# compatibility reasons (it was added in Akka 2.5.[8,9,12]). Enable them by adding:
# akka.actor.serialization-bindings {
# "akka.Done" = akka-misc
# "akka.NotUsed" = akka-misc
# "akka.actor.Address" = akka-misc
# "akka.remote.UniqueAddress" = akka-misc
# }
@ -129,6 +130,7 @@ akka {
# Additional serialization bindings which are enabled automatically when allow-java-serialization is disabled.
java-serialization-disabled-additional-serialization-bindings = {
"akka.Done" = akka-misc
"akka.NotUsed" = akka-misc
"akka.actor.Address" = akka-misc
"akka.remote.UniqueAddress" = akka-misc
}

View file

@ -8,7 +8,7 @@ import java.nio.charset.StandardCharsets
import java.util.Optional
import java.util.concurrent.TimeUnit
import akka.Done
import akka.{ Done, NotUsed }
import akka.actor._
import akka.dispatch.Dispatchers
import akka.remote.WireFormats.AddressData
@ -46,6 +46,7 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW
case Kill ParameterlessSerializedMessage
case RemoteWatcher.Heartbeat ParameterlessSerializedMessage
case Done ParameterlessSerializedMessage
case NotUsed ParameterlessSerializedMessage
case hbrsp: RemoteWatcher.HeartbeatRsp serializeHeartbeatRsp(hbrsp)
case rs: RemoteScope serializeRemoteScope(rs)
case LocalScope ParameterlessSerializedMessage
@ -288,6 +289,7 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW
private val KillManifest = "K"
private val RemoteWatcherHBManifest = "RWHB"
private val DoneManifest = "DONE"
private val NotUsedManifest = "NU"
private val AddressManifest = "AD"
private val UniqueAddressManifest = "UD"
private val RemoteWatcherHBRespManifest = "RWHR"
@ -319,6 +321,7 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW
KillManifest ((_) Kill),
RemoteWatcherHBManifest ((_) RemoteWatcher.Heartbeat),
DoneManifest ((_) Done),
NotUsedManifest ((_) NotUsed),
AddressManifest deserializeAddressData,
UniqueAddressManifest deserializeUniqueAddress,
RemoteWatcherHBRespManifest deserializeHeartbeatRsp,
@ -352,6 +355,7 @@ class MiscMessageSerializer(val system: ExtendedActorSystem) extends SerializerW
case Kill KillManifest
case RemoteWatcher.Heartbeat RemoteWatcherHBManifest
case Done DoneManifest
case NotUsed NotUsedManifest
case _: Address AddressManifest
case _: UniqueAddress UniqueAddressManifest
case _: RemoteWatcher.HeartbeatRsp RemoteWatcherHBRespManifest

View file

@ -5,7 +5,7 @@
package akka.remote.serialization
import akka.actor._
import akka.remote.{ RemoteScope, RemoteWatcher, UniqueAddress }
import akka.remote.{ RemoteScope, RemoteWatcher }
import akka.serialization.SerializationExtension
import akka.testkit.AkkaSpec
import com.typesafe.config.ConfigFactory
@ -15,8 +15,7 @@ import scala.concurrent.duration._
import java.util.Optional
import java.io.NotSerializableException
import akka.Done
import akka.remote.ArteryControlFormats.UniqueAddress
import akka.{ Done, NotUsed }
import akka.remote.routing.RemoteRouterConfig
import akka.routing._
@ -88,6 +87,7 @@ class MiscMessageSerializerSpec extends AkkaSpec(MiscMessageSerializerSpec.testC
"RemoteWatcher.Heartbeat" RemoteWatcher.Heartbeat,
"RemoteWatcher.HertbeatRsp" RemoteWatcher.HeartbeatRsp(65537),
"Done" Done,
"NotUsed" NotUsed,
"Address" Address("akka", "system", "host", 1337),
"UniqueAddress" akka.remote.UniqueAddress(Address("akka", "system", "host", 1337), 82751),
"LocalScope" LocalScope,