embulk 0.6.27 → 0.7.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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -0
  3. data/Gemfile.lock +6 -1
  4. data/README.md +4 -4
  5. data/bin/embulk +39 -17
  6. data/build.gradle +23 -8
  7. data/embulk-cli/src/main/java/org/embulk/cli/Main.java +11 -2
  8. data/embulk-core/build.gradle +9 -4
  9. data/embulk-core/src/main/java/org/embulk/EmbulkEmbed.java +160 -61
  10. data/embulk-core/src/main/java/org/embulk/EmbulkService.java +1 -0
  11. data/embulk-core/src/main/java/org/embulk/command/TablePreviewPrinter.java +0 -1
  12. data/embulk-core/src/main/java/org/embulk/config/CommitReport.java +5 -1
  13. data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +28 -7
  14. data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +1 -4
  15. data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +6 -3
  16. data/embulk-core/src/main/java/org/embulk/config/ModelManager.java +0 -2
  17. data/embulk-core/src/main/java/org/embulk/config/TaskReport.java +29 -0
  18. data/embulk-core/src/main/java/org/embulk/exec/BulkLoader.java +42 -45
  19. data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +0 -1
  20. data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +4 -7
  21. data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +5 -6
  22. data/embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java +0 -1
  23. data/embulk-core/src/main/java/org/embulk/exec/PooledBufferAllocator.java +0 -3
  24. data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +2 -2
  25. data/embulk-core/src/main/java/org/embulk/exec/ResumeState.java +26 -9
  26. data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +2 -4
  27. data/embulk-core/src/main/java/org/embulk/guice/Bootstrap.java +12 -5
  28. data/embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java +1 -1
  29. data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java +26 -0
  30. data/embulk-core/src/main/java/org/embulk/guice/{CloseableInjectorProxy.java → LifeCycleInjectorProxy.java} +20 -6
  31. data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +10 -12
  32. data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java +0 -1
  33. data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +14 -1
  34. data/embulk-core/src/main/java/org/embulk/plugin/compat/InputPluginWrapper.java +102 -0
  35. data/embulk-core/src/main/java/org/embulk/plugin/compat/PluginWrappers.java +30 -0
  36. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileInputWrapper.java +96 -0
  37. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileOutputWrapper.java +102 -0
  38. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalPageOutputWrapper.java +95 -0
  39. data/embulk-core/src/main/java/org/embulk/spi/ColumnConfig.java +0 -2
  40. data/embulk-core/src/main/java/org/embulk/spi/Exec.java +8 -2
  41. data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +7 -1
  42. data/embulk-core/src/main/java/org/embulk/spi/Extension.java +2 -2
  43. data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +3 -3
  44. data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +12 -10
  45. data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +3 -3
  46. data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +11 -9
  47. data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +0 -3
  48. data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +4 -4
  49. data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +3 -3
  50. data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +0 -1
  51. data/embulk-core/src/main/java/org/embulk/spi/ProcessTask.java +0 -5
  52. data/embulk-core/src/main/java/org/embulk/spi/SchemaConfig.java +0 -1
  53. data/embulk-core/src/main/java/org/embulk/spi/TaskState.java +19 -4
  54. data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +0 -3
  55. data/embulk-core/src/main/java/org/embulk/spi/Transactional.java +2 -2
  56. data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java +2 -2
  57. data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java +2 -2
  58. data/embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java +2 -2
  59. data/embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java +0 -2
  60. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormat.java +0 -3
  61. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +0 -1
  62. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +0 -1
  63. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampSerDe.java +0 -1
  64. data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +0 -3
  65. data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFileSerDe.java +0 -3
  66. data/embulk-core/src/main/java/org/embulk/spi/unit/ToStringMap.java +0 -1
  67. data/embulk-core/src/main/java/org/embulk/spi/util/Executors.java +15 -12
  68. data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +0 -1
  69. data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +7 -7
  70. data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +8 -8
  71. data/embulk-docs/src/built-in.rst +27 -30
  72. data/embulk-docs/src/conf.py +2 -2
  73. data/embulk-docs/src/release.rst +1 -2
  74. data/embulk-docs/src/release/release-0.7.0.rst +96 -0
  75. data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +0 -4
  76. data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +0 -10
  77. data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +1 -5
  78. data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +4 -5
  79. data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +4 -5
  80. data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +4 -4
  81. data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +0 -3
  82. data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +4 -6
  83. data/embulk.gemspec +14 -1
  84. data/lib/embulk.rb +59 -4
  85. data/lib/embulk/command/embulk_bundle.rb +56 -0
  86. data/lib/embulk/command/embulk_main.rb +2 -0
  87. data/lib/embulk/command/embulk_migrate_plugin.rb +170 -0
  88. data/lib/embulk/command/embulk_new_plugin.rb +4 -1
  89. data/lib/embulk/command/embulk_run.rb +188 -227
  90. data/lib/embulk/data/bundle/.ruby-version +1 -0
  91. data/lib/embulk/data/bundle/Gemfile +4 -1
  92. data/lib/embulk/data/bundle/embulk/input/example.rb +4 -4
  93. data/lib/embulk/data/bundle/embulk/output/example.rb +4 -4
  94. data/lib/embulk/data/new/README.md.erb +1 -1
  95. data/lib/embulk/data/new/java/file_input.java.erb +4 -4
  96. data/lib/embulk/data/new/java/file_output.java.erb +2 -2
  97. data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
  98. data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +2 -2
  99. data/lib/embulk/data/new/java/input.java.erb +3 -3
  100. data/lib/embulk/data/new/java/output.java.erb +2 -2
  101. data/lib/embulk/data/new/ruby/.ruby-version +1 -0
  102. data/lib/embulk/data/new/ruby/gemspec.erb +1 -0
  103. data/lib/embulk/data/new/ruby/input.rb.erb +3 -3
  104. data/lib/embulk/data/new/ruby/output.rb.erb +4 -4
  105. data/lib/embulk/data/package_data.rb +1 -15
  106. data/lib/embulk/guess/charset.rb +10 -1
  107. data/lib/embulk/input_plugin.rb +12 -12
  108. data/lib/embulk/java/bootstrap.rb +7 -4
  109. data/lib/embulk/java/imports.rb +34 -2
  110. data/lib/embulk/logger.rb +2 -0
  111. data/lib/embulk/output_plugin.rb +12 -12
  112. data/lib/embulk/page_builder.rb +1 -1
  113. data/lib/embulk/plugin.rb +0 -1
  114. data/lib/embulk/runner.rb +184 -0
  115. data/lib/embulk/version.rb +1 -1
  116. metadata +76 -55
  117. data/embulk-core/src/main/java/org/embulk/command/LiquidTemplate.java +0 -8
  118. data/embulk-core/src/main/java/org/embulk/command/Runner.java +0 -369
  119. data/embulk-docs/src/release/release-0.6.26.rst +0 -17
  120. data/embulk-docs/src/release/release-0.6.27.rst +0 -11
  121. data/lib/embulk/command/embulk.rb +0 -47
  122. data/lib/embulk/data/bundle/Gemfile.lock +0 -8
  123. data/lib/embulk/exec.rb +0 -8
  124. data/lib/embulk/gems.rb +0 -29
  125. data/lib/embulk/java/liquid_helper.rb +0 -16
@@ -14,6 +14,7 @@ import org.embulk.plugin.BuiltinPluginSourceModule;
14
14
  import org.embulk.jruby.JRubyScriptingModule;
15
15
  import static com.google.common.base.Preconditions.checkState;
16
16
 
17
+ @Deprecated
17
18
  public class EmbulkService
18
19
  {
19
20
  private final ConfigSource systemConfig;
@@ -5,7 +5,6 @@ import java.util.Arrays;
5
5
  import java.util.ArrayList;
6
6
  import java.io.PrintStream;
7
7
  import java.io.IOException;
8
- import com.google.common.base.Function;
9
8
  import org.embulk.config.ModelManager;
10
9
  import org.embulk.spi.Schema;
11
10
 
@@ -1,7 +1,11 @@
1
1
  package org.embulk.config;
2
2
 
3
+ /**
4
+ * Simply replaced by TaskReport.
5
+ */
6
+ @Deprecated
3
7
  public interface CommitReport
4
- extends DataSource
8
+ extends TaskReport
5
9
  {
6
10
  @Override
7
11
  CommitReport getNested(String attrName);
@@ -31,6 +31,19 @@ public class ConfigLoader
31
31
  return new DataSourceImpl(model);
32
32
  }
33
33
 
34
+ public ConfigSource fromJsonString(String string)
35
+ {
36
+ JsonNode node;
37
+ try {
38
+ node = new ObjectMapper().readTree(string);
39
+ }
40
+ catch (IOException ex) {
41
+ throw new RuntimeException(ex);
42
+ }
43
+ validateJsonNode(node);
44
+ return new DataSourceImpl(model, (ObjectNode) node);
45
+ }
46
+
34
47
  public ConfigSource fromJsonFile(File file) throws IOException
35
48
  {
36
49
  try (FileInputStream is = new FileInputStream(file)) {
@@ -41,9 +54,14 @@ public class ConfigLoader
41
54
  public ConfigSource fromJson(InputStream stream) throws IOException
42
55
  {
43
56
  JsonNode node = new ObjectMapper().readTree(stream);
44
- if (!node.isObject()) {
45
- throw new RuntimeJsonMappingException("Expected object to load ConfigSource but got: "+node.getNodeType());
46
- }
57
+ validateJsonNode(node);
58
+ return new DataSourceImpl(model, (ObjectNode) node);
59
+ }
60
+
61
+ public ConfigSource fromYamlString(String string)
62
+ {
63
+ JsonNode node = objectToJson(new Yaml().load(string));
64
+ validateJsonNode(node);
47
65
  return new DataSourceImpl(model, (ObjectNode) node);
48
66
  }
49
67
 
@@ -56,13 +74,16 @@ public class ConfigLoader
56
74
 
57
75
  public ConfigSource fromYaml(InputStream stream) throws IOException
58
76
  {
59
- Yaml yaml = new Yaml();
60
- Object object = yaml.load(stream);
61
- JsonNode node = objectToJson(object);
77
+ JsonNode node = objectToJson(new Yaml().load(stream));
78
+ validateJsonNode(node);
79
+ return new DataSourceImpl(model, (ObjectNode) node);
80
+ }
81
+
82
+ private static void validateJsonNode(JsonNode node)
83
+ {
62
84
  if (!node.isObject()) {
63
85
  throw new RuntimeJsonMappingException("Expected object to load ConfigSource but got "+node);
64
86
  }
65
- return new DataSourceImpl(model, (ObjectNode) node);
66
87
  }
67
88
 
68
89
  @Deprecated
@@ -4,16 +4,13 @@ import java.util.List;
4
4
  import java.util.Map;
5
5
  import java.util.Iterator;
6
6
  import com.google.common.collect.ImmutableList;
7
- import com.fasterxml.jackson.core.JsonParser;
8
- import com.fasterxml.jackson.databind.ObjectMapper;
9
7
  import com.fasterxml.jackson.databind.JsonNode;
10
- import com.fasterxml.jackson.databind.JsonMappingException;
11
8
  import com.fasterxml.jackson.databind.node.ObjectNode;
12
9
  import com.fasterxml.jackson.databind.node.ArrayNode;
13
10
  import com.fasterxml.jackson.databind.node.JsonNodeFactory;
14
11
 
15
12
  public class DataSourceImpl
16
- implements ConfigSource, TaskSource, CommitReport, ConfigDiff
13
+ implements ConfigSource, TaskSource, TaskReport, /* Deprecated */ CommitReport, ConfigDiff
17
14
  {
18
15
  protected final ObjectNode data;
19
16
  protected final ModelManager model;
@@ -1,7 +1,6 @@
1
1
  package org.embulk.config;
2
2
 
3
3
  import java.io.IOException;
4
- import com.google.inject.Inject;
5
4
  import com.fasterxml.jackson.core.JsonGenerator;
6
5
  import com.fasterxml.jackson.core.JsonParser;
7
6
  import com.fasterxml.jackson.databind.module.SimpleModule;
@@ -13,13 +12,13 @@ import com.fasterxml.jackson.databind.DeserializationContext;
13
12
  import com.fasterxml.jackson.databind.JsonNode;
14
13
  import com.fasterxml.jackson.databind.JsonMappingException;
15
14
  import com.fasterxml.jackson.databind.node.ObjectNode;
16
- import com.fasterxml.jackson.module.guice.ObjectMapperModule;
17
15
 
18
16
  public class DataSourceSerDe
19
17
  {
20
18
  public static class SerDeModule
21
19
  extends SimpleModule
22
20
  {
21
+ @SuppressWarnings("deprecation")
23
22
  public SerDeModule(final ModelManager model)
24
23
  {
25
24
  // DataSourceImpl
@@ -34,7 +33,11 @@ public class DataSourceSerDe
34
33
  addSerializer(TaskSource.class, new DataSourceSerializer<TaskSource>());
35
34
  addDeserializer(TaskSource.class, new DataSourceDeserializer<TaskSource>(model));
36
35
 
37
- // CommitReport
36
+ // TaskReport
37
+ addSerializer(TaskReport.class, new DataSourceSerializer<TaskReport>());
38
+ addDeserializer(TaskReport.class, new DataSourceDeserializer<TaskReport>(model));
39
+
40
+ // CommitReport (Deprecated)
38
41
  addSerializer(CommitReport.class, new DataSourceSerializer<CommitReport>());
39
42
  addDeserializer(CommitReport.class, new DataSourceDeserializer<CommitReport>(model));
40
43
 
@@ -6,11 +6,9 @@ import com.google.inject.Inject;
6
6
  import com.google.inject.Injector;
7
7
  import com.google.common.base.Throwables;
8
8
  import com.fasterxml.jackson.core.JsonParser;
9
- import com.fasterxml.jackson.databind.Module;
10
9
  import com.fasterxml.jackson.databind.ObjectMapper;
11
10
  import com.fasterxml.jackson.databind.JsonNode;
12
11
  import com.fasterxml.jackson.databind.node.ObjectNode;
13
- import com.fasterxml.jackson.databind.JsonMappingException;
14
12
 
15
13
  public class ModelManager
16
14
  {
@@ -0,0 +1,29 @@
1
+ package org.embulk.config;
2
+
3
+ public interface TaskReport
4
+ extends DataSource
5
+ {
6
+ @Override
7
+ TaskReport getNested(String attrName);
8
+
9
+ @Override
10
+ TaskReport getNestedOrSetEmpty(String attrName);
11
+
12
+ @Override
13
+ TaskReport set(String attrName, Object v);
14
+
15
+ @Override
16
+ TaskReport setNested(String attrName, DataSource v);
17
+
18
+ @Override
19
+ TaskReport setAll(DataSource other);
20
+
21
+ @Override
22
+ TaskReport remove(String attrName);
23
+
24
+ @Override
25
+ TaskReport deepCopy();
26
+
27
+ @Override
28
+ TaskReport merge(DataSource other);
29
+ }
@@ -1,15 +1,12 @@
1
1
  package org.embulk.exec;
2
2
 
3
3
  import java.util.List;
4
- import java.util.Arrays;
5
4
  import java.util.concurrent.ExecutionException;
6
5
  import com.google.common.base.Optional;
7
6
  import com.google.common.collect.ImmutableList;
8
7
  import com.google.inject.Inject;
9
8
  import com.google.inject.Injector;
10
9
  import com.google.common.base.Throwables;
11
- import com.google.common.base.Predicates;
12
- import com.google.common.collect.Iterables;
13
10
  import org.embulk.config.Task;
14
11
  import org.embulk.config.Config;
15
12
  import org.embulk.config.ConfigDefault;
@@ -17,7 +14,7 @@ import org.embulk.config.ConfigSource;
17
14
  import org.embulk.config.ConfigException;
18
15
  import org.embulk.config.TaskSource;
19
16
  import org.embulk.config.ConfigDiff;
20
- import org.embulk.config.CommitReport;
17
+ import org.embulk.config.TaskReport;
21
18
  import org.embulk.plugin.PluginType;
22
19
  import org.embulk.spi.Schema;
23
20
  import org.embulk.spi.Exec;
@@ -132,7 +129,7 @@ public class BulkLoader
132
129
  public void initialize(int inputTaskCount, int outputTaskCount)
133
130
  {
134
131
  if (inputTaskStates != null || outputTaskStates != null) {
135
- // initialize is called twice if resume (by restoreResumedCommitReports and ExecutorPlugin.execute)
132
+ // initialize is called twice if resume (by restoreResumedTaskReports and ExecutorPlugin.execute)
136
133
  if (inputTaskStates.size() != inputTaskCount || outputTaskStates.size() != outputTaskCount) {
137
134
  throw new ConfigException(String.format(
138
135
  "input task count and output task (%d and %d) must be same with the first execution (%d and %d) whenre resumed",
@@ -213,38 +210,38 @@ public class BulkLoader
213
210
  this.inputConfigDiff = inputConfigDiff;
214
211
  }
215
212
 
216
- private List<Optional<CommitReport>> getInputCommitReports()
213
+ private List<Optional<TaskReport>> getInputTaskReports()
217
214
  {
218
- ImmutableList.Builder<Optional<CommitReport>> builder = ImmutableList.builder();
215
+ ImmutableList.Builder<Optional<TaskReport>> builder = ImmutableList.builder();
219
216
  for (TaskState inputTaskState : inputTaskStates) {
220
- builder.add(inputTaskState.getCommitReport());
217
+ builder.add(inputTaskState.getTaskReport());
221
218
  }
222
219
  return builder.build();
223
220
  }
224
221
 
225
- private List<Optional<CommitReport>> getOutputCommitReports()
222
+ private List<Optional<TaskReport>> getOutputTaskReports()
226
223
  {
227
- ImmutableList.Builder<Optional<CommitReport>> builder = ImmutableList.builder();
224
+ ImmutableList.Builder<Optional<TaskReport>> builder = ImmutableList.builder();
228
225
  for (TaskState outputTaskState : outputTaskStates) {
229
- builder.add(outputTaskState.getCommitReport());
226
+ builder.add(outputTaskState.getTaskReport());
230
227
  }
231
228
  return builder.build();
232
229
  }
233
230
 
234
- public List<CommitReport> getAllInputCommitReports()
231
+ public List<TaskReport> getAllInputTaskReports()
235
232
  {
236
- ImmutableList.Builder<CommitReport> builder = ImmutableList.builder();
233
+ ImmutableList.Builder<TaskReport> builder = ImmutableList.builder();
237
234
  for (TaskState inputTaskState : inputTaskStates) {
238
- builder.add(inputTaskState.getCommitReport().get());
235
+ builder.add(inputTaskState.getTaskReport().get());
239
236
  }
240
237
  return builder.build();
241
238
  }
242
239
 
243
- public List<CommitReport> getAllOutputCommitReports()
240
+ public List<TaskReport> getAllOutputTaskReports()
244
241
  {
245
- ImmutableList.Builder<CommitReport> builder = ImmutableList.builder();
242
+ ImmutableList.Builder<TaskReport> builder = ImmutableList.builder();
246
243
  for (TaskState outputTaskState : outputTaskStates) {
247
- builder.add(outputTaskState.getCommitReport().get());
244
+ builder.add(outputTaskState.getTaskReport().get());
248
245
  }
249
246
  return builder.build();
250
247
  }
@@ -323,7 +320,7 @@ public class BulkLoader
323
320
  exec.getSessionExecConfig(),
324
321
  inputTaskSource, outputTaskSource,
325
322
  first(schemas), executorSchema,
326
- getInputCommitReports(), getOutputCommitReports());
323
+ getInputTaskReports(), getOutputTaskReports());
327
324
  }
328
325
 
329
326
  public PartialExecutionException buildPartialExecuteException(Throwable cause, ExecSession exec)
@@ -442,24 +439,24 @@ public class BulkLoader
442
439
  BulkLoaderTask task = config.loadConfig(BulkLoaderTask.class);
443
440
  ProcessPluginSet plugins = new ProcessPluginSet(task); // TODO don't create filter plugins
444
441
 
445
- ImmutableList.Builder<CommitReport> successfulInputCommitReports = ImmutableList.builder();
446
- ImmutableList.Builder<CommitReport> successfulOutputCommitReports = ImmutableList.builder();
447
- for (Optional<CommitReport> inputCommitReport : resume.getInputCommitReports()) {
448
- if (inputCommitReport.isPresent()) {
449
- successfulInputCommitReports.add(inputCommitReport.get());
442
+ ImmutableList.Builder<TaskReport> successfulInputTaskReports = ImmutableList.builder();
443
+ ImmutableList.Builder<TaskReport> successfulOutputTaskReports = ImmutableList.builder();
444
+ for (Optional<TaskReport> inputTaskReport : resume.getInputTaskReports()) {
445
+ if (inputTaskReport.isPresent()) {
446
+ successfulInputTaskReports.add(inputTaskReport.get());
450
447
  }
451
448
  }
452
- for (Optional<CommitReport> outputCommitReport : resume.getOutputCommitReports()) {
453
- if (outputCommitReport.isPresent()) {
454
- successfulOutputCommitReports.add(outputCommitReport.get());
449
+ for (Optional<TaskReport> outputTaskReport : resume.getOutputTaskReports()) {
450
+ if (outputTaskReport.isPresent()) {
451
+ successfulOutputTaskReports.add(outputTaskReport.get());
455
452
  }
456
453
  }
457
454
 
458
455
  plugins.getInputPlugin().cleanup(resume.getInputTaskSource(), resume.getInputSchema(),
459
- resume.getInputCommitReports().size(), successfulInputCommitReports.build());
456
+ resume.getInputTaskReports().size(), successfulInputTaskReports.build());
460
457
 
461
458
  plugins.getOutputPlugin().cleanup(resume.getOutputTaskSource(), resume.getOutputSchema(),
462
- resume.getOutputCommitReports().size(), successfulOutputCommitReports.build());
459
+ resume.getOutputTaskReports().size(), successfulOutputTaskReports.build());
463
460
  }
464
461
 
465
462
  private ExecutorPlugin newExecutorPlugin(BulkLoaderTask task)
@@ -478,7 +475,7 @@ public class BulkLoader
478
475
  final LoaderState state = new LoaderState(Exec.getLogger(BulkLoader.class), plugins);
479
476
  try {
480
477
  ConfigDiff inputConfigDiff = plugins.getInputPlugin().transaction(task.getInputConfig(), new InputPlugin.Control() {
481
- public List<CommitReport> run(final TaskSource inputTask, final Schema inputSchema, final int inputTaskCount)
478
+ public List<TaskReport> run(final TaskSource inputTask, final Schema inputSchema, final int inputTaskCount)
482
479
  {
483
480
  state.setInputTaskSource(inputTask);
484
481
  Filters.transaction(plugins.getFilterPlugins(), task.getFilterConfigs(), inputSchema, new Filters.Control() {
@@ -491,7 +488,7 @@ public class BulkLoader
491
488
  {
492
489
  state.setExecutorSchema(executorSchema);
493
490
  ConfigDiff outputConfigDiff = plugins.getOutputPlugin().transaction(task.getOutputConfig(), executorSchema, outputTaskCount, new OutputPlugin.Control() {
494
- public List<CommitReport> run(final TaskSource outputTask)
491
+ public List<TaskReport> run(final TaskSource outputTask)
495
492
  {
496
493
  state.setOutputTaskSource(outputTask);
497
494
 
@@ -501,7 +498,7 @@ public class BulkLoader
501
498
  execute(task, executor, state);
502
499
  }
503
500
 
504
- return state.getAllOutputCommitReports();
501
+ return state.getAllOutputTaskReports();
505
502
  }
506
503
  });
507
504
  state.setOutputConfigDiff(outputConfigDiff);
@@ -509,7 +506,7 @@ public class BulkLoader
509
506
  });
510
507
  }
511
508
  });
512
- return state.getAllInputCommitReports();
509
+ return state.getAllInputTaskReports();
513
510
  }
514
511
  });
515
512
  state.setInputConfigDiff(inputConfigDiff);
@@ -539,8 +536,8 @@ public class BulkLoader
539
536
 
540
537
  final LoaderState state = new LoaderState(Exec.getLogger(BulkLoader.class), plugins);
541
538
  try {
542
- ConfigDiff inputConfigDiff = plugins.getInputPlugin().resume(resume.getInputTaskSource(), resume.getInputSchema(), resume.getInputCommitReports().size(), new InputPlugin.Control() {
543
- public List<CommitReport> run(final TaskSource inputTask, final Schema inputSchema, final int inputTaskCount)
539
+ ConfigDiff inputConfigDiff = plugins.getInputPlugin().resume(resume.getInputTaskSource(), resume.getInputSchema(), resume.getInputTaskReports().size(), new InputPlugin.Control() {
540
+ public List<TaskReport> run(final TaskSource inputTask, final Schema inputSchema, final int inputTaskCount)
544
541
  {
545
542
  // TODO validate inputTask?
546
543
  // TODO validate inputSchema
@@ -556,17 +553,17 @@ public class BulkLoader
556
553
  // TODO validate executorSchema
557
554
  state.setExecutorSchema(executorSchema);
558
555
  ConfigDiff outputConfigDiff = plugins.getOutputPlugin().resume(resume.getOutputTaskSource(), executorSchema, outputTaskCount, new OutputPlugin.Control() {
559
- public List<CommitReport> run(final TaskSource outputTask)
556
+ public List<TaskReport> run(final TaskSource outputTask)
560
557
  {
561
558
  // TODO validate outputTask?
562
559
  state.setOutputTaskSource(outputTask);
563
560
 
564
- restoreResumedCommitReports(resume, state);
561
+ restoreResumedTaskReports(resume, state);
565
562
  if (!state.isAllTasksCommitted()) {
566
563
  execute(task, executor, state);
567
564
  }
568
565
 
569
- return state.getAllOutputCommitReports();
566
+ return state.getAllOutputTaskReports();
570
567
  }
571
568
  });
572
569
  state.setOutputConfigDiff(outputConfigDiff);
@@ -574,7 +571,7 @@ public class BulkLoader
574
571
  });
575
572
  }
576
573
  });
577
- return state.getAllInputCommitReports();
574
+ return state.getAllInputTaskReports();
578
575
  }
579
576
  });
580
577
  state.setInputConfigDiff(inputConfigDiff);
@@ -595,29 +592,29 @@ public class BulkLoader
595
592
  }
596
593
  }
597
594
 
598
- private static void restoreResumedCommitReports(ResumeState resume, LoaderState state)
595
+ private static void restoreResumedTaskReports(ResumeState resume, LoaderState state)
599
596
  {
600
- int inputTaskCount = resume.getInputCommitReports().size();
601
- int outputTaskCount = resume.getOutputCommitReports().size();
597
+ int inputTaskCount = resume.getInputTaskReports().size();
598
+ int outputTaskCount = resume.getOutputTaskReports().size();
602
599
 
603
600
  state.initialize(inputTaskCount, outputTaskCount);
604
601
 
605
602
  for (int i=0; i < inputTaskCount; i++) {
606
- Optional<CommitReport> report = resume.getInputCommitReports().get(i);
603
+ Optional<TaskReport> report = resume.getInputTaskReports().get(i);
607
604
  if (report.isPresent()) {
608
605
  TaskState task = state.getInputTaskState(i);
609
606
  task.start();
610
- task.setCommitReport(report.get());
607
+ task.setTaskReport(report.get());
611
608
  task.finish();
612
609
  }
613
610
  }
614
611
 
615
612
  for (int i=0; i < outputTaskCount; i++) {
616
- Optional<CommitReport> report = resume.getOutputCommitReports().get(i);
613
+ Optional<TaskReport> report = resume.getOutputTaskReports().get(i);
617
614
  if (report.isPresent()) {
618
615
  TaskState task = state.getOutputTaskState(i);
619
616
  task.start();
620
- task.setCommitReport(report.get());
617
+ task.setTaskReport(report.get());
621
618
  task.finish();
622
619
  }
623
620
  }
@@ -3,7 +3,6 @@ package org.embulk.exec;
3
3
  import org.slf4j.ILoggerFactory;
4
4
  import com.google.common.base.Preconditions;
5
5
  import com.google.inject.Module;
6
- import com.google.inject.name.Names;
7
6
  import com.google.inject.Binder;
8
7
  import com.google.inject.Scopes;
9
8
  import com.fasterxml.jackson.module.guice.ObjectMapperModule;
@@ -7,20 +7,17 @@ import java.util.concurrent.ExecutionException;
7
7
  import com.google.common.collect.ImmutableList;
8
8
  import com.google.common.base.Throwables;
9
9
  import com.google.inject.Inject;
10
- import com.google.inject.Injector;
11
10
  import com.google.inject.Binder;
12
11
  import com.google.inject.multibindings.Multibinder;
13
12
  import org.embulk.plugin.PluginType;
14
13
  import org.embulk.config.Config;
15
14
  import org.embulk.config.ConfigDefault;
16
15
  import org.embulk.config.ConfigDiff;
17
- import org.embulk.config.DataSource;
18
16
  import org.embulk.config.Task;
19
17
  import org.embulk.config.TaskSource;
20
18
  import org.embulk.config.ConfigSource;
21
- import org.embulk.config.CommitReport;
19
+ import org.embulk.config.TaskReport;
22
20
  import org.embulk.spi.Schema;
23
- import org.embulk.spi.Column;
24
21
  import org.embulk.spi.Page;
25
22
  import org.embulk.spi.Buffer;
26
23
  import org.embulk.spi.InputPlugin;
@@ -148,7 +145,7 @@ public class GuessExecutor
148
145
  ConfigDiff guessed;
149
146
  try {
150
147
  input.transaction(guessInputConfig, new InputPlugin.Control() {
151
- public List<CommitReport> run(TaskSource inputTaskSource, Schema schema, int taskCount)
148
+ public List<TaskReport> run(TaskSource inputTaskSource, Schema schema, int taskCount)
152
149
  {
153
150
  if (taskCount == 0) {
154
151
  throw new NoSampleException("No input files to guess");
@@ -212,7 +209,7 @@ public class GuessExecutor
212
209
 
213
210
  public void cleanup(TaskSource taskSource,
214
211
  int taskCount,
215
- List<CommitReport> successCommitReports)
212
+ List<TaskReport> successTaskReports)
216
213
  {
217
214
  if (buffer != null) {
218
215
  buffer.release();
@@ -257,7 +254,7 @@ public class GuessExecutor
257
254
  public void abort() { }
258
255
 
259
256
  @Override
260
- public CommitReport commit()
257
+ public TaskReport commit()
261
258
  {
262
259
  return null;
263
260
  }