code: private static void doTaskHooksTranslation(Config heronConfig) {
      List<String> hooks = heronConfig.getAutoTaskHooks();
      if (hooks != null && !hooks.isEmpty()) {
        heronConfig.put(backtype.storm.Config.STORMCOMPAT_TOPOLOGY_AUTO_TASK_HOOKS, hooks);
        List<String> translationHooks = new LinkedList<>();
        translationHooks.add(ITaskHookDelegate.class.getName());
        heronConfig.setAutoTaskHooks(translationHooks);
      }
    }
docs: /* We need to play a little dance here.
  task hooks are a list of class names that need to be invoked at various times during a topology run.
  However because Heron operates in org.apache world and Strom in backtype.storm world, we
  pass a ITaskHookDelegate to Heron and remember the actual task hooks in an internal
  variable STORMCOMPAT_TOPOLOGY_AUTO_TASK_HOOKS