renamed ..comet.AkkaCometServlet to ..comet.AkkaServlet

This commit is contained in:
Jonas Bonér 2009-12-26 17:19:35 +01:00
parent 600565773d
commit ed233e4318
6 changed files with 69 additions and 65 deletions

View file

@ -25,6 +25,11 @@
<groupId>${project.groupId}</groupId>
<version>${project.version}</version>
</dependency>
<!--dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>1.7.0</version>
</dependency-->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>rabbitmq-client</artifactId>

View file

@ -4,27 +4,26 @@
package se.scalablesolutions.akka.comet
import se.scalablesolutions.akka.rest.AkkaServlet
import se.scalablesolutions.akka.util.Logging
import se.scalablesolutions.akka.rest.{AkkaServlet => RestServlet}
import java.util.{List => JList}
import javax.servlet.{ServletConfig}
import javax.servlet.ServletConfig
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.handler.{ReflectorServletProcessor, AbstractReflectorAtmosphereHandler}
import org.atmosphere.jersey.JerseyBroadcaster
/**
* 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.
* <p/>
* Used by the Akka Kernel to bootstrap REST and Comet.
*/
class AkkaCometServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging {
val servlet = new AkkaServlet with AtmosphereServletProcessor {
class AkkaServlet extends org.atmosphere.cpr.AtmosphereServlet with Logging {
val servlet = new RestServlet with AtmosphereServletProcessor {
//Delegate to implement the behavior for AtmosphereHandler
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 = {
val predef = config.getInitParameter("cometSupport")
if(testClassExists(predef))
newCometSupport(predef)
else
super.resolve(useNativeIfPossible, useBlockingAsDefault)
if (testClassExists(predef)) newCometSupport(predef)
else super.resolve(useNativeIfPossible, useBlockingAsDefault)
}
}
}

View file

@ -39,7 +39,7 @@ trait BootableCometActorService extends Bootable with Logging {
val adapter = new ServletAdapter
adapter.setHandleStaticResources(true)
adapter.setServletInstance(new AkkaCometServlet)
adapter.setServletInstance(new AkkaServlet)
adapter.setContextPath(uri.getPath)
//Using autodetection for now
//adapter.addInitParameter("cometSupport", "org.atmosphere.container.GrizzlyCometSupport")

View file

@ -31,17 +31,17 @@ class RemoteActorSpecActorBidirectional extends Actor {
}
}
case class Send(actor:Actor)
case class Send(actor: Actor)
class RemoteActorSpecActorAsyncSender extends Actor {
def receive = {
case Send(actor:Actor) =>
case Send(actor: Actor) =>
actor ! "Hello"
case "World" =>
Global.remoteReply = "replied"
}
def send(actor:Actor) {
def send(actor: Actor) {
this ! Send(actor)
}
}
@ -54,8 +54,8 @@ class RemoteActorTest extends JUnitSuite {
val HOSTNAME = "localhost"
val PORT1 = 9990
val PORT2 = 9991
var s1:RemoteServer = null
var s2:RemoteServer = null
var s1: RemoteServer = null
var s2: RemoteServer = null
@Before
def init() {
@ -85,7 +85,7 @@ class RemoteActorTest extends JUnitSuite {
actor.makeRemote(HOSTNAME, PORT1)
actor.start
val result = actor ! "OneWay"
Thread.sleep(100)
Thread.sleep(1000)
assert("received" === Global.oneWay)
actor.stop
}
@ -111,12 +111,12 @@ class RemoteActorTest extends JUnitSuite {
sender.setContactAddress(HOSTNAME, PORT1)
sender.start
sender.send(actor)
Thread.sleep(500)
Thread.sleep(1000)
assert("replied" === Global.remoteReply)
actor.stop
}
/*
/*
This test does not throw an exception since the
_contactAddress is always defined via the
global configuration if not set explicitly.
@ -135,7 +135,7 @@ class RemoteActorTest extends JUnitSuite {
assert("exception" === Global.remoteReply)
actor.stop
}
*/
*/
@Test
def shouldSendReceiveException = {
implicit val timeout = 500000000L

View file

@ -76,9 +76,9 @@ public class InMemNestedStateTest extends TestCase {
nested.setVectorState("init"); // set init state
Thread.sleep(100);
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state", nested); // transactionrequired
Thread.sleep(1000);
Thread.sleep(100);
assertEquals("new state", stateful.getVectorState());
Thread.sleep(1000);
Thread.sleep(100);
assertEquals("new state", nested.getVectorState());
}

View file

@ -5,11 +5,11 @@
package se.scalablesolutions.akka
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.actor.{ActorRegistry,BootableActorLoaderService}
import javax.servlet.{ServletContextListener,ServletContextEvent}
import javax.servlet.{ServletContextListener, ServletContextEvent}
object Main {
def main(args: Array[String]) = Kernel.boot
@ -26,7 +26,9 @@ object Kernel extends Logging {
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
/**