Life-cycle hooks are also exposed as DSL elements, where later invocations of the methods shown below will replace the contents of the respective hooks:
val a = actor(new Act {
whenStarting { testActor ! "started" }
whenStopping { testActor ! "stopped" }
})
The above is enough if the logical life-cycle of the actor matches the restart cycles (i.e. whenStopping is executed before a restart and whenStarting afterwards). If that is not desired, use the following two hooks:
val a = actor(new Act {
become {
case "die" ⇒ throw new Exception
}
whenFailing { case m @ (cause, msg) ⇒ testActor ! m }
whenRestarted { cause ⇒ testActor ! cause }
})