@Override
 public void stopAsync() {
   if (lifecycle.tryToMoveTo(Lifecycle.State.STOPPING)) {
     stopperThread =
         new StopperThread(
             monitored,
             commands,
             Long.parseLong(props.nonNullValue(PROPERTY_TERMINATION_TIMEOUT)));
     stopperThread.start();
     stopWatcher.stopWatching();
   }
 }