From c1d81d3953e0a3be0dacd792dd8a3fa48943ee0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Bon=C3=A9r?= Date: Wed, 5 May 2010 12:45:11 +0200 Subject: [PATCH] Removed Serializable.Protobuf since it did not work, use direct Protobuf messages for remote messages instead --- .../scala/remote/RemoteProtocolBuilder.scala | 22 ++----------------- .../scala/serialization/Serializable.scala | 10 --------- ...rotobufActorMessageSerializationSpec.scala | 1 - 3 files changed, 2 insertions(+), 31 deletions(-) diff --git a/akka-core/src/main/scala/remote/RemoteProtocolBuilder.scala b/akka-core/src/main/scala/remote/RemoteProtocolBuilder.scala index cae7f151b4..b95ac210f5 100644 --- a/akka-core/src/main/scala/remote/RemoteProtocolBuilder.scala +++ b/akka-core/src/main/scala/remote/RemoteProtocolBuilder.scala @@ -37,10 +37,6 @@ object RemoteProtocolBuilder { val manifest = SERIALIZER_JAVA.in(request.getMessageManifest.toByteArray, None).asInstanceOf[String] SERIALIZER_JAVA_JSON.in(request.getMessage.toByteArray, Some(Class.forName(manifest))) case SerializationProtocol.PROTOBUF => - val messageClass = SERIALIZER_JAVA.in(request.getMessageManifest.toByteArray, None).asInstanceOf[Class[_]] - val protobufMessage = messageClass.newInstance.asInstanceOf[Serializable.Protobuf[_]] - protobufMessage.fromBytes(request.getMessage.toByteArray) - case SerializationProtocol.PROTOBUF_RAW => val messageClass = SERIALIZER_JAVA.in(request.getMessageManifest.toByteArray, None).asInstanceOf[Class[_]] SERIALIZER_PROTOBUF.in(request.getMessage.toByteArray, Some(messageClass)) } @@ -60,10 +56,6 @@ object RemoteProtocolBuilder { val manifest = SERIALIZER_JAVA.in(reply.getMessageManifest.toByteArray, None).asInstanceOf[String] SERIALIZER_JAVA_JSON.in(reply.getMessage.toByteArray, Some(Class.forName(manifest))) case SerializationProtocol.PROTOBUF => - val messageClass = SERIALIZER_JAVA.in(reply.getMessageManifest.toByteArray, None).asInstanceOf[Class[_]] - val protobufMessage = messageClass.newInstance.asInstanceOf[Serializable.Protobuf[_]] - protobufMessage.fromBytes(reply.getMessage.toByteArray) - case SerializationProtocol.PROTOBUF_RAW => val messageClass = SERIALIZER_JAVA.in(reply.getMessageManifest.toByteArray, None).asInstanceOf[Class[_]] SERIALIZER_PROTOBUF.in(reply.getMessage.toByteArray, Some(messageClass)) } @@ -75,14 +67,9 @@ object RemoteProtocolBuilder { builder.setProtocol(SerializationProtocol.SBINARY) builder.setMessage(ByteString.copyFrom(serializable.toBytes)) builder.setMessageManifest(ByteString.copyFrom(serializable.getClass.getName.getBytes)) - } else if (message.isInstanceOf[Serializable.Protobuf[_]]) { - val serializable = message.asInstanceOf[Serializable.Protobuf[_]] - builder.setProtocol(SerializationProtocol.PROTOBUF) - builder.setMessage(ByteString.copyFrom(serializable.getMessage.toByteArray)) - builder.setMessageManifest(ByteString.copyFrom(SERIALIZER_JAVA.out(serializable.getClass))) } else if (message.isInstanceOf[Message]) { val serializable = message.asInstanceOf[Message] - builder.setProtocol(SerializationProtocol.PROTOBUF_RAW) + builder.setProtocol(SerializationProtocol.PROTOBUF) builder.setMessage(ByteString.copyFrom(serializable.toByteArray)) builder.setMessageManifest(ByteString.copyFrom(SERIALIZER_JAVA.out(serializable.getClass))) } else if (message.isInstanceOf[Serializable.ScalaJSON]) { @@ -108,14 +95,9 @@ object RemoteProtocolBuilder { builder.setProtocol(SerializationProtocol.SBINARY) builder.setMessage(ByteString.copyFrom(serializable.toBytes)) builder.setMessageManifest(ByteString.copyFrom(serializable.getClass.getName.getBytes)) - } else if (message.isInstanceOf[Serializable.Protobuf[_]]) { - val serializable = message.asInstanceOf[Serializable.Protobuf[_]] - builder.setProtocol(SerializationProtocol.PROTOBUF) - builder.setMessage(ByteString.copyFrom(serializable.getMessage.toByteArray)) - builder.setMessageManifest(ByteString.copyFrom(SERIALIZER_JAVA.out(serializable.getClass))) } else if (message.isInstanceOf[Message]) { val serializable = message.asInstanceOf[Message] - builder.setProtocol(SerializationProtocol.PROTOBUF_RAW) + builder.setProtocol(SerializationProtocol.PROTOBUF) builder.setMessage(ByteString.copyFrom(serializable.toByteArray)) builder.setMessageManifest(ByteString.copyFrom(SERIALIZER_JAVA.out(serializable.getClass))) } else if (message.isInstanceOf[Serializable.ScalaJSON]) { diff --git a/akka-core/src/main/scala/serialization/Serializable.scala b/akka-core/src/main/scala/serialization/Serializable.scala index 0f9bcc4f75..e302ff7fb8 100644 --- a/akka-core/src/main/scala/serialization/Serializable.scala +++ b/akka-core/src/main/scala/serialization/Serializable.scala @@ -21,7 +21,6 @@ object SerializationProtocol { val SCALA_JSON = 2 val JAVA_JSON = 3 val PROTOBUF = 4 - val PROTOBUF_RAW = 5 } /** @@ -106,13 +105,4 @@ object Serializable { def toJSON: String = new String(toBytes, "UTF-8") def toBytes: Array[Byte] = SJSONSerializer.SJSON.out(this) } - - /** - * @author Jonas Bonér - */ - trait Protobuf[T] extends Serializable { - def fromBytes(bytes: Array[Byte]): T = getMessage.toBuilder.mergeFrom(bytes).asInstanceOf[T] - def toBytes: Array[Byte] = getMessage.toByteArray - def getMessage: Message - } } diff --git a/akka-core/src/test/scala/ProtobufActorMessageSerializationSpec.scala b/akka-core/src/test/scala/ProtobufActorMessageSerializationSpec.scala index cde44b3016..275bdb45e2 100644 --- a/akka-core/src/test/scala/ProtobufActorMessageSerializationSpec.scala +++ b/akka-core/src/test/scala/ProtobufActorMessageSerializationSpec.scala @@ -6,7 +6,6 @@ import org.junit.{Test, Before, After} import se.scalablesolutions.akka.remote.{RemoteServer, RemoteClient} import se.scalablesolutions.akka.dispatch.Dispatchers -import se.scalablesolutions.akka.serialization.Serializable.Protobuf import ProtobufProtocol.ProtobufPOJO