import akka.actor.ActorSystem;
import akka.actor.PoisonPill;
import akka.actor.Props;
+import akka.testkit.JavaTestKit;
import akka.testkit.TestActorRef;
import java.util.LinkedList;
import java.util.List;
return prefix + actorCount++;
}
+ public void killActor(ActorRef actor, JavaTestKit kit) {
+ killActor(actor, kit, true);
+ }
+
+ private void killActor(ActorRef actor, JavaTestKit kit, boolean remove) {
+ LOG.info("Killing actor {}", actor);
+ kit.watch(actor);
+ actor.tell(PoisonPill.getInstance(), ActorRef.noSender());
+ kit.expectTerminated(JavaTestKit.duration("5 seconds"), actor);
+
+ if(remove) {
+ createdActors.remove(actor);
+ }
+ }
+
@Override
- public void close() throws Exception {
- for(ActorRef actor : createdActors){
- LOG.info("Killing actor {}", actor);
- actor.tell(PoisonPill.getInstance(), null);
+ public void close() {
+ JavaTestKit kit = new JavaTestKit(system);
+ for(ActorRef actor : createdActors) {
+ killActor(actor, kit, false);
}
}
}
\ No newline at end of file