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