embulk 0.8.18-java → 0.8.19-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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -0
  3. data/build.gradle +10 -3
  4. data/embulk-cli/build.gradle +2 -0
  5. data/embulk-cli/src/main/bat/selfrun.bat +98 -0
  6. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkExample.java +82 -0
  7. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkMigrate.java +458 -0
  8. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkNew.java +419 -0
  9. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkSelfUpdate.java +248 -0
  10. data/embulk-cli/src/main/sh/selfrun.sh +0 -103
  11. data/embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java +158 -143
  12. data/embulk-core/build.gradle +2 -2
  13. data/embulk-core/src/main/java/org/embulk/EmbulkVersion.java +109 -0
  14. data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +11 -0
  15. data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +29 -3
  16. data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +47 -13
  17. data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +6 -3
  18. data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +385 -64
  19. data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +2 -1
  20. data/embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java +62 -0
  21. data/embulk-docs/src/built-in.rst +59 -21
  22. data/embulk-docs/src/customization.rst +8 -8
  23. data/embulk-docs/src/developers/index.rst +45 -0
  24. data/embulk-docs/src/index.rst +11 -7
  25. data/embulk-docs/src/recipe.rst +1 -1
  26. data/embulk-docs/src/recipe/{scheduled-csv-load-to-elasticsearch-kibana4.rst → scheduled-csv-load-to-elasticsearch-kibana5.rst} +26 -24
  27. data/embulk-docs/src/release.rst +1 -0
  28. data/embulk-docs/src/release/release-0.4.0.rst +1 -1
  29. data/embulk-docs/src/release/release-0.5.0.rst +1 -1
  30. data/embulk-docs/src/release/release-0.6.0.rst +1 -1
  31. data/embulk-docs/src/release/release-0.6.20.rst +1 -1
  32. data/embulk-docs/src/release/release-0.8.19.rst +43 -0
  33. data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +2 -2
  34. data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +30 -1
  35. data/embulk-standards/src/test/java/org/embulk/standards/guess/TestCsvGuessPlugin.java +10 -0
  36. data/embulk-standards/src/test/java/org/embulk/standards/preview/TestFilePreview.java +73 -0
  37. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records.csv +5 -0
  38. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_guessed.yml +2 -0
  39. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_seed.yml +1 -0
  40. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes.csv +5 -0
  41. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_exec.yml +1 -0
  42. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_load.yml +19 -0
  43. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_previewed.csv +1 -0
  44. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple.csv +5 -0
  45. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_load.yml +19 -0
  46. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_previewed.csv +4 -0
  47. data/embulk-test/src/main/java/org/embulk/test/PreviewResultInputPlugin.java +65 -0
  48. data/embulk-test/src/main/java/org/embulk/test/TestingBulkLoader.java +5 -0
  49. data/embulk-test/src/main/java/org/embulk/test/TestingEmbulk.java +59 -2
  50. data/embulk.gemspec +2 -1
  51. data/lib/embulk/command/embulk_run.rb +11 -49
  52. data/lib/embulk/data/new/README.md.vm +106 -0
  53. data/lib/embulk/data/new/{gitignore.erb → gitignore.vm} +3 -3
  54. data/lib/embulk/data/new/java/{build.gradle.erb → build.gradle.vm} +8 -8
  55. data/lib/embulk/data/new/java/{decoder.java.erb → decoder.java.vm} +6 -4
  56. data/lib/embulk/data/new/java/{encoder.java.erb → encoder.java.vm} +7 -5
  57. data/lib/embulk/data/new/java/{file_input.java.erb → file_input.java.vm} +9 -7
  58. data/lib/embulk/data/new/java/{file_output.java.erb → file_output.java.vm} +7 -5
  59. data/lib/embulk/data/new/java/{filter.java.erb → filter.java.vm} +4 -3
  60. data/lib/embulk/data/new/java/{formatter.java.erb → formatter.java.vm} +5 -4
  61. data/lib/embulk/data/new/java/{input.java.erb → input.java.vm} +6 -4
  62. data/lib/embulk/data/new/java/{output.java.erb → output.java.vm} +7 -5
  63. data/lib/embulk/data/new/java/{parser.java.erb → parser.java.vm} +5 -4
  64. data/lib/embulk/data/new/java/plugin_loader.rb.vm +3 -0
  65. data/lib/embulk/data/new/java/test.java.vm +5 -0
  66. data/lib/embulk/data/new/ruby/decoder_guess.rb.vm +25 -0
  67. data/lib/embulk/data/new/ruby/{filter.rb.erb → filter.rb.vm} +2 -2
  68. data/lib/embulk/data/new/ruby/{formatter.rb.erb → formatter.rb.vm} +2 -2
  69. data/lib/embulk/data/new/ruby/gemspec.vm +20 -0
  70. data/lib/embulk/data/new/ruby/{input.rb.erb → input.rb.vm} +10 -10
  71. data/lib/embulk/data/new/ruby/{output.rb.erb → output.rb.vm} +7 -7
  72. data/lib/embulk/data/new/ruby/{parser.rb.erb → parser.rb.vm} +2 -2
  73. data/lib/embulk/data/new/ruby/parser_guess.rb.vm +65 -0
  74. data/lib/embulk/guess/csv.rb +5 -0
  75. data/lib/embulk/version.rb +22 -1
  76. metadata +55 -35
  77. data/lib/embulk/command/embulk_example.rb +0 -33
  78. data/lib/embulk/command/embulk_generate_bin.rb +0 -62
  79. data/lib/embulk/command/embulk_migrate_plugin.rb +0 -244
  80. data/lib/embulk/command/embulk_new_plugin.rb +0 -126
  81. data/lib/embulk/command/embulk_selfupdate.rb +0 -121
  82. data/lib/embulk/data/new/README.md.erb +0 -111
  83. data/lib/embulk/data/new/java/plugin_loader.rb.erb +0 -3
  84. data/lib/embulk/data/new/java/test.java.erb +0 -5
  85. data/lib/embulk/data/new/ruby/decoder_guess.rb.erb +0 -25
  86. data/lib/embulk/data/new/ruby/gemspec.erb +0 -20
  87. data/lib/embulk/data/new/ruby/parser_guess.rb.erb +0 -65
@@ -1,9 +1,10 @@
1
+ # TODO(v2)[#566]: Remove this embulk.gemspec.
1
2
  $LOAD_PATH.push File.expand_path("../lib", __FILE__)
2
3
  require 'embulk/version'
3
4
 
4
5
  Gem::Specification.new do |gem|
5
6
  gem.name = "embulk"
6
- gem.version = Embulk::VERSION
7
+ gem.version = Embulk::VERSION_INTERNAL
7
8
 
8
9
  gem.summary = "Embulk, a plugin-based parallel bulk data loader"
9
10
  gem.description = "Embulk is an open-source, plugin-based bulk data loader to scale and simplify data management across heterogeneous data stores. It can collect and ship any kinds of data in high throughput with transaction control."
@@ -11,7 +11,7 @@ module Embulk
11
11
  i = argv.find_index {|arg| arg !~ /^\-/ }
12
12
  unless i
13
13
  if argv.include?('--version')
14
- puts "embulk #{Embulk::VERSION}"
14
+ puts "embulk #{org.embulk.EmbulkVersion::VERSION}"
15
15
  system_exit_success
16
16
  end
17
17
  usage nil
@@ -21,9 +21,9 @@ module Embulk
21
21
  require 'java'
22
22
  require 'optparse'
23
23
  op = OptionParser.new
24
- op.version = Embulk::VERSION
24
+ op.version = org.embulk.EmbulkVersion::VERSION
25
25
 
26
- puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S.%3N %z")}: Embulk v#{Embulk::VERSION}"
26
+ puts "#{Time.now.strftime("%Y-%m-%d %H:%M:%S.%3N %z")}: Embulk v#{org.embulk.EmbulkVersion::VERSION}"
27
27
 
28
28
  plugin_paths = []
29
29
  load_paths = []
@@ -226,57 +226,19 @@ examples:
226
226
 
227
227
  case subcmd
228
228
  when :example
229
- require 'embulk/command/embulk_example'
230
- path = ARGV[0] || "embulk-example"
231
- puts "Creating #{path} directory..."
232
- Embulk.create_example(path)
233
- puts ""
234
- puts "Run following subcommands to try embulk:"
235
- puts ""
236
- puts " 1. embulk guess #{File.join(path, 'seed.yml')} -o config.yml"
237
- puts " 2. embulk preview config.yml"
238
- puts " 3. embulk run config.yml"
239
- puts ""
229
+ (org.embulk.cli.EmbulkExample.new).createExample(ARGV[0] || "embulk-example")
240
230
 
241
231
  when :new
242
- lang_cate = ARGV[0]
243
- name = ARGV[1]
244
-
245
- language, category = case lang_cate
246
- when "java-input" then [:java, :input]
247
- when "java-output" then [:java, :output]
248
- when "java-filter" then [:java, :filter]
249
- when "java-file-input" then [:java, :file_input]
250
- when "java-file-output" then [:java, :file_output]
251
- when "java-parser" then [:java, :parser]
252
- when "java-formatter" then [:java, :formatter]
253
- when "java-decoder" then [:java, :decoder]
254
- when "java-encoder" then [:java, :encoder]
255
- when "ruby-input" then [:ruby, :input]
256
- when "ruby-output" then [:ruby, :output]
257
- when "ruby-filter" then [:ruby, :filter]
258
- when "ruby-file-input" then raise "ruby-file-input is not implemented yet. See #21 on github." #[:ruby, :file_input]
259
- when "ruby-file-output" then raise "ruby-file-output is not implemented yet. See #22 on github." #[:ruby, :file_output]
260
- when "ruby-parser" then [:ruby, :parser]
261
- when "ruby-formatter" then [:ruby, :formatter]
262
- when "ruby-decoder" then raise "ruby-decoder is not implemented yet. See #31 on github." #[:ruby, :decoder]
263
- when "ruby-encoder" then raise "ruby-decoder is not implemented yet. See #32 on github." #[:ruby, :encoder]
264
- else
265
- usage_op op, "Unknown category '#{lang_cate}'"
266
- end
267
-
268
- require 'embulk/command/embulk_new_plugin'
269
- Embulk.new_plugin(name, language, category)
232
+ (org.embulk.cli.EmbulkNew.new(ARGV[0], ARGV[1], org.embulk.EmbulkVersion::VERSION)).newPlugin()
270
233
 
271
234
  when :migrate
272
- path = ARGV[0]
273
- require 'embulk/command/embulk_migrate_plugin'
274
- Embulk.migrate_plugin(path)
235
+ (org.embulk.cli.EmbulkMigrate.new).migratePlugin(ARGV[0], org.embulk.EmbulkVersion::VERSION)
275
236
 
276
237
  when :selfupdate
277
- require 'embulk/command/embulk_selfupdate'
278
- options[:version] = ARGV[0]
279
- Embulk.selfupdate(options)
238
+ (org.embulk.cli.EmbulkSelfUpdate.new).updateSelf(org.embulk.EmbulkVersion::VERSION,
239
+ ARGV[0],
240
+ __FILE__,
241
+ options[:force])
280
242
 
281
243
  when :mkbundle
282
244
  new_bundle(argv[0], options[:bundle_path])
@@ -399,7 +361,7 @@ examples:
399
361
  end
400
362
 
401
363
  def self.usage(message)
402
- STDERR.puts "Embulk v#{Embulk::VERSION}"
364
+ STDERR.puts "Embulk v#{org.embulk.EmbulkVersion::VERSION}"
403
365
  STDERR.puts "Usage: embulk [-vm-options] <command> [--options]"
404
366
  STDERR.puts "Commands:"
405
367
  STDERR.puts " mkbundle <directory> # create a new plugin bundle environment."
@@ -0,0 +1,106 @@
1
+ #[[#]]# ${displayName} ${displayCategory} plugin for Embulk
2
+
3
+ #if (${language} == "ruby")
4
+ TODO: Write short description here and ${fullProjectName}.gemspec file.
5
+ #elseif (${language} == "java")
6
+ TODO: Write short description here and build.gradle file.
7
+ #else
8
+ TODO: Write short description here.
9
+ #end
10
+
11
+ #[[##]]# Overview
12
+
13
+ #if (${category} == "output" || ${category} == "file_output")
14
+ * **Plugin type**: ${displayCategory}
15
+ * **Load all or nothing**: no
16
+ * **Resume supported**: no
17
+ * **Cleanup supported**: yes
18
+ #elseif (${category} == "file_input")
19
+ * **Plugin type**: ${displayCategory}
20
+ * **Resume supported**: yes
21
+ * **Cleanup supported**: yes
22
+ #elseif (${category} == "input")
23
+ * **Plugin type**: ${displayCategory}
24
+ * **Resume supported**: yes
25
+ * **Cleanup supported**: yes
26
+ * **Guess supported**: no
27
+ #elseif (${category} == "parser" || ${category} == "decoder")
28
+ * **Plugin type**: ${displayCategory}
29
+ * **Guess supported**: no
30
+ #else
31
+ * **Plugin type**: ${displayCategory}
32
+ #end
33
+
34
+ #[[##]]# Configuration
35
+
36
+ - **option1**: description (integer, required)
37
+ - **option2**: description (string, default: `"myvalue"`)
38
+ - **option3**: description (string, default: `null`)
39
+
40
+ #[[##]]# Example
41
+
42
+ ```yaml
43
+ #if (${category} == "input" || ${category} == "file_input")
44
+ in:
45
+ type: ${name}
46
+ option1: example1
47
+ option2: example2
48
+ #elseif (${category} == "output" || ${category} == "file_output")
49
+ out:
50
+ type: ${name}
51
+ option1: example1
52
+ option2: example2
53
+ #elseif (${category} == "filter")
54
+ filters:
55
+ - type: ${name}
56
+ option1: example1
57
+ option2: example2
58
+ #elseif (${category} == "parser")
59
+ in:
60
+ type: any file input plugin type
61
+ parser:
62
+ type: ${name}
63
+ option1: example1
64
+ option2: example2
65
+ #elseif (${category} == "formatter")
66
+ out:
67
+ type: any output input plugin type
68
+ formatter:
69
+ type: ${name}
70
+ option1: example1
71
+ option2: example2
72
+ #elseif (${category} == "decoder")
73
+ in:
74
+ type: any output input plugin type
75
+ decoders:
76
+ - type: ${name}
77
+ option1: example1
78
+ option2: example2
79
+ #elseif (${category} == "encoder")
80
+ out:
81
+ type: any output input plugin type
82
+ encoders:
83
+ - type: ${name}
84
+ option1: example1
85
+ option2: example2
86
+ #end
87
+ ```
88
+
89
+ #if (${category} == "parser" || ${category} == "decoder")
90
+ (If guess supported) you don't have to write `${category}:` section in the configuration file. After writing `in:` section, you can let embulk guess `${category}:` section using this command:
91
+
92
+ ```
93
+ $ embulk gem install ${fullProjectName}
94
+ $ embulk guess -g ${name} config.yml -o guessed.yml
95
+ ```
96
+ #end
97
+
98
+ #[[##]]# Build
99
+
100
+ ```
101
+ #if (${language} == "ruby")
102
+ $ rake
103
+ #elseif (${language} == "java")
104
+ $ ./gradlew gem # -t to watch change of files and rebuild continuously
105
+ #end
106
+ ```
@@ -1,7 +1,7 @@
1
1
  *~
2
2
  /pkg/
3
3
  /tmp/
4
- %if language == :java
4
+ #if (${language} == "java")
5
5
  *.gemspec
6
6
  .gradle/
7
7
  /classpath/
@@ -11,7 +11,7 @@ build/
11
11
  /.metadata/
12
12
  .classpath
13
13
  .project
14
- %elsif language == :ruby
14
+ #elseif (${language} == "ruby")
15
15
  /.bundle/
16
16
  /Gemfile.lock
17
- %end
17
+ #end
@@ -19,8 +19,8 @@ sourceCompatibility = 1.7
19
19
  targetCompatibility = 1.7
20
20
 
21
21
  dependencies {
22
- compile "org.embulk:embulk-core:<%= Embulk::VERSION %>"
23
- provided "org.embulk:embulk-core:<%= Embulk::VERSION %>"
22
+ compile "org.embulk:embulk-core:${embulkVersion}"
23
+ provided "org.embulk:embulk-core:${embulkVersion}"
24
24
  // compile "YOUR_JAR_DEPENDENCY_GROUP:YOUR_JAR_DEPENDENCY_MODULE:YOUR_JAR_DEPENDENCY_VERSION"
25
25
  testCompile "junit:junit:4.+"
26
26
  }
@@ -63,7 +63,7 @@ task gemPush(type: JRubyExec, dependsOn: ["gem"]) {
63
63
  task "package"(dependsOn: ["gemspec", "classpath"]) {
64
64
  doLast {
65
65
  println "> Build succeeded."
66
- println "> You can run embulk with '-L ${file(".").absolutePath}' argument."
66
+ println "> You can run embulk with ${argumentToRunEmbulkJava} argument."
67
67
  }
68
68
  }
69
69
 
@@ -75,12 +75,12 @@ task gemspec {
75
75
  Gem::Specification.new do |spec|
76
76
  spec.name = "${project.name}"
77
77
  spec.version = "${project.version}"
78
- spec.authors = [<%= author.dump %>]
79
- spec.summary = %[<%= display_name %> <%= display_category %> plugin for Embulk]
80
- spec.description = %[<%= description %>]
81
- spec.email = [<%= email.dump %>]
78
+ spec.authors = ["${author}"]
79
+ spec.summary = %[${displayName} ${displayCategory} plugin for Embulk]
80
+ spec.description = %[${description}]
81
+ spec.email = ["${email}"]
82
82
  spec.licenses = ["MIT"]
83
- # TODO set this: spec.homepage = <%= "https://github.com/#{email[/([^@]*)/]}/#{full_project_name}".dump %>
83
+ # TODO set this: spec.homepage = "https://github.com/${expectedGitHubAccount}/${fullProjectName}"
84
84
 
85
85
  spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
86
86
  spec.test_files = spec.files.grep(%r"^(test|spec)/")
@@ -1,21 +1,23 @@
1
- package <%= java_package_name %>;
1
+ package ${javaPackageName};
2
2
 
3
3
  import java.io.InputStream;
4
4
  import java.io.IOException;
5
+
5
6
  import com.google.common.base.Optional;
7
+
6
8
  import org.embulk.config.Config;
7
9
  import org.embulk.config.ConfigDefault;
8
10
  import org.embulk.config.ConfigInject;
9
11
  import org.embulk.config.ConfigSource;
10
12
  import org.embulk.config.Task;
11
13
  import org.embulk.config.TaskSource;
14
+ import org.embulk.spi.BufferAllocator;
12
15
  import org.embulk.spi.DecoderPlugin;
13
16
  import org.embulk.spi.FileInput;
14
- import org.embulk.spi.BufferAllocator;
15
17
  import org.embulk.spi.util.FileInputInputStream;
16
18
  import org.embulk.spi.util.InputStreamFileInput;
17
19
 
18
- public class <%= java_class_name %>
20
+ public class ${javaClassName}
19
21
  implements DecoderPlugin
20
22
  {
21
23
  public interface PluginTask
@@ -53,7 +55,7 @@ public class <%= java_class_name %>
53
55
  final PluginTask task = taskSource.loadTask(PluginTask.class);
54
56
 
55
57
  // Write your code here :)
56
- throw new UnsupportedOperationException("<%= java_class_name %>.open method is not implemented yet");
58
+ throw new UnsupportedOperationException("${javaClassName}.open method is not implemented yet");
57
59
 
58
60
  // If expect InputStream, you can use this code:
59
61
 
@@ -1,21 +1,23 @@
1
- package <%= java_package_name %>;
1
+ package ${javaPackageName};
2
2
 
3
- import java.io.OutputStream;
4
3
  import java.io.IOException;
4
+ import java.io.OutputStream;
5
+
5
6
  import com.google.common.base.Optional;
7
+
6
8
  import org.embulk.config.Config;
7
9
  import org.embulk.config.ConfigDefault;
8
10
  import org.embulk.config.ConfigInject;
9
11
  import org.embulk.config.ConfigSource;
10
12
  import org.embulk.config.Task;
11
13
  import org.embulk.config.TaskSource;
14
+ import org.embulk.spi.BufferAllocator;
12
15
  import org.embulk.spi.EncoderPlugin;
13
16
  import org.embulk.spi.FileOutput;
14
- import org.embulk.spi.BufferAllocator;
15
17
  import org.embulk.spi.util.FileOutputOutputStream;
16
18
  import org.embulk.spi.util.OutputStreamFileOutput;
17
19
 
18
- public class <%= java_class_name %>
20
+ public class ${javaClassName}
19
21
  implements EncoderPlugin
20
22
  {
21
23
  public interface PluginTask
@@ -53,7 +55,7 @@ public class <%= java_class_name %>
53
55
  final PluginTask task = taskSource.loadTask(PluginTask.class);
54
56
 
55
57
  // Write your code here :)
56
- throw new UnsupportedOperationException("<%= java_class_name %>.open method is not implemented yet");
58
+ throw new UnsupportedOperationException("${javaClassName}.open method is not implemented yet");
57
59
 
58
60
  // If expect OutputStream, you can use this code:
59
61
 
@@ -1,24 +1,26 @@
1
- package <%= java_package_name %>;
1
+ package ${javaPackageName};
2
2
 
3
- import java.util.List;
4
3
  import java.util.ArrayList;
4
+ import java.util.List;
5
+
5
6
  import com.google.common.base.Optional;
6
7
  import com.google.common.collect.ImmutableList;
7
- import org.embulk.config.TaskReport;
8
+
8
9
  import org.embulk.config.Config;
9
10
  import org.embulk.config.ConfigDefault;
10
- import org.embulk.config.ConfigInject;
11
11
  import org.embulk.config.ConfigDiff;
12
+ import org.embulk.config.ConfigInject;
12
13
  import org.embulk.config.ConfigSource;
13
14
  import org.embulk.config.Task;
15
+ import org.embulk.config.TaskReport;
14
16
  import org.embulk.config.TaskSource;
17
+ import org.embulk.spi.BufferAllocator;
15
18
  import org.embulk.spi.Exec;
16
19
  import org.embulk.spi.FileInputPlugin;
17
- import org.embulk.spi.BufferAllocator;
18
20
  import org.embulk.spi.TransactionalFileInput;
19
21
  import org.embulk.spi.util.InputStreamTransactionalFileInput;
20
22
 
21
- public class <%= java_class_name %>
23
+ public class ${javaClassName}
22
24
  implements FileInputPlugin
23
25
  {
24
26
  public interface PluginTask
@@ -117,7 +119,7 @@ public class <%= java_class_name %>
117
119
  final PluginTask task = taskSource.loadTask(PluginTask.class);
118
120
 
119
121
  // Write your code here :)
120
- throw new UnsupportedOperationException("<%= java_class_name %>.open method is not implemented yet");
122
+ throw new UnsupportedOperationException("${javaClassName}.open method is not implemented yet");
121
123
 
122
124
  // if you expect InputStream, you can use this code:
123
125
 
@@ -1,19 +1,21 @@
1
- package <%= java_package_name %>;
1
+ package ${javaPackageName};
2
2
 
3
3
  import java.util.List;
4
+
4
5
  import com.google.common.base.Optional;
5
- import org.embulk.config.TaskReport;
6
+
6
7
  import org.embulk.config.Config;
7
8
  import org.embulk.config.ConfigDefault;
8
9
  import org.embulk.config.ConfigDiff;
9
10
  import org.embulk.config.ConfigSource;
10
11
  import org.embulk.config.Task;
12
+ import org.embulk.config.TaskReport;
11
13
  import org.embulk.config.TaskSource;
12
14
  import org.embulk.spi.Exec;
13
15
  import org.embulk.spi.FileOutputPlugin;
14
16
  import org.embulk.spi.TransactionalFileOutput;
15
17
 
16
- public class <%= java_class_name %>
18
+ public class ${javaClassName}
17
19
  implements FileOutputPlugin
18
20
  {
19
21
  public interface PluginTask
@@ -69,7 +71,7 @@ public class <%= java_class_name %>
69
71
  int taskCount,
70
72
  FileOutputPlugin.Control control)
71
73
  {
72
- throw new UnsupportedOperationException("<%= name %> output plugin does not support resuming");
74
+ throw new UnsupportedOperationException("${name} output plugin does not support resuming");
73
75
  }
74
76
 
75
77
  @Override
@@ -85,7 +87,7 @@ public class <%= java_class_name %>
85
87
  PluginTask task = taskSource.loadTask(PluginTask.class);
86
88
 
87
89
  // Write your code here :)
88
- throw new UnsupportedOperationException("<%= java_class_name %>.open method is not implemented yet");
90
+ throw new UnsupportedOperationException("${javaClassName}.open method is not implemented yet");
89
91
 
90
92
  // See LocalFileOutputPlugin as an example implementation:
91
93
  // https://github.com/embulk/embulk/blob/master/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java
@@ -1,6 +1,7 @@
1
- package <%= java_package_name %>;
1
+ package ${javaPackageName};
2
2
 
3
3
  import com.google.common.base.Optional;
4
+
4
5
  import org.embulk.config.Config;
5
6
  import org.embulk.config.ConfigDefault;
6
7
  import org.embulk.config.ConfigDiff;
@@ -12,7 +13,7 @@ import org.embulk.spi.FilterPlugin;
12
13
  import org.embulk.spi.PageOutput;
13
14
  import org.embulk.spi.Schema;
14
15
 
15
- public class <%= java_class_name %>
16
+ public class ${javaClassName}
16
17
  implements FilterPlugin
17
18
  {
18
19
  public interface PluginTask
@@ -51,6 +52,6 @@ public class <%= java_class_name %>
51
52
  PluginTask task = taskSource.loadTask(PluginTask.class);
52
53
 
53
54
  // Write your code here :)
54
- throw new UnsupportedOperationException("<%= java_class_name %>.open method is not implemented yet");
55
+ throw new UnsupportedOperationException("${javaClassName}.open method is not implemented yet");
55
56
  }
56
57
  }