Sha256: b4d4ba20341dab4cc0376b3de836f833cb1090f3916b4726961cdd569125e832

Contents?: true

Size: 1.2 KB

Versions: 104

Compression:

Stored size: 1.2 KB

Contents

package org.embulk.spi;

import java.util.List;
import com.google.inject.Module;
import org.embulk.config.ConfigSource;

/**
 * Extension is a module to extend the execution framework using Guice.
 * Unlike plugins, extensions can overwrite or add core components such as
 * BufferManager, PluginSource, etc.
 * Extension is not designed for users but for framework developers to make
 * core components loosely coupled.
 *
 * An example extension to add a custom PluginSource will be as following:
 *
 * <code>
 * class MyPluginSourceExtension
 *         implements Extension, Module
 * {
 *     public static class MyPluginSource
 *             implements PluginSource
 *     {
 *         // ...
 *     }
 *
 *     {@literal @}Override
 *     public void configure(Binder binder)
 *     {
 *         Multibinder&lt;PluginSource&gt; multibinder = Multibinder.newSetBinder(binder, PluginSource.class);
 *         multibinder.addBinding().to(MyPluginSource.class);
 *     }
 *
 *     {@literal @}Override
 *     public List&lt;Module&gt; getModules()
 *     {
 *         return ImmutableList.&lt;Module&gt;of(this);
 *     }
 * }
 * </code>
 */
public interface Extension
{
    List<Module> getModules(ConfigSource systemConfig);
}

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
embulk-0.8.39 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.39-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.38 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.38-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.37 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.37-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.36 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.36-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.35 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.35-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.34 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.34-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.33 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.33-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.32 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.32-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.31 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.31-java embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.30 embulk-core/src/main/java/org/embulk/spi/Extension.java
embulk-0.8.30-java embulk-core/src/main/java/org/embulk/spi/Extension.java