minor reformattings
This commit is contained in:
parent
873d5b6988
commit
e200d7efdf
9 changed files with 166 additions and 146 deletions
|
|
@ -14,7 +14,7 @@ import java.net.URLClassLoader
|
|||
|
||||
import net.lag.configgy.{Config, Configgy, RuntimeEnvironment}
|
||||
|
||||
import kernel.jersey.{AkkaServlet,AkkaCometServlet}
|
||||
import kernel.jersey.AkkaCometServlet
|
||||
import kernel.nio.RemoteServer
|
||||
import kernel.state.CassandraStorage
|
||||
import kernel.util.Logging
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import javax.servlet.{ServletConfig}
|
|||
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
|
||||
|
||||
import org.atmosphere.cpr.{AtmosphereServletProcessor, AtmosphereEvent}
|
||||
import org.atmosphere.cpr.AtmosphereServlet.AtmosphereHandlerWrapper
|
||||
import org.atmosphere.container.GrizzlyCometSupport
|
||||
import org.atmosphere.handler.ReflectorServletProcessor
|
||||
import org.atmosphere.core.{JerseyBroadcaster}
|
||||
|
|
@ -29,29 +30,27 @@ import scala.collection.jcl.Conversions._
|
|||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||
*/
|
||||
class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with Logging {
|
||||
override def initiate(rc: ResourceConfig, wa: WebApplication) = {
|
||||
|
||||
override def initiate(rc: ResourceConfig, wa: WebApplication) = {
|
||||
Kernel.boot // will boot if not already booted by 'main'
|
||||
val configurators = ConfiguratorRepository.getConfiguratorsFor(getServletContext)
|
||||
|
||||
rc.getClasses.addAll(configurators.flatMap(_.getComponentInterfaces))
|
||||
log.info("Starting AkkaServlet with ResourceFilters: " + rc.getProperty("com.sun.jersey.spi.container.ResourceFilters"));
|
||||
rc.getProperties.put("com.sun.jersey.spi.container.ResourceFilters","org.atmosphere.core.AtmosphereFilter")
|
||||
rc.getProperties.put("com.sun.jersey.spi.container.ResourceFilters", "org.atmosphere.core.AtmosphereFilter")
|
||||
//rc.getFeatures.put("com.sun.jersey.config.feature.Redirect", true)
|
||||
//rc.getFeatures.put("com.sun.jersey.config.feature.ImplicitViewables",true)
|
||||
|
||||
wa.initiate(rc, new ActorComponentProviderFactory(configurators))
|
||||
}
|
||||
|
||||
//Borrowed from AbstractReflectorAtmosphereHandler
|
||||
// Borrowed from AbstractReflectorAtmosphereHandler
|
||||
override def onMessage(event: AtmosphereEvent[HttpServletRequest, HttpServletResponse]): AtmosphereEvent[_, _] = {
|
||||
if (event.getMessage ne null) {
|
||||
var isUsingStream = false
|
||||
try {
|
||||
val isUsingStream = try {
|
||||
event.getResponse.getWriter
|
||||
} catch {
|
||||
case e: IllegalStateException => isUsingStream = true
|
||||
}
|
||||
false
|
||||
} catch {case e: IllegalStateException => true}
|
||||
|
||||
val data = event.getMessage.toString
|
||||
if (isUsingStream) {
|
||||
|
|
@ -61,49 +60,25 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with
|
|||
event.getResponse.getWriter.write(data)
|
||||
event.getResponse.getWriter.flush
|
||||
}
|
||||
} else log.info("Null event message :/ req[ " + event.getRequest + "] res[" + event.getResponse + "]")
|
||||
} else log.info("Null event message :/ req[%s] res[%s]", event.getRequest, event.getResponse)
|
||||
event
|
||||
}
|
||||
|
||||
//Borrowed from AbstractReflectorAtmosphereHandler
|
||||
override def onMessage(event: AtmosphereEvent[HttpServletRequest,HttpServletResponse]): AtmosphereEvent[_,_] = {
|
||||
var isUsingStream = false
|
||||
try {
|
||||
event.getResponse.getWriter
|
||||
} catch {
|
||||
case e: IllegalStateException => isUsingStream = true
|
||||
}
|
||||
|
||||
val data = if (event.getMessage ne null) event.getMessage.toString else null
|
||||
|
||||
if (isUsingStream){
|
||||
if (data != null) event.getResponse.getOutputStream.write(data.getBytes)
|
||||
event.getResponse.getOutputStream.flush
|
||||
} else {
|
||||
event.getResponse.getWriter.write(data)
|
||||
event.getResponse.getWriter.flush
|
||||
}
|
||||
event
|
||||
}
|
||||
|
||||
override def onEvent(event: AtmosphereEvent[HttpServletRequest,HttpServletResponse]): AtmosphereEvent[_,_] = {
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_EVENT, event)
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_HANDLER, this)
|
||||
service(event.getRequest, event.getResponse)
|
||||
event
|
||||
}
|
||||
override def onEvent(event: AtmosphereEvent[HttpServletRequest, HttpServletResponse]): AtmosphereEvent[_, _] = {
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_EVENT, event)
|
||||
event.getRequest.setAttribute(ReflectorServletProcessor.ATMOSPHERE_HANDLER, this)
|
||||
service(event.getRequest, event.getResponse)
|
||||
event
|
||||
}
|
||||
}
|
||||
|
||||
class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet {
|
||||
override def init(sconf: ServletConfig) = {
|
||||
val servlet = new AkkaServlet
|
||||
this.config = new AtmosphereConfig {ah = servlet}
|
||||
|
||||
config = new AtmosphereConfig { ah = servlet }
|
||||
atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
|
||||
|
||||
setCometSupport(new GrizzlyCometSupport(config))
|
||||
getCometSupport.init(sconf)
|
||||
|
||||
servlet.init(sconf)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue