+public abstract class AbstractUntypedActor extends AbstractActor implements ExecuteInSelfActor {
+ // The member name should be lower case but it's referenced in many subclasses. Suppressing the CS warning for now.
+ @SuppressFBWarnings("SLF4J_LOGGER_SHOULD_BE_PRIVATE")
+ @SuppressWarnings("checkstyle:MemberName")
+ protected final Logger LOG = LoggerFactory.getLogger(getClass());
+
+ protected AbstractUntypedActor() {
+ LOG.debug("Actor created {}", getSelf());
+ getContext().system().actorSelection("user/termination-monitor").tell(new Monitor(getSelf()), getSelf());
+ }
+
+ @Override
+ public final void executeInSelf(@NonNull final Runnable runnable) {
+ final ExecuteInSelfMessage message = new ExecuteInSelfMessage(runnable);
+ self().tell(message, ActorRef.noSender());