@Override public ProgramRunner create(ProgramType programType) { ProgramRuntimeProvider provider = runtimeProviderLoader.get(programType); ProgramRunner runner; if (provider != null) { LOG.debug("Using runtime provider {} for program type {}", provider, programType); runner = provider.createProgramRunner(programType, mode, injector); } else { Provider<ProgramRunner> defaultProvider = defaultRunnerProviders.get(programType); if (defaultProvider == null) { throw new IllegalArgumentException("Unsupported program type: " + programType); } runner = defaultProvider.get(); } // Wrap a state change listener around the controller returned by the program runner in standalone mode // In distributed mode, program state changes are recorded in the event handler by Twill AM. return (mode == ProgramRuntimeProvider.Mode.LOCAL) ? new LocalProgramRunner(runner, programStateWriter) : runner; }
@Override public ProgramRunner create(ProgramType programType) { ProgramRuntimeProvider provider = runtimeProviderLoader.get(programType); ProgramRunner runner; if (provider != null) { LOG.debug("Using runtime provider {} for program type {}", provider, programType); runner = provider.createProgramRunner(programType, mode, injector); } else { Provider<ProgramRunner> defaultProvider = defaultRunnerProviders.get(programType); if (defaultProvider == null) { throw new IllegalArgumentException("Unsupported program type: " + programType); } runner = defaultProvider.get(); } // Wrap a state change listener around the controller returned by the program runner in standalone mode // In distributed mode, program state changes are recorded in the event handler by Twill AM. return (mode == ProgramRuntimeProvider.Mode.LOCAL) ? new LocalProgramRunner(runner, programStateWriter) : runner; }
@Override public ProgramController run(Program program, ProgramOptions options) { return addStateChangeListener(runner.run(program, options)); }
@Override public ProgramController run(Program program, ProgramOptions options) { return addStateChangeListener(runner.run(program, options)); }