Removed Serializable.Protobuf since it did not work, use direct Protobuf messages for remote messages instead
This commit is contained in:
parent
b0dd4b5d62
commit
c1d81d3953
3 changed files with 2 additions and 31 deletions
|
|
@ -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]) {
|
||||
|
|
|
|||
|
|
@ -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 <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue