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

This commit is contained in:
jboner 2009-09-23 09:03:44 +02:00
commit 99ba8ac00a
9 changed files with 95 additions and 43 deletions

View file

@ -204,20 +204,25 @@
<artifactId>grizzly-comet-webserver</artifactId>
<version>1.8.6.3</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.1.2-ea</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.1.1-ea</version>
<version>1.1.2-ea</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.1.1-ea</version>
<version>1.1.2-ea</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.0</version>
<version>1.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
@ -227,23 +232,23 @@
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-core</artifactId>
<version>0.3</version>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-portable-runtime</artifactId>
<version>0.3</version>
<version>0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.atmosphere</groupId>
<artifactId>atmosphere-compat</artifactId>
<version>0.3</version>
<version>0.4-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<!--<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-2</version>
<executions>
@ -267,7 +272,34 @@
</configuration>
</execution>
</executions>
</plugin>
</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>junit:junit</exclude>
</excludes>
</artifactSet>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ComponentsXmlResourceTransformer" />
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>se.scalablesolutions.akka.Kernel</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
@ -275,7 +307,9 @@
<phase>install</phase>
<configuration>
<tasks>
<copy file="target/akka-kernel-${akka.version}-jar-with-dependencies.jar"
<!--<copy file="target/akka-kernel-${akka.version}-jar-with-dependencies.jar"
tofile="../dist/akka-${akka.version}.jar"/>-->
<copy file="target/akka-kernel-${akka.version}.jar"
tofile="../dist/akka-${akka.version}.jar"/>
</tasks>
</configuration>

View file

@ -42,21 +42,27 @@ class AkkaServlet extends ServletContainer with AtmosphereServletProcessor with
// Borrowed from AbstractReflectorAtmosphereHandler
override def onMessage(event: AtmosphereEvent[HttpServletRequest, HttpServletResponse]): AtmosphereEvent[_, _] = {
if (event.getMessage ne null) {
val isUsingStream = try {
event.getResponse.getWriter
false
} catch { case e: IllegalStateException => true }
val data = event.getMessage.toString
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
}
} else log.info("Null event message: req[%s] res[%s]", event.getRequest, event.getResponse)
val response = event.getResponse
val data = if(event.getMessage ne null ) event.getMessage.toString else null
val isUsingStream = try {
response.getWriter
false
} catch { case e: IllegalStateException => true }
if (isUsingStream)
{
if (data != null)
response.getOutputStream.write(data.getBytes)
response.getOutputStream.flush
}
else
{
if (data != null)
response.getWriter.write(data)
response.getWriter.flush
}
event
}
@ -72,7 +78,7 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet {
override def init(sconf: ServletConfig) = {
val servlet = new AkkaServlet
config = new AtmosphereConfig { ah = servlet }
atmosphereHandlers.put("", new AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
atmosphereHandlers.put("/*", new AtmosphereHandlerWrapper(servlet, new JerseyBroadcaster))
setCometSupport(new GrizzlyCometSupport(config))
getCometSupport.init(sconf)
servlet.init(sconf)