PageRenderTime 47ms CodeModel.GetById 31ms app.highlight 12ms RepoModel.GetById 0ms app.codeStats 0ms

/embulk-core/src/main/java/org/embulk/EmbulkService.java

https://gitlab.com/CORP-RESELLER/embulk
Java | 76 lines | 63 code | 13 blank | 0 comment | 1 complexity | b626aaac454e82716bc172a10981fc38 MD5 | raw file
 1package org.embulk;
 2
 3import java.util.List;
 4import com.google.common.collect.ImmutableList;
 5import com.google.inject.Guice;
 6import com.google.inject.Injector;
 7import com.google.inject.Module;
 8import org.embulk.config.ConfigSource;
 9import org.embulk.exec.SystemConfigModule;
10import org.embulk.exec.ExecModule;
11import org.embulk.exec.ExtensionServiceLoaderModule;
12import org.embulk.plugin.PluginClassLoaderModule;
13import org.embulk.plugin.BuiltinPluginSourceModule;
14import org.embulk.jruby.JRubyScriptingModule;
15import static com.google.common.base.Preconditions.checkState;
16
17@Deprecated
18public class EmbulkService
19{
20    private final ConfigSource systemConfig;
21
22    protected Injector injector;
23    private boolean initialized;
24
25    public EmbulkService(ConfigSource systemConfig)
26    {
27        this.systemConfig = systemConfig;
28    }
29
30    protected Iterable<? extends Module> getAdditionalModules(ConfigSource systemConfig)
31    {
32        return ImmutableList.of();
33    }
34
35    protected Iterable<? extends Module> overrideModules(Iterable<? extends Module> modules, ConfigSource systemConfig)
36    {
37        return modules;
38    }
39
40    static List<Module> standardModuleList(ConfigSource systemConfig)
41    {
42        return ImmutableList.of(
43                new SystemConfigModule(systemConfig),
44                new ExecModule(),
45                new ExtensionServiceLoaderModule(systemConfig),
46                new PluginClassLoaderModule(systemConfig),
47                new BuiltinPluginSourceModule(),
48                new JRubyScriptingModule(systemConfig));
49    }
50
51    public Injector initialize()
52    {
53        checkState(!initialized, "Already initialized");
54
55        ImmutableList.Builder<Module> builder = ImmutableList.builder();
56        builder.addAll(standardModuleList(systemConfig));
57        builder.addAll(getAdditionalModules(systemConfig));
58
59        Iterable<? extends Module> modules = builder.build();
60        modules = overrideModules(modules, systemConfig);
61
62        injector = Guice.createInjector(modules);
63        initialized = true;
64
65        return injector;
66    }
67
68    @Deprecated
69    public synchronized Injector getInjector()
70    {
71        if (initialized) {
72            return injector;
73        }
74        return initialize();
75    }
76}