Refactored Atmosphere support to be container agnostic + fixed a couple of NPEs
This commit is contained in:
parent
50820dbef5
commit
56dc6ea770
1 changed files with 13 additions and 10 deletions
|
|
@ -42,31 +42,34 @@ class AkkaServlet extends ServletContainer with Logging {
|
|||
}
|
||||
|
||||
class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet {
|
||||
override def init(sconf: ServletConfig) = {
|
||||
|
||||
override def loadConfiguration(sc : ServletConfig) : Unit = {
|
||||
val servlet = new AkkaServlet with AtmosphereServletProcessor {
|
||||
|
||||
//Delegate to implement the behavior for AtmosphereHandler
|
||||
private val handler = new AbstractReflectorAtmosphereHandler {
|
||||
override def onRequest(event: AtmosphereResource[HttpServletRequest, HttpServletResponse]) : Unit = {
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_RESOURCE, event)
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_HANDLER, this)
|
||||
service(event.getRequest, event.getResponse)
|
||||
if(event ne null)
|
||||
{
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_RESOURCE, event)
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_HANDLER, this)
|
||||
service(event.getRequest, event.getResponse)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override def onStateChange(event : AtmosphereResourceEvent[HttpServletRequest, HttpServletResponse] ) {
|
||||
handler onStateChange event
|
||||
if(event ne null)
|
||||
handler onStateChange event
|
||||
}
|
||||
|
||||
override def onRequest(resource: AtmosphereResource[HttpServletRequest, HttpServletResponse]) {
|
||||
handler onRequest resource
|
||||
if(resource ne null)
|
||||
handler onRequest resource
|
||||
}
|
||||
}
|
||||
config = new AtmosphereConfig { ah = servlet }
|
||||
|
||||
atmosphereHandlers.put("/*", new AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
|
||||
setCometSupport(new GrizzlyCometSupport(config))
|
||||
getCometSupport.init(sconf)
|
||||
servlet.init(sconf)
|
||||
}
|
||||
|
||||
override def loadAtmosphereDotXml(is: InputStream, urlc: URLClassLoader) = () //Hide it
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue