diff --git a/akka-actors/src/main/scala/actor/Actor.scala b/akka-actors/src/main/scala/actor/Actor.scala index af185ba6fc..c5d13b73f8 100644 --- a/akka-actors/src/main/scala/actor/Actor.scala +++ b/akka-actors/src/main/scala/actor/Actor.scala @@ -19,17 +19,19 @@ import se.scalablesolutions.akka.serialization.Serializer import se.scalablesolutions.akka.util.Helpers.ReadWriteLock import se.scalablesolutions.akka.util.Logging -import org.codehaus.aspectwerkz.joinpoint.{MethodRtti, JoinPoint} import org.codehaus.aspectwerkz.proxy.Uuid import org.multiverse.utils.ThreadLocalTransaction._ -sealed abstract class LifecycleMessage +@serializable sealed abstract class LifecycleMessage case class Init(config: AnyRef) extends LifecycleMessage -//case object TransactionalInit extends LifecycleMessage case class HotSwap(code: Option[PartialFunction[Any, Unit]]) extends LifecycleMessage case class Restart(reason: AnyRef) extends LifecycleMessage case class Exit(dead: Actor, killer: Throwable) extends LifecycleMessage +case class Kill(killer: Actor) extends LifecycleMessage +//case object TransactionalInit extends LifecycleMessage + +class ActorKilledException(val killed: Actor, val killer: Actor) extends RuntimeException("Actor [" + killed + "] killed by [" + killer + "]") sealed abstract class DispatcherType object DispatcherType { @@ -610,6 +612,7 @@ trait Actor extends Logging with TransactionManagement { case HotSwap(code) => _hotswap = code case Restart(reason) => restart(reason) case Exit(dead, reason) => handleTrapExit(dead, reason) + case Kill(killer) => throw new ActorKilledException(this, killer) // case TransactionalInit => initTransactionalState } @@ -698,5 +701,5 @@ trait Actor extends Logging with TransactionManagement { } else message } else message - override def toString(): String = "Actor[" + uuid + ":" + id + "]" + override def toString(): String = "Actor[" + id+ ":" + uuid + "]" } diff --git a/akka-actors/src/main/scala/actor/ActorRegistry.scala b/akka-actors/src/main/scala/actor/ActorRegistry.scala index 9e87562d4a..fc40a9003a 100755 --- a/akka-actors/src/main/scala/actor/ActorRegistry.scala +++ b/akka-actors/src/main/scala/actor/ActorRegistry.scala @@ -13,7 +13,7 @@ import scala.collection.mutable.HashMap * * @author Jonas Bonér */ -object ActorRegistry extends Logging { +object ActorRegistry { private val actorsByClassName = new HashMap[String, List[Actor]] private val actorsById = new HashMap[String, List[Actor]] diff --git a/akka.iws b/akka.iws index 609101c2e2..35bc892876 100644 --- a/akka.iws +++ b/akka.iws @@ -7,8 +7,6 @@ - - @@ -106,10 +104,10 @@ - + - + @@ -133,15 +131,6 @@ - - - - - - - - - @@ -228,32 +217,6 @@ - - - - - - - - - - - - - - - - @@ -664,26 +627,52 @@ + + + + + + + + + + + + + + + + + - - + - + - - + + @@ -695,13 +684,13 @@ - + - + @@ -857,14 +846,6 @@