public static void main(String[] args) {
    log.info("Starting scheduler");
    CommandLine cmdLine = parseArgs(args);
    JobConf.JobTypeEnum operationType = getOperationJobType(cmdLine);
    Class<? extends OperationTask> operationTaskCls = getOperationTaskCls(operationType.toString());
    TablesClientFactory tablesClientFactory = getTablesClientFactory(cmdLine);
    OperationTaskFactory<? extends OperationTask> tasksFactory =
        new OperationTaskFactory<>(
            operationTaskCls, getJobsClientFactory(cmdLine), tablesClientFactory);
    JobsScheduler app =
        new JobsScheduler(
            Executors.newFixedThreadPool(getNumParallelJobs(cmdLine)),
            tasksFactory,
            tablesClientFactory.create());
    app.run(operationType, operationTaskCls.toString(), isDryRun(cmdLine));
  }
@Test
  void testRegistryIsInitialized() {
    JobsScheduler.main(
        new String[] {
          "--type", TableRetentionTask.OPERATION_TYPE.getValue(),
          "--tablesURL", "http://test.openhouse.com",
          "--jobsURL", "unused",
          "--cluster", "unused",
        });
  }