{
@Inject
private Bar bar;
+ public Foo body() { return this; }
public Bar getBar() {
return bar;
}
diff --git a/kernel/pom.xml b/kernel/pom.xml
index 4dd651c6af..f34ab308d4 100644
--- a/kernel/pom.xml
+++ b/kernel/pom.xml
@@ -1,288 +1,288 @@
- 4.0.0
+ 4.0.0
- akka-kernel
- Akka Kernel Module
+ akka-kernel
+ Akka Kernel Module
- jar
+ jar
-
- akka
- ${akka.groupId}
- ${akka.version}
-
+
+ akka
+ ${akka.groupId}
+ ${akka.version}
+
-
-
-
- ${akka.groupId}
- akka-util-java
- ${akka.version}
-
-
- org.scala-lang
- scala-library
- ${scala.version}
-
-
- org.codehaus.aspectwerkz
- aspectwerkz-nodeps-jdk5
- 2.1
-
-
- net.lag
- configgy
- 1.3
-
-
- org.guiceyfruit
- guiceyfruit-core
- 2.0
-
-
- org.guiceyfruit
- guice-core
- 2.0-beta-4
-
-
- org.apache.camel
- camel-core
- 2.0-SNAPSHOT
-
-
- org.jboss.netty
- netty
- 3.1.0.CR1
-
-
- org.apache
- zookeeper
- 3.1.0
-
-
- org.codehaus.jackson
- jackson-core-asl
- 1.1.0
-
-
- org.codehaus.jackson
- jackson-mapper-asl
- 1.1.0
-
-
- com.google.protobuf
- protobuf-java
- 2.1.0
-
-
- sbinary
- sbinary
- 0.3
-
-
- com.twitter
- scala-json
- 1.0
-
+
+
+
+ ${akka.groupId}
+ akka-util-java
+ ${akka.version}
+
+
+ org.scala-lang
+ scala-library
+ ${scala.version}
+
+
+ org.codehaus.aspectwerkz
+ aspectwerkz-nodeps-jdk5
+ 2.1
+
+
+ net.lag
+ configgy
+ 1.3
+
+
+ org.guiceyfruit
+ guiceyfruit-core
+ 2.0
+
+
+ org.guiceyfruit
+ guice-core
+ 2.0-beta-4
+
+
+ org.apache.camel
+ camel-core
+ 2.0-SNAPSHOT
+
+
+ org.jboss.netty
+ netty
+ 3.1.0.CR1
+
+
+ org.apache
+ zookeeper
+ 3.1.0
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+ 1.1.0
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+ 1.1.0
+
+
+ com.google.protobuf
+ protobuf-java
+ 2.1.0
+
+
+ sbinary
+ sbinary
+ 0.3
+
+
+ com.twitter
+ scala-json
+ 1.0
+
-
-
- org.apache.cassandra
- cassandra
- 0.4.0-dev
-
-
- com.facebook
- thrift
- 1.0
-
-
- com.facebook
- fb303
- 1.0
-
-
- commons-collections
- commons-collections
- 3.2.1
-
-
- high-scale-lib
- high-scale-lib
- 1.0
-
-
- commons-lang
- commons-lang
- 2.4
-
+
+
+ org.apache.cassandra
+ cassandra
+ 0.4.0-dev
+
+
+ com.facebook
+ thrift
+ 1.0
+
+
+ com.facebook
+ fb303
+ 1.0
+
+
+ commons-collections
+ commons-collections
+ 3.2.1
+
+
+ high-scale-lib
+ high-scale-lib
+ 1.0
+
+
+ commons-lang
+ commons-lang
+ 2.4
+
-
-
- com.sun.grizzly
- grizzly-servlet-webserver
- 1.9.9
-
-
- com.sun.jersey
- jersey-server
- 1.0.3
-
-
- com.sun.jersey
- jersey-json
- 1.0.3
-
-
- javax.ws.rs
- jsr311-api
- 1.0
-
+
+
+ com.sun.grizzly
+ grizzly-servlet-webserver
+ 1.9.9
+
+
+ com.sun.jersey
+ jersey-server
+ 1.0.3
+
+
+ com.sun.jersey
+ jersey-json
+ 1.0.3
+
+
+ javax.ws.rs
+ jsr311-api
+ 1.0
+
-
-
- org.slf4j
- slf4j-log4j12
- 1.4.3
-
-
- org.slf4j
- slf4j-api
- 1.4.3
-
-
- log4j
- log4j
- 1.2.13
-
-
- commons-logging
- commons-logging
- 1.0.4
-
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.4.3
+
+
+ org.slf4j
+ slf4j-api
+ 1.4.3
+
+
+ log4j
+ log4j
+ 1.2.13
+
+
+ commons-logging
+ commons-logging
+ 1.0.4
+
-
-
- org.scala-tools.testing
- scalatest
- 0.9.5
- test
-
-
+
+ org.scala-tools.testing
+ scalatest
+ 0.9.5
+ test
+
+
-
- junit
- junit
- 4.5
- test
-
-
- com.sun.jersey
- jersey-client
- 1.1.0-ea
-
-
+
+ junit
+ junit
+ 4.5
+ test
+
+
+ com.sun.jersey
+ jersey-client
+ 1.1.0-ea
+
+
-
- src/main/scala
- src/test/scala
-
-
- org.scala-tools
- maven-scala-plugin
-
-
-
- compile
- testCompile
-
-
-
-
-
- -target:jvm-1.5
- -unchecked
-
- ${scala.version}
- 1.1
-
-
-
- org.apache.maven.plugins
- maven-eclipse-plugin
-
- true
-
-
- ch.epfl.lamp.sdt.core.scalabuilder
-
-
-
-
- ch.epfl.lamp.sdt.core.scalanature
-
-
-
-
- org.eclipse.jdt.launching.JRE_CONTAINER
-
-
- ch.epfl.lamp.sdt.launching.SCALA_CONTAINER
-
-
-
-
-
- maven-antrun-plugin
-
-
- install
-
-
-
-
-
-
- run
-
-
-
-
-
-
-
- false
- src/main/resources
-
-
- false
- src/main/scala
-
- **
-
-
- **/*.scala
-
-
-
-
-
-
-
- org.scala-tools
- maven-scala-plugin
-
- 1.1
- ${scala.version}
-
-
-
-
+
+ src/main/scala
+ src/test/scala
+
+
+ org.scala-tools
+ maven-scala-plugin
+
+
+
+ compile
+ testCompile
+
+
+
+
+
+ -target:jvm-1.5
+
+
+ ${scala.version}
+ 1.1
+
+
+
+ org.apache.maven.plugins
+ maven-eclipse-plugin
+
+ true
+
+
+ ch.epfl.lamp.sdt.core.scalabuilder
+
+
+
+
+ ch.epfl.lamp.sdt.core.scalanature
+
+
+
+
+ org.eclipse.jdt.launching.JRE_CONTAINER
+
+
+ ch.epfl.lamp.sdt.launching.SCALA_CONTAINER
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ install
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+ false
+ src/main/resources
+
+
+ false
+ src/main/scala
+
+ **
+
+
+ **/*.scala
+
+
+
+
+
+
+
+ org.scala-tools
+ maven-scala-plugin
+
+ 1.1
+ ${scala.version}
+
+
+
+
diff --git a/kernel/src/main/scala/nio/RemoteClient.scala b/kernel/src/main/scala/nio/RemoteClient.scala
index cb3beef42e..2e62d4dbcf 100644
--- a/kernel/src/main/scala/nio/RemoteClient.scala
+++ b/kernel/src/main/scala/nio/RemoteClient.scala
@@ -108,6 +108,9 @@ class RemoteClient(hostname: String, port: Int) extends Logging {
def deregisterSupervisorWithUuid(uuid: String) = supervisors.remove(uuid)
}
+/**
+ * @author Jonas Bonér
+ */
class RemoteClientPipelineFactory(futures: ConcurrentMap[Long, CompletableFutureResult],
supervisors: ConcurrentMap[String, Actor]) extends ChannelPipelineFactory {
def getPipeline: ChannelPipeline = {
@@ -121,6 +124,9 @@ class RemoteClientPipelineFactory(futures: ConcurrentMap[Long, CompletableFuture
}
}
+/**
+ * @author Jonas Bonér
+ */
@ChannelPipelineCoverage { val value = "all" }
class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResult],
val supervisors: ConcurrentMap[String, Actor])
@@ -170,7 +176,6 @@ class RemoteClientHandler(val futures: ConcurrentMap[Long, CompletableFutureResu
private def parseException(reply: RemoteReply) = {
val exception = reply.getException
- println("-------------- " + exception)
val exceptionType = Class.forName(exception.substring(0, exception.indexOf('$')))
val exceptionMessage = exception.substring(exception.indexOf('$') + 1, exception.length)
exceptionType
diff --git a/kernel/src/main/scala/nio/RemoteProtocolBuilder.scala b/kernel/src/main/scala/nio/RemoteProtocolBuilder.scala
index 1a56eed18d..2f7cf289cf 100644
--- a/kernel/src/main/scala/nio/RemoteProtocolBuilder.scala
+++ b/kernel/src/main/scala/nio/RemoteProtocolBuilder.scala
@@ -14,7 +14,7 @@ object RemoteProtocolBuilder {
def getMessage(request: RemoteRequest): AnyRef = {
request.getProtocol match {
case SerializationProtocol.SBINARY =>
- val renderer = Class.forName(new String(request.getMessageManifest.toByteArray)).newInstance.asInstanceOf[SBinary]
+ val renderer = Class.forName(new String(request.getMessageManifest.toByteArray)).newInstance.asInstanceOf[SBinary[_ <: AnyRef]]
renderer.fromBytes(request.getMessage.toByteArray)
case SerializationProtocol.SCALA_JSON =>
val manifest = Serializer.Java.in(request.getMessageManifest.toByteArray, None).asInstanceOf[String]
@@ -35,7 +35,7 @@ object RemoteProtocolBuilder {
def getMessage(reply: RemoteReply): AnyRef = {
reply.getProtocol match {
case SerializationProtocol.SBINARY =>
- val renderer = Class.forName(new String(reply.getMessageManifest.toByteArray)).newInstance.asInstanceOf[SBinary]
+ val renderer = Class.forName(new String(reply.getMessageManifest.toByteArray)).newInstance.asInstanceOf[SBinary[_ <: AnyRef]]
renderer.fromBytes(reply.getMessage.toByteArray)
case SerializationProtocol.SCALA_JSON =>
val manifest = Serializer.Java.in(reply.getMessageManifest.toByteArray, None).asInstanceOf[String]
@@ -54,8 +54,8 @@ object RemoteProtocolBuilder {
}
def setMessage(message: AnyRef, builder: RemoteRequest.Builder) = {
- if (message.isInstanceOf[Serializable.SBinary]) {
- val serializable = message.asInstanceOf[Serializable.SBinary]
+ if (message.isInstanceOf[Serializable.SBinary[_]]) {
+ val serializable = message.asInstanceOf[Serializable.SBinary[_ <: AnyRef]]
builder.setProtocol(SerializationProtocol.SBINARY)
builder.setMessage(ByteString.copyFrom(serializable.toBytes))
builder.setMessageManifest(ByteString.copyFrom(serializable.getClass.getName.getBytes))
@@ -82,8 +82,8 @@ object RemoteProtocolBuilder {
}
def setMessage(message: AnyRef, builder: RemoteReply.Builder) = {
- if (message.isInstanceOf[Serializable.SBinary]) {
- val serializable = message.asInstanceOf[Serializable.SBinary]
+ if (message.isInstanceOf[Serializable.SBinary[_]]) {
+ val serializable = message.asInstanceOf[Serializable.SBinary[_ <: AnyRef]]
builder.setProtocol(SerializationProtocol.SBINARY)
builder.setMessage(ByteString.copyFrom(serializable.toBytes))
builder.setMessageManifest(ByteString.copyFrom(serializable.getClass.getName.getBytes))
@@ -108,4 +108,4 @@ object RemoteProtocolBuilder {
builder.setMessage(ByteString.copyFrom(Serializer.Java.out(message)))
}
}
-}
\ No newline at end of file
+}
diff --git a/kernel/src/main/scala/nio/RemoteServer.scala b/kernel/src/main/scala/nio/RemoteServer.scala
index 96cc15fe91..b2f1931879 100644
--- a/kernel/src/main/scala/nio/RemoteServer.scala
+++ b/kernel/src/main/scala/nio/RemoteServer.scala
@@ -62,6 +62,9 @@ object RemoteServer extends Logging {
}
}
+/**
+ * @author Jonas Bonér
+ */
class RemoteServerPipelineFactory extends ChannelPipelineFactory {
def getPipeline: ChannelPipeline = {
val p = Channels.pipeline()
@@ -74,6 +77,9 @@ class RemoteServerPipelineFactory extends ChannelPipelineFactory {
}
}
+/**
+ * @author Jonas Bonér
+ */
@ChannelPipelineCoverage { val value = "all" }
class RemoteServerHandler extends SimpleChannelUpstreamHandler with Logging {
private val activeObjectFactory = new ActiveObjectFactory
diff --git a/kernel/src/main/scala/serialization/Binary.scala b/kernel/src/main/scala/serialization/Binary.scala
new file mode 100644
index 0000000000..ce547c7775
--- /dev/null
+++ b/kernel/src/main/scala/serialization/Binary.scala
@@ -0,0 +1,375 @@
+/**
+ * Copyright (C) 2009 Scalable Solutions.
+ */
+
+package se.scalablesolutions.akka.serialization
+
+// --- PRIMITIVES ---
+case class BinaryString(val value: String) extends Serializable.SBinary[BinaryString] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]): BinaryString = BinaryString(fromByteArray[String](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigInt(val value: BigInt) extends Serializable.SBinary[BinaryBigInt] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigInt(fromByteArray[BigInt](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimal(val value: BigDecimal) extends Serializable.SBinary[BinaryBigDecimal] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimal(fromByteArray[BigDecimal](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLong(val value: Long) extends Serializable.SBinary[BinaryLong] {
+ import sbinary.DefaultProtocol._
+ def this() = this(0L)
+ def fromBytes(bytes: Array[Byte]) = BinaryLong(fromByteArray[Long](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryInt(val value: Int) extends Serializable.SBinary[BinaryInt] {
+ import sbinary.DefaultProtocol._
+ def this() = this(0)
+ def fromBytes(bytes: Array[Byte]) = BinaryInt(fromByteArray[Int](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryDouble(val value: Double) extends Serializable.SBinary[BinaryDouble] {
+ import sbinary.DefaultProtocol._
+ def this() = this(0.0D)
+ def fromBytes(bytes: Array[Byte]) = BinaryDouble(fromByteArray[Double](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryFloat(val value: Float) extends Serializable.SBinary[BinaryFloat] {
+ import sbinary.DefaultProtocol._
+ def this() = this(0.0F)
+ def fromBytes(bytes: Array[Byte]) = BinaryFloat(fromByteArray[Float](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBoolean(val value: Boolean) extends Serializable.SBinary[BinaryBoolean] {
+ import sbinary.DefaultProtocol._
+ def this() = this(true)
+ def fromBytes(bytes: Array[Byte]) = BinaryBoolean(fromByteArray[Boolean](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryByte(val value: Byte) extends Serializable.SBinary[BinaryByte] {
+ import sbinary.DefaultProtocol._
+ def this() = this(0x00)
+ def fromBytes(bytes: Array[Byte]) = BinaryByte(fromByteArray[Byte](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryChar(val value: Char) extends Serializable.SBinary[BinaryChar] {
+ import sbinary.DefaultProtocol._
+ def this() = this(' ')
+ def fromBytes(bytes: Array[Byte]) = BinaryChar(fromByteArray[Char](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+
+// --- ARRAYS ---
+case class BinaryStringArray(val value: Array[String]) extends Serializable.SBinary[BinaryStringArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringArray(fromByteArray[Array[String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigIntArray(val value: Array[BigInt]) extends Serializable.SBinary[BinaryBigIntArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigIntArray(fromByteArray[Array[BigInt]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimalArray(val value: Array[BigDecimal]) extends Serializable.SBinary[BinaryBigDecimalArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimalArray(fromByteArray[Array[BigDecimal]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryIntArray(val value: Array[Int]) extends Serializable.SBinary[BinaryIntArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryIntArray(fromByteArray[Array[Int]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLongArray(val value: Array[Long]) extends Serializable.SBinary[BinaryLongArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryLongArray(fromByteArray[Array[Long]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryDoubleArray(val value: Array[Double]) extends Serializable.SBinary[BinaryDoubleArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryDoubleArray(fromByteArray[Array[Double]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryFloatArray(val value: Array[Float]) extends Serializable.SBinary[BinaryFloatArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryFloatArray(fromByteArray[Array[Float]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBooleanArray(val value: Array[Boolean]) extends Serializable.SBinary[BinaryBooleanArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBooleanArray(fromByteArray[Array[Boolean]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryByteArray(val value: Array[Byte]) extends Serializable.SBinary[BinaryByteArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryByteArray(fromByteArray[Array[Byte]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryClassArray(val value: Array[Class[_]]) extends Serializable.SBinary[BinaryClassArray] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryClassArray(fromByteArray[Array[Class[_]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+
+// --- LISTS ---
+case class BinaryStringList(val value: List[String]) extends Serializable.SBinary[BinaryStringList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringList(fromByteArray[List[String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigIntList(val value: List[BigInt]) extends Serializable.SBinary[BinaryBigIntList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigIntList(fromByteArray[List[BigInt]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimalList(val value: List[BigDecimal]) extends Serializable.SBinary[BinaryBigDecimalList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimalList(fromByteArray[List[BigDecimal]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLongList(val value: List[Long]) extends Serializable.SBinary[BinaryLongList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryLongList(fromByteArray[List[Long]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryIntList(val value: List[Int]) extends Serializable.SBinary[BinaryIntList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryIntList(fromByteArray[List[Int]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryDoubleList(val value: List[Double]) extends Serializable.SBinary[BinaryDoubleList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryDoubleList(fromByteArray[List[Double]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryFloatList(val value: List[Float]) extends Serializable.SBinary[BinaryFloatList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryFloatList(fromByteArray[List[Float]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBooleanList(val value: List[Boolean]) extends Serializable.SBinary[BinaryBooleanList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBooleanList(fromByteArray[List[Boolean]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryClassList(val value: List[Class[_]]) extends Serializable.SBinary[BinaryClassList] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryClassList(fromByteArray[List[Class[_]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+
+// --- TUPLES ---
+case class BinaryStringStringTuple(val value: Tuple2[String, String]) extends Serializable.SBinary[BinaryStringStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringStringTuple(fromByteArray[Tuple2[String, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigIntBigIntTuple(val value: Tuple2[BigInt, BigInt]) extends Serializable.SBinary[BinaryBigIntBigIntTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigIntBigIntTuple(fromByteArray[Tuple2[BigInt, BigInt]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimalBigDecimalTuple(val value: Tuple2[BigDecimal, BigDecimal]) extends Serializable.SBinary[BinaryBigDecimalBigDecimalTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimalBigDecimalTuple(fromByteArray[Tuple2[BigDecimal, BigDecimal]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLongLongTuple(val value: Tuple2[Long, Long]) extends Serializable.SBinary[BinaryLongLongTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryLongLongTuple(fromByteArray[Tuple2[Long, Long]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryIntIntTuple(val value: Tuple2[Int, Int]) extends Serializable.SBinary[BinaryIntIntTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryIntIntTuple(fromByteArray[Tuple2[Int, Int]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryDoubleDoubleTuple(val value: Tuple2[Double, Double]) extends Serializable.SBinary[BinaryDoubleDoubleTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryDoubleDoubleTuple(fromByteArray[Tuple2[Double, Double]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryFloatFloatTuple(val value: Tuple2[Float, Float]) extends Serializable.SBinary[BinaryFloatFloatTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryFloatFloatTuple(fromByteArray[Tuple2[Float, Float]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBooleanBooleanTuple(val value: Tuple2[Boolean, Boolean]) extends Serializable.SBinary[BinaryBooleanBooleanTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBooleanBooleanTuple(fromByteArray[Tuple2[Boolean, Boolean]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryClassClassTuple(val value: Tuple2[Class[_], Class[_]]) extends Serializable.SBinary[BinaryClassClassTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryClassClassTuple(fromByteArray[Tuple2[Class[_], Class[_]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryByteArrayByteArrayTuple(val value: Tuple2[Array[Byte], Array[Byte]]) extends Serializable.SBinary[BinaryByteArrayByteArrayTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryByteArrayByteArrayTuple(fromByteArray[Tuple2[Array[Byte], Array[Byte]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigIntStringTuple(val value: Tuple2[BigInt, String]) extends Serializable.SBinary[BinaryBigIntStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigIntStringTuple(fromByteArray[Tuple2[BigInt, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimalStringTuple(val value: Tuple2[BigDecimal, String]) extends Serializable.SBinary[BinaryBigDecimalStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimalStringTuple(fromByteArray[Tuple2[BigDecimal, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLongStringTuple(val value: Tuple2[Long, String]) extends Serializable.SBinary[BinaryLongStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryLongStringTuple(fromByteArray[Tuple2[Long, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryIntStringTuple(val value: Tuple2[Int, String]) extends Serializable.SBinary[BinaryIntStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryIntStringTuple(fromByteArray[Tuple2[Int, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryDoubleStringTuple(val value: Tuple2[Double, String]) extends Serializable.SBinary[BinaryDoubleStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryDoubleStringTuple(fromByteArray[Tuple2[Double, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryFloatStringTuple(val value: Tuple2[Float, String]) extends Serializable.SBinary[BinaryFloatStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryFloatStringTuple(fromByteArray[Tuple2[Float, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBooleanStringTuple(val value: Tuple2[Boolean, String]) extends Serializable.SBinary[BinaryBooleanStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBooleanStringTuple(fromByteArray[Tuple2[Boolean, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryClassStringTuple(val value: Tuple2[Class[_], String]) extends Serializable.SBinary[BinaryClassStringTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryClassStringTuple(fromByteArray[Tuple2[Class[_], String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringByteArrayTuple(val value: Tuple2[String, Array[Byte]]) extends Serializable.SBinary[BinaryStringByteArrayTuple] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringByteArrayTuple(fromByteArray[Tuple2[String, Array[Byte]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+
+// --- MAPS ---
+case class BinaryStringStringMap(val value: Map[String, String]) extends Serializable.SBinary[BinaryStringStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringStringMap(fromByteArray[Map[String, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigIntStringMap(val value: Map[BigInt, String]) extends Serializable.SBinary[BinaryBigIntStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigIntStringMap(fromByteArray[Map[BigInt, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryBigDecimalStringMap(val value: Map[BigDecimal, String]) extends Serializable.SBinary[BinaryBigDecimalStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryBigDecimalStringMap(fromByteArray[Map[BigDecimal, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryLongStringMap(val value: Map[Long, String]) extends Serializable.SBinary[BinaryLongStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryLongStringMap(fromByteArray[Map[Long, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryIntStringMap(val value: Map[Int, String]) extends Serializable.SBinary[BinaryIntStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryIntStringMap(fromByteArray[Map[Int, String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryClassStringMap(val value: Map[Class[_], String]) extends Serializable.SBinary[BinaryClassStringMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryClassStringMap(fromByteArray[Map[Class[_], String]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringBigIntMap(val value: Map[String, BigInt]) extends Serializable.SBinary[BinaryStringBigIntMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringBigIntMap(fromByteArray[Map[String, BigInt]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringBigDecimalMap(val value: Map[String, BigDecimal]) extends Serializable.SBinary[BinaryStringBigDecimalMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringBigDecimalMap(fromByteArray[Map[String, BigDecimal]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringLongMap(val value: Map[String, Long]) extends Serializable.SBinary[BinaryStringLongMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringLongMap(fromByteArray[Map[String, Long]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringIntMap(val value: Map[String, Int]) extends Serializable.SBinary[BinaryStringIntMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringIntMap(fromByteArray[Map[String, Int]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringClassMap(val value: Map[String, Class[_]]) extends Serializable.SBinary[BinaryStringClassMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringClassMap(fromByteArray[Map[String, Class[_]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
+case class BinaryStringByteArrayMap(val value: Map[String, Array[Byte]]) extends Serializable.SBinary[BinaryStringByteArrayMap] {
+ import sbinary.DefaultProtocol._
+ def this() = this(null)
+ def fromBytes(bytes: Array[Byte]) = BinaryStringByteArrayMap(fromByteArray[Map[String, Array[Byte]]](bytes))
+ def toBytes: Array[Byte] = toByteArray(value)
+}
diff --git a/kernel/src/main/scala/serialization/Serializable.scala b/kernel/src/main/scala/serialization/Serializable.scala
index 23655a96df..58179b7c42 100644
--- a/kernel/src/main/scala/serialization/Serializable.scala
+++ b/kernel/src/main/scala/serialization/Serializable.scala
@@ -28,10 +28,43 @@ trait Serializable {
}
/**
+ * Serialization protocols.
+ *
* @author Jonas Bonér
*/
object Serializable {
+ /**
+ * Example on how to use the SBinary serialization protocol:
+ *
+ * case class User(val usernamePassword: Tuple2[String, String],
+ * val email: String,
+ * val age: Int)
+ * extends Serializable.SBinary[User] {
+ * def this() = this(null, null, 0)
+ * import sbinary.DefaultProtocol._
+ * implicit object UserFormat extends Format[User] {
+ * def reads(in : Input) = User(
+ * read[Tuple2[String, String]](in),
+ * read[String](in),
+ * read[Int](in))
+ * def writes(out: Output, value: User) = {
+ * write[Tuple2[String, String]](out, value.usernamePassword)
+ * write[String](out, value.email)
+ * write[Int](out, value.age)
+ * }
+ * }
+ * def fromBytes(bytes: Array[Byte]) = fromByteArray[User](bytes)
+ * def toBytes: Array[Byte] = toByteArray(this)
+ * }
+ *
+ * @author Jonas Bonér
+ */
+ trait SBinary[T <: AnyRef] extends Serializable {
+ def fromBytes(bytes: Array[Byte]): T
+ def toBytes: Array[Byte]
+ }
+
/**
* @author Jonas Bonér
*/
@@ -43,7 +76,7 @@ object Serializable {
/**
* @author Jonas Bonér
*/
- trait JavaJSON[T] extends JSON[T]{
+ abstract class JavaJSON[T] extends JSON[T]{
private val mapper = new ObjectMapper
def toJSON: String = {
@@ -77,17 +110,4 @@ object Serializable {
def toBytes: Array[Byte]
def getSchema: Message
}
-
- /**
- *
- * import sbinary.DefaultProtocol._
- * def fromBytes(bytes: Array[Byte]) = fromByteArray[String](bytes)
- * def toBytes: Array[Byte] = toByteArray(body)
- *
- * @author Jonas Bonér
- */
- trait SBinary extends Serializable {
- def fromBytes(bytes: Array[Byte])
- def toBytes: Array[Byte]
- }
-}
\ No newline at end of file
+}
diff --git a/kernel/src/test/scala/Messages.scala b/kernel/src/test/scala/Messages.scala
old mode 100755
new mode 100644
index a1ab186f06..51e735db8c
--- a/kernel/src/test/scala/Messages.scala
+++ b/kernel/src/test/scala/Messages.scala
@@ -4,9 +4,38 @@
package se.scalablesolutions.akka.kernel
+import akka.serialization.Serializable
+
sealed abstract class TestMessage
case object Ping extends TestMessage
case object Pong extends TestMessage
case object OneWay extends TestMessage
case object Die extends TestMessage
case object NotifySupervisorExit extends TestMessage
+
+case class User(val usernamePassword: Tuple2[String, String],
+ val email: String,
+ val age: Int)
+ extends Serializable.SBinary[User] {
+ def this() = this(null, null, 0)
+ import sbinary.DefaultProtocol._
+ implicit object UserFormat extends Format[User] {
+ def reads(in : Input) = User(
+ read[Tuple2[String, String]](in),
+ read[String](in),
+ read[Int](in))
+ def writes(out: Output, value: User) = {
+ write[Tuple2[String, String]](out, value.usernamePassword)
+ write[String](out, value.email)
+ write[Int](out, value.age)
+ }
+ }
+ def fromBytes(bytes: Array[Byte]) = fromByteArray[User](bytes)
+ def toBytes: Array[Byte] = toByteArray(this)
+}
+
+case class RemotePing extends TestMessage
+case object RemotePong extends TestMessage
+case object RemoteOneWay extends TestMessage
+case object RemoteDie extends TestMessage
+case object RemoteNotifySupervisorExit extends TestMessage
diff --git a/kernel/src/test/scala/RemoteSupervisorSpec.scala b/kernel/src/test/scala/RemoteSupervisorSpec.scala
index 6e9d65c3d1..c8e3770cec 100644
--- a/kernel/src/test/scala/RemoteSupervisorSpec.scala
+++ b/kernel/src/test/scala/RemoteSupervisorSpec.scala
@@ -4,6 +4,7 @@
package se.scalablesolutions.akka.kernel
+import akka.serialization.BinaryString
import kernel.nio.{RemoteClient, RemoteServer}
import kernel.actor.{Supervisor, SupervisorFactory, Actor, StartSupervisor}
import kernel.config.ScalaConfig._
@@ -41,7 +42,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
}
@@ -51,7 +52,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong1 !! Die
+ pingpong1 !! BinaryString("Die")
}
Thread.sleep(500)
expect("DIE") {
@@ -65,21 +66,21 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("ping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong1 !! Die
+ pingpong1 !! BinaryString("Die")
}
Thread.sleep(500)
expect("pingDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingDIEping") {
@@ -93,7 +94,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong1 !! Die
+ pingpong1 !! BinaryString("Die")
}
Thread.sleep(500)
expect("DIE") {
@@ -107,21 +108,21 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("ping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong1 !! Die
+ pingpong1 !! BinaryString("Die")
}
Thread.sleep(500)
expect("pingDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingDIEping") {
@@ -135,7 +136,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong3 !! Die
+ pingpong3 !! BinaryString("Die")
}
Thread.sleep(500)
expect("DIE") {
@@ -149,37 +150,37 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 !! Ping).getOrElse("nil")
+ (pingpong2 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 !! Ping).getOrElse("nil")
+ (pingpong3 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong2 !! Die
+ pingpong2 !! BinaryString("Die")
}
Thread.sleep(500)
expect("pingpingpingDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 !! Ping).getOrElse("nil")
+ (pingpong2 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 !! Ping).getOrElse("nil")
+ (pingpong3 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingpingDIEpingpingping") {
@@ -193,7 +194,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong2 !! Die
+ pingpong2 !! BinaryString("Die")
}
Thread.sleep(500)
expect("DIEDIEDIE") {
@@ -207,37 +208,37 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 !! Ping).getOrElse("nil")
+ (pingpong2 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 !! Ping).getOrElse("nil")
+ (pingpong3 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong2 !! Die
+ pingpong2 !! BinaryString("Die")
}
Thread.sleep(500)
expect("pingpingpingDIEDIEDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 !! Ping).getOrElse("nil")
+ (pingpong1 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 !! Ping).getOrElse("nil")
+ (pingpong2 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 !! Ping).getOrElse("nil")
+ (pingpong3 !! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingpingDIEDIEDIEpingpingping") {
@@ -251,7 +252,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
val sup = getSingleActorOneForOneSupervisor
sup ! StartSupervisor
Thread.sleep(500)
- pingpong1 ! Die
+ pingpong1 ! BinaryString("Die")
Thread.sleep(500)
expect("DIE") {
Log.messageLog
@@ -268,7 +269,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
expect("oneway") {
Log.oneWayLog
}
- pingpong1 ! Die
+ pingpong1 ! BinaryString("Die")
Thread.sleep(500)
expect("DIE") {
Log.messageLog
@@ -288,7 +289,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong1 ! Die
+ pingpong1 ! BinaryString("Die")
}
Thread.sleep(500)
expect("DIE") {
@@ -302,21 +303,21 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 ! Ping).getOrElse("nil")
+ (pingpong1 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("ping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong1 ! Die
+ pingpong1 ! BinaryString("Die")
}
Thread.sleep(500)
expect("pingDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 ! Ping).getOrElse("nil")
+ (pingpong1 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingDIEping") {
@@ -330,7 +331,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong3 ! Die
+ pingpong3 ! BinaryString("Die")
}
Thread.sleep(500)
expect("DIE") {
@@ -344,37 +345,37 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- (pingpong1 ! Ping).getOrElse("nil")
+ (pingpong1 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 ! Ping).getOrElse("nil")
+ (pingpong2 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 ! Ping).getOrElse("nil")
+ (pingpong3 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong2 ! Die
+ pingpong2 ! BinaryString("Die")
}
Thread.sleep(500)
expect("pingpingpingDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 ! Ping).getOrElse("nil")
+ (pingpong1 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 ! Ping).getOrElse("nil")
+ (pingpong2 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 ! Ping).getOrElse("nil")
+ (pingpong3 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingpingDIEpingpingping") {
@@ -388,7 +389,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
intercept(classOf[RuntimeException]) {
- pingpong2 ! Die
+ pingpong2 ! BinaryString("Die")
}
Thread.sleep(500)
expect("DIEDIEDIE") {
@@ -402,37 +403,37 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
sup ! StartSupervisor
Thread.sleep(500)
expect("pong") {
- pingpong1 ! Ping
+ pingpong1 ! BinaryString("Ping")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 ! Ping).getOrElse("nil")
+ (pingpong2 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 ! Ping).getOrElse("nil")
+ (pingpong3 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingping") {
Log.messageLog
}
intercept(classOf[RuntimeException]) {
- pingpong2 ! Die
+ pingpong2 ! BinaryString("Die")
}
Thread.sleep(500)
expect("pingpingpingDIEDIEDIE") {
Log.messageLog
}
expect("pong") {
- (pingpong1 ! Ping).getOrElse("nil")
+ (pingpong1 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong2 ! Ping).getOrElse("nil")
+ (pingpong2 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pong") {
- (pingpong3 ! Ping).getOrElse("nil")
+ (pingpong3 ! BinaryString("Ping")).getOrElse("nil")
}
Thread.sleep(500)
expect("pingpingpingDIEDIEDIEpingpingping") {
@@ -447,7 +448,7 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
val sup = getNestedSupervisorsAllForOneConf
sup ! StartSupervisor
intercept(classOf[RuntimeException]) {
- pingpong1 !! Die
+ pingpong1 !! BinaryString("Die")
}
Thread.sleep(500)
expect("DIEDIEDIE") {
@@ -594,14 +595,14 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
@serializable class RemotePingPong1Actor extends Actor {
override def receive: PartialFunction[Any, Unit] = {
- case Ping =>
+ case BinaryString("Ping") =>
Log.messageLog += "ping"
reply("pong")
case OneWay =>
Log.oneWayLog += "oneway"
- case Die =>
+ case BinaryString("Die") =>
throw new RuntimeException("DIE")
}
override protected def postRestart(reason: AnyRef, config: Option[AnyRef]) {
@@ -611,10 +612,10 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
@serializable class RemotePingPong2Actor extends Actor {
override def receive: PartialFunction[Any, Unit] = {
- case Ping =>
+ case BinaryString("Ping") =>
Log.messageLog += "ping"
reply("pong")
- case Die =>
+ case BinaryString("Die") =>
throw new RuntimeException("DIE")
}
override protected def postRestart(reason: AnyRef, config: Option[AnyRef]) {
@@ -624,10 +625,10 @@ class RemoteSupervisorSpec extends junit.framework.TestCase with Suite {
@serializable class RemotePingPong3Actor extends Actor {
override def receive: PartialFunction[Any, Unit] = {
- case Ping =>
+ case BinaryString("Ping") =>
Log.messageLog += "ping"
reply("pong")
- case Die =>
+ case BinaryString("Die") =>
throw new RuntimeException("DIE")
}