Merge branch 'master' of git@github.com:jboner/akka into dev

This commit is contained in:
jboner 2009-11-16 16:20:55 +01:00
commit fe51842b70
4 changed files with 22 additions and 28 deletions

View file

@ -229,21 +229,16 @@
<artifactId>jersey-scala</artifactId>
<version>1.1.3-ea</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId>
<version>0.4.1</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-core</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-portable-runtime</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-compat</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>

View file

@ -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 <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
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 {
* <p/>
* 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
}
}
}

View file

@ -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 + "] ")

View file

@ -59,20 +59,5 @@
<artifactId>jersey-scala</artifactId>
<version>1.1.3-ea</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-core</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-portable-runtime</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-compat</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency>
</dependencies>
</project>