Updating Atmosphere to 0.6.2 and switching to using SimpleBroadcaster

This commit is contained in:
Viktor Klang 2010-10-02 17:32:44 +02:00
parent 21c2f85c36
commit 6f11ce032d
2 changed files with 12 additions and 8 deletions

View file

@ -5,23 +5,27 @@
package se.scalablesolutions.akka.comet package se.scalablesolutions.akka.comet
import org.atmosphere.cpr.{AtmosphereResourceEvent, AtmosphereResource} import org.atmosphere.cpr.{AtmosphereResourceEvent, AtmosphereResource}
import se.scalablesolutions.akka.actor.Actor._ import se.scalablesolutions.akka.actor.Actor._
import se.scalablesolutions.akka.actor.Actor import se.scalablesolutions.akka.actor.Actor
import se.scalablesolutions.akka.dispatch.Dispatchers import se.scalablesolutions.akka.dispatch.Dispatchers
import org.atmosphere.jersey.util.JerseyBroadcasterUtil
object AkkaBroadcaster { object AkkaBroadcaster {
val broadcasterDispatcher = Dispatchers.fromConfig("akka.rest.comet-dispatcher") val broadcasterDispatcher = Dispatchers.fromConfig("akka.rest.comet-dispatcher")
type Event = AtmosphereResourceEvent[_,_]
type Resource = AtmosphereResource[_,_]
} }
class AkkaBroadcaster extends org.atmosphere.jersey.JerseyBroadcaster { class AkkaBroadcaster extends org.atmosphere.jersey.util.JerseySimpleBroadcaster {
import AkkaBroadcaster._ import AkkaBroadcaster._
name = classOf[AkkaBroadcaster].getName
//FIXME should be supervised //FIXME should be supervised
val caster = actorOf(new Actor { lazy val caster = actorOf(new Actor {
self.dispatcher = broadcasterDispatcher self.dispatcher = broadcasterDispatcher
def receive = { def receive = {
case f : Function0[_] => f() case (r: Resource,e: Event) => JerseyBroadcasterUtil.broadcast(r,e)
} }
}).start }).start
@ -30,7 +34,7 @@ class AkkaBroadcaster extends org.atmosphere.jersey.JerseyBroadcaster {
caster.stop caster.stop
} }
protected override def broadcast(r : AtmosphereResource[_,_], e : AtmosphereResourceEvent[_,_]) = { protected override def broadcast(r: Resource, e : Event) {
caster ! (() => super.broadcast(r,e)) caster ! ((r,e))
} }
} }

View file

@ -91,7 +91,7 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) {
// Versions // Versions
// ------------------------------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------------------------------
lazy val ATMO_VERSION = "0.6.1" lazy val ATMO_VERSION = "0.6.2"
lazy val CAMEL_VERSION = "2.4.0" lazy val CAMEL_VERSION = "2.4.0"
lazy val CASSANDRA_VERSION = "0.6.1" lazy val CASSANDRA_VERSION = "0.6.1"
lazy val DISPATCH_VERSION = "0.7.4" lazy val DISPATCH_VERSION = "0.7.4"