private void createRunner(final Runner runner) { RunnerContext runnerContext = pluginLoader::getPluginsInfo; logger.info("Runner: {} starts loading {}", runner.getClass().getName(), PipelinePlugin.class.getName()); checkArgument(runner.getContainerFactory() != null, runner.getClass() + " getContainerFactory() return null"); final ContainerFactory factory; try { factory = runner.getContainerFactory().newInstance(); } catch (InstantiationException | IllegalAccessException e) { throw throwsException(e); } runner.create(runnerContext).forEach(jobActuatorHandle -> { JobActuator jobActuator = new JobActuatorImpl(jobActuatorHandle, factory); String name = jobActuator.getInfo().getName(); checkState(!jobActuatorMap.containsKey(name), String.format("Multiple entries with same key: %s=%s and %s=%s", name, jobActuatorMap.get(name), name, jobActuator)); jobActuatorMap.put(name, jobActuator); }); }