embulk 0.7.11 → 0.8.0
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 +19 -17
- 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: ruby
|
|
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: jruby-jars
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - '='
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 9.0.
|
|
19
|
+
version: 9.0.4.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - '='
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 9.0.
|
|
26
|
+
version: 9.0.4.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -107,10 +107,11 @@ files:
|
|
|
107
107
|
- classpath/bval-jsr303-0.5.jar
|
|
108
108
|
- classpath/commons-beanutils-core-1.8.3.jar
|
|
109
109
|
- classpath/commons-lang3-3.1.jar
|
|
110
|
-
- classpath/embulk-core-0.
|
|
111
|
-
- classpath/embulk-standards-0.
|
|
110
|
+
- classpath/embulk-core-0.8.0.jar
|
|
111
|
+
- classpath/embulk-standards-0.8.0.jar
|
|
112
112
|
- classpath/guava-18.0.jar
|
|
113
113
|
- classpath/guice-4.0.jar
|
|
114
|
+
- classpath/guice-bootstrap-0.1.1.jar
|
|
114
115
|
- classpath/guice-multibindings-4.0.jar
|
|
115
116
|
- classpath/jackson-annotations-2.5.3.jar
|
|
116
117
|
- classpath/jackson-core-2.5.3.jar
|
|
@@ -123,6 +124,7 @@ files:
|
|
|
123
124
|
- classpath/joda-time-2.8.1.jar
|
|
124
125
|
- classpath/logback-classic-1.1.3.jar
|
|
125
126
|
- classpath/logback-core-1.1.3.jar
|
|
127
|
+
- classpath/msgpack-core-0.8.1.jar
|
|
126
128
|
- classpath/netty-buffer-5.0.0.Alpha1.jar
|
|
127
129
|
- classpath/netty-common-5.0.0.Alpha1.jar
|
|
128
130
|
- classpath/slf4j-api-1.7.12.jar
|
|
@@ -162,6 +164,7 @@ files:
|
|
|
162
164
|
- embulk-core/src/main/java/org/embulk/config/TaskValidator.java
|
|
163
165
|
- embulk-core/src/main/java/org/embulk/config/UserDataException.java
|
|
164
166
|
- embulk-core/src/main/java/org/embulk/config/UserDataExceptions.java
|
|
167
|
+
- embulk-core/src/main/java/org/embulk/config/YamlTagResolver.java
|
|
165
168
|
- embulk-core/src/main/java/org/embulk/exec/BulkLoader.java
|
|
166
169
|
- embulk-core/src/main/java/org/embulk/exec/ConfigurableGuessInputPlugin.java
|
|
167
170
|
- embulk-core/src/main/java/org/embulk/exec/ExecModule.java
|
|
@@ -172,7 +175,6 @@ files:
|
|
|
172
175
|
- embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java
|
|
173
176
|
- embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java
|
|
174
177
|
- embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java
|
|
175
|
-
- embulk-core/src/main/java/org/embulk/exec/LocalThreadExecutor.java
|
|
176
178
|
- embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java
|
|
177
179
|
- embulk-core/src/main/java/org/embulk/exec/NoSampleException.java
|
|
178
180
|
- embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java
|
|
@@ -186,15 +188,6 @@ files:
|
|
|
186
188
|
- embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java
|
|
187
189
|
- embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java
|
|
188
190
|
- embulk-core/src/main/java/org/embulk/exec/TransactionStage.java
|
|
189
|
-
- embulk-core/src/main/java/org/embulk/guice/Bootstrap.java
|
|
190
|
-
- embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java
|
|
191
|
-
- embulk-core/src/main/java/org/embulk/guice/InjectorProxy.java
|
|
192
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java
|
|
193
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleInjectorProxy.java
|
|
194
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleManager.java
|
|
195
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleMethods.java
|
|
196
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleMethodsMap.java
|
|
197
|
-
- embulk-core/src/main/java/org/embulk/guice/LifeCycleModule.java
|
|
198
191
|
- embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java
|
|
199
192
|
- embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java
|
|
200
193
|
- embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java
|
|
@@ -255,6 +248,9 @@ files:
|
|
|
255
248
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java
|
|
256
249
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java
|
|
257
250
|
- embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java
|
|
251
|
+
- embulk-core/src/main/java/org/embulk/spi/json/JsonParseException.java
|
|
252
|
+
- embulk-core/src/main/java/org/embulk/spi/json/JsonParser.java
|
|
253
|
+
- embulk-core/src/main/java/org/embulk/spi/json/RubyValueApi.java
|
|
258
254
|
- embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java
|
|
259
255
|
- embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelper.java
|
|
260
256
|
- embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelperFactory.java
|
|
@@ -267,6 +263,7 @@ files:
|
|
|
267
263
|
- embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java
|
|
268
264
|
- embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java
|
|
269
265
|
- embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java
|
|
266
|
+
- embulk-core/src/main/java/org/embulk/spi/type/JsonType.java
|
|
270
267
|
- embulk-core/src/main/java/org/embulk/spi/type/LongType.java
|
|
271
268
|
- embulk-core/src/main/java/org/embulk/spi/type/StringType.java
|
|
272
269
|
- embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java
|
|
@@ -306,6 +303,7 @@ files:
|
|
|
306
303
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java
|
|
307
304
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java
|
|
308
305
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java
|
|
306
|
+
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/JsonColumnSetter.java
|
|
309
307
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java
|
|
310
308
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java
|
|
311
309
|
- embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java
|
|
@@ -411,7 +409,6 @@ files:
|
|
|
411
409
|
- embulk-docs/src/release/release-0.7.0.rst
|
|
412
410
|
- embulk-docs/src/release/release-0.7.1.rst
|
|
413
411
|
- embulk-docs/src/release/release-0.7.10.rst
|
|
414
|
-
- embulk-docs/src/release/release-0.7.11.rst
|
|
415
412
|
- embulk-docs/src/release/release-0.7.2.rst
|
|
416
413
|
- embulk-docs/src/release/release-0.7.3.rst
|
|
417
414
|
- embulk-docs/src/release/release-0.7.4.rst
|
|
@@ -420,6 +417,7 @@ files:
|
|
|
420
417
|
- embulk-docs/src/release/release-0.7.7.rst
|
|
421
418
|
- embulk-docs/src/release/release-0.7.8.rst
|
|
422
419
|
- embulk-docs/src/release/release-0.7.9.rst
|
|
420
|
+
- embulk-docs/src/release/release-0.8.0.rst
|
|
423
421
|
- embulk-standards/build.gradle
|
|
424
422
|
- embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java
|
|
425
423
|
- embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java
|
|
@@ -464,6 +462,8 @@ files:
|
|
|
464
462
|
- lib/embulk/data/new/README.md.erb
|
|
465
463
|
- lib/embulk/data/new/gitignore.erb
|
|
466
464
|
- lib/embulk/data/new/java/build.gradle.erb
|
|
465
|
+
- lib/embulk/data/new/java/config/checkstyle/checkstyle.xml
|
|
466
|
+
- lib/embulk/data/new/java/config/checkstyle/default.xml
|
|
467
467
|
- lib/embulk/data/new/java/decoder.java.erb
|
|
468
468
|
- lib/embulk/data/new/java/encoder.java.erb
|
|
469
469
|
- lib/embulk/data/new/java/file_input.java.erb
|
|
@@ -526,6 +526,7 @@ files:
|
|
|
526
526
|
- lib/embulk/schema.rb
|
|
527
527
|
- lib/embulk/version.rb
|
|
528
528
|
- settings.gradle
|
|
529
|
+
- test/guess/test_csv_guess.rb
|
|
529
530
|
- test/guess/test_schema_guess.rb
|
|
530
531
|
- test/guess/test_time_format_guess.rb
|
|
531
532
|
- test/helper.rb
|
|
@@ -555,6 +556,7 @@ signing_key:
|
|
|
555
556
|
specification_version: 4
|
|
556
557
|
summary: Embulk, a plugin-based parallel bulk data loader
|
|
557
558
|
test_files:
|
|
559
|
+
- test/guess/test_csv_guess.rb
|
|
558
560
|
- test/guess/test_schema_guess.rb
|
|
559
561
|
- test/guess/test_time_format_guess.rb
|
|
560
562
|
- 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
|
-
}
|