Added jersey.version and atmosphere.version and fixed jersey broadcaster bug

This commit is contained in:
Viktor Klang 2009-12-02 22:42:05 +01:00
parent 04f9afab31
commit 1afe9e80a8
6 changed files with 54 additions and 22 deletions

View file

@ -34,25 +34,25 @@
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId> <artifactId>jersey-server</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId> <artifactId>jersey-json</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId> <artifactId>jersey-client</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-atom</artifactId> <artifactId>jersey-atom</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>

View file

@ -170,17 +170,17 @@
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId> <artifactId>jersey-core</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId> <artifactId>jersey-server</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId> <artifactId>jersey-json</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.ws.rs</groupId> <groupId>javax.ws.rs</groupId>
@ -190,17 +190,22 @@
<dependency> <dependency>
<groupId>com.sun.jersey.contribs</groupId> <groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-scala</artifactId> <artifactId>jersey-scala</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-annotations</artifactId>
<version>${atmosphere.version}</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-jersey</artifactId>
<version>${atmosphere.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.atmosphere</groupId> <groupId>org.atmosphere</groupId>
<artifactId>atmosphere-runtime</artifactId> <artifactId>atmosphere-runtime</artifactId>
<version>0.4.1</version> <version>${atmosphere.version}</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-core</artifactId>
<version>0.4-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>

View file

@ -17,7 +17,7 @@ import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport} import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport}
import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler} import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler}
import org.atmosphere.core.JerseyBroadcaster import org.atmosphere.jersey.JerseyBroadcaster
/** /**
* Akka's servlet to be used when deploying actors exposed as REST services in a standard servlet container, * Akka's servlet to be used when deploying actors exposed as REST services in a standard servlet container,
@ -72,6 +72,7 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging
} }
override def loadConfiguration(sc: ServletConfig) { override def loadConfiguration(sc: ServletConfig) {
config = new AtmosphereConfig { supportSession = false }
atmosphereHandlers.put("/*", new AtmosphereServlet.AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster)) atmosphereHandlers.put("/*", new AtmosphereServlet.AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
loadCometSupport(sc.getInitParameter("cometSupport")) map( setCometSupport(_) ) loadCometSupport(sc.getInitParameter("cometSupport")) map( setCometSupport(_) )

View file

@ -37,17 +37,17 @@
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId> <artifactId>jersey-core</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId> <artifactId>jersey-server</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.sun.jersey</groupId> <groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId> <artifactId>jersey-json</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.ws.rs</groupId> <groupId>javax.ws.rs</groupId>
@ -57,7 +57,7 @@
<dependency> <dependency>
<groupId>com.sun.jersey.contribs</groupId> <groupId>com.sun.jersey.contribs</groupId>
<artifactId>jersey-scala</artifactId> <artifactId>jersey-scala</artifactId>
<version>1.1.3-ea</version> <version>${jersey.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View file

@ -11,11 +11,12 @@ import se.scalablesolutions.akka.util.Logging
import java.lang.Integer import java.lang.Integer
import javax.ws.rs.core.MultivaluedMap import javax.ws.rs.core.MultivaluedMap
import javax.ws.rs.{GET, POST, Path, Produces, WebApplicationException, Consumes} import javax.ws.rs.{GET, POST, Path, Produces, WebApplicationException, Consumes,PathParam}
import org.atmosphere.core.annotation.{Broadcast, Suspend} import org.atmosphere.annotation.{Broadcast, Suspend}
import org.atmosphere.util.XSSHtmlFilter import org.atmosphere.util.XSSHtmlFilter
import org.atmosphere.cpr.BroadcastFilter import org.atmosphere.cpr.{BroadcastFilter,Broadcaster}
import org.atmosphere.jersey.Broadcastable
class Boot { class Boot {
val factory = SupervisorFactory( val factory = SupervisorFactory(
@ -29,6 +30,9 @@ class Boot {
LifeCycle(Permanent)) :: LifeCycle(Permanent)) ::
Supervise( Supervise(
new PersistentSimpleService, new PersistentSimpleService,
LifeCycle(Permanent)) ::
Supervise(
new PubSub,
LifeCycle(Permanent)) LifeCycle(Permanent))
:: Nil)) :: Nil))
factory.newInstance.start factory.newInstance.start
@ -67,6 +71,26 @@ class SimpleService extends Actor {
} }
} }
@Path("/pubsub/")
class PubSub extends Actor {
case class Msg(topic: String, message: String)
@GET
@Suspend
@Produces(Array("text/plain;charset=ISO-8859-1"))
@Path("/topic/{topic}/")
def subscribe(@PathParam("topic") topic: Broadcaster): Broadcastable = new Broadcastable("", topic)
@GET
@Broadcast
@Path("/topic/{topic}/{message}/")
@Produces(Array("text/plain;charset=ISO-8859-1"))
def say(@PathParam("topic") topic: Broadcaster, @PathParam("message") message: String): Broadcastable = new Broadcastable(message, topic)
override def receive = { case _ => }
}
/** /**
* Try service out by invoking (multiple times): * Try service out by invoking (multiple times):
* <pre> * <pre>

View file

@ -28,6 +28,8 @@
<maven.compiler.target>${maven.compiler.source}</maven.compiler.target> <maven.compiler.target>${maven.compiler.source}</maven.compiler.target>
<maven.compiler.encoding>${project.build.sourceEncoding}</maven.compiler.encoding> <maven.compiler.encoding>${project.build.sourceEncoding}</maven.compiler.encoding>
<project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding> <project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
<atmosphere.version>0.4.1</atmosphere.version>
<jersey.version>1.1.4</jersey.version>
</properties> </properties>
<modules> <modules>