Initial Scaffold of Riak Module
This commit is contained in:
parent
698524dc2b
commit
bf227926cf
3 changed files with 83 additions and 0 deletions
|
|
@ -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
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue