docs: @Override
    public boolean launch(PackingPlan packing) {
      LOG.log(Level.FINE, "Launching topology for local cluster {0}",
          LocalContext.cluster(config));
  
      // setup the working directory
      // mainly it downloads and extracts the heron-core-release and topology package
      if (!setupWorkingDirectoryAndExtractPackages()) {
        LOG.severe("Failed to setup working directory");
        return false;
      }
  
      String[] schedulerCmd = getSchedulerCommand();
  
      Process p = startScheduler(schedulerCmd);
  
      if (p == null) {
        LOG.severe("Failed to start SchedulerMain using: " + Arrays.toString(schedulerCmd));
        return false;
      }
  
      LOG.log(Level.FINE, String.format(
          "To check the status and logs of the topology, use the working directory %s",
          LocalContext.workingDirectory(config)));
  
      return true;
    }