protected InputPlugin newInputPlugin(ConfigSource inputConfig) { return Exec.newPlugin(InputPlugin.class, inputConfig.get(PluginType.class, "type")); }
private ExecutorPlugin newExecutorPlugin(BulkLoaderTask task) { return Exec.newPlugin(ExecutorPlugin.class, task.getExecConfig().get(PluginType.class, "type", PluginType.LOCAL)); }
protected FormatterPlugin newFormatterPlugin(RunnerTask task) { return Exec.newPlugin(FormatterPlugin.class, task.getFormatterConfig().get(PluginType.class, "type")); }
protected ParserPlugin newParserPlugin(RunnerTask task) { return Exec.newPlugin(ParserPlugin.class, task.getParserConfig().get(PluginType.class, "type")); }
protected InputPlugin newInputPlugin(PreviewTask task) { return Exec.newPlugin(InputPlugin.class, task.getInputConfig().get(PluginType.class, "type")); }
public ProcessPluginSet(BulkLoaderTask task) { this.inputPluginType = task.getInputConfig().get(PluginType.class, "type"); this.outputPluginType = task.getOutputConfig().get(PluginType.class, "type"); this.filterPluginTypes = Filters.getPluginTypes(task.getFilterConfigs()); this.inputPlugin = Exec.newPlugin(InputPlugin.class, inputPluginType); this.outputPlugin = Exec.newPlugin(OutputPlugin.class, outputPluginType); this.filterPlugins = Filters.newFilterPlugins(Exec.session(), filterPluginTypes); }
@Override public void run(TaskSource taskSource, Schema schema, FileInput input, PageOutput pageOutput) { PluginTask task = taskSource.loadTask(PluginTask.class); final ConfigSource originalConfig = task.getOriginalConfig(); final int guessParserSampleBufferBytes = task.getGuessParserSampleBufferBytes(); // get sample buffer Buffer sample = readSample(input, guessParserSampleBufferBytes); // load guess plugins ImmutableList.Builder<GuessPlugin> builder = ImmutableList.builder(); for (PluginType guessType : task.getGuessPluginTypes()) { GuessPlugin guess = Exec.newPlugin(GuessPlugin.class, guessType); builder.add(guess); } List<GuessPlugin> guesses = builder.build(); // run guess plugins ConfigSource mergedConfig = originalConfig.deepCopy(); ConfigDiff mergedGuessed = Exec.newConfigDiff(); for (int i = 0; i < guesses.size(); i++) { ConfigDiff guessed = guesses.get(i).guess(originalConfig, sample); guessed = addAssumedDecoderConfigs(originalConfig, guessed); mergedGuessed.merge(guessed); mergedConfig.merge(mergedGuessed); if (!mergedConfig.equals(originalConfig)) { // config updated throw new GuessedNoticeError(mergedGuessed); } } throw new GuessedNoticeError(mergedGuessed); }