embulk 0.7.11-java → 0.8.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/README.md +1 -1
- data/build.gradle +2 -2
- data/embulk-core/build.gradle +2 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +11 -3
- data/embulk-core/src/main/java/org/embulk/config/YamlTagResolver.java +53 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +0 -1
- data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +479 -69
- data/embulk-core/src/main/java/org/embulk/spi/Column.java +3 -0
- data/embulk-core/src/main/java/org/embulk/spi/ColumnVisitor.java +2 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +12 -5
- data/embulk-core/src/main/java/org/embulk/spi/Page.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +26 -5
- data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +13 -0
- data/embulk-core/src/main/java/org/embulk/spi/json/JsonParseException.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/json/JsonParser.java +125 -0
- data/embulk-core/src/main/java/org/embulk/spi/json/RubyValueApi.java +55 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/JsonType.java +14 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +1 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/Types.java +2 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetterFactory.java +6 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +5 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/AbstractDynamicColumnSetter.java +3 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java +7 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java +2 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java +7 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/JsonColumnSetter.java +73 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java +11 -2
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java +5 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java +5 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/StringColumnSetter.java +7 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/TimestampColumnSetter.java +9 -1
- data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +7 -0
- data/embulk-docs/src/built-in.rst +40 -3
- data/embulk-docs/src/conf.py +2 -2
- data/embulk-docs/src/release.rst +1 -1
- data/embulk-docs/src/release/release-0.8.0.rst +68 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +12 -1
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +18 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +1 -1
- data/embulk.gemspec +1 -1
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +2 -2
- data/gradlew +3 -7
- data/lib/embulk/column.rb +2 -0
- data/lib/embulk/command/embulk_migrate_plugin.rb +76 -10
- data/lib/embulk/command/embulk_new_plugin.rb +2 -0
- data/lib/embulk/command/embulk_run.rb +17 -10
- data/lib/embulk/data/bundle/.ruby-version +1 -1
- data/lib/embulk/data/new/java/build.gradle.erb +21 -0
- data/lib/embulk/data/new/java/config/checkstyle/checkstyle.xml +128 -0
- data/lib/embulk/data/new/java/config/checkstyle/default.xml +108 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +2 -2
- data/lib/embulk/data/new/java/gradlew +3 -7
- data/lib/embulk/data/new/ruby/.ruby-version +1 -1
- data/lib/embulk/guess/csv.rb +1 -1
- data/lib/embulk/guess/schema_guess.rb +6 -0
- data/lib/embulk/guess_plugin.rb +1 -1
- data/lib/embulk/java/imports.rb +4 -0
- data/lib/embulk/plugin_registry.rb +8 -12
- data/lib/embulk/schema.rb +6 -0
- data/lib/embulk/version.rb +1 -1
- data/test/guess/test_csv_guess.rb +170 -0
- data/test/helper.rb +2 -0
- metadata +17 -15
- data/embulk-core/src/main/java/org/embulk/exec/LocalThreadExecutor.java +0 -34
- data/embulk-core/src/main/java/org/embulk/guice/Bootstrap.java +0 -157
- data/embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java +0 -22
- data/embulk-core/src/main/java/org/embulk/guice/InjectorProxy.java +0 -145
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java +0 -26
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjectorProxy.java +0 -61
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleManager.java +0 -187
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethods.java +0 -89
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethodsMap.java +0 -38
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleModule.java +0 -97
- data/embulk-docs/src/release/release-0.7.11.rst +0 -13
data/test/helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: embulk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: java
|
|
6
6
|
authors:
|
|
7
7
|
- Sadayuki Furuhashi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-01-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -133,10 +133,11 @@ files:
|
|
|
133
133
|
- classpath/bval-jsr303-0.5.jar
|
|
134
134
|
- classpath/commons-beanutils-core-1.8.3.jar
|
|
135
135
|
- classpath/commons-lang3-3.1.jar
|
|
136
|
-
- classpath/embulk-core-0.
|
|
137
|
-
- classpath/embulk-standards-0.
|
|
136
|
+
- classpath/embulk-core-0.8.0.jar
|
|
137
|
+
- classpath/embulk-standards-0.8.0.jar
|
|
138
138
|
- classpath/guava-18.0.jar
|
|
139
139
|
- classpath/guice-4.0.jar
|
|
140
|
+
- classpath/guice-bootstrap-0.1.1.jar
|
|
140
141
|
- classpath/guice-multibindings-4.0.jar
|
|
141
142
|
- classpath/jackson-annotations-2.5.3.jar
|
|
142
143
|
- classpath/jackson-core-2.5.3.jar
|
|
@@ -149,6 +150,7 @@ files:
|
|
|
149
150
|
- classpath/joda-time-2.8.1.jar
|
|
150
151
|
- classpath/logback-classic-1.1.3.jar
|
|
151
152
|
- classpath/logback-core-1.1.3.jar
|
|
153
|
+
- classpath/msgpack-core-0.8.1.jar
|
|
152
154
|
- classpath/netty-buffer-5.0.0.Alpha1.jar
|
|
153
155
|
- classpath/netty-common-5.0.0.Alpha1.jar
|
|
154
156
|
- classpath/slf4j-api-1.7.12.jar
|
|
@@ -188,6 +190,7 @@ files:
|
|
|
188
190
|
- embulk-core/src/main/java/org/embulk/config/TaskValidator.java
|
|
189
191
|
- embulk-core/src/main/java/org/embulk/config/UserDataException.java
|
|
190
192
|
- embulk-core/src/main/java/org/embulk/config/UserDataExceptions.java
|
|
193
|
+
- embulk-core/src/main/java/org/embulk/config/YamlTagResolver.java
|
|
191
194
|
- embulk-core/src/main/java/org/embulk/exec/BulkLoader.java
|
|
192
195
|
- embulk-core/src/main/java/org/embulk/exec/ConfigurableGuessInputPlugin.java
|
|
193
196
|
- embulk-core/src/main/java/org/embulk/exec/ExecModule.java
|
|
@@ -198,7 +201,6 @@ files:
|
|
|
198
201
|
- embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java
|
|
199
202
|
- embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java
|
|
200
203
|
- embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java
|
|
201
|
-
- embulk-core/src/main/java/org/embulk/exec/LocalThreadExecutor.java
|
|
202
204
|
- embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java
|
|
203
205
|
- embulk-core/src/main/java/org/embulk/exec/NoSampleException.java
|
|
204
206
|
- embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java
|
|
@@ -212,15 +214,6 @@ files:
|
|
|
212
214
|
- embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java
|
|
213
215
|
- embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java
|
|
214
216
|
- embulk-core/src/main/java/org/embulk/exec/TransactionStage.java
|
|
215
|
-
- embulk-core/src/main/java/org/embulk/guice/Bootstrap.java
|
|
216
|
-
- embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java
|
|
217
|
-
- embulk-core/src/main/java/org/embulk/guice/InjectorProxy.java
|
|
218
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java
|
|
219
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleInjectorProxy.java
|
|
220
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleManager.java
|
|
221
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleMethods.java
|
|
222
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleMethodsMap.java
|
|
223
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleModule.java
|
|
224
217
|
- embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java
|
|
225
218
|
- embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java
|
|
226
219
|
- embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java
|
|
@@ -281,6 +274,9 @@ files:
|
|
|
281
274
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java
|
|
282
275
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java
|
|
283
276
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java
|
|
277
|
+
- embulk-core/src/main/java/org/embulk/spi/json/JsonParseException.java
|
|
278
|
+
- embulk-core/src/main/java/org/embulk/spi/json/JsonParser.java
|
|
279
|
+
- embulk-core/src/main/java/org/embulk/spi/json/RubyValueApi.java
|
|
284
280
|
- embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java
|
|
285
281
|
- embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelper.java
|
|
286
282
|
- embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelperFactory.java
|
|
@@ -293,6 +289,7 @@ files:
|
|
|
293
289
|
- embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java
|
|
294
290
|
- embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java
|
|
295
291
|
- embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java
|
|
292
|
+
- embulk-core/src/main/java/org/embulk/spi/type/JsonType.java
|
|
296
293
|
- embulk-core/src/main/java/org/embulk/spi/type/LongType.java
|
|
297
294
|
- embulk-core/src/main/java/org/embulk/spi/type/StringType.java
|
|
298
295
|
- embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java
|
|
@@ -332,6 +329,7 @@ files:
|
|
|
332
329
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java
|
|
333
330
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java
|
|
334
331
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java
|
|
332
|
+
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/JsonColumnSetter.java
|
|
335
333
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
|
|
336
334
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java
|
|
337
335
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java
|
|
@@ -437,7 +435,6 @@ files:
|
|
|
437
435
|
- embulk-docs/src/release/release-0.7.0.rst
|
|
438
436
|
- embulk-docs/src/release/release-0.7.1.rst
|
|
439
437
|
- embulk-docs/src/release/release-0.7.10.rst
|
|
440
|
-
- embulk-docs/src/release/release-0.7.11.rst
|
|
441
438
|
- embulk-docs/src/release/release-0.7.2.rst
|
|
442
439
|
- embulk-docs/src/release/release-0.7.3.rst
|
|
443
440
|
- embulk-docs/src/release/release-0.7.4.rst
|
|
@@ -446,6 +443,7 @@ files:
|
|
|
446
443
|
- embulk-docs/src/release/release-0.7.7.rst
|
|
447
444
|
- embulk-docs/src/release/release-0.7.8.rst
|
|
448
445
|
- embulk-docs/src/release/release-0.7.9.rst
|
|
446
|
+
- embulk-docs/src/release/release-0.8.0.rst
|
|
449
447
|
- embulk-standards/build.gradle
|
|
450
448
|
- embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java
|
|
451
449
|
- embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java
|
|
@@ -490,6 +488,8 @@ files:
|
|
|
490
488
|
- lib/embulk/data/new/README.md.erb
|
|
491
489
|
- lib/embulk/data/new/gitignore.erb
|
|
492
490
|
- lib/embulk/data/new/java/build.gradle.erb
|
|
491
|
+
- lib/embulk/data/new/java/config/checkstyle/checkstyle.xml
|
|
492
|
+
- lib/embulk/data/new/java/config/checkstyle/default.xml
|
|
493
493
|
- lib/embulk/data/new/java/decoder.java.erb
|
|
494
494
|
- lib/embulk/data/new/java/encoder.java.erb
|
|
495
495
|
- lib/embulk/data/new/java/file_input.java.erb
|
|
@@ -552,6 +552,7 @@ files:
|
|
|
552
552
|
- lib/embulk/schema.rb
|
|
553
553
|
- lib/embulk/version.rb
|
|
554
554
|
- settings.gradle
|
|
555
|
+
- test/guess/test_csv_guess.rb
|
|
555
556
|
- test/guess/test_schema_guess.rb
|
|
556
557
|
- test/guess/test_time_format_guess.rb
|
|
557
558
|
- test/helper.rb
|
|
@@ -581,6 +582,7 @@ signing_key:
|
|
|
581
582
|
specification_version: 4
|
|
582
583
|
summary: Embulk, a plugin-based parallel bulk data loader
|
|
583
584
|
test_files:
|
|
585
|
+
- test/guess/test_csv_guess.rb
|
|
584
586
|
- test/guess/test_schema_guess.rb
|
|
585
587
|
- test/guess/test_time_format_guess.rb
|
|
586
588
|
- test/helper.rb
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
package org.embulk.exec;
|
|
2
|
-
|
|
3
|
-
import java.util.concurrent.Executors;
|
|
4
|
-
import java.util.concurrent.ExecutorService;
|
|
5
|
-
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
|
6
|
-
import com.google.inject.Inject;
|
|
7
|
-
import org.embulk.config.ConfigSource;
|
|
8
|
-
|
|
9
|
-
/*
|
|
10
|
-
* Injected in SINGLETON scope at ExecModule
|
|
11
|
-
*/
|
|
12
|
-
public class LocalThreadExecutor
|
|
13
|
-
{
|
|
14
|
-
private final ExecutorService executor;
|
|
15
|
-
|
|
16
|
-
@Inject
|
|
17
|
-
public LocalThreadExecutor(@ForSystemConfig ConfigSource systemConfig)
|
|
18
|
-
{
|
|
19
|
-
int defaultMaxThreads = Runtime.getRuntime().availableProcessors() * 2;
|
|
20
|
-
int maxThreads = systemConfig.get(Integer.class, "max_threads", defaultMaxThreads);
|
|
21
|
-
this.executor = Executors.newFixedThreadPool(maxThreads,
|
|
22
|
-
new ThreadFactoryBuilder()
|
|
23
|
-
.setNameFormat("embulk-executor-%d")
|
|
24
|
-
.setDaemon(true)
|
|
25
|
-
.build());
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
public ExecutorService getExecutorService()
|
|
29
|
-
{
|
|
30
|
-
return executor;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// TODO shutdown
|
|
34
|
-
}
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015 Sadayuki Furuhashi
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
package org.embulk.guice;
|
|
17
|
-
|
|
18
|
-
import com.google.common.base.Function;
|
|
19
|
-
import com.google.common.collect.ImmutableList;
|
|
20
|
-
import com.google.common.collect.Iterables;
|
|
21
|
-
import com.google.common.annotations.Beta;
|
|
22
|
-
|
|
23
|
-
import com.google.inject.Binder;
|
|
24
|
-
import com.google.inject.Guice;
|
|
25
|
-
import com.google.inject.Module;
|
|
26
|
-
import com.google.inject.Stage;
|
|
27
|
-
import com.google.inject.Injector;
|
|
28
|
-
import java.util.Arrays;
|
|
29
|
-
import java.util.List;
|
|
30
|
-
|
|
31
|
-
@Beta
|
|
32
|
-
public class Bootstrap
|
|
33
|
-
{
|
|
34
|
-
private List<Module> modules;
|
|
35
|
-
|
|
36
|
-
private boolean requireExplicitBindings = true;
|
|
37
|
-
|
|
38
|
-
private boolean started;
|
|
39
|
-
|
|
40
|
-
public Bootstrap(Module... modules)
|
|
41
|
-
{
|
|
42
|
-
this(Arrays.asList(modules));
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
public Bootstrap(Iterable<? extends Module> modules)
|
|
46
|
-
{
|
|
47
|
-
this.modules = ImmutableList.copyOf(modules);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
public Bootstrap requireExplicitBindings(boolean requireExplicitBindings)
|
|
51
|
-
{
|
|
52
|
-
this.requireExplicitBindings = requireExplicitBindings;
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
public Bootstrap addModules(Module... additionalModules)
|
|
57
|
-
{
|
|
58
|
-
return addModules(Arrays.asList(additionalModules));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
public Bootstrap addModules(Iterable<? extends Module> additionalModules)
|
|
62
|
-
{
|
|
63
|
-
modules = ImmutableList.copyOf(Iterables.concat(modules, additionalModules));
|
|
64
|
-
return this;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
//public Bootstrap onPreDestroy()
|
|
68
|
-
//{
|
|
69
|
-
//}
|
|
70
|
-
|
|
71
|
-
//public Bootstrap onPreDestroyException()
|
|
72
|
-
//{
|
|
73
|
-
//}
|
|
74
|
-
|
|
75
|
-
//public Bootstrap onStop()
|
|
76
|
-
//{
|
|
77
|
-
//}
|
|
78
|
-
|
|
79
|
-
//public Bootstrap forEachModule(Consumer<? super Module> function)
|
|
80
|
-
//{
|
|
81
|
-
// for (Module module : modules) {
|
|
82
|
-
// function.accept(module);
|
|
83
|
-
// }
|
|
84
|
-
// return this;
|
|
85
|
-
//}
|
|
86
|
-
|
|
87
|
-
//public <T> Bootstrap forEachModule(Class<T> ifClass, Consumer<? super T> function)
|
|
88
|
-
//{
|
|
89
|
-
// for (Module module : modules) {
|
|
90
|
-
// if (ifClass.instance(module) {
|
|
91
|
-
// function.accept(module);
|
|
92
|
-
// }
|
|
93
|
-
// }
|
|
94
|
-
// return this;
|
|
95
|
-
//}
|
|
96
|
-
|
|
97
|
-
public Bootstrap overrideModules(Function<? super List<Module>, ? extends Iterable<? extends Module>> function)
|
|
98
|
-
{
|
|
99
|
-
modules = ImmutableList.copyOf(function.apply(modules));
|
|
100
|
-
return this;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public LifeCycleInjector initialize()
|
|
104
|
-
{
|
|
105
|
-
return build(true);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
public CloseableInjector initializeCloseable()
|
|
109
|
-
{
|
|
110
|
-
return build(false);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
private LifeCycleInjectorProxy build(boolean destroyOnShutdownHook)
|
|
114
|
-
{
|
|
115
|
-
Injector injector = start();
|
|
116
|
-
LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
|
|
117
|
-
if (destroyOnShutdownHook) {
|
|
118
|
-
lifeCycleManager.destroyOnShutdownHook();
|
|
119
|
-
}
|
|
120
|
-
return new LifeCycleInjectorProxy(injector, lifeCycleManager);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
private Injector start()
|
|
124
|
-
{
|
|
125
|
-
if (started) {
|
|
126
|
-
throw new IllegalStateException("System already initialized");
|
|
127
|
-
}
|
|
128
|
-
started = true;
|
|
129
|
-
|
|
130
|
-
ImmutableList.Builder<Module> moduleList = ImmutableList.builder();
|
|
131
|
-
|
|
132
|
-
moduleList.addAll(modules);
|
|
133
|
-
|
|
134
|
-
moduleList.add(new Module()
|
|
135
|
-
{
|
|
136
|
-
@Override
|
|
137
|
-
public void configure(Binder binder)
|
|
138
|
-
{
|
|
139
|
-
binder.disableCircularProxies();
|
|
140
|
-
if (requireExplicitBindings) {
|
|
141
|
-
binder.requireExplicitBindings();
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
moduleList.add(new LifeCycleModule());
|
|
147
|
-
|
|
148
|
-
Injector injector = Guice.createInjector(Stage.PRODUCTION, moduleList.build());
|
|
149
|
-
|
|
150
|
-
LifeCycleManager lifeCycleManager = injector.getInstance(LifeCycleManager.class);
|
|
151
|
-
if (lifeCycleManager.size() > 0) {
|
|
152
|
-
lifeCycleManager.start();
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return injector;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015 Sadayuki Furuhashi
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
package org.embulk.guice;
|
|
17
|
-
|
|
18
|
-
import com.google.inject.Injector;
|
|
19
|
-
|
|
20
|
-
public interface CloseableInjector
|
|
21
|
-
extends LifeCycleInjector, AutoCloseable
|
|
22
|
-
{ }
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015 Sadayuki Furuhashi
|
|
3
|
-
*
|
|
4
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
package org.embulk.guice;
|
|
17
|
-
|
|
18
|
-
import com.google.inject.Binding;
|
|
19
|
-
import com.google.inject.Injector;
|
|
20
|
-
import com.google.inject.Key;
|
|
21
|
-
import com.google.inject.MembersInjector;
|
|
22
|
-
import com.google.inject.Module;
|
|
23
|
-
import com.google.inject.Provider;
|
|
24
|
-
import com.google.inject.Scope;
|
|
25
|
-
import com.google.inject.TypeLiteral;
|
|
26
|
-
import com.google.inject.spi.TypeConverterBinding;
|
|
27
|
-
|
|
28
|
-
import java.lang.annotation.Annotation;
|
|
29
|
-
import java.util.List;
|
|
30
|
-
import java.util.Map;
|
|
31
|
-
import java.util.Set;
|
|
32
|
-
|
|
33
|
-
abstract class InjectorProxy
|
|
34
|
-
implements Injector
|
|
35
|
-
{
|
|
36
|
-
protected abstract Injector injector();
|
|
37
|
-
|
|
38
|
-
@Override
|
|
39
|
-
public void injectMembers(Object instance)
|
|
40
|
-
{
|
|
41
|
-
injector().injectMembers(instance);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
@Override
|
|
45
|
-
public <T> MembersInjector<T> getMembersInjector(TypeLiteral<T> typeLiteral)
|
|
46
|
-
{
|
|
47
|
-
return injector().getMembersInjector(typeLiteral);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
@Override
|
|
51
|
-
public <T> MembersInjector<T> getMembersInjector(Class<T> type)
|
|
52
|
-
{
|
|
53
|
-
return injector().getMembersInjector(type);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
@Override
|
|
57
|
-
public Map<Key<?>, Binding<?>> getBindings()
|
|
58
|
-
{
|
|
59
|
-
return injector().getBindings();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
@Override
|
|
63
|
-
public Map<Key<?>, Binding<?>> getAllBindings()
|
|
64
|
-
{
|
|
65
|
-
return injector().getAllBindings();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
@Override
|
|
69
|
-
public <T> Binding<T> getBinding(Key<T> key)
|
|
70
|
-
{
|
|
71
|
-
return injector().getBinding(key);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@Override
|
|
75
|
-
public <T> Binding<T> getBinding(Class<T> type)
|
|
76
|
-
{
|
|
77
|
-
return injector().getBinding(type);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@Override
|
|
81
|
-
public <T> Binding<T> getExistingBinding(Key<T> key)
|
|
82
|
-
{
|
|
83
|
-
return injector().getExistingBinding(key);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
@Override
|
|
87
|
-
public <T> List<Binding<T>> findBindingsByType(TypeLiteral<T> type)
|
|
88
|
-
{
|
|
89
|
-
return injector().findBindingsByType(type);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
@Override
|
|
93
|
-
public <T> Provider<T> getProvider(Key<T> key)
|
|
94
|
-
{
|
|
95
|
-
return injector().getProvider(key);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
@Override
|
|
99
|
-
public <T> Provider<T> getProvider(Class<T> type)
|
|
100
|
-
{
|
|
101
|
-
return injector().getProvider(type);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@Override
|
|
105
|
-
public <T> T getInstance(Key<T> key)
|
|
106
|
-
{
|
|
107
|
-
return injector().getInstance(key);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@Override
|
|
111
|
-
public <T> T getInstance(Class<T> type)
|
|
112
|
-
{
|
|
113
|
-
return injector().getInstance(type);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
@Override
|
|
117
|
-
public Injector getParent()
|
|
118
|
-
{
|
|
119
|
-
return injector().getParent();
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
@Override
|
|
123
|
-
public Injector createChildInjector(Iterable<? extends Module> modules)
|
|
124
|
-
{
|
|
125
|
-
return injector().createChildInjector(modules);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
@Override
|
|
129
|
-
public Injector createChildInjector(Module... modules)
|
|
130
|
-
{
|
|
131
|
-
return injector().createChildInjector(modules);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
@Override
|
|
135
|
-
public Map<Class<? extends Annotation>, Scope> getScopeBindings()
|
|
136
|
-
{
|
|
137
|
-
return injector().getScopeBindings();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
@Override
|
|
141
|
-
public Set<TypeConverterBinding> getTypeConverterBindings()
|
|
142
|
-
{
|
|
143
|
-
return injector().getTypeConverterBindings();
|
|
144
|
-
}
|
|
145
|
-
}
|