diff --git a/akka-kernel/pom.xml b/akka-kernel/pom.xml
index b86d89e09e..4886d11a6a 100755
--- a/akka-kernel/pom.xml
+++ b/akka-kernel/pom.xml
@@ -229,21 +229,16 @@
jersey-scala
1.1.3-ea
+
+ org.atmosphere
+ atmosphere-runtime
+ 0.4.1
+
org.atmosphere
atmosphere-core
0.4-SNAPSHOT
-
- org.atmosphere
- atmosphere-portable-runtime
- 0.4-SNAPSHOT
-
-
- org.atmosphere
- atmosphere-compat
- 0.4-SNAPSHOT
-
diff --git a/akka-kernel/src/main/scala/AkkaServlet.scala b/akka-kernel/src/main/scala/AkkaServlet.scala
index bbfecbaf7c..0538e8a625 100755
--- a/akka-kernel/src/main/scala/AkkaServlet.scala
+++ b/akka-kernel/src/main/scala/AkkaServlet.scala
@@ -15,7 +15,7 @@ import com.sun.jersey.spi.container.WebApplication
import javax.servlet.{ServletConfig}
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
-import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent}
+import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport}
import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler}
import org.atmosphere.core.JerseyBroadcaster
@@ -25,7 +25,7 @@ import org.atmosphere.core.JerseyBroadcaster
*
* @author Jonas Bonér
*/
-class AkkaServlet extends ServletContainer with Logging {
+class AkkaServlet extends ServletContainer {
import org.scala_tools.javautils.Imports._
override def initiate(resourceConfig: ResourceConfig, webApplication: WebApplication) = {
@@ -48,7 +48,7 @@ class AkkaServlet extends ServletContainer with Logging {
*
* Used by the Akka Kernel to bootstrap REST and Comet.
*/
-class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet {
+class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging {
val servlet = new AkkaServlet with AtmosphereServletProcessor {
//Delegate to implement the behavior for AtmosphereHandler
@@ -73,5 +73,17 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet {
override def loadConfiguration(sc: ServletConfig) {
atmosphereHandlers.put("/*", new AtmosphereServlet.AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
+
+ loadCometSupport(sc.getInitParameter("cometSupport")) map( setCometSupport(_) )
+ }
+
+ private def loadCometSupport(fqn : String) = {
+ fqn match {
+ case s : String if s.length > 0 => Some(Class.forName(fqn)
+ .getConstructor(Array(classOf[AtmosphereConfig]))
+ .newInstance(config)
+ .asInstanceOf[CometSupport[_ <: AtmosphereResource[_,_]]])
+ case _ => None
+ }
}
}
diff --git a/akka-kernel/src/main/scala/Kernel.scala b/akka-kernel/src/main/scala/Kernel.scala
index e5d85fb4df..69813fdd18 100644
--- a/akka-kernel/src/main/scala/Kernel.scala
+++ b/akka-kernel/src/main/scala/Kernel.scala
@@ -69,6 +69,8 @@ object Kernel extends Logging {
adapter.setHandleStaticResources(true)
adapter.setServletInstance(new AkkaCometServlet)
adapter.setContextPath(uri.getPath)
+ //Using autodetection for now
+ //adapter.addInitParameter("cometSupport", "org.atmosphere.container.GrizzlyCometSupport")
if (HOME.isDefined) adapter.setRootFolder(HOME.get + "/deploy/root")
log.info("REST service root path: [" + adapter.getRootFolder + "] and context path [" + adapter.getContextPath + "] ")
diff --git a/akka-rest/pom.xml b/akka-rest/pom.xml
index d72a32ef33..069b9c6d1a 100644
--- a/akka-rest/pom.xml
+++ b/akka-rest/pom.xml
@@ -59,20 +59,5 @@
jersey-scala
1.1.3-ea
-
- org.atmosphere
- atmosphere-core
- 0.4-SNAPSHOT
-
-
- org.atmosphere
- atmosphere-portable-runtime
- 0.4-SNAPSHOT
-
-
- org.atmosphere
- atmosphere-compat
- 0.4-SNAPSHOT
-