From 050083a39614f7fec6c9b853828935768bae690b Mon Sep 17 00:00:00 2001 From: debasishg Date: Fri, 28 Aug 2009 17:00:39 +0530 Subject: [PATCH] new scala json serialization library and integration with MongoStorage --- .../0.5.2/dispatch-http-0.5.2.jar | Bin 0 -> 73237 bytes .../0.5.2/dispatch-json-0.5.2.jar | Bin 0 -> 88708 bytes .../sjson/json/sjson/0.1/sjson-0.1.jar | Bin 0 -> 35120 bytes kernel/pom.xml | 564 +++++++-------- .../src/main/scala/state/MongoStorage.scala | 581 ++++++++-------- .../test/scala/MongoPersistentActorSpec.scala | 56 +- kernel/src/test/scala/MongoStorageSpec.scala | 643 +++++++++--------- 7 files changed, 949 insertions(+), 895 deletions(-) create mode 100644 embedded-repo/dispatch/http/dispatch-http/0.5.2/dispatch-http-0.5.2.jar create mode 100644 embedded-repo/dispatch/json/dispatch-json/0.5.2/dispatch-json-0.5.2.jar create mode 100644 embedded-repo/sjson/json/sjson/0.1/sjson-0.1.jar diff --git a/embedded-repo/dispatch/http/dispatch-http/0.5.2/dispatch-http-0.5.2.jar b/embedded-repo/dispatch/http/dispatch-http/0.5.2/dispatch-http-0.5.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..c313e7cb8a2293b0a7f794c120b20bd4c8e08400 GIT binary patch literal 73237 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

Khx%vrA&)4~?6WhH_nxM8ng2a{teB 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 Y!OO}9QWwAwz>q1$z`*Lj$iTn=0P6bbtN;K2 literal 0 HcmV?d00001 diff --git a/embedded-repo/sjson/json/sjson/0.1/sjson-0.1.jar b/embedded-repo/sjson/json/sjson/0.1/sjson-0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..9d3e3733d5821957d457ad3d178569d0f8c558b4 GIT binary patch literal 35120 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 S!d7QcXZXU+z@SzOG7SLxXGP`! literal 0 HcmV?d00001 diff --git a/kernel/pom.xml b/kernel/pom.xml index 41c3fc05f3..4af5fc8d66 100644 --- a/kernel/pom.xml +++ b/kernel/pom.xml @@ -1,274 +1,290 @@ - - 4.0.0 - - akka-kernel - Akka Kernel Module - - jar - - - akka - se.scalablesolutions.akka - 0.6 - ../pom.xml - - - - - - akka-util-java - se.scalablesolutions.akka - 0.6 - - - org.scala-lang - scala-library - 2.7.5 - - - org.codehaus.aspectwerkz - aspectwerkz-nodeps-jdk5 - 2.1 - - - org.codehaus.aspectwerkz - aspectwerkz-jdk5 - 2.1 - - - com.twitter - scala-stats - 1.0 - - - net.lag - configgy - 1.3 - - - org.guiceyfruit - guice-core - 2.0-beta-4 - - - org.apache.camel - camel-core - 2.0-SNAPSHOT - - - org.jboss.netty - netty - 3.1.0.GA - - - org.apache - zookeeper - 3.1.0 - - - org.scala-tools - javautils - 2.7.4-0.1 - - - - - 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 - - - - - com.mongodb - mongo - 0.6 - - - - - org.apache.cassandra - cassandra - 0.4.0-trunk - - - com.facebook - thrift - 1.0 - - - com.facebook - fb303 - 1.0 - - - commons-pool - commons-pool - 1.5.1 - - - - - com.sun.grizzly - grizzly-comet-webserver - 1.8.6.3 - - - com.sun.jersey - jersey-server - 1.1.1-ea - - - com.sun.jersey - jersey-json - 1.1.1-ea - - - javax.ws.rs - jsr311-api - 1.0 - - - com.sun.jersey.contribs - jersey-scala - 1.1.2-ea-SNAPSHOT - - - org.atmosphere - atmosphere-core - 0.3 - - - org.atmosphere - atmosphere-portable-runtime - 0.3 - - - org.atmosphere - atmosphere-compat - 0.3 - - - - - 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 - - - junit - junit - 4.5 - test - - - - - - - maven-assembly-plugin - 2.2-beta-2 - - - create-executable-jar - install - - single - - - - - jar-with-dependencies - - - - - se.scalablesolutions.akka.kernel.Kernel - - - - - - - - maven-antrun-plugin - - - install - - - - - - - run - - - - - - - - false - ../config - - akka.conf - akka-reference.conf - - - - false - src/main/resources - - META-INF/* - - - - - + + 4.0.0 + + akka-kernel + Akka Kernel Module + + jar + + + akka + se.scalablesolutions.akka + 0.6 + ../pom.xml + + + + + + akka-util-java + se.scalablesolutions.akka + 0.6 + + + org.scala-lang + scala-library + 2.7.5 + + + org.codehaus.aspectwerkz + aspectwerkz-nodeps-jdk5 + 2.1 + + + org.codehaus.aspectwerkz + aspectwerkz-jdk5 + 2.1 + + + com.twitter + scala-stats + 1.0 + + + net.lag + configgy + 1.3 + + + org.guiceyfruit + guice-core + 2.0-beta-4 + + + org.apache.camel + camel-core + 2.0-SNAPSHOT + + + org.jboss.netty + netty + 3.1.0.GA + + + org.apache + zookeeper + 3.1.0 + + + org.scala-tools + javautils + 2.7.4-0.1 + + + + + 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 + + + dispatch.json + dispatch-json + 0.5.2 + + + dispatch.http + dispatch-http + 0.5.2 + + + sjson.json + sjson + 0.1 + + + + + + com.mongodb + mongo + 0.6 + + + + + org.apache.cassandra + cassandra + 0.4.0-trunk + + + com.facebook + thrift + 1.0 + + + com.facebook + fb303 + 1.0 + + + commons-pool + commons-pool + 1.5.1 + + + + + com.sun.grizzly + grizzly-comet-webserver + 1.8.6.3 + + + com.sun.jersey + jersey-server + 1.1.1-ea + + + com.sun.jersey + jersey-json + 1.1.1-ea + + + javax.ws.rs + jsr311-api + 1.0 + + + com.sun.jersey.contribs + jersey-scala + 1.1.2-ea-SNAPSHOT + + + org.atmosphere + atmosphere-core + 0.3 + + + org.atmosphere + atmosphere-portable-runtime + 0.3 + + + org.atmosphere + atmosphere-compat + 0.3 + + + + + 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 + + + junit + junit + 4.5 + test + + + + + + + maven-assembly-plugin + 2.2-beta-2 + + + create-executable-jar + install + + single + + + + + jar-with-dependencies + + + + + se.scalablesolutions.akka.kernel.Kernel + + + + + + + + maven-antrun-plugin + + + install + + + + + + + run + + + + + + + + false + ../config + + akka.conf + akka-reference.conf + + + + false + src/main/resources + + META-INF/* + + + + + diff --git a/kernel/src/main/scala/state/MongoStorage.scala b/kernel/src/main/scala/state/MongoStorage.scala index f72e1c7771..bfb2e1dd49 100644 --- a/kernel/src/main/scala/state/MongoStorage.scala +++ b/kernel/src/main/scala/state/MongoStorage.scala @@ -1,291 +1,290 @@ -package se.scalablesolutions.akka.kernel.state - -import com.mongodb._ -import se.scalablesolutions.akka.kernel.util.Logging -import serialization.{Serializer} -import kernel.Kernel.config - -import java.util.{Map=>JMap, List=>JList, ArrayList=>JArrayList} - -/** - * A module for supporting MongoDB based persistence. - *

- * The module offers functionality for: - *

  • Persistent Maps
  • - *
  • Persistent Vectors
  • - *
  • Persistent Refs
  • - *

    - * @author Debasish Ghosh - */ -object MongoStorage extends MapStorage - with VectorStorage with RefStorage with Logging { - - // enrich with null safe findOne - class RichDBCollection(value: DBCollection) { - def findOneNS(o: DBObject): Option[DBObject] = { - value.findOne(o) match { - case null => None - case x => Some(x) - } - } - } - - implicit def enrichDBCollection(c: DBCollection) = new RichDBCollection(c) - - val KEY = "key" - val VALUE = "value" - val COLLECTION = "akka_coll" - val MONGODB_SERVER_HOSTNAME = - config.getString("akka.storage.mongodb.hostname", "127.0.0.1") - val MONGODB_SERVER_DBNAME = - config.getString("akka.storage.mongodb.dbname", "testdb") - val MONGODB_SERVER_PORT = - config.getInt("akka.storage.mongodb.port", 27017) - - val db = new Mongo(MONGODB_SERVER_HOSTNAME, - MONGODB_SERVER_PORT, MONGODB_SERVER_DBNAME) - val coll = db.getCollection(COLLECTION) - - // @fixme: make this pluggable - private[this] val serializer: Serializer = Serializer.ScalaJSON - - override def insertMapStorageEntryFor(name: String, - key: AnyRef, value: AnyRef) { - insertMapStorageEntriesFor(name, List((key, value))) - } - - override def insertMapStorageEntriesFor(name: String, - entries: List[Tuple2[AnyRef, AnyRef]]) { - import java.util.{Map, HashMap} - - val m: Map[AnyRef, AnyRef] = new HashMap - for ((k, v) <- entries) { - m.put(k, serializer.out(v)) - } - - nullSafeFindOne(name) match { - case None => - coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, m)) - case Some(dbo) => { - // collate the maps - val o = dbo.get(VALUE).asInstanceOf[Map[AnyRef, AnyRef]] - o.putAll(m) - - // remove existing reference - removeMapStorageFor(name) - // and insert - coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, o)) - } - } - } - - override def removeMapStorageFor(name: String) = { - val q = new BasicDBObject - q.put(KEY, name) - coll.remove(q) - } - - override def removeMapStorageFor(name: String, key: AnyRef) = { - nullSafeFindOne(name) match { - case None => - case Some(dbo) => { - val orig = dbo.get(VALUE).asInstanceOf[DBObject].toMap - orig.remove(key.asInstanceOf[String]) - - // remove existing reference - removeMapStorageFor(name) - // and insert - coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, orig)) - } - } - } - - override def getMapStorageEntryFor(name: String, - key: AnyRef): Option[AnyRef] = { - getValueForKey(name, key.asInstanceOf[String]) - } - - override def getMapStorageSizeFor(name: String): Int = { - nullSafeFindOne(name) match { - case None => 0 - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]].keySet.size - } - } - - override def getMapStorageFor(name: String): List[Tuple2[AnyRef, AnyRef]] = { - val m = - nullSafeFindOne(name) match { - case None => - throw new Predef.NoSuchElementException(name + " not present") - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]] - } - val n = - List(m.keySet.toArray: _*).asInstanceOf[List[String]] - val vals = - for(s <- n) - yield (s, serializer.in(m.get(s).asInstanceOf[Array[Byte]], None)) - vals.asInstanceOf[List[Tuple2[String, AnyRef]]] - } - - override def getMapStorageRangeFor(name: String, start: Option[AnyRef], - finish: Option[AnyRef], - count: Int): List[Tuple2[AnyRef, AnyRef]] = { - val m = - nullSafeFindOne(name) match { - case None => - throw new Predef.NoSuchElementException(name + " not present") - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]] - } - - /** - * count is the max number of results to return. Start with - * start or 0 (if start is not defined) and go until - * you hit finish or count. - */ - val s = if (start.isDefined) start.get.asInstanceOf[Int] else 0 - val cnt = - if (finish.isDefined) { - val f = finish.get.asInstanceOf[Int] - if (f >= s) Math.min(count, (f - s)) else count - } - else count - - val n = - List(m.keySet.toArray: _*).asInstanceOf[List[String]].sort((e1, e2) => (e1 compareTo e2) < 0).slice(s, s + cnt) - val vals = - for(s <- n) - yield (s, serializer.in(m.get(s).asInstanceOf[Array[Byte]], None)) - vals.asInstanceOf[List[Tuple2[String, AnyRef]]] - } - - private def getValueForKey(name: String, key: String): Option[AnyRef] = { - try { - nullSafeFindOne(name) match { - case None => None - case Some(dbo) => - Some(serializer.in( - dbo.get(VALUE) - .asInstanceOf[JMap[String, AnyRef]] - .get(key).asInstanceOf[Array[Byte]], None)) - } - } catch { - case e => - throw new Predef.NoSuchElementException(e.getMessage) - } - } - - override def insertVectorStorageEntriesFor(name: String, elements: List[AnyRef]) = { - val q = new BasicDBObject - q.put(KEY, name) - - val currentList = - coll.findOneNS(q) match { - case None => - new JArrayList[AnyRef] - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JArrayList[AnyRef]] - } - if (!currentList.isEmpty) { - // record exists - // remove before adding - coll.remove(q) - } - - // add to the current list - elements.map(serializer.out(_)).foreach(currentList.add(_)) - - coll.insert( - new BasicDBObject() - .append(KEY, name) - .append(VALUE, currentList) - ) - } - - override def insertVectorStorageEntryFor(name: String, element: AnyRef) = { - insertVectorStorageEntriesFor(name, List(element)) - } - - override def getVectorStorageEntryFor(name: String, index: Int): AnyRef = { - try { - val o = - nullSafeFindOne(name) match { - case None => - throw new Predef.NoSuchElementException(name + " not present") - - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JList[AnyRef]] - } - serializer.in( - o.get(index).asInstanceOf[Array[Byte]], - None - ) - } catch { - case e => - throw new Predef.NoSuchElementException(e.getMessage) - } - } - - override def getVectorStorageRangeFor(name: String, - start: Option[Int], finish: Option[Int], count: Int): List[AnyRef] = { - try { - val o = - nullSafeFindOne(name) match { - case None => - throw new Predef.NoSuchElementException(name + " not present") - - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JList[AnyRef]] - } - - // pick the subrange and make a Scala list - val l = - List(o.subList(start.get, start.get + count).toArray: _*) - - for(e <- l) - yield serializer.in(e.asInstanceOf[Array[Byte]], None) - } catch { - case e => - throw new Predef.NoSuchElementException(e.getMessage) - } - } - - override def getVectorStorageSizeFor(name: String): Int = { - nullSafeFindOne(name) match { - case None => 0 - case Some(dbo) => - dbo.get(VALUE).asInstanceOf[JList[AnyRef]].size - } - } - - private def nullSafeFindOne(name: String): Option[DBObject] = { - val o = new BasicDBObject - o.put(KEY, name) - coll.findOneNS(o) - } - - override def insertRefStorageFor(name: String, element: AnyRef) = { - nullSafeFindOne(name) match { - case None => - case Some(dbo) => { - val q = new BasicDBObject - q.put(KEY, name) - coll.remove(q) - } - } - coll.insert( - new BasicDBObject() - .append(KEY, name) - .append(VALUE, serializer.out(element))) - } - - override def getRefStorageFor(name: String): Option[AnyRef] = { - nullSafeFindOne(name) match { - case None => None - case Some(dbo) => - Some(serializer.in(dbo.get(VALUE).asInstanceOf[Array[Byte]], None)) - } - } -} +package se.scalablesolutions.akka.kernel.state + +import com.mongodb._ +import se.scalablesolutions.akka.kernel.util.Logging +import serialization.{Serializer} +import kernel.Kernel.config +import sjson.json.Serializer._ + +import java.util.{Map=>JMap, List=>JList, ArrayList=>JArrayList} + +/** + * A module for supporting MongoDB based persistence. + *

    + * The module offers functionality for: + *

  • Persistent Maps
  • + *
  • Persistent Vectors
  • + *
  • Persistent Refs
  • + *

    + * @author Debasish Ghosh + */ +object MongoStorage extends MapStorage + with VectorStorage with RefStorage with Logging { + + // enrich with null safe findOne + class RichDBCollection(value: DBCollection) { + def findOneNS(o: DBObject): Option[DBObject] = { + value.findOne(o) match { + case null => None + case x => Some(x) + } + } + } + + implicit def enrichDBCollection(c: DBCollection) = new RichDBCollection(c) + + val KEY = "key" + val VALUE = "value" + val COLLECTION = "akka_coll" + val MONGODB_SERVER_HOSTNAME = + config.getString("akka.storage.mongodb.hostname", "127.0.0.1") + val MONGODB_SERVER_DBNAME = + config.getString("akka.storage.mongodb.dbname", "testdb") + val MONGODB_SERVER_PORT = + config.getInt("akka.storage.mongodb.port", 27017) + + val db = new Mongo(MONGODB_SERVER_HOSTNAME, + MONGODB_SERVER_PORT, MONGODB_SERVER_DBNAME) + val coll = db.getCollection(COLLECTION) + + // @fixme: make this pluggable + private[this] val serializer = SJSON + + override def insertMapStorageEntryFor(name: String, + key: AnyRef, value: AnyRef) { + insertMapStorageEntriesFor(name, List((key, value))) + } + + override def insertMapStorageEntriesFor(name: String, + entries: List[Tuple2[AnyRef, AnyRef]]) { + import java.util.{Map, HashMap} + + val m: Map[AnyRef, AnyRef] = new HashMap + for ((k, v) <- entries) { + m.put(k, serializer.out(v)) + } + + nullSafeFindOne(name) match { + case None => + coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, m)) + case Some(dbo) => { + // collate the maps + val o = dbo.get(VALUE).asInstanceOf[Map[AnyRef, AnyRef]] + o.putAll(m) + + // remove existing reference + removeMapStorageFor(name) + // and insert + coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, o)) + } + } + } + + override def removeMapStorageFor(name: String) = { + val q = new BasicDBObject + q.put(KEY, name) + coll.remove(q) + } + + override def removeMapStorageFor(name: String, key: AnyRef) = { + nullSafeFindOne(name) match { + case None => + case Some(dbo) => { + val orig = dbo.get(VALUE).asInstanceOf[DBObject].toMap + orig.remove(key.asInstanceOf[String]) + + // remove existing reference + removeMapStorageFor(name) + // and insert + coll.insert(new BasicDBObject().append(KEY, name).append(VALUE, orig)) + } + } + } + + override def getMapStorageEntryFor(name: String, + key: AnyRef): Option[AnyRef] = { + getValueForKey(name, key.asInstanceOf[String]) + } + + override def getMapStorageSizeFor(name: String): Int = { + nullSafeFindOne(name) match { + case None => 0 + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]].keySet.size + } + } + + override def getMapStorageFor(name: String): List[Tuple2[AnyRef, AnyRef]] = { + val m = + nullSafeFindOne(name) match { + case None => + throw new Predef.NoSuchElementException(name + " not present") + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]] + } + val n = + List(m.keySet.toArray: _*).asInstanceOf[List[String]] + val vals = + for(s <- n) + yield (s, serializer.in[AnyRef](m.get(s).asInstanceOf[Array[Byte]])) + vals.asInstanceOf[List[Tuple2[String, AnyRef]]] + } + + override def getMapStorageRangeFor(name: String, start: Option[AnyRef], + finish: Option[AnyRef], + count: Int): List[Tuple2[AnyRef, AnyRef]] = { + val m = + nullSafeFindOne(name) match { + case None => + throw new Predef.NoSuchElementException(name + " not present") + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JMap[String, AnyRef]] + } + + /** + * count is the max number of results to return. Start with + * start or 0 (if start is not defined) and go until + * you hit finish or count. + */ + val s = if (start.isDefined) start.get.asInstanceOf[Int] else 0 + val cnt = + if (finish.isDefined) { + val f = finish.get.asInstanceOf[Int] + if (f >= s) Math.min(count, (f - s)) else count + } + else count + + val n = + List(m.keySet.toArray: _*).asInstanceOf[List[String]].sort((e1, e2) => (e1 compareTo e2) < 0).slice(s, s + cnt) + val vals = + for(s <- n) + yield (s, serializer.in[AnyRef](m.get(s).asInstanceOf[Array[Byte]])) + vals.asInstanceOf[List[Tuple2[String, AnyRef]]] + } + + private def getValueForKey(name: String, key: String): Option[AnyRef] = { + try { + nullSafeFindOne(name) match { + case None => None + case Some(dbo) => + Some(serializer.in[AnyRef]( + dbo.get(VALUE) + .asInstanceOf[JMap[String, AnyRef]] + .get(key).asInstanceOf[Array[Byte]])) + } + } catch { + case e => + throw new Predef.NoSuchElementException(e.getMessage) + } + } + + override def insertVectorStorageEntriesFor(name: String, elements: List[AnyRef]) = { + val q = new BasicDBObject + q.put(KEY, name) + + val currentList = + coll.findOneNS(q) match { + case None => + new JArrayList[AnyRef] + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JArrayList[AnyRef]] + } + if (!currentList.isEmpty) { + // record exists + // remove before adding + coll.remove(q) + } + + // add to the current list + elements.map(serializer.out(_)).foreach(currentList.add(_)) + + coll.insert( + new BasicDBObject() + .append(KEY, name) + .append(VALUE, currentList) + ) + } + + override def insertVectorStorageEntryFor(name: String, element: AnyRef) = { + insertVectorStorageEntriesFor(name, List(element)) + } + + override def getVectorStorageEntryFor(name: String, index: Int): AnyRef = { + try { + val o = + nullSafeFindOne(name) match { + case None => + throw new Predef.NoSuchElementException(name + " not present") + + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JList[AnyRef]] + } + serializer.in[AnyRef]( + o.get(index).asInstanceOf[Array[Byte]]) + } catch { + case e => + throw new Predef.NoSuchElementException(e.getMessage) + } + } + + override def getVectorStorageRangeFor(name: String, + start: Option[Int], finish: Option[Int], count: Int): List[AnyRef] = { + try { + val o = + nullSafeFindOne(name) match { + case None => + throw new Predef.NoSuchElementException(name + " not present") + + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JList[AnyRef]] + } + + // pick the subrange and make a Scala list + val l = + List(o.subList(start.get, start.get + count).toArray: _*) + + for(e <- l) + yield serializer.in[AnyRef](e.asInstanceOf[Array[Byte]]) + } catch { + case e => + throw new Predef.NoSuchElementException(e.getMessage) + } + } + + override def getVectorStorageSizeFor(name: String): Int = { + nullSafeFindOne(name) match { + case None => 0 + case Some(dbo) => + dbo.get(VALUE).asInstanceOf[JList[AnyRef]].size + } + } + + private def nullSafeFindOne(name: String): Option[DBObject] = { + val o = new BasicDBObject + o.put(KEY, name) + coll.findOneNS(o) + } + + override def insertRefStorageFor(name: String, element: AnyRef) = { + nullSafeFindOne(name) match { + case None => + case Some(dbo) => { + val q = new BasicDBObject + q.put(KEY, name) + coll.remove(q) + } + } + coll.insert( + new BasicDBObject() + .append(KEY, name) + .append(VALUE, serializer.out(element))) + } + + override def getRefStorageFor(name: String): Option[AnyRef] = { + nullSafeFindOne(name) match { + case None => None + case Some(dbo) => + Some(serializer.in[AnyRef](dbo.get(VALUE).asInstanceOf[Array[Byte]])) + } + } +} diff --git a/kernel/src/test/scala/MongoPersistentActorSpec.scala b/kernel/src/test/scala/MongoPersistentActorSpec.scala index eb5e04c85e..be0b1c320c 100644 --- a/kernel/src/test/scala/MongoPersistentActorSpec.scala +++ b/kernel/src/test/scala/MongoPersistentActorSpec.scala @@ -4,6 +4,8 @@ package se.scalablesolutions.akka.kernel.actor import junit.framework.TestCase import org.junit.{Test, Before} import org.junit.Assert._ +import dispatch.json._ +import dispatch.json.Js._ import kernel.state.{MongoStorageConfig, TransactionalState} @@ -45,7 +47,10 @@ class BankAccountActor extends Actor { val m: BigInt = accountState.get(accountNo) match { case None => 0 - case Some(v) => BigInt(v.asInstanceOf[String]) + case Some(v) => { + val JsNumber(n) = v.asInstanceOf[JsValue] + BigInt(n.toString) + } } accountState.put(accountNo, (m - amount)) if (amount > m) @@ -75,7 +80,10 @@ class BankAccountActor extends Actor { val m: BigInt = accountState.get(accountNo) match { case None => 0 - case Some(v) => BigInt(v.asInstanceOf[String]) + case Some(v) => { + val JsNumber(n) = v.asInstanceOf[JsValue] + BigInt(n.toString) + } } accountState.put(accountNo, (m + amount)) reply(m + amount) @@ -84,14 +92,6 @@ class BankAccountActor extends Actor { reply(txnLog.length.asInstanceOf[AnyRef]) } } -/* -@serializable class PersistentFailerActor extends Actor { - makeTransactionRequired - def receive: PartialFunction[Any, Unit] = { - case "Failure" => - throw new RuntimeException("expected") - } -}*/ class MongoPersistentActorSpec extends TestCase { @Test @@ -102,16 +102,19 @@ class MongoPersistentActorSpec extends TestCase { failer.start bactor !! Credit("a-123", 5000) bactor !! Debit("a-123", 3000, failer) - assertEquals(BigInt(2000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n) = b + assertEquals(BigInt(2000), BigInt(n.toString)) bactor !! Credit("a-123", 7000) - assertEquals(BigInt(9000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b1 = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n1) = b1 + assertEquals(BigInt(9000), BigInt(n1.toString)) bactor !! Debit("a-123", 8000, failer) - assertEquals(BigInt(1000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b2 = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n2) = b2 + assertEquals(BigInt(1000), BigInt(n2.toString)) assertEquals(7, (bactor !! LogSize).get) } @@ -120,8 +123,10 @@ class MongoPersistentActorSpec extends TestCase { val bactor = new BankAccountActor bactor.start bactor !! Credit("a-123", 5000) - assertEquals(BigInt(5000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + + val b = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n) = b + assertEquals(BigInt(5000), BigInt(n.toString)) val failer = new PersistentFailerActor failer.start @@ -130,8 +135,9 @@ class MongoPersistentActorSpec extends TestCase { fail("should throw exception") } catch { case e: RuntimeException => {}} - assertEquals(BigInt(5000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b1 = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n1) = b1 + assertEquals(BigInt(5000), BigInt(n1.toString)) // should not count the failed one assertEquals(3, (bactor !! LogSize).get) @@ -142,8 +148,9 @@ class MongoPersistentActorSpec extends TestCase { val bactor = new BankAccountActor bactor.start bactor !! Credit("a-123", 5000) - assertEquals(BigInt(5000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n) = b + assertEquals(BigInt(5000), BigInt(n.toString)) val failer = new PersistentFailerActor failer.start @@ -152,8 +159,9 @@ class MongoPersistentActorSpec extends TestCase { fail("should throw exception") } catch { case e: RuntimeException => {}} - assertEquals(BigInt(5000), - BigInt((bactor !! Balance("a-123")).get.asInstanceOf[String])) + val b1 = (bactor !! Balance("a-123")).get.asInstanceOf[JsValue] + val JsNumber(n1) = b1 + assertEquals(BigInt(5000), BigInt(n1.toString)) // should not count the failed one assertEquals(3, (bactor !! LogSize).get) diff --git a/kernel/src/test/scala/MongoStorageSpec.scala b/kernel/src/test/scala/MongoStorageSpec.scala index c80afb00a7..07f7a21bf0 100644 --- a/kernel/src/test/scala/MongoStorageSpec.scala +++ b/kernel/src/test/scala/MongoStorageSpec.scala @@ -1,306 +1,337 @@ -package se.scalablesolutions.akka.kernel.state - -import junit.framework.TestCase - -import org.junit.{Test, Before} -import org.junit.Assert._ - -class MongoStorageSpec extends TestCase { - - val changeSetV = new scala.collection.mutable.ArrayBuffer[AnyRef] - val changeSetM = new scala.collection.mutable.HashMap[AnyRef, AnyRef] - - override def setUp = { - MongoStorage.coll.drop - } - - @Test - def testVectorInsertForTransactionId = { - changeSetV += "debasish" // string - changeSetV += List(1, 2, 3) // Scala List - changeSetV += List(100, 200) - MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) - assertEquals( - 3, - MongoStorage.getVectorStorageSizeFor("U-A1")) - changeSetV.clear - - // changeSetV should be reinitialized - changeSetV += List(12, 23, 45) - changeSetV += "maulindu" - MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) - assertEquals( - 5, - MongoStorage.getVectorStorageSizeFor("U-A1")) - - // add more to the same changeSetV - changeSetV += "ramanendu" - changeSetV += Map(1 -> "dg", 2 -> "mc") - - // add for a diff transaction - MongoStorage.insertVectorStorageEntriesFor("U-A2", changeSetV.toList) - assertEquals( - 4, - MongoStorage.getVectorStorageSizeFor("U-A2")) - - // previous transaction change set should remain same - assertEquals( - 5, - MongoStorage.getVectorStorageSizeFor("U-A1")) - - // test single element entry - MongoStorage.insertVectorStorageEntryFor("U-A1", Map(1->1, 2->4, 3->9)) - assertEquals( - 6, - MongoStorage.getVectorStorageSizeFor("U-A1")) - } - - @Test - def testVectorFetchForKeys = { - - // initially everything 0 - assertEquals( - 0, - MongoStorage.getVectorStorageSizeFor("U-A2")) - - assertEquals( - 0, - MongoStorage.getVectorStorageSizeFor("U-A1")) - - // get some stuff - changeSetV += "debasish" - changeSetV += List(12, 13, 14) - MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) - - assertEquals( - 2, - MongoStorage.getVectorStorageSizeFor("U-A1")) - - assertEquals( - "debasish", - MongoStorage.getVectorStorageEntryFor("U-A1", 0).asInstanceOf[String]) - - assertEquals( - List(12, 13, 14), - MongoStorage.getVectorStorageEntryFor("U-A1", 1).asInstanceOf[List[Int]]) - - changeSetV.clear - changeSetV += Map(1->1, 2->4, 3->9) - changeSetV += BigInt(2310) - changeSetV += List(100, 200, 300) - MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) - - assertEquals( - 5, - MongoStorage.getVectorStorageSizeFor("U-A1")) - - val r = - MongoStorage.getVectorStorageRangeFor("U-A1", Some(1), None, 3) - - assertEquals(3, r.size) - assertEquals(List(12, 13, 14), r(0).asInstanceOf[List[Int]]) - } - - @Test - def testVectorFetchForNonExistentKeys = { - try { - MongoStorage.getVectorStorageEntryFor("U-A1", 1) - fail("should throw an exception") - } catch {case e: Predef.NoSuchElementException => {}} - - try { - MongoStorage.getVectorStorageRangeFor("U-A1", Some(2), None, 12) - fail("should throw an exception") - } catch {case e: Predef.NoSuchElementException => {}} - } - - @Test - def testMapInsertForTransactionId = { - case class Foo(no: Int, name: String) - fillMap - - // add some more to changeSet - changeSetM += "5" -> Foo(12, "dg") - changeSetM += "6" -> java.util.Calendar.getInstance.getTime - - // insert all into Mongo - MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) - assertEquals( - 6, - MongoStorage.getMapStorageSizeFor("U-M1")) - - // individual insert api - MongoStorage.insertMapStorageEntryFor("U-M1", "7", "akka") - MongoStorage.insertMapStorageEntryFor("U-M1", "8", List(23, 25)) - assertEquals( - 8, - MongoStorage.getMapStorageSizeFor("U-M1")) - - // add the same changeSet for another transaction - MongoStorage.insertMapStorageEntriesFor("U-M2", changeSetM.toList) - assertEquals( - 6, - MongoStorage.getMapStorageSizeFor("U-M2")) - - // the first transaction should remain the same - assertEquals( - 8, - MongoStorage.getMapStorageSizeFor("U-M1")) - changeSetM.clear - } - - @Test - def testMapContents = { - fillMap - MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) - MongoStorage.getMapStorageEntryFor("U-M1", "2") match { - case Some(x) => assertEquals("peter", x.asInstanceOf[String]) - case None => fail("should fetch peter") - } - MongoStorage.getMapStorageEntryFor("U-M1", "4") match { - case Some(x) => assertEquals(3, x.asInstanceOf[List[Int]].size) - case None => fail("should fetch list") - } - MongoStorage.getMapStorageEntryFor("U-M1", "3") match { - case Some(x) => assertEquals(2, x.asInstanceOf[List[Int]].size) - case None => fail("should fetch list") - } - - // get the entire map - val l: List[Tuple2[AnyRef, AnyRef]] = - MongoStorage.getMapStorageFor("U-M1") - - assertEquals(4, l.size) - assertTrue(l.map(_._1).contains("1")) - assertTrue(l.map(_._1).contains("2")) - assertTrue(l.map(_._1).contains("3")) - assertTrue(l.map(_._1).contains("4")) - - assertTrue(l.map(_._2).contains("john")) - - // trying to fetch for a non-existent transaction will throw - try { - MongoStorage.getMapStorageFor("U-M2") - fail("should throw an exception") - } catch {case e: Predef.NoSuchElementException => {}} - - changeSetM.clear - } - - @Test - def testMapContentsByRange = { - fillMap - changeSetM += "5" -> Map(1 -> "dg", 2 -> "mc") - MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) - - // specify start and count - val l: List[Tuple2[AnyRef, AnyRef]] = - MongoStorage.getMapStorageRangeFor( - "U-M1", Some(Integer.valueOf(2)), None, 3) - - assertEquals(3, l.size) - assertEquals("3", l(0)._1.asInstanceOf[String]) - assertEquals(List(100, 200), l(0)._2.asInstanceOf[List[Int]]) - assertEquals("4", l(1)._1.asInstanceOf[String]) - assertEquals(List(10, 20, 30), l(1)._2.asInstanceOf[List[Int]]) - - // specify start, finish and count where finish - start == count - assertEquals(3, - MongoStorage.getMapStorageRangeFor( - "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(5)), 3).size) - - // specify start, finish and count where finish - start > count - assertEquals(3, - MongoStorage.getMapStorageRangeFor( - "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(9)), 3).size) - - // do not specify start or finish - assertEquals(3, - MongoStorage.getMapStorageRangeFor( - "U-M1", None, None, 3).size) - - // specify finish and count - assertEquals(3, - MongoStorage.getMapStorageRangeFor( - "U-M1", None, Some(Integer.valueOf(3)), 3).size) - - // specify start, finish and count where finish < start - assertEquals(3, - MongoStorage.getMapStorageRangeFor( - "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(1)), 3).size) - - changeSetM.clear - } - - @Test - def testMapStorageRemove = { - fillMap - changeSetM += "5" -> Map(1 -> "dg", 2 -> "mc") - - MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) - assertEquals(5, - MongoStorage.getMapStorageSizeFor("U-M1")) - - // remove key "3" - MongoStorage.removeMapStorageFor("U-M1", "3") - assertEquals(4, - MongoStorage.getMapStorageSizeFor("U-M1")) - - try { - MongoStorage.getMapStorageEntryFor("U-M1", "3") - fail("should throw exception") - } catch { case e => {}} - - // remove the whole stuff - MongoStorage.removeMapStorageFor("U-M1") - - try { - MongoStorage.getMapStorageFor("U-M1") - fail("should throw exception") - } catch { case e: NoSuchElementException => {}} - - changeSetM.clear - } - - private def fillMap = { - changeSetM += "1" -> "john" - changeSetM += "2" -> "peter" - changeSetM += "3" -> List(100, 200) - changeSetM += "4" -> List(10, 20, 30) - changeSetM - } - - @Test - def testRefStorage = { - MongoStorage.getRefStorageFor("U-R1") match { - case None => - case Some(o) => fail("should be None") - } - - val m = Map("1"->1, "2"->4, "3"->9) - MongoStorage.insertRefStorageFor("U-R1", m) - MongoStorage.getRefStorageFor("U-R1") match { - case None => fail("should not be empty") - case Some(r) => { - val a = r.asInstanceOf[Map[String, Int]] - assertEquals(a.size, 3) - assertEquals(a.get("1").get, 1) - assertEquals(a.get("2").get, 4) - assertEquals(a.get("3").get, 9) - } - } - - // insert another one - // the previous one should be replaced - val b = List("100", "jonas") - MongoStorage.insertRefStorageFor("U-R1", b) - MongoStorage.getRefStorageFor("U-R1") match { - case None => fail("should not be empty") - case Some(r) => { - val a = r.asInstanceOf[List[String]] - assertEquals("100", a(0)) - assertEquals("jonas", a(1)) - } - } - } -} +package se.scalablesolutions.akka.kernel.state + +import junit.framework.TestCase + +import org.junit.{Test, Before} +import org.junit.Assert._ +import dispatch.json._ +import dispatch.json.Js._ + +class MongoStorageSpec extends TestCase { + + val changeSetV = new scala.collection.mutable.ArrayBuffer[AnyRef] + val changeSetM = new scala.collection.mutable.HashMap[AnyRef, AnyRef] + + override def setUp = { + MongoStorage.coll.drop + } + + @Test + def testVectorInsertForTransactionId = { + changeSetV += "debasish" // string + changeSetV += List(1, 2, 3) // Scala List + changeSetV += List(100, 200) + MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) + assertEquals( + 3, + MongoStorage.getVectorStorageSizeFor("U-A1")) + changeSetV.clear + + // changeSetV should be reinitialized + changeSetV += List(12, 23, 45) + changeSetV += "maulindu" + MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) + assertEquals( + 5, + MongoStorage.getVectorStorageSizeFor("U-A1")) + + // add more to the same changeSetV + changeSetV += "ramanendu" + changeSetV += Map(1 -> "dg", 2 -> "mc") + + // add for a diff transaction + MongoStorage.insertVectorStorageEntriesFor("U-A2", changeSetV.toList) + assertEquals( + 4, + MongoStorage.getVectorStorageSizeFor("U-A2")) + + // previous transaction change set should remain same + assertEquals( + 5, + MongoStorage.getVectorStorageSizeFor("U-A1")) + + // test single element entry + MongoStorage.insertVectorStorageEntryFor("U-A1", Map(1->1, 2->4, 3->9)) + assertEquals( + 6, + MongoStorage.getVectorStorageSizeFor("U-A1")) + } + + @Test + def testVectorFetchForKeys = { + + // initially everything 0 + assertEquals( + 0, + MongoStorage.getVectorStorageSizeFor("U-A2")) + + assertEquals( + 0, + MongoStorage.getVectorStorageSizeFor("U-A1")) + + // get some stuff + changeSetV += "debasish" + changeSetV += List(BigDecimal(12), BigDecimal(13), BigDecimal(14)) + MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) + + assertEquals( + 2, + MongoStorage.getVectorStorageSizeFor("U-A1")) + + val JsString(str) = MongoStorage.getVectorStorageEntryFor("U-A1", 0).asInstanceOf[JsString] + assertEquals("debasish", str) + + import dispatch.json.Js._ + + val l = MongoStorage.getVectorStorageEntryFor("U-A1", 1).asInstanceOf[JsValue] + val num_list = list ! num + val num_list(l0) = l + assertEquals(List(12, 13, 14), l0) + + changeSetV.clear + changeSetV += Map(1->1, 2->4, 3->9) + changeSetV += BigInt(2310) + changeSetV += List(100, 200, 300) + MongoStorage.insertVectorStorageEntriesFor("U-A1", changeSetV.toList) + + assertEquals( + 5, + MongoStorage.getVectorStorageSizeFor("U-A1")) + + val r = + MongoStorage.getVectorStorageRangeFor("U-A1", Some(1), None, 3) + + assertEquals(3, r.size) + val lr = r(0).asInstanceOf[JsValue] + val num_list(l1) = lr + assertEquals(List(12, 13, 14), l1) + } + + @Test + def testVectorFetchForNonExistentKeys = { + try { + MongoStorage.getVectorStorageEntryFor("U-A1", 1) + fail("should throw an exception") + } catch {case e: Predef.NoSuchElementException => {}} + + try { + MongoStorage.getVectorStorageRangeFor("U-A1", Some(2), None, 12) + fail("should throw an exception") + } catch {case e: Predef.NoSuchElementException => {}} + } + + @Test + def testMapInsertForTransactionId = { + case class Foo(no: Int, name: String) + fillMap + + // add some more to changeSet + changeSetM += "5" -> Foo(12, "dg") + changeSetM += "6" -> java.util.Calendar.getInstance.getTime + + // insert all into Mongo + MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) + assertEquals( + 6, + MongoStorage.getMapStorageSizeFor("U-M1")) + + // individual insert api + MongoStorage.insertMapStorageEntryFor("U-M1", "7", "akka") + MongoStorage.insertMapStorageEntryFor("U-M1", "8", List(23, 25)) + assertEquals( + 8, + MongoStorage.getMapStorageSizeFor("U-M1")) + + // add the same changeSet for another transaction + MongoStorage.insertMapStorageEntriesFor("U-M2", changeSetM.toList) + assertEquals( + 6, + MongoStorage.getMapStorageSizeFor("U-M2")) + + // the first transaction should remain the same + assertEquals( + 8, + MongoStorage.getMapStorageSizeFor("U-M1")) + changeSetM.clear + } + + @Test + def testMapContents = { + fillMap + MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) + MongoStorage.getMapStorageEntryFor("U-M1", "2") match { + case Some(x) => { + val JsString(str) = x.asInstanceOf[JsValue] + assertEquals("peter", str) + } + case None => fail("should fetch peter") + } + MongoStorage.getMapStorageEntryFor("U-M1", "4") match { + case Some(x) => { + val num_list = list ! num + val num_list(l0) = x.asInstanceOf[JsValue] + assertEquals(3, l0.size) + } + case None => fail("should fetch list") + } + MongoStorage.getMapStorageEntryFor("U-M1", "3") match { + case Some(x) => { + val num_list = list ! num + val num_list(l0) = x.asInstanceOf[JsValue] + assertEquals(2, l0.size) + } + case None => fail("should fetch list") + } + + // get the entire map + val l: List[Tuple2[AnyRef, AnyRef]] = + MongoStorage.getMapStorageFor("U-M1") + + assertEquals(4, l.size) + assertTrue(l.map(_._1).contains("1")) + assertTrue(l.map(_._1).contains("2")) + assertTrue(l.map(_._1).contains("3")) + assertTrue(l.map(_._1).contains("4")) + + val JsString(str) = l.filter(_._1 == "2").first._2 + assertEquals(str, "peter") + + // trying to fetch for a non-existent transaction will throw + try { + MongoStorage.getMapStorageFor("U-M2") + fail("should throw an exception") + } catch {case e: Predef.NoSuchElementException => {}} + + changeSetM.clear + } + + @Test + def testMapContentsByRange = { + fillMap + changeSetM += "5" -> Map(1 -> "dg", 2 -> "mc") + MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) + + // specify start and count + val l: List[Tuple2[AnyRef, AnyRef]] = + MongoStorage.getMapStorageRangeFor( + "U-M1", Some(Integer.valueOf(2)), None, 3) + + assertEquals(3, l.size) + assertEquals("3", l(0)._1.asInstanceOf[String]) + val lst = l(0)._2.asInstanceOf[JsValue] + val num_list = list ! num + val num_list(l0) = lst + assertEquals(List(100, 200), l0) + assertEquals("4", l(1)._1.asInstanceOf[String]) + val ls = l(1)._2.asInstanceOf[JsValue] + val num_list(l1) = ls + assertEquals(List(10, 20, 30), l1) + + // specify start, finish and count where finish - start == count + assertEquals(3, + MongoStorage.getMapStorageRangeFor( + "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(5)), 3).size) + + // specify start, finish and count where finish - start > count + assertEquals(3, + MongoStorage.getMapStorageRangeFor( + "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(9)), 3).size) + + // do not specify start or finish + assertEquals(3, + MongoStorage.getMapStorageRangeFor( + "U-M1", None, None, 3).size) + + // specify finish and count + assertEquals(3, + MongoStorage.getMapStorageRangeFor( + "U-M1", None, Some(Integer.valueOf(3)), 3).size) + + // specify start, finish and count where finish < start + assertEquals(3, + MongoStorage.getMapStorageRangeFor( + "U-M1", Some(Integer.valueOf(2)), Some(Integer.valueOf(1)), 3).size) + + changeSetM.clear + } + + @Test + def testMapStorageRemove = { + fillMap + changeSetM += "5" -> Map(1 -> "dg", 2 -> "mc") + + MongoStorage.insertMapStorageEntriesFor("U-M1", changeSetM.toList) + assertEquals(5, + MongoStorage.getMapStorageSizeFor("U-M1")) + + // remove key "3" + MongoStorage.removeMapStorageFor("U-M1", "3") + assertEquals(4, + MongoStorage.getMapStorageSizeFor("U-M1")) + + try { + MongoStorage.getMapStorageEntryFor("U-M1", "3") + fail("should throw exception") + } catch { case e => {}} + + // remove the whole stuff + MongoStorage.removeMapStorageFor("U-M1") + + try { + MongoStorage.getMapStorageFor("U-M1") + fail("should throw exception") + } catch { case e: NoSuchElementException => {}} + + changeSetM.clear + } + + private def fillMap = { + changeSetM += "1" -> "john" + changeSetM += "2" -> "peter" + changeSetM += "3" -> List(100, 200) + changeSetM += "4" -> List(10, 20, 30) + changeSetM + } + + @Test + def testRefStorage = { + MongoStorage.getRefStorageFor("U-R1") match { + case None => + case Some(o) => fail("should be None") + } + + val m = Map("1"->1, "2"->4, "3"->9) + MongoStorage.insertRefStorageFor("U-R1", m) + MongoStorage.getRefStorageFor("U-R1") match { + case None => fail("should not be empty") + case Some(r) => { + val a = r.asInstanceOf[JsValue] + val m1 = Symbol("1") ? num + val m2 = Symbol("2") ? num + val m3 = Symbol("3") ? num + + val m1(n1) = a + val m2(n2) = a + val m3(n3) = a + + assertEquals(n1, 1) + assertEquals(n2, 4) + assertEquals(n3, 9) + } + } + + // insert another one + // the previous one should be replaced + val b = List("100", "jonas") + MongoStorage.insertRefStorageFor("U-R1", b) + MongoStorage.getRefStorageFor("U-R1") match { + case None => fail("should not be empty") + case Some(r) => { + val a = r.asInstanceOf[JsValue] + val str_lst = list ! str + val str_lst(l) = a + assertEquals(b, l) + } + } + } +}