renamed ..comet.AkkaCometServlet to ..comet.AkkaServlet
This commit is contained in:
parent
600565773d
commit
ed233e4318
6 changed files with 69 additions and 65 deletions
|
|
@ -25,6 +25,11 @@
|
||||||
<groupId>${project.groupId}</groupId>
|
<groupId>${project.groupId}</groupId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!--dependency>
|
||||||
|
<groupId>com.rabbitmq</groupId>
|
||||||
|
<artifactId>amqp-client</artifactId>
|
||||||
|
<version>1.7.0</version>
|
||||||
|
</dependency-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.rabbitmq</groupId>
|
<groupId>com.rabbitmq</groupId>
|
||||||
<artifactId>rabbitmq-client</artifactId>
|
<artifactId>rabbitmq-client</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -4,27 +4,26 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.comet
|
package se.scalablesolutions.akka.comet
|
||||||
|
|
||||||
import se.scalablesolutions.akka.rest.AkkaServlet
|
|
||||||
import se.scalablesolutions.akka.util.Logging
|
import se.scalablesolutions.akka.util.Logging
|
||||||
|
import se.scalablesolutions.akka.rest.{AkkaServlet => RestServlet}
|
||||||
|
|
||||||
import java.util.{List => JList}
|
import java.util.{List => JList}
|
||||||
|
import javax.servlet.ServletConfig
|
||||||
import javax.servlet.{ServletConfig}
|
|
||||||
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
|
import javax.servlet.http.{HttpServletRequest, HttpServletResponse}
|
||||||
import org.atmosphere.container.{GrizzlyCometSupport}
|
|
||||||
|
import org.atmosphere.container.GrizzlyCometSupport
|
||||||
import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport,CometSupportResolver,DefaultCometSupportResolver}
|
import org.atmosphere.cpr.{AtmosphereServlet, AtmosphereServletProcessor, AtmosphereResource, AtmosphereResourceEvent,CometSupport,CometSupportResolver,DefaultCometSupportResolver}
|
||||||
import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler}
|
import org.atmosphere.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler}
|
||||||
import org.atmosphere.jersey.JerseyBroadcaster
|
import org.atmosphere.jersey.JerseyBroadcaster
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Akka's Comet servlet to be used when deploying actors exposed as Comet (and REST) services in a
|
* Akka's Comet servlet to be used when deploying actors exposed as Comet (and REST) services in a
|
||||||
* standard servlet container, e.g. not using the Akka Kernel.
|
* standard servlet container, e.g. not using the Akka Kernel.
|
||||||
* <p/>
|
* <p/>
|
||||||
* Used by the Akka Kernel to bootstrap REST and Comet.
|
* Used by the Akka Kernel to bootstrap REST and Comet.
|
||||||
*/
|
*/
|
||||||
class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging {
|
class AkkaServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging {
|
||||||
val servlet = new AkkaServlet with AtmosphereServletProcessor {
|
val servlet = new RestServlet with AtmosphereServletProcessor {
|
||||||
|
|
||||||
//Delegate to implement the behavior for AtmosphereHandler
|
//Delegate to implement the behavior for AtmosphereHandler
|
||||||
private val handler = new AbstractReflectorAtmosphereHandler {
|
private val handler = new AbstractReflectorAtmosphereHandler {
|
||||||
|
|
@ -74,10 +73,8 @@ class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging
|
||||||
|
|
||||||
override def resolve(useNativeIfPossible : Boolean, useBlockingAsDefault : Boolean) : CS = {
|
override def resolve(useNativeIfPossible : Boolean, useBlockingAsDefault : Boolean) : CS = {
|
||||||
val predef = config.getInitParameter("cometSupport")
|
val predef = config.getInitParameter("cometSupport")
|
||||||
if(testClassExists(predef))
|
if (testClassExists(predef)) newCometSupport(predef)
|
||||||
newCometSupport(predef)
|
else super.resolve(useNativeIfPossible, useBlockingAsDefault)
|
||||||
else
|
|
||||||
super.resolve(useNativeIfPossible, useBlockingAsDefault)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -39,7 +39,7 @@ trait BootableCometActorService extends Bootable with Logging {
|
||||||
|
|
||||||
val adapter = new ServletAdapter
|
val adapter = new ServletAdapter
|
||||||
adapter.setHandleStaticResources(true)
|
adapter.setHandleStaticResources(true)
|
||||||
adapter.setServletInstance(new AkkaCometServlet)
|
adapter.setServletInstance(new AkkaServlet)
|
||||||
adapter.setContextPath(uri.getPath)
|
adapter.setContextPath(uri.getPath)
|
||||||
//Using autodetection for now
|
//Using autodetection for now
|
||||||
//adapter.addInitParameter("cometSupport", "org.atmosphere.container.GrizzlyCometSupport")
|
//adapter.addInitParameter("cometSupport", "org.atmosphere.container.GrizzlyCometSupport")
|
||||||
|
|
|
||||||
|
|
@ -31,17 +31,17 @@ class RemoteActorSpecActorBidirectional extends Actor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case class Send(actor:Actor)
|
case class Send(actor: Actor)
|
||||||
|
|
||||||
class RemoteActorSpecActorAsyncSender extends Actor {
|
class RemoteActorSpecActorAsyncSender extends Actor {
|
||||||
def receive = {
|
def receive = {
|
||||||
case Send(actor:Actor) =>
|
case Send(actor: Actor) =>
|
||||||
actor ! "Hello"
|
actor ! "Hello"
|
||||||
case "World" =>
|
case "World" =>
|
||||||
Global.remoteReply = "replied"
|
Global.remoteReply = "replied"
|
||||||
}
|
}
|
||||||
|
|
||||||
def send(actor:Actor) {
|
def send(actor: Actor) {
|
||||||
this ! Send(actor)
|
this ! Send(actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -54,8 +54,8 @@ class RemoteActorTest extends JUnitSuite {
|
||||||
val HOSTNAME = "localhost"
|
val HOSTNAME = "localhost"
|
||||||
val PORT1 = 9990
|
val PORT1 = 9990
|
||||||
val PORT2 = 9991
|
val PORT2 = 9991
|
||||||
var s1:RemoteServer = null
|
var s1: RemoteServer = null
|
||||||
var s2:RemoteServer = null
|
var s2: RemoteServer = null
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
def init() {
|
def init() {
|
||||||
|
|
@ -85,7 +85,7 @@ class RemoteActorTest extends JUnitSuite {
|
||||||
actor.makeRemote(HOSTNAME, PORT1)
|
actor.makeRemote(HOSTNAME, PORT1)
|
||||||
actor.start
|
actor.start
|
||||||
val result = actor ! "OneWay"
|
val result = actor ! "OneWay"
|
||||||
Thread.sleep(100)
|
Thread.sleep(1000)
|
||||||
assert("received" === Global.oneWay)
|
assert("received" === Global.oneWay)
|
||||||
actor.stop
|
actor.stop
|
||||||
}
|
}
|
||||||
|
|
@ -111,12 +111,12 @@ class RemoteActorTest extends JUnitSuite {
|
||||||
sender.setContactAddress(HOSTNAME, PORT1)
|
sender.setContactAddress(HOSTNAME, PORT1)
|
||||||
sender.start
|
sender.start
|
||||||
sender.send(actor)
|
sender.send(actor)
|
||||||
Thread.sleep(500)
|
Thread.sleep(1000)
|
||||||
assert("replied" === Global.remoteReply)
|
assert("replied" === Global.remoteReply)
|
||||||
actor.stop
|
actor.stop
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This test does not throw an exception since the
|
This test does not throw an exception since the
|
||||||
_contactAddress is always defined via the
|
_contactAddress is always defined via the
|
||||||
global configuration if not set explicitly.
|
global configuration if not set explicitly.
|
||||||
|
|
@ -135,7 +135,7 @@ class RemoteActorTest extends JUnitSuite {
|
||||||
assert("exception" === Global.remoteReply)
|
assert("exception" === Global.remoteReply)
|
||||||
actor.stop
|
actor.stop
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
def shouldSendReceiveException = {
|
def shouldSendReceiveException = {
|
||||||
implicit val timeout = 500000000L
|
implicit val timeout = 500000000L
|
||||||
|
|
|
||||||
|
|
@ -76,9 +76,9 @@ public class InMemNestedStateTest extends TestCase {
|
||||||
nested.setVectorState("init"); // set init state
|
nested.setVectorState("init"); // set init state
|
||||||
Thread.sleep(100);
|
Thread.sleep(100);
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state", nested); // transactionrequired
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state", nested); // transactionrequired
|
||||||
Thread.sleep(1000);
|
Thread.sleep(100);
|
||||||
assertEquals("new state", stateful.getVectorState());
|
assertEquals("new state", stateful.getVectorState());
|
||||||
Thread.sleep(1000);
|
Thread.sleep(100);
|
||||||
assertEquals("new state", nested.getVectorState());
|
assertEquals("new state", nested.getVectorState());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,11 +5,11 @@
|
||||||
package se.scalablesolutions.akka
|
package se.scalablesolutions.akka
|
||||||
|
|
||||||
import se.scalablesolutions.akka.comet.BootableCometActorService
|
import se.scalablesolutions.akka.comet.BootableCometActorService
|
||||||
import se.scalablesolutions.akka.remote.{RemoteNode,BootableRemoteActorService}
|
import se.scalablesolutions.akka.remote.BootableRemoteActorService
|
||||||
|
import se.scalablesolutions.akka.actor.BootableActorLoaderService
|
||||||
import se.scalablesolutions.akka.util.Logging
|
import se.scalablesolutions.akka.util.Logging
|
||||||
import se.scalablesolutions.akka.actor.{ActorRegistry,BootableActorLoaderService}
|
|
||||||
|
|
||||||
import javax.servlet.{ServletContextListener,ServletContextEvent}
|
import javax.servlet.{ServletContextListener, ServletContextEvent}
|
||||||
|
|
||||||
object Main {
|
object Main {
|
||||||
def main(args: Array[String]) = Kernel.boot
|
def main(args: Array[String]) = Kernel.boot
|
||||||
|
|
@ -26,7 +26,9 @@ object Kernel extends Logging {
|
||||||
|
|
||||||
private val startTime = System.currentTimeMillis
|
private val startTime = System.currentTimeMillis
|
||||||
|
|
||||||
//Bundles is what modules are to be loaded with the Kernel, this uses Jonas' AOP style mixin pattern
|
/**
|
||||||
|
* Bundles is what modules are to be loaded with the Kernel, this uses Jonas' AOP style mixin pattern.
|
||||||
|
*/
|
||||||
object Bundles extends BootableActorLoaderService with BootableRemoteActorService with BootableCometActorService
|
object Bundles extends BootableActorLoaderService with BootableRemoteActorService with BootableCometActorService
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue