diff --git a/deploy/akka-samples-java-0.5.jar b/deploy/akka-samples-java-0.5.jar index db28f594b7..62656411d1 100644 Binary files a/deploy/akka-samples-java-0.5.jar and b/deploy/akka-samples-java-0.5.jar differ diff --git a/deploy/akka-samples-scala-0.5.jar b/deploy/akka-samples-scala-0.5.jar index 457e012a0e..ade3b767ee 100644 Binary files a/deploy/akka-samples-scala-0.5.jar and b/deploy/akka-samples-scala-0.5.jar differ diff --git a/deploy/root/page.html b/deploy/root/page.html new file mode 100644 index 0000000000..ea13c3f710 --- /dev/null +++ b/deploy/root/page.html @@ -0,0 +1,10 @@ + +blah + +
+ + + + +
+ \ No newline at end of file diff --git a/kernel/src/main/scala/jersey/AkkaServlet.scala b/kernel/src/main/scala/jersey/AkkaServlet.scala index 79b565b669..9d67def133 100644 --- a/kernel/src/main/scala/jersey/AkkaServlet.scala +++ b/kernel/src/main/scala/jersey/AkkaServlet.scala @@ -94,7 +94,7 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet val servlet = new AkkaServlet this.config = new AtmosphereConfig { ah = servlet } - atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new DefaultBroadcaster)) + atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet,new JerseyBroadcaster)) setCometSupport(new GrizzlyCometSupport(config)) getCometSupport.init(sconf) diff --git a/lib/akka-kernel-0.5.jar b/lib/akka-kernel-0.5.jar index b03f1b8b8e..ff3a7c5acb 100644 Binary files a/lib/akka-kernel-0.5.jar and b/lib/akka-kernel-0.5.jar differ diff --git a/lib/akka-util-java-0.5.jar b/lib/akka-util-java-0.5.jar index 902be09cde..595ab04e4c 100644 Binary files a/lib/akka-util-java-0.5.jar and b/lib/akka-util-java-0.5.jar differ diff --git a/samples-scala/src/main/scala/SimpleService.scala b/samples-scala/src/main/scala/SimpleService.scala index 76ce120b09..a766bccb0f 100644 --- a/samples-scala/src/main/scala/SimpleService.scala +++ b/samples-scala/src/main/scala/SimpleService.scala @@ -21,9 +21,6 @@ class Boot { SupervisorConfig( RestartStrategy(OneForOne, 3, 100), Supervise( - new SimpleService, - LifeCycle(Permanent, 100)) - :: Supervise( new Chat, LifeCycle(Permanent, 100)) :: Nil) @@ -93,6 +90,9 @@ class Chat extends Actor with Logging{ override def receive: PartialFunction[Any, Unit] = { case Chat(who,what,msg) => { + + //log.info("Chat(" + who + ", " + what + ", " + msg + ")") + what match { case "login" => reply("System Message__"+who+" has joined.") case "post" => reply("" + who + "__" + msg) @@ -106,6 +106,29 @@ class Chat extends Actor with Logging{ @Consumes(Array("application/x-www-form-urlencoded")) @POST @Produces(Array("text/html")) - @FilterBroadcast(Array(classOf[XSSHtmlFilter])) + @FilterBroadcast(Array(classOf[XSSHtmlFilter],classOf[JsonpFilter])) def publishMessage(form: MultivaluedMap[String, String]) = (this !! Chat(form.getFirst("name"),form.getFirst("action"),form.getFirst("message"))).getOrElse("System__error") - } \ No newline at end of file + } + + + class JsonpFilter extends BroadcastFilter[String] with Logging + { + + val BEGIN_SCRIPT_TAG = "\n" + + def filter(m : String) = { + var name = m + var message = "" + + if (m.indexOf("__") > 0) { + name = m.substring(0, m.indexOf("__")) + message = m.substring(m.indexOf("__") + 2) + } + + (BEGIN_SCRIPT_TAG + "window.parent.app.update({ name: \"" + + name + "\", message: \"" + + message + "\" });\n" + + END_SCRIPT_TAG) + } + } \ No newline at end of file