diff --git a/akka-http/src/main/scala/AkkaBroadcaster.scala b/akka-http/src/main/scala/AkkaBroadcaster.scala index ca5abc6f1d..8aae04bc86 100644 --- a/akka-http/src/main/scala/AkkaBroadcaster.scala +++ b/akka-http/src/main/scala/AkkaBroadcaster.scala @@ -5,23 +5,27 @@ package se.scalablesolutions.akka.comet import org.atmosphere.cpr.{AtmosphereResourceEvent, AtmosphereResource} + import se.scalablesolutions.akka.actor.Actor._ import se.scalablesolutions.akka.actor.Actor import se.scalablesolutions.akka.dispatch.Dispatchers +import org.atmosphere.jersey.util.JerseyBroadcasterUtil object AkkaBroadcaster { 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._ - name = classOf[AkkaBroadcaster].getName //FIXME should be supervised - val caster = actorOf(new Actor { + lazy val caster = actorOf(new Actor { self.dispatcher = broadcasterDispatcher def receive = { - case f : Function0[_] => f() + case (r: Resource,e: Event) => JerseyBroadcasterUtil.broadcast(r,e) } }).start @@ -30,7 +34,7 @@ class AkkaBroadcaster extends org.atmosphere.jersey.JerseyBroadcaster { caster.stop } - protected override def broadcast(r : AtmosphereResource[_,_], e : AtmosphereResourceEvent[_,_]) = { - caster ! (() => super.broadcast(r,e)) + protected override def broadcast(r: Resource, e : Event) { + caster ! ((r,e)) } -} +} \ No newline at end of file diff --git a/project/build/AkkaProject.scala b/project/build/AkkaProject.scala index 3d40fe613b..bbb4cd6a88 100644 --- a/project/build/AkkaProject.scala +++ b/project/build/AkkaProject.scala @@ -91,7 +91,7 @@ class AkkaParentProject(info: ProjectInfo) extends DefaultProject(info) { // Versions // ------------------------------------------------------------------------------------------------------------------- - lazy val ATMO_VERSION = "0.6.1" + lazy val ATMO_VERSION = "0.6.2" lazy val CAMEL_VERSION = "2.4.0" lazy val CASSANDRA_VERSION = "0.6.1" lazy val DISPATCH_VERSION = "0.7.4"