public void createWorkFlow() {
    for (BasicGeneratorGetter getter : generatorGetterGroup.values()) {
      log.info("Start the generator : " + getter.getName());
      getter.generator.start();
    }

    for (BasicExecutorGetter getter : executorGetterGroup.values()) {
      log.info("Start the executor : " + getter.getName());
      getter.executor.start();
    }
  }
  public void waitForTermination() throws InterruptedException {
    for (BasicGeneratorGetter getter : generatorGetterGroup.values()) {
      getter.generator.join();
      log.info("Generator [" + getter.getName() + "] stops");
    }

    // TODO : stop all executors
    // for (BasicExecutorGetter getter : executorGetterGroup.values()) {
    // getter.executor.interrupt();
    // getter.executor.join();
    // }
  }