diff --git a/akka-http/src/main/scala/AkkaCometServlet.scala b/akka-http/src/main/scala/AkkaCometServlet.scala index 0ce6f8312a..73590fe9f6 100644 --- a/akka-http/src/main/scala/AkkaCometServlet.scala +++ b/akka-http/src/main/scala/AkkaCometServlet.scala @@ -15,15 +15,7 @@ import org.atmosphere.container.GrizzlyCometSupport import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport,CometSupportResolver,DefaultCometSupportResolver} import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler} -/** - * Akka's Comet servlet to be used when deploying actors exposed as Comet (and REST) services in a - * standard servlet container, e.g. not using the Akka Kernel. - *
- * Used by the Akka Kernel to bootstrap REST and Comet. - */ -class AkkaServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging { - val servlet = new RestServlet with AtmosphereServletProcessor { - +class AtmosphereRestServlet extends RestServlet with AtmosphereServletProcessor { //Delegate to implement the behavior for AtmosphereHandler private val handler = new AbstractReflectorAtmosphereHandler { override def onRequest(event: AtmosphereResource[HttpServletRequest, HttpServletResponse]) { @@ -44,6 +36,16 @@ class AkkaServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging { } } +/** + * Akka's Comet servlet to be used when deploying actors exposed as Comet (and REST) services in a + * standard servlet container, e.g. not using the Akka Kernel. + * + * Used by the Akka Kernel to bootstrap REST and Comet. + */ +class AkkaServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging { + lazy val servlet = createRestServlet + + protected def createRestServlet : AtmosphereRestServlet = new AtmosphereRestServlet /** * We override this to avoid Atmosphere looking for it's atmosphere.xml file * Instead we specify what semantics we want in code. diff --git a/akka-http/src/main/scala/AkkaServlet.scala b/akka-http/src/main/scala/AkkaServlet.scala index 6a53e5629f..b9dd9a652d 100644 --- a/akka-http/src/main/scala/AkkaServlet.scala +++ b/akka-http/src/main/scala/AkkaServlet.scala @@ -5,7 +5,6 @@ package se.scalablesolutions.akka.rest import se.scalablesolutions.akka.config.Config.config -import se.scalablesolutions.akka.actor.ActorModules import com.sun.jersey.api.core.ResourceConfig import com.sun.jersey.spi.container.servlet.ServletContainer import com.sun.jersey.spi.container.WebApplication @@ -28,13 +27,6 @@ class AkkaServlet extends ServletContainer { "com.sun.jersey.spi.container.ResourceFilters", config.getList("akka.rest.filters").mkString(",")) - val cl = Thread.currentThread.getContextClassLoader - Thread.currentThread.setContextClassLoader(ActorModules.loader_?.getOrElse(cl)) - try { - webApplication.initiate(resourceConfig) - } - finally{ - Thread.currentThread.setContextClassLoader(cl) - } + webApplication.initiate(resourceConfig) } }