private ExecSessionInternal newExecSessionInternal(final ConfigSource execConfig) {
        final ExecSessionInternal.Builder builder = ExecSessionInternal.builderInternal(
                this.bufferAllocator, this.tempFileSpaceAllocator);
        for (final Map.Entry<String, Class<? extends DecoderPlugin>> decoderPlugin : this.decoderPlugins.entrySet()) {
            builder.registerDecoderPlugin(decoderPlugin.getKey(), decoderPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends EncoderPlugin>> encoderPlugin : this.encoderPlugins.entrySet()) {
            builder.registerEncoderPlugin(encoderPlugin.getKey(), encoderPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends ExecutorPlugin>> executorPlugin : this.executorPlugins.entrySet()) {
            builder.registerExecutorPlugin(executorPlugin.getKey(), executorPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends FileInputPlugin>> fileInputPlugin : this.fileInputPlugins.entrySet()) {
            builder.registerFileInputPlugin(fileInputPlugin.getKey(), fileInputPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends FileOutputPlugin>> fileOutputPlugin : this.fileOutputPlugins.entrySet()) {
            builder.registerFileOutputPlugin(fileOutputPlugin.getKey(), fileOutputPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends FilterPlugin>> filterPlugin : this.filterPlugins.entrySet()) {
            builder.registerFilterPlugin(filterPlugin.getKey(), filterPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends FormatterPlugin>> formatterPlugin : this.formatterPlugins.entrySet()) {
            builder.registerFormatterPlugin(formatterPlugin.getKey(), formatterPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends GuessPlugin>> guessPlugin : this.guessPlugins.entrySet()) {
            builder.registerGuessPlugin(guessPlugin.getKey(), guessPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends InputPlugin>> inputPlugin : this.inputPlugins.entrySet()) {
            builder.registerInputPlugin(inputPlugin.getKey(), inputPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends OutputPlugin>> outputPlugin : this.outputPlugins.entrySet()) {
            builder.registerOutputPlugin(outputPlugin.getKey(), outputPlugin.getValue());
        }
        for (final Map.Entry<String, Class<? extends ParserPlugin>> parserPlugin : this.parserPlugins.entrySet()) {
            builder.registerParserPlugin(parserPlugin.getKey(), parserPlugin.getValue());
        }
        return builder
                .setModelManager(this.modelManager)
                .setEmbulkSystemProperties(this.embulkSystemProperties)
                .setGuessExecutor(this.guessExecutor)
                .fromExecConfig(execConfig)
                .build();
    }
Sets an alternative {@code BulkLoader} instance mainly for testing-purpose.
embulk-core/src/main/java/org/embulk/EmbulkEmbed.java