Added the ActorModel specification to HawtDispatcher and EBEDWSD

This commit is contained in:
Viktor Klang 2010-10-25 13:52:27 +02:00
parent af1f4e92e6
commit dc958f6942
2 changed files with 13 additions and 5 deletions

View file

@ -230,13 +230,13 @@ class ExecutorBasedEventDrivenWorkStealingDispatcher(
case JMSBasedDurableMailbox(serializer) => throw new UnsupportedOperationException("JMSBasedDurableMailbox is not yet supported for ExecutorBasedEventDrivenWorkStealingDispatcher")
}
override def register(actorRef: ActorRef) = {
private[akka] override def register(actorRef: ActorRef) = {
verifyActorsAreOfSameType(actorRef)
pooledActors add actorRef
super.register(actorRef)
}
override def unregister(actorRef: ActorRef) = {
private[akka] override def unregister(actorRef: ActorRef) = {
pooledActors remove actorRef
super.unregister(actorRef)
}

View file

@ -165,7 +165,7 @@ object ActorModelSpec {
def newTestActor(implicit d: MessageDispatcherInterceptor) = actorOf(new DispatcherActor(d))
}
abstract class ActorModelSpec(val supportsMoreThanOneActor: Boolean) extends JUnitSuite {
abstract class ActorModelSpec extends JUnitSuite {
import ActorModelSpec._
protected def newInterceptedDispatcher: MessageDispatcherInterceptor
@ -216,7 +216,7 @@ abstract class ActorModelSpec(val supportsMoreThanOneActor: Boolean) extends JUn
assertRefDefaultZero(a)(registers = 1, unregisters = 1, msgsReceived = 3, msgsProcessed = 3)
}
@Test def dispatcherShouldProcessMessagesInParallel: Unit = if (supportsMoreThanOneActor) {
@Test def dispatcherShouldProcessMessagesInParallel: Unit = {
implicit val dispatcher = newInterceptedDispatcher
val a, b = newTestActor.start
val aStart,aStop,bParallel = new CountDownLatch(1)
@ -266,7 +266,15 @@ abstract class ActorModelSpec(val supportsMoreThanOneActor: Boolean) extends JUn
}
}
class ExecutorBasedEventDrivenDispatcherModelTest extends ActorModelSpec(supportsMoreThanOneActor = true) {
class ExecutorBasedEventDrivenDispatcherModelTest extends ActorModelSpec {
def newInterceptedDispatcher =
new ExecutorBasedEventDrivenDispatcher("foo") with MessageDispatcherInterceptor
}
class HawtDispatcherModelTest extends ActorModelSpec {
def newInterceptedDispatcher = new HawtDispatcher(false) with MessageDispatcherInterceptor
}
class ExecutorBasedEventDrivenWorkStealingDispatcherModelTest extends ActorModelSpec {
def newInterceptedDispatcher = new ExecutorBasedEventDrivenWorkStealingDispatcher("foo") with MessageDispatcherInterceptor
}