From 934a9db76b7499afb7532205b8481884a368e147 Mon Sep 17 00:00:00 2001 From: Debasish Ghosh Date: Fri, 24 Sep 2010 15:42:52 +0530 Subject: [PATCH] reducing boilerplate imports with package objects --- .../main/scala/serialization/Serializable.scala | 2 +- .../src/main/scala/serialization/Serializer.scala | 1 - .../src/main/scala/serialization/package.scala | 9 +++++++++ .../serialization/ScalaJSONSerializableSpec.scala | 14 +++++--------- .../SerializableTypeClassActorSpec.scala | 10 ++++++---- 5 files changed, 21 insertions(+), 15 deletions(-) create mode 100644 akka-remote/src/main/scala/serialization/package.scala diff --git a/akka-remote/src/main/scala/serialization/Serializable.scala b/akka-remote/src/main/scala/serialization/Serializable.scala index c446dbbe59..b15784f9ce 100644 --- a/akka-remote/src/main/scala/serialization/Serializable.scala +++ b/akka-remote/src/main/scala/serialization/Serializable.scala @@ -114,7 +114,7 @@ object Serializable { * @author Jonas Bonér */ trait ScalaJSON[T] extends JSON { - def toJSON: String = new String(toBytes, "UTF-8") + def toJSON: String def fromJSON(js: String): T def toBytes: Array[Byte] def fromBytes(bytes: Array[Byte]): T diff --git a/akka-remote/src/main/scala/serialization/Serializer.scala b/akka-remote/src/main/scala/serialization/Serializer.scala index 9df1f4200a..871ce1f681 100644 --- a/akka-remote/src/main/scala/serialization/Serializer.scala +++ b/akka-remote/src/main/scala/serialization/Serializer.scala @@ -129,7 +129,6 @@ object Serializer { * @author Jonas Bonér */ trait ScalaJSON { - import dispatch.json._ import sjson.json._ var classLoader: Option[ClassLoader] = None diff --git a/akka-remote/src/main/scala/serialization/package.scala b/akka-remote/src/main/scala/serialization/package.scala new file mode 100644 index 0000000000..1a3c83341f --- /dev/null +++ b/akka-remote/src/main/scala/serialization/package.scala @@ -0,0 +1,9 @@ +package se.scalablesolutions.akka + +package object serialization { + type JsValue = _root_.dispatch.json.JsValue + val JsValue = _root_.dispatch.json.JsValue + val Js = _root_.dispatch.json.Js + val JsonSerialization = sjson.json.JsonSerialization + val DefaultProtocol = sjson.json.DefaultProtocol +} diff --git a/akka-remote/src/test/scala/serialization/ScalaJSONSerializableSpec.scala b/akka-remote/src/test/scala/serialization/ScalaJSONSerializableSpec.scala index 0ca548d4e1..68b2f171e4 100644 --- a/akka-remote/src/test/scala/serialization/ScalaJSONSerializableSpec.scala +++ b/akka-remote/src/test/scala/serialization/ScalaJSONSerializableSpec.scala @@ -9,16 +9,15 @@ import org.junit.runner.RunWith import se.scalablesolutions.akka.serialization.Serializable.ScalaJSON object Serializables { - import sjson.json.DefaultProtocol._ + import DefaultProtocol._ + import JsonSerialization._ + case class Shop(store: String, item: String, price: Int) extends ScalaJSON[Shop] { implicit val ShopFormat: sjson.json.Format[Shop] = asProduct3("store", "item", "price")(Shop)(Shop.unapply(_).get) - import dispatch.json._ - import sjson.json._ - import sjson.json.JsonSerialization._ - + def toJSON: String = JsValue.toJson(tojson(this)) def toBytes: Array[Byte] = tobinary(this) def fromBytes(bytes: Array[Byte]) = frombinary[Shop](bytes) def fromJSON(js: String) = fromjson[Shop](Js(js)) @@ -33,10 +32,7 @@ object Serializables { implicit val MyJsonObjectFormat: sjson.json.Format[MyJsonObject] = asProduct3("key", "map", "standAloneInt")(MyJsonObject)(MyJsonObject.unapply(_).get) - import dispatch.json._ - import sjson.json._ - import sjson.json.JsonSerialization._ - + def toJSON: String = JsValue.toJson(tojson(this)) def toBytes: Array[Byte] = tobinary(this) def fromBytes(bytes: Array[Byte]) = frombinary[MyJsonObject](bytes) def fromJSON(js: String) = fromjson[MyJsonObject](Js(js)) diff --git a/akka-remote/src/test/scala/serialization/SerializableTypeClassActorSpec.scala b/akka-remote/src/test/scala/serialization/SerializableTypeClassActorSpec.scala index de64b803fa..90c445dd3c 100644 --- a/akka-remote/src/test/scala/serialization/SerializableTypeClassActorSpec.scala +++ b/akka-remote/src/test/scala/serialization/SerializableTypeClassActorSpec.scala @@ -8,7 +8,7 @@ import org.scalatest.junit.JUnitRunner import org.junit.runner.RunWith import se.scalablesolutions.akka.serialization._ -import dispatch.json._ +// import dispatch.json._ import se.scalablesolutions.akka.actor._ import ActorSerialization._ import Actor._ @@ -230,12 +230,14 @@ case class MyMessage(val id: String, val value: Tuple2[String, Int]) extends Serializable.ScalaJSON[MyMessage] { def this() = this(null, null) - import sjson.json.DefaultProtocol._ - import sjson.json._ - import sjson.json.JsonSerialization._ + + import DefaultProtocol._ + import JsonSerialization._ + implicit val MyMessageFormat: sjson.json.Format[MyMessage] = asProduct2("id", "value")(MyMessage)(MyMessage.unapply(_).get) + def toJSON: String = JsValue.toJson(tojson(this)) def toBytes: Array[Byte] = tobinary(this) def fromBytes(bytes: Array[Byte]) = frombinary[MyMessage](bytes) def fromJSON(js: String) = fromjson[MyMessage](Js(js))