code: public static void main(String[] args) {
  
          // ArrayList<String> tmpArgs = new ArrayList<String>(Arrays.asList(args));
  
          // args = tmpArgs.toArray(new String[0]);
  
          FlagOption suppressStatusOutOpt = new FlagOption("suppressStatusOut", 'S', SUPPRESS_STATUS_OUT_MSG);
  
          FlagOption suppressResultOutOpt = new FlagOption("suppressResultOut", 'R', SUPPRESS_RESULT_OUT_MSG);
  
          IntOption statusUpdateFreqOpt = new IntOption("statusUpdateFrequency", 'F', STATUS_UPDATE_FREQ_MSG, 1000, 0, Integer.MAX_VALUE);
  
          Option[] extraOptions = new Option[] { suppressStatusOutOpt, suppressResultOutOpt, statusUpdateFreqOpt };
  
          StringBuilder cliString = new StringBuilder();
          for (String arg : args) {
              cliString.append(" ").append(arg);
          }
          logger.debug("Command line string = {}", cliString.toString());
          System.out.println("Command line string = " + cliString.toString());
  
          Task task;
          try {
              task = ClassOption.cliStringToObject(cliString.toString(), Task.class, extraOptions);
              logger.info("Successfully instantiating {}", task.getClass().getCanonicalName());
          } catch (Exception e) {
              logger.error("Fail to initialize the task", e);
              System.out.println("Fail to initialize the task" + e);
              return;
          }
          task.setFactory(new SimpleComponentFactory());
          task.init();
          SimpleEngine.submitTopology(task.getTopology());
      }
docs: The main method.
  
  @param args
  the arguments