Initial Scaffold of Riak Module

This commit is contained in:
ticktock 2010-10-09 22:24:31 -04:00
parent 698524dc2b
commit bf227926cf
3 changed files with 83 additions and 0 deletions

View file

@ -0,0 +1,51 @@
/**
* Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se>
*/
package se.scalablesolutions.akka.persistence.riak
import se.scalablesolutions.akka.actor.{newUuid}
import se.scalablesolutions.akka.stm._
import se.scalablesolutions.akka.persistence.common._
object RiakStorage extends Storage {
type ElementType = Array[Byte]
def newMap: PersistentMap[ElementType, ElementType] = newMap(newUuid.toString)
def newVector: PersistentVector[ElementType] = newVector(newUuid.toString)
def newRef: PersistentRef[ElementType] = newRef(newUuid.toString)
override def newQueue: PersistentQueue[ElementType] = newQueue(newUuid.toString)
def getMap(id: String): PersistentMap[ElementType, ElementType] = newMap(id)
def getVector(id: String): PersistentVector[ElementType] = newVector(id)
def getRef(id: String): PersistentRef[ElementType] = newRef(id)
override def getQueue(id: String): PersistentQueue[ElementType] = newQueue(id)
def newMap(id: String): PersistentMap[ElementType, ElementType] = new RiakPersistentMap(id)
def newVector(id: String): PersistentVector[ElementType] = new RiakPersistentVector(id)
def newRef(id: String): PersistentRef[ElementType] = new RiakPersistentRef(id)
override def newQueue(id:String): PersistentQueue[ElementType] = new RiakPersistentQueue(id)
}
class RiakPersistentMap(id: String) extends PersistentMapBinary {
val uuid = id
val storage = RiakStorageBackend
}
class RiakPersistentVector(id: String) extends PersistentVector[Array[Byte]] {
val uuid = id
val storage = RiakStorageBackend
}
class RiakPersistentRef(id: String) extends PersistentRef[Array[Byte]] {
val uuid = id
val storage = RiakStorageBackend
}
class RiakPersistentQueue(id: String) extends PersistentQueue[Array[Byte]] {
val uuid = id
val storage = RiakStorageBackend
}

View file

@ -0,0 +1,11 @@
/**
* Copyright (C) 2009-2010 Scalable Solutions AB <http://scalablesolutions.se>
*/
package se.scalablesolutions.akka.persistence.riak
import se.scalablesolutions.akka.actor.{newUuid}
import se.scalablesolutions.akka.stm._
import se.scalablesolutions.akka.persistence.common._
class RiakStorageBackend

View file

@ -86,6 +86,7 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
lazy val casbahModuleConfig = ModuleConfiguration("com.novus", CasbahRepo)
lazy val timeModuleConfig = ModuleConfiguration("org.scala-tools", "time", CasbahSnapshotRepo)
lazy val voldemortModuleConfig = ModuleConfiguration("voldemort", ClojarsRepo)
lazy val riakPBModuleConfig = ModuleConfiguration("org.clojars.mmcgrana", ClojarsRepo)
lazy val embeddedRepo = EmbeddedRepo // This is the only exception, because the embedded repo is fast!
// -------------------------------------------------------------------------------------------------------------------
@ -248,6 +249,9 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
lazy val vold_jetty = "org.mortbay.jetty" % "jetty" % "6.1.18" % "test"
lazy val velocity = "org.apache.velocity" % "velocity" % "1.6.2" % "test"
lazy val dbcp = "commons-dbcp" % "commons-dbcp" % "1.2.2" % "test"
//Riak PB Client
lazy val riak_pb_client = "org.clojars.mmcgrana" % "riak-java-pb-client" % "0.1.0-SNAPSHOT" % "compile"
}
// -------------------------------------------------------------------------------------------------------------------
@ -302,6 +306,9 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
" dist/akka-persistence-redis_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-persistence-mongo_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-persistence-cassandra_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-persistence-voldemort_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-persistence-riak_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-persistence-hbase_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-kernel_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-spring_%s-%s.jar".format(buildScalaVersion, version) +
" dist/akka-jta_%s-%s.jar".format(buildScalaVersion, version)
@ -502,6 +509,8 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
new AkkaHbaseProject(_), akka_persistence_common)
lazy val akka_persistence_voldemort = project("akka-persistence-voldemort", "akka-persistence-voldemort",
new AkkaVoldemortProject(_), akka_persistence_common)
lazy val akka_persistence_riak = project("akka-persistence-riak", "akka-persistence-riak",
new AkkaRiakProject(_), akka_persistence_common)
}
// -------------------------------------------------------------------------------------------------------------------
@ -601,6 +610,18 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
override def testOptions = createTestFilter({ s:String=> s.endsWith("Suite") || s.endsWith("Test")})
}
// akka-persistence-riak subproject
// -------------------------------------------------------------------------------------------------------------------
class AkkaRiakProject(info: ProjectInfo) extends AkkaDefaultProject(info, distPath) {
val riak_pb = Dependencies.riak_pb_client
//testing
val scalatest = Dependencies.scalatest
override def testOptions = createTestFilter(_.endsWith("Test"))
}
// -------------------------------------------------------------------------------------------------------------------
// akka-kernel subproject