embulk 0.8.38-java → 0.10.27-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 (603) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +1 -1
  3. data/LICENSE +202 -0
  4. data/embulk.gemspec +34 -33
  5. data/lib/embulk.rb +5 -61
  6. data/lib/embulk/buffer.rb +1 -2
  7. data/lib/embulk/gem_version.rb +3 -0
  8. data/lib/embulk/guess/charset.rb +2 -11
  9. data/lib/embulk/java/bootstrap.rb +0 -1
  10. data/lib/embulk/java_plugin.rb +9 -1
  11. data/lib/embulk/logger.rb +2 -1
  12. data/lib/embulk/page_builder.rb +2 -2
  13. data/lib/embulk/plugin.rb +2 -2
  14. data/lib/embulk/schema.rb +3 -4
  15. data/lib/embulk/version.rb +43 -19
  16. metadata +23 -761
  17. data/.gitignore +0 -15
  18. data/.ruby-version +0 -1
  19. data/.travis.yml +0 -28
  20. data/COPYING +0 -14
  21. data/Gemfile.lock +0 -30
  22. data/README.md +0 -229
  23. data/Rakefile +0 -26
  24. data/appveyor.yml +0 -28
  25. data/bin/embulk +0 -139
  26. data/build.gradle +0 -419
  27. data/embulk-cli/build.gradle +0 -9
  28. data/embulk-cli/src/main/bat/selfrun.bat +0 -107
  29. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkArguments.java +0 -54
  30. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkCommandLine.java +0 -227
  31. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkCommandLineException.java +0 -25
  32. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkExample.java +0 -86
  33. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkMigrate.java +0 -480
  34. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkNew.java +0 -419
  35. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkRun.java +0 -786
  36. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkSelfUpdate.java +0 -235
  37. data/embulk-cli/src/main/java/org/embulk/cli/EmbulkSubcommand.java +0 -47
  38. data/embulk-cli/src/main/java/org/embulk/cli/Main.java +0 -31
  39. data/embulk-cli/src/main/java/org/embulk/cli/parse/AbstractHelpLineDefinition.java +0 -15
  40. data/embulk-cli/src/main/java/org/embulk/cli/parse/CliHelpFormatterWithHelpMessages.java +0 -141
  41. data/embulk-cli/src/main/java/org/embulk/cli/parse/CliOptionsWithHelpMessages.java +0 -45
  42. data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineHelpRequired.java +0 -10
  43. data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineParseException.java +0 -25
  44. data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineParser.java +0 -187
  45. data/embulk-cli/src/main/java/org/embulk/cli/parse/HelpMessageAsCliOption.java +0 -36
  46. data/embulk-cli/src/main/java/org/embulk/cli/parse/HelpMessageLineDefinition.java +0 -20
  47. data/embulk-cli/src/main/java/org/embulk/cli/parse/OptionBehavior.java +0 -39
  48. data/embulk-cli/src/main/java/org/embulk/cli/parse/OptionDefinition.java +0 -120
  49. data/embulk-cli/src/main/sh/selfrun.sh +0 -60
  50. data/embulk-cli/src/test/java/org/embulk/cli/DummyMain.java +0 -23
  51. data/embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java +0 -296
  52. data/embulk-core/build.gradle +0 -83
  53. data/embulk-core/src/main/java/org/embulk/EmbulkEmbed.java +0 -321
  54. data/embulk-core/src/main/java/org/embulk/EmbulkRunner.java +0 -531
  55. data/embulk-core/src/main/java/org/embulk/EmbulkService.java +0 -78
  56. data/embulk-core/src/main/java/org/embulk/EmbulkSetup.java +0 -49
  57. data/embulk-core/src/main/java/org/embulk/EmbulkVersion.java +0 -109
  58. data/embulk-core/src/main/java/org/embulk/command/PreviewPrinter.java +0 -87
  59. data/embulk-core/src/main/java/org/embulk/command/TablePreviewPrinter.java +0 -107
  60. data/embulk-core/src/main/java/org/embulk/command/VerticalPreviewPrinter.java +0 -47
  61. data/embulk-core/src/main/java/org/embulk/config/CommitReport.java +0 -36
  62. data/embulk-core/src/main/java/org/embulk/config/Config.java +0 -15
  63. data/embulk-core/src/main/java/org/embulk/config/ConfigDefault.java +0 -15
  64. data/embulk-core/src/main/java/org/embulk/config/ConfigDiff.java +0 -32
  65. data/embulk-core/src/main/java/org/embulk/config/ConfigException.java +0 -26
  66. data/embulk-core/src/main/java/org/embulk/config/ConfigInject.java +0 -14
  67. data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +0 -149
  68. data/embulk-core/src/main/java/org/embulk/config/ConfigSource.java +0 -34
  69. data/embulk-core/src/main/java/org/embulk/config/DataSource.java +0 -41
  70. data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +0 -243
  71. data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +0 -84
  72. data/embulk-core/src/main/java/org/embulk/config/GenericTypeReference.java +0 -20
  73. data/embulk-core/src/main/java/org/embulk/config/ModelManager.java +0 -123
  74. data/embulk-core/src/main/java/org/embulk/config/Task.java +0 -10
  75. data/embulk-core/src/main/java/org/embulk/config/TaskInvocationHandler.java +0 -180
  76. data/embulk-core/src/main/java/org/embulk/config/TaskReport.java +0 -32
  77. data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +0 -349
  78. data/embulk-core/src/main/java/org/embulk/config/TaskSource.java +0 -34
  79. data/embulk-core/src/main/java/org/embulk/config/TaskValidationException.java +0 -38
  80. data/embulk-core/src/main/java/org/embulk/config/TaskValidator.java +0 -24
  81. data/embulk-core/src/main/java/org/embulk/config/UserDataException.java +0 -4
  82. data/embulk-core/src/main/java/org/embulk/config/UserDataExceptions.java +0 -17
  83. data/embulk-core/src/main/java/org/embulk/config/YamlTagResolver.java +0 -53
  84. data/embulk-core/src/main/java/org/embulk/exec/BufferFileInputPlugin.java +0 -88
  85. data/embulk-core/src/main/java/org/embulk/exec/BulkLoader.java +0 -754
  86. data/embulk-core/src/main/java/org/embulk/exec/ConfigurableGuessInputPlugin.java +0 -9
  87. data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +0 -53
  88. data/embulk-core/src/main/java/org/embulk/exec/ExecutionInterruptedException.java +0 -10
  89. data/embulk-core/src/main/java/org/embulk/exec/ExecutionResult.java +0 -33
  90. data/embulk-core/src/main/java/org/embulk/exec/ExtensionServiceLoaderModule.java +0 -43
  91. data/embulk-core/src/main/java/org/embulk/exec/ForGuess.java +0 -16
  92. data/embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java +0 -16
  93. data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +0 -309
  94. data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +0 -563
  95. data/embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java +0 -68
  96. data/embulk-core/src/main/java/org/embulk/exec/NoSampleException.java +0 -10
  97. data/embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java +0 -26
  98. data/embulk-core/src/main/java/org/embulk/exec/PooledBufferAllocator.java +0 -77
  99. data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +0 -222
  100. data/embulk-core/src/main/java/org/embulk/exec/PreviewResult.java +0 -27
  101. data/embulk-core/src/main/java/org/embulk/exec/PreviewedNoticeError.java +0 -17
  102. data/embulk-core/src/main/java/org/embulk/exec/ResumeState.java +0 -100
  103. data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +0 -215
  104. data/embulk-core/src/main/java/org/embulk/exec/SetCurrentThreadName.java +0 -22
  105. data/embulk-core/src/main/java/org/embulk/exec/SkipTransactionException.java +0 -23
  106. data/embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java +0 -24
  107. data/embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java +0 -35
  108. data/embulk-core/src/main/java/org/embulk/exec/TransactionStage.java +0 -27
  109. data/embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java +0 -76
  110. data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +0 -395
  111. data/embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java +0 -17
  112. data/embulk-core/src/main/java/org/embulk/plugin/DefaultPluginType.java +0 -50
  113. data/embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java +0 -100
  114. data/embulk-core/src/main/java/org/embulk/plugin/MavenPluginType.java +0 -112
  115. data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java +0 -993
  116. data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java +0 -16
  117. data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java +0 -102
  118. data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +0 -78
  119. data/embulk-core/src/main/java/org/embulk/plugin/PluginSource.java +0 -49
  120. data/embulk-core/src/main/java/org/embulk/plugin/PluginSourceNotMatchException.java +0 -25
  121. data/embulk-core/src/main/java/org/embulk/plugin/PluginType.java +0 -122
  122. data/embulk-core/src/main/java/org/embulk/plugin/compat/InputPluginWrapper.java +0 -102
  123. data/embulk-core/src/main/java/org/embulk/plugin/compat/PluginWrappers.java +0 -30
  124. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileInputWrapper.java +0 -96
  125. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileOutputWrapper.java +0 -102
  126. data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalPageOutputWrapper.java +0 -95
  127. data/embulk-core/src/main/java/org/embulk/plugin/jar/InvalidJarPluginException.java +0 -14
  128. data/embulk-core/src/main/java/org/embulk/plugin/jar/JarPluginLoader.java +0 -232
  129. data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenArtifactFinder.java +0 -134
  130. data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenArtifactNotFoundException.java +0 -20
  131. data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenPluginSource.java +0 -187
  132. data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenPluginSourceModule.java +0 -22
  133. data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenRepositoryNotFoundException.java +0 -31
  134. data/embulk-core/src/main/java/org/embulk/spi/AbortTransactionResource.java +0 -36
  135. data/embulk-core/src/main/java/org/embulk/spi/Buffer.java +0 -148
  136. data/embulk-core/src/main/java/org/embulk/spi/BufferAllocator.java +0 -8
  137. data/embulk-core/src/main/java/org/embulk/spi/CloseResource.java +0 -42
  138. data/embulk-core/src/main/java/org/embulk/spi/Column.java +0 -95
  139. data/embulk-core/src/main/java/org/embulk/spi/ColumnConfig.java +0 -112
  140. data/embulk-core/src/main/java/org/embulk/spi/ColumnVisitor.java +0 -16
  141. data/embulk-core/src/main/java/org/embulk/spi/DataException.java +0 -23
  142. data/embulk-core/src/main/java/org/embulk/spi/DecoderPlugin.java +0 -16
  143. data/embulk-core/src/main/java/org/embulk/spi/EncoderPlugin.java +0 -16
  144. data/embulk-core/src/main/java/org/embulk/spi/Exec.java +0 -113
  145. data/embulk-core/src/main/java/org/embulk/spi/ExecAction.java +0 -6
  146. data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +0 -220
  147. data/embulk-core/src/main/java/org/embulk/spi/ExecutorPlugin.java +0 -19
  148. data/embulk-core/src/main/java/org/embulk/spi/Extension.java +0 -44
  149. data/embulk-core/src/main/java/org/embulk/spi/FileInput.java +0 -11
  150. data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +0 -30
  151. data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +0 -169
  152. data/embulk-core/src/main/java/org/embulk/spi/FileOutput.java +0 -13
  153. data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +0 -28
  154. data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +0 -199
  155. data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +0 -18
  156. data/embulk-core/src/main/java/org/embulk/spi/FormatterPlugin.java +0 -18
  157. data/embulk-core/src/main/java/org/embulk/spi/GuessPlugin.java +0 -9
  158. data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +0 -33
  159. data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +0 -29
  160. data/embulk-core/src/main/java/org/embulk/spi/Page.java +0 -86
  161. data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +0 -696
  162. data/embulk-core/src/main/java/org/embulk/spi/PageFormat.java +0 -47
  163. data/embulk-core/src/main/java/org/embulk/spi/PageOutput.java +0 -11
  164. data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +0 -248
  165. data/embulk-core/src/main/java/org/embulk/spi/ParserPlugin.java +0 -17
  166. data/embulk-core/src/main/java/org/embulk/spi/ProcessState.java +0 -10
  167. data/embulk-core/src/main/java/org/embulk/spi/ProcessTask.java +0 -117
  168. data/embulk-core/src/main/java/org/embulk/spi/Schema.java +0 -139
  169. data/embulk-core/src/main/java/org/embulk/spi/SchemaConfig.java +0 -93
  170. data/embulk-core/src/main/java/org/embulk/spi/SchemaConfigException.java +0 -22
  171. data/embulk-core/src/main/java/org/embulk/spi/TaskState.java +0 -81
  172. data/embulk-core/src/main/java/org/embulk/spi/TempFileException.java +0 -19
  173. data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +0 -88
  174. data/embulk-core/src/main/java/org/embulk/spi/Transactional.java +0 -10
  175. data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java +0 -17
  176. data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java +0 -19
  177. data/embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java +0 -17
  178. data/embulk-core/src/main/java/org/embulk/spi/json/JsonParseException.java +0 -17
  179. data/embulk-core/src/main/java/org/embulk/spi/json/JsonParser.java +0 -233
  180. data/embulk-core/src/main/java/org/embulk/spi/json/RubyValueApi.java +0 -100
  181. data/embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java +0 -55
  182. data/embulk-core/src/main/java/org/embulk/spi/time/Timestamp.java +0 -180
  183. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormat.java +0 -127
  184. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +0 -125
  185. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParseException.java +0 -12
  186. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +0 -310
  187. data/embulk-core/src/main/java/org/embulk/spi/time/TimestampSerDe.java +0 -49
  188. data/embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java +0 -58
  189. data/embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java +0 -12
  190. data/embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java +0 -12
  191. data/embulk-core/src/main/java/org/embulk/spi/type/JsonType.java +0 -14
  192. data/embulk-core/src/main/java/org/embulk/spi/type/LongType.java +0 -12
  193. data/embulk-core/src/main/java/org/embulk/spi/type/StringType.java +0 -12
  194. data/embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java +0 -41
  195. data/embulk-core/src/main/java/org/embulk/spi/type/Type.java +0 -15
  196. data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +0 -45
  197. data/embulk-core/src/main/java/org/embulk/spi/type/Types.java +0 -16
  198. data/embulk-core/src/main/java/org/embulk/spi/unit/ByteSize.java +0 -156
  199. data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFile.java +0 -106
  200. data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFileSerDe.java +0 -113
  201. data/embulk-core/src/main/java/org/embulk/spi/unit/ToString.java +0 -54
  202. data/embulk-core/src/main/java/org/embulk/spi/unit/ToStringMap.java +0 -34
  203. data/embulk-core/src/main/java/org/embulk/spi/util/CharsetSerDe.java +0 -55
  204. data/embulk-core/src/main/java/org/embulk/spi/util/Decoders.java +0 -81
  205. data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnNotFoundException.java +0 -10
  206. data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetter.java +0 -21
  207. data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetterFactory.java +0 -134
  208. data/embulk-core/src/main/java/org/embulk/spi/util/DynamicPageBuilder.java +0 -200
  209. data/embulk-core/src/main/java/org/embulk/spi/util/Encoders.java +0 -81
  210. data/embulk-core/src/main/java/org/embulk/spi/util/Executors.java +0 -93
  211. data/embulk-core/src/main/java/org/embulk/spi/util/FileInputInputStream.java +0 -111
  212. data/embulk-core/src/main/java/org/embulk/spi/util/FileOutputOutputStream.java +0 -119
  213. data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +0 -100
  214. data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamFileInput.java +0 -189
  215. data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamTransactionalFileInput.java +0 -25
  216. data/embulk-core/src/main/java/org/embulk/spi/util/Inputs.java +0 -65
  217. data/embulk-core/src/main/java/org/embulk/spi/util/LineDecoder.java +0 -157
  218. data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +0 -123
  219. data/embulk-core/src/main/java/org/embulk/spi/util/ListFileInput.java +0 -52
  220. data/embulk-core/src/main/java/org/embulk/spi/util/Newline.java +0 -38
  221. data/embulk-core/src/main/java/org/embulk/spi/util/OutputStreamFileOutput.java +0 -88
  222. data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +0 -126
  223. data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +0 -149
  224. data/embulk-core/src/main/java/org/embulk/spi/util/ResumableInputStream.java +0 -168
  225. data/embulk-core/src/main/java/org/embulk/spi/util/RetryExecutor.java +0 -130
  226. data/embulk-core/src/main/java/org/embulk/spi/util/Timestamps.java +0 -53
  227. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/AbstractDynamicColumnSetter.java +0 -94
  228. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java +0 -71
  229. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java +0 -20
  230. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java +0 -68
  231. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/JsonColumnSetter.java +0 -64
  232. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java +0 -78
  233. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java +0 -39
  234. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java +0 -68
  235. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/StringColumnSetter.java +0 -63
  236. data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/TimestampColumnSetter.java +0 -72
  237. data/embulk-core/src/main/resources/embulk/logback-color.xml +0 -72
  238. data/embulk-core/src/main/resources/embulk/logback-console.xml +0 -14
  239. data/embulk-core/src/main/resources/embulk/logback-file.xml +0 -23
  240. data/embulk-core/src/main/resources/embulk/parent_first_packages.properties +0 -73
  241. data/embulk-core/src/main/resources/embulk/parent_first_resources.properties +0 -29
  242. data/embulk-core/src/test/java/org/embulk/EmbulkTestRuntime.java +0 -122
  243. data/embulk-core/src/test/java/org/embulk/GuiceBinder.java +0 -72
  244. data/embulk-core/src/test/java/org/embulk/RandomManager.java +0 -53
  245. data/embulk-core/src/test/java/org/embulk/TestPluginSourceModule.java +0 -23
  246. data/embulk-core/src/test/java/org/embulk/TestUtilityModule.java +0 -17
  247. data/embulk-core/src/test/java/org/embulk/config/TestConfigLoader.java +0 -66
  248. data/embulk-core/src/test/java/org/embulk/config/TestConfigSource.java +0 -114
  249. data/embulk-core/src/test/java/org/embulk/config/TestTaskSource.java +0 -70
  250. data/embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java +0 -58
  251. data/embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java +0 -83
  252. data/embulk-core/src/test/java/org/embulk/plugin/TestPluginTypeSerDe.java +0 -67
  253. data/embulk-core/src/test/java/org/embulk/plugin/jar/ExampleJarSpiV0.java +0 -9
  254. data/embulk-core/src/test/java/org/embulk/plugin/jar/JarBuilder.java +0 -101
  255. data/embulk-core/src/test/java/org/embulk/plugin/jar/TestJarPluginLoader.java +0 -60
  256. data/embulk-core/src/test/java/org/embulk/plugin/maven/TestMavenArtifactFinder.java +0 -41
  257. data/embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java +0 -63
  258. data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +0 -108
  259. data/embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java +0 -80
  260. data/embulk-core/src/test/java/org/embulk/spi/PageTestUtils.java +0 -59
  261. data/embulk-core/src/test/java/org/embulk/spi/TestBuffer.java +0 -24
  262. data/embulk-core/src/test/java/org/embulk/spi/TestFileInputInputStream.java +0 -89
  263. data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +0 -199
  264. data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +0 -221
  265. data/embulk-core/src/test/java/org/embulk/spi/TestInputStreamFileInput.java +0 -188
  266. data/embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java +0 -411
  267. data/embulk-core/src/test/java/org/embulk/spi/json/TestJsonParser.java +0 -102
  268. data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestamp.java +0 -116
  269. data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParser.java +0 -75
  270. data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParserDeprecated.java +0 -67
  271. data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampParser.java +0 -232
  272. data/embulk-core/src/test/java/org/embulk/spi/type/TestTypeSerDe.java +0 -45
  273. data/embulk-core/src/test/java/org/embulk/spi/unit/TestByteSize.java +0 -79
  274. data/embulk-core/src/test/java/org/embulk/spi/util/TestLineDecoder.java +0 -237
  275. data/embulk-core/src/test/java/org/embulk/spi/util/TestLineEncoder.java +0 -123
  276. data/embulk-core/src/test/resources/m2.test/.gitignore +0 -1
  277. data/embulk-core/src/test/resources/m2.test/org/embulk/example/embulk-example-maven-artifact/0.1.2/embulk-example-maven-artifact-0.1.2.jar +0 -0
  278. data/embulk-core/src/test/resources/m2.test/org/embulk/example/embulk-example-maven-artifact/0.1.2/embulk-example-maven-artifact-0.1.2.jar.sha1 +0 -1
  279. data/embulk-core/src/test/resources/m2.test/org/embulk/example/embulk-example-maven-artifact/0.1.2/embulk-example-maven-artifact-0.1.2.pom +0 -9
  280. data/embulk-core/src/test/resources/m2.test/org/embulk/example/embulk-example-maven-artifact/0.1.2/embulk-example-maven-artifact-0.1.2.pom.sha1 +0 -1
  281. data/embulk-docs/Makefile +0 -178
  282. data/embulk-docs/build.gradle +0 -41
  283. data/embulk-docs/make.bat +0 -243
  284. data/embulk-docs/push-gh-pages.sh +0 -49
  285. data/embulk-docs/src/_static/embulk-architecture.png +0 -0
  286. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-tr.png +0 -0
  287. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-wt.png +0 -0
  288. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline.ai +0 -396
  289. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr-small.png +0 -0
  290. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr.png +0 -0
  291. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-wt.png +0 -0
  292. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.ai +0 -417
  293. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.svg +0 -1
  294. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-tr.png +0 -0
  295. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-wt.png +0 -0
  296. data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol.ai +1 -394
  297. data/embulk-docs/src/_static/embulk-logo.svg +0 -133
  298. data/embulk-docs/src/built-in.rst +0 -1017
  299. data/embulk-docs/src/conf.py +0 -260
  300. data/embulk-docs/src/customization.rst +0 -184
  301. data/embulk-docs/src/developers/index.rst +0 -45
  302. data/embulk-docs/src/index.rst +0 -102
  303. data/embulk-docs/src/logo.rst +0 -27
  304. data/embulk-docs/src/recipe.rst +0 -8
  305. data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana5.rst +0 -163
  306. data/embulk-docs/src/release.rst +0 -108
  307. data/embulk-docs/src/release/release-0.1.0.rst +0 -8
  308. data/embulk-docs/src/release/release-0.2.0.rst +0 -16
  309. data/embulk-docs/src/release/release-0.2.1.rst +0 -19
  310. data/embulk-docs/src/release/release-0.3.0.rst +0 -34
  311. data/embulk-docs/src/release/release-0.3.1.rst +0 -11
  312. data/embulk-docs/src/release/release-0.3.2.rst +0 -15
  313. data/embulk-docs/src/release/release-0.4.0.rst +0 -74
  314. data/embulk-docs/src/release/release-0.4.1.rst +0 -18
  315. data/embulk-docs/src/release/release-0.4.10.rst +0 -17
  316. data/embulk-docs/src/release/release-0.4.2.rst +0 -18
  317. data/embulk-docs/src/release/release-0.4.3.rst +0 -34
  318. data/embulk-docs/src/release/release-0.4.4.rst +0 -39
  319. data/embulk-docs/src/release/release-0.4.5.rst +0 -24
  320. data/embulk-docs/src/release/release-0.4.6.rst +0 -30
  321. data/embulk-docs/src/release/release-0.4.7.rst +0 -16
  322. data/embulk-docs/src/release/release-0.4.8.rst +0 -15
  323. data/embulk-docs/src/release/release-0.4.9.rst +0 -23
  324. data/embulk-docs/src/release/release-0.5.0.rst +0 -89
  325. data/embulk-docs/src/release/release-0.5.1.rst +0 -13
  326. data/embulk-docs/src/release/release-0.5.2.rst +0 -30
  327. data/embulk-docs/src/release/release-0.5.3.rst +0 -22
  328. data/embulk-docs/src/release/release-0.5.4.rst +0 -24
  329. data/embulk-docs/src/release/release-0.5.5.rst +0 -18
  330. data/embulk-docs/src/release/release-0.6.0.rst +0 -34
  331. data/embulk-docs/src/release/release-0.6.1.rst +0 -11
  332. data/embulk-docs/src/release/release-0.6.10.rst +0 -15
  333. data/embulk-docs/src/release/release-0.6.11.rst +0 -19
  334. data/embulk-docs/src/release/release-0.6.12.rst +0 -31
  335. data/embulk-docs/src/release/release-0.6.13.rst +0 -23
  336. data/embulk-docs/src/release/release-0.6.14.rst +0 -47
  337. data/embulk-docs/src/release/release-0.6.15.rst +0 -26
  338. data/embulk-docs/src/release/release-0.6.16.rst +0 -26
  339. data/embulk-docs/src/release/release-0.6.17.rst +0 -39
  340. data/embulk-docs/src/release/release-0.6.18.rst +0 -14
  341. data/embulk-docs/src/release/release-0.6.19.rst +0 -18
  342. data/embulk-docs/src/release/release-0.6.2.rst +0 -17
  343. data/embulk-docs/src/release/release-0.6.20.rst +0 -19
  344. data/embulk-docs/src/release/release-0.6.21.rst +0 -20
  345. data/embulk-docs/src/release/release-0.6.22.rst +0 -26
  346. data/embulk-docs/src/release/release-0.6.23.rst +0 -17
  347. data/embulk-docs/src/release/release-0.6.24.rst +0 -13
  348. data/embulk-docs/src/release/release-0.6.25.rst +0 -12
  349. data/embulk-docs/src/release/release-0.6.26.rst +0 -17
  350. data/embulk-docs/src/release/release-0.6.27.rst +0 -11
  351. data/embulk-docs/src/release/release-0.6.3.rst +0 -23
  352. data/embulk-docs/src/release/release-0.6.4.rst +0 -13
  353. data/embulk-docs/src/release/release-0.6.5.rst +0 -17
  354. data/embulk-docs/src/release/release-0.6.6.rst +0 -17
  355. data/embulk-docs/src/release/release-0.6.7.rst +0 -17
  356. data/embulk-docs/src/release/release-0.6.8.rst +0 -24
  357. data/embulk-docs/src/release/release-0.6.9.rst +0 -24
  358. data/embulk-docs/src/release/release-0.7.0.rst +0 -96
  359. data/embulk-docs/src/release/release-0.7.1.rst +0 -22
  360. data/embulk-docs/src/release/release-0.7.10.rst +0 -13
  361. data/embulk-docs/src/release/release-0.7.11.rst +0 -12
  362. data/embulk-docs/src/release/release-0.7.2.rst +0 -25
  363. data/embulk-docs/src/release/release-0.7.3.rst +0 -21
  364. data/embulk-docs/src/release/release-0.7.4.rst +0 -14
  365. data/embulk-docs/src/release/release-0.7.5.rst +0 -22
  366. data/embulk-docs/src/release/release-0.7.6.rst +0 -18
  367. data/embulk-docs/src/release/release-0.7.7.rst +0 -13
  368. data/embulk-docs/src/release/release-0.7.8.rst +0 -14
  369. data/embulk-docs/src/release/release-0.7.9.rst +0 -14
  370. data/embulk-docs/src/release/release-0.8.0.rst +0 -74
  371. data/embulk-docs/src/release/release-0.8.1.rst +0 -18
  372. data/embulk-docs/src/release/release-0.8.10.rst +0 -35
  373. data/embulk-docs/src/release/release-0.8.11.rst +0 -12
  374. data/embulk-docs/src/release/release-0.8.12.rst +0 -12
  375. data/embulk-docs/src/release/release-0.8.13.rst +0 -12
  376. data/embulk-docs/src/release/release-0.8.14.rst +0 -31
  377. data/embulk-docs/src/release/release-0.8.15.rst +0 -17
  378. data/embulk-docs/src/release/release-0.8.16.rst +0 -43
  379. data/embulk-docs/src/release/release-0.8.17.rst +0 -11
  380. data/embulk-docs/src/release/release-0.8.18.rst +0 -27
  381. data/embulk-docs/src/release/release-0.8.19.rst +0 -43
  382. data/embulk-docs/src/release/release-0.8.2.rst +0 -19
  383. data/embulk-docs/src/release/release-0.8.20.rst +0 -11
  384. data/embulk-docs/src/release/release-0.8.21.rst +0 -17
  385. data/embulk-docs/src/release/release-0.8.22.rst +0 -15
  386. data/embulk-docs/src/release/release-0.8.23.rst +0 -14
  387. data/embulk-docs/src/release/release-0.8.24.rst +0 -15
  388. data/embulk-docs/src/release/release-0.8.25.rst +0 -14
  389. data/embulk-docs/src/release/release-0.8.26.rst +0 -16
  390. data/embulk-docs/src/release/release-0.8.27.rst +0 -15
  391. data/embulk-docs/src/release/release-0.8.28.rst +0 -14
  392. data/embulk-docs/src/release/release-0.8.29.rst +0 -14
  393. data/embulk-docs/src/release/release-0.8.3.rst +0 -15
  394. data/embulk-docs/src/release/release-0.8.30.rst +0 -14
  395. data/embulk-docs/src/release/release-0.8.31.rst +0 -12
  396. data/embulk-docs/src/release/release-0.8.32.rst +0 -14
  397. data/embulk-docs/src/release/release-0.8.33.rst +0 -13
  398. data/embulk-docs/src/release/release-0.8.34.rst +0 -12
  399. data/embulk-docs/src/release/release-0.8.35.rst +0 -12
  400. data/embulk-docs/src/release/release-0.8.36.rst +0 -32
  401. data/embulk-docs/src/release/release-0.8.37.rst +0 -20
  402. data/embulk-docs/src/release/release-0.8.38.rst +0 -12
  403. data/embulk-docs/src/release/release-0.8.4.rst +0 -18
  404. data/embulk-docs/src/release/release-0.8.5.rst +0 -11
  405. data/embulk-docs/src/release/release-0.8.6.rst +0 -14
  406. data/embulk-docs/src/release/release-0.8.7.rst +0 -18
  407. data/embulk-docs/src/release/release-0.8.8.rst +0 -18
  408. data/embulk-docs/src/release/release-0.8.9.rst +0 -14
  409. data/embulk-jruby-strptime/build.gradle +0 -3
  410. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/RubyDateParser.java +0 -121
  411. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeFormat.java +0 -53
  412. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeParser.java +0 -884
  413. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeToken.java +0 -111
  414. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/TimeZoneConverter.java +0 -466
  415. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/lexer/StrptimeLexer.flex +0 -62
  416. data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/lexer/StrptimeLexer.java +0 -577
  417. data/embulk-standards/build.gradle +0 -7
  418. data/embulk-standards/src/main/java/org/embulk/standards/Bzip2FileDecoderPlugin.java +0 -55
  419. data/embulk-standards/src/main/java/org/embulk/standards/Bzip2FileEncoderPlugin.java +0 -67
  420. data/embulk-standards/src/main/java/org/embulk/standards/ConfigInputPlugin.java +0 -170
  421. data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +0 -295
  422. data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +0 -416
  423. data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +0 -545
  424. data/embulk-standards/src/main/java/org/embulk/standards/GzipFileDecoderPlugin.java +0 -55
  425. data/embulk-standards/src/main/java/org/embulk/standards/GzipFileEncoderPlugin.java +0 -71
  426. data/embulk-standards/src/main/java/org/embulk/standards/JsonParserPlugin.java +0 -235
  427. data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +0 -232
  428. data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +0 -148
  429. data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +0 -59
  430. data/embulk-standards/src/main/java/org/embulk/standards/RemoveColumnsFilterPlugin.java +0 -268
  431. data/embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java +0 -479
  432. data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginExtension.java +0 -16
  433. data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +0 -60
  434. data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +0 -91
  435. data/embulk-standards/src/main/resources/META-INF/services/org.embulk.spi.Extension +0 -1
  436. data/embulk-standards/src/test/java/org/embulk/standards/TestCsvFormatterPlugin.java +0 -312
  437. data/embulk-standards/src/test/java/org/embulk/standards/TestCsvParserPlugin.java +0 -75
  438. data/embulk-standards/src/test/java/org/embulk/standards/TestCsvTokenizer.java +0 -457
  439. data/embulk-standards/src/test/java/org/embulk/standards/TestJsonParserPlugin.java +0 -351
  440. data/embulk-standards/src/test/java/org/embulk/standards/TestRemoveColumnsFilterPlugin.java +0 -121
  441. data/embulk-standards/src/test/java/org/embulk/standards/TestRenameFilterPlugin.java +0 -1020
  442. data/embulk-standards/src/test/java/org/embulk/standards/guess/TestCsvAllStringsGuessPlugin.java +0 -38
  443. data/embulk-standards/src/test/java/org/embulk/standards/guess/TestCsvGuessPlugin.java +0 -248
  444. data/embulk-standards/src/test/java/org/embulk/standards/preview/TestFilePreview.java +0 -73
  445. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row.csv +0 -1
  446. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header.csv +0 -2
  447. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header_guessed.yml +0 -12
  448. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header_seed.yml +0 -1
  449. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_guessed.yml +0 -12
  450. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_seed.yml +0 -1
  451. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows.csv +0 -1
  452. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header.csv +0 -2
  453. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_guessed.yml +0 -16
  454. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_seed.yml +0 -1
  455. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed.csv +0 -2
  456. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed_guessed.yml +0 -16
  457. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed_seed.yml +0 -1
  458. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_guessed.yml +0 -16
  459. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_seed.yml +0 -1
  460. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed.csv +0 -1
  461. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed_guessed.yml +0 -16
  462. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed_seed.yml +0 -1
  463. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row.csv +0 -1
  464. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header.csv +0 -2
  465. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header_guessed.yml +0 -12
  466. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header_seed.yml +0 -1
  467. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_guessed.yml +0 -12
  468. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_seed.yml +0 -1
  469. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows.csv +0 -2
  470. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows_guessed.yml +0 -12
  471. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows_seed.yml +0 -1
  472. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows.csv +0 -2
  473. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header.csv +0 -3
  474. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header_guessed.yml +0 -16
  475. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header_seed.yml +0 -1
  476. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_guessed.yml +0 -16
  477. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_seed.yml +0 -1
  478. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows.csv +0 -2
  479. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows_guessed.yml +0 -12
  480. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows_seed.yml +0 -1
  481. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape.csv +0 -5
  482. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape_guessed.yml +0 -17
  483. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape_seed.yml +0 -1
  484. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column.csv +0 -12
  485. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column_guessed.yml +0 -12
  486. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column_seed.yml +0 -1
  487. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column.csv +0 -4
  488. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_guessed.yml +0 -12
  489. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_seed.yml +0 -1
  490. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header.csv +0 -5
  491. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header_guessed.yml +0 -12
  492. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header_seed.yml +0 -1
  493. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter.csv +0 -5
  494. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter_guessed.yml +0 -17
  495. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter_seed.yml +0 -1
  496. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple.csv +0 -5
  497. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple_guessed.yml +0 -17
  498. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple_seed.yml +0 -1
  499. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote.csv +0 -5
  500. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote_guessed.yml +0 -17
  501. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote_seed.yml +0 -1
  502. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records.csv +0 -5
  503. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_guessed.yml +0 -2
  504. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_seed.yml +0 -1
  505. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column.csv +0 -4
  506. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_guessed.yml +0 -12
  507. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_seed.yml +0 -1
  508. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header.csv +0 -5
  509. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header_guessed.yml +0 -12
  510. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header_seed.yml +0 -1
  511. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter.csv +0 -4
  512. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter_guessed.yml +0 -16
  513. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter_seed.yml +0 -1
  514. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple.csv +0 -5
  515. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple_guessed.yml +0 -17
  516. data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple_seed.yml +0 -1
  517. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes.csv +0 -5
  518. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_exec.yml +0 -1
  519. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_load.yml +0 -19
  520. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_previewed.csv +0 -1
  521. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple.csv +0 -5
  522. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_load.yml +0 -19
  523. data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_previewed.csv +0 -4
  524. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep.csv +0 -5
  525. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_expected.csv +0 -4
  526. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_filter.yml +0 -2
  527. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_in.yml +0 -18
  528. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names.csv +0 -5
  529. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names.yml +0 -2
  530. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names_expected.csv +0 -4
  531. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names_in.yml +0 -17
  532. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_unmatched_filter.yml +0 -3
  533. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_without_unmatched_filter.yml +0 -2
  534. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove.csv +0 -5
  535. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_expected.csv +0 -4
  536. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_filter.yml +0 -2
  537. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_in.yml +0 -18
  538. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_with_unmatched_filter.yml +0 -3
  539. data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_without_unmatched_filter.yml +0 -2
  540. data/embulk-test/build.gradle +0 -6
  541. data/embulk-test/src/main/java/org/embulk/test/EmbulkTests.java +0 -75
  542. data/embulk-test/src/main/java/org/embulk/test/PreviewResultInputPlugin.java +0 -65
  543. data/embulk-test/src/main/java/org/embulk/test/TestingBulkLoader.java +0 -129
  544. data/embulk-test/src/main/java/org/embulk/test/TestingEmbulk.java +0 -710
  545. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  546. data/gradle/wrapper/gradle-wrapper.properties +0 -5
  547. data/gradlew +0 -172
  548. data/gradlew.bat +0 -84
  549. data/lib/embulk/data/bundle/.bundle/config +0 -3
  550. data/lib/embulk/data/bundle/.ruby-version +0 -1
  551. data/lib/embulk/data/bundle/Gemfile +0 -31
  552. data/lib/embulk/data/bundle/embulk/filter/example.rb +0 -42
  553. data/lib/embulk/data/bundle/embulk/input/example.rb +0 -54
  554. data/lib/embulk/data/bundle/embulk/output/example.rb +0 -58
  555. data/lib/embulk/data/new/LICENSE.txt +0 -21
  556. data/lib/embulk/data/new/README.md.vm +0 -106
  557. data/lib/embulk/data/new/gitignore.vm +0 -17
  558. data/lib/embulk/data/new/java/build.gradle.vm +0 -96
  559. data/lib/embulk/data/new/java/config/checkstyle/checkstyle.xml +0 -128
  560. data/lib/embulk/data/new/java/config/checkstyle/default.xml +0 -108
  561. data/lib/embulk/data/new/java/decoder.java.vm +0 -86
  562. data/lib/embulk/data/new/java/encoder.java.vm +0 -88
  563. data/lib/embulk/data/new/java/file_input.java.vm +0 -145
  564. data/lib/embulk/data/new/java/file_output.java.vm +0 -95
  565. data/lib/embulk/data/new/java/filter.java.vm +0 -57
  566. data/lib/embulk/data/new/java/formatter.java.vm +0 -55
  567. data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
  568. data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +0 -5
  569. data/lib/embulk/data/new/java/gradlew +0 -172
  570. data/lib/embulk/data/new/java/gradlew.bat +0 -84
  571. data/lib/embulk/data/new/java/input.java.vm +0 -89
  572. data/lib/embulk/data/new/java/output.java.vm +0 -79
  573. data/lib/embulk/data/new/java/parser.java.vm +0 -61
  574. data/lib/embulk/data/new/java/plugin_loader.rb.vm +0 -3
  575. data/lib/embulk/data/new/java/test.java.vm +0 -5
  576. data/lib/embulk/data/new/ruby/.ruby-version +0 -1
  577. data/lib/embulk/data/new/ruby/Gemfile +0 -2
  578. data/lib/embulk/data/new/ruby/Rakefile +0 -3
  579. data/lib/embulk/data/new/ruby/decoder_guess.rb.vm +0 -25
  580. data/lib/embulk/data/new/ruby/filter.rb.vm +0 -50
  581. data/lib/embulk/data/new/ruby/formatter.rb.vm +0 -49
  582. data/lib/embulk/data/new/ruby/gemspec.vm +0 -20
  583. data/lib/embulk/data/new/ruby/input.rb.vm +0 -59
  584. data/lib/embulk/data/new/ruby/output.rb.vm +0 -61
  585. data/lib/embulk/data/new/ruby/parser.rb.vm +0 -44
  586. data/lib/embulk/data/new/ruby/parser_guess.rb.vm +0 -65
  587. data/lib/embulk/data/package_data.rb +0 -59
  588. data/lib/embulk/guess/bzip2.rb +0 -23
  589. data/lib/embulk/guess/csv.rb +0 -374
  590. data/lib/embulk/guess/csv_all_strings.rb +0 -13
  591. data/lib/embulk/guess/gzip.rb +0 -18
  592. data/lib/embulk/guess/json.rb +0 -50
  593. data/lib/embulk/runner.rb +0 -53
  594. data/settings.gradle +0 -8
  595. data/test/helper.rb +0 -23
  596. data/test/monkey_strptime/mri/date/test_date_strptime.rb +0 -515
  597. data/test/monkey_strptime/run-test.rb +0 -29
  598. data/test/vanilla/guess/test_csv_all_strings.rb +0 -43
  599. data/test/vanilla/guess/test_csv_guess.rb +0 -170
  600. data/test/vanilla/guess/test_schema_guess.rb +0 -47
  601. data/test/vanilla/guess/test_time_format_guess.rb +0 -135
  602. data/test/vanilla/run-test.rb +0 -14
  603. data/test/vanilla/time/test_timestamp_parser.rb +0 -102
@@ -1,479 +0,0 @@
1
- package org.embulk.standards;
2
-
3
- import org.embulk.config.Config;
4
- import org.embulk.config.ConfigDefault;
5
- import org.embulk.config.ConfigException;
6
- import org.embulk.config.ConfigSource;
7
- import org.embulk.config.Task;
8
- import org.embulk.config.TaskSource;
9
- import org.embulk.spi.Column;
10
- import org.embulk.spi.Exec;
11
- import org.embulk.spi.FilterPlugin;
12
- import org.embulk.spi.PageOutput;
13
- import org.embulk.spi.Schema;
14
-
15
- import com.google.common.base.Optional;
16
- import com.google.common.base.Strings;
17
- import com.google.common.collect.ImmutableMap;
18
- import com.google.common.collect.ImmutableSet;
19
-
20
- import org.slf4j.Logger;
21
-
22
- import java.util.ArrayList;
23
- import java.util.HashMap;
24
- import java.util.HashSet;
25
- import java.util.List;
26
- import java.util.Locale;
27
- import java.util.Map;
28
- import java.util.regex.PatternSyntaxException;
29
-
30
- import javax.validation.constraints.Min;
31
- import javax.validation.constraints.Size;
32
-
33
- /**
34
- * |RenameFilterPlugin| renames column names.
35
- *
36
- * NOTE: This filter should bahave always in the same way for the same configuration.
37
- * Changes in its behavior confuse users who are working with the same configuration.
38
- *
39
- * Even when a buggy behavior is found, fix it by:
40
- * 1) Adding a new option, and
41
- * 2) Implementing a new behavior in the new option.
42
- *
43
- * Keep the buggy behavior with the old configuration except for fatal failures so
44
- * that users are not confused.
45
- */
46
- public class RenameFilterPlugin
47
- implements FilterPlugin
48
- {
49
- public interface PluginTask
50
- extends Task
51
- {
52
- @Config("columns")
53
- @ConfigDefault("{}")
54
- Map<String, String> getRenameMap();
55
-
56
- @Config("rules")
57
- @ConfigDefault("[]")
58
- List<ConfigSource> getRulesList();
59
- }
60
-
61
- @Override
62
- public void transaction(ConfigSource config, Schema inputSchema,
63
- FilterPlugin.Control control)
64
- {
65
- PluginTask task = config.loadConfig(PluginTask.class);
66
- Map<String, String> renameMap = task.getRenameMap();
67
- List<ConfigSource> rulesList = task.getRulesList();
68
-
69
- // Check if the given column in "columns" exists or not.
70
- for (String columnName : renameMap.keySet()) {
71
- inputSchema.lookupColumn(columnName); // throws SchemaConfigException
72
- }
73
-
74
- // Rename by "columns": to be applied before "rules".
75
- Schema.Builder builder = Schema.builder();
76
- for (Column column : inputSchema.getColumns()) {
77
- String name = column.getName();
78
- if (renameMap.containsKey(name)) {
79
- name = renameMap.get(name);
80
- }
81
- builder.add(name, column.getType());
82
- }
83
- Schema intermediateSchema = builder.build();
84
-
85
- // Rename by "rules".
86
- Schema outputSchema = intermediateSchema;
87
- for (ConfigSource rule : rulesList) {
88
- outputSchema = applyRule(rule, intermediateSchema);
89
- intermediateSchema = outputSchema;
90
- }
91
-
92
- control.run(task.dump(), outputSchema);
93
- }
94
-
95
- @Override
96
- public PageOutput open(TaskSource taskSource, Schema inputSchema,
97
- Schema outputSchema, PageOutput output)
98
- {
99
- return output;
100
- }
101
-
102
- // Extending Task is required to be deserialized with ConfigSource.loadConfig()
103
- // although this Rule is not really a Task.
104
- // TODO(dmikurube): Revisit this to consider how not to extend Task for this.
105
- private interface Rule
106
- extends Task
107
- {
108
- @Config("rule")
109
- String getRule();
110
- }
111
-
112
- private interface CharacterTypesRule
113
- extends Rule {
114
- @Config("pass_types")
115
- @ConfigDefault("[]")
116
- List<String> getPassTypes();
117
-
118
- @Config("pass_characters")
119
- @ConfigDefault("\"\"")
120
- String getPassCharacters();
121
-
122
- @Config("replace")
123
- @ConfigDefault("\"_\"")
124
- @Size(min = 1, max = 1)
125
- String getReplace();
126
- }
127
-
128
- private interface FirstCharacterTypesRule
129
- extends Rule {
130
- @Config("replace")
131
- @ConfigDefault("null")
132
- Optional<String> getReplace();
133
-
134
- @Config("pass_types")
135
- @ConfigDefault("[]")
136
- List<String> getPassTypes();
137
-
138
- @Config("pass_characters")
139
- @ConfigDefault("\"\"")
140
- String getPassCharacters();
141
-
142
- @Config("prefix")
143
- @ConfigDefault("null")
144
- Optional<String> getPrefix();
145
- }
146
-
147
- private interface TruncateRule
148
- extends Rule {
149
- @Config("max_length")
150
- @ConfigDefault("128")
151
- @Min(0)
152
- int getMaxLength();
153
- }
154
-
155
- private interface RegexReplaceRule
156
- extends Rule {
157
- @Config("match")
158
- String getMatch();
159
-
160
- @Config("replace")
161
- String getReplace();
162
- }
163
-
164
- private interface UniqueNumberSuffixRule
165
- extends Rule {
166
- @Config("delimiter")
167
- @ConfigDefault("\"_\"")
168
- String getDelimiter();
169
-
170
- @Config("digits")
171
- @ConfigDefault("null")
172
- Optional<Integer> getDigits();
173
-
174
- @Config("max_length")
175
- @ConfigDefault("null")
176
- Optional<Integer> getMaxLength();
177
-
178
- @Config("offset")
179
- @ConfigDefault("1")
180
- @Min(0)
181
- int getOffset();
182
- }
183
-
184
- private Schema applyRule(ConfigSource ruleConfig, Schema inputSchema) throws ConfigException
185
- {
186
- Rule rule = ruleConfig.loadConfig(Rule.class);
187
- switch (rule.getRule()) {
188
- case "character_types":
189
- return applyCharacterTypesRule(inputSchema, ruleConfig.loadConfig(CharacterTypesRule.class));
190
- case "first_character_types":
191
- return applyFirstCharacterTypesRule(inputSchema, ruleConfig.loadConfig(FirstCharacterTypesRule.class));
192
- case "lower_to_upper":
193
- return applyLowerToUpperRule(inputSchema);
194
- case "regex_replace":
195
- return applyRegexReplaceRule(inputSchema, ruleConfig.loadConfig(RegexReplaceRule.class));
196
- case "truncate":
197
- return applyTruncateRule(inputSchema, ruleConfig.loadConfig(TruncateRule.class));
198
- case "upper_to_lower":
199
- return applyUpperToLowerRule(inputSchema);
200
- case "unique_number_suffix":
201
- return applyUniqueNumberSuffixRule(inputSchema, ruleConfig.loadConfig(UniqueNumberSuffixRule.class));
202
- default:
203
- throw new ConfigException("Renaming rule \"" +rule+ "\" is unknown");
204
- }
205
- }
206
-
207
- private Schema applyCharacterTypesRule(Schema inputSchema, CharacterTypesRule rule) {
208
- final List<String> passTypes = rule.getPassTypes();
209
- final String passCharacters = rule.getPassCharacters();
210
- final String replace = rule.getReplace();
211
-
212
- if (replace.isEmpty()) {
213
- throw new ConfigException("\"replace\" in \"character_types\" must not be explicitly empty");
214
- }
215
- if (replace.length() != 1) {
216
- throw new ConfigException("\"replace\" in \"character_types\" must contain just 1 character");
217
- }
218
- // TODO(dmikurube): Revisit this for better escaping.
219
- if (passCharacters.contains("\\E")) {
220
- throw new ConfigException("\"pass_characters\" in \"character_types\" must not contain \"\\E\"");
221
- }
222
-
223
- StringBuilder regexBuilder = new StringBuilder();
224
- regexBuilder.append("[^");
225
- for (String target : passTypes) {
226
- if (CHARACTER_TYPE_KEYWORDS.containsKey(target)) {
227
- regexBuilder.append(CHARACTER_TYPE_KEYWORDS.get(target));
228
- } else {
229
- throw new ConfigException("\"" +target+ "\" is an unknown character type keyword");
230
- }
231
- }
232
- if (!passCharacters.isEmpty()) {
233
- regexBuilder.append("\\Q");
234
- regexBuilder.append(passCharacters);
235
- regexBuilder.append("\\E");
236
- }
237
- regexBuilder.append("]");
238
-
239
- Schema.Builder schemaBuilder = Schema.builder();
240
- for (Column column : inputSchema.getColumns()) {
241
- schemaBuilder.add(column.getName().replaceAll(regexBuilder.toString(), replace), column.getType());
242
- }
243
- return schemaBuilder.build();
244
- }
245
-
246
- private Schema applyFirstCharacterTypesRule(Schema inputSchema, FirstCharacterTypesRule rule) {
247
- final Optional<String> replace = rule.getReplace();
248
- final List<String> passTypes = rule.getPassTypes();
249
- final String passCharacters = rule.getPassCharacters();
250
- final Optional<String> prefix = rule.getPrefix();
251
-
252
- if (replace.isPresent() && replace.get().length() != 1) {
253
- throw new ConfigException("\"replace\" in \"first_character_types\" must contain just 1 character if specified");
254
- }
255
- if (prefix.isPresent() && prefix.get().length() != 1) {
256
- throw new ConfigException("\"prefix\" in \"first_character_types\" must contain just 1 character if specified");
257
- }
258
- if (prefix.isPresent() && replace.isPresent()) {
259
- throw new ConfigException("\"replace\" and \"prefix\" in \"first_character_types\" must not be specified together");
260
- }
261
- if ((!prefix.isPresent()) && (!replace.isPresent())) {
262
- throw new ConfigException("Either of \"replace\" or \"prefix\" must be specified in \"first_character_types\"");
263
- }
264
- // TODO(dmikurube): Revisit this for better escaping.
265
- if (passCharacters.contains("\\E")) {
266
- throw new ConfigException("\"pass_characters\" in \"first_character_types\" must not contain \"\\E\"");
267
- }
268
-
269
- StringBuilder regexBuilder = new StringBuilder();
270
- regexBuilder.append("^[^");
271
- for (String target : passTypes) {
272
- if (CHARACTER_TYPE_KEYWORDS.containsKey(target)) {
273
- regexBuilder.append(CHARACTER_TYPE_KEYWORDS.get(target));
274
- } else {
275
- throw new ConfigException("\"" +target+ "\" is an unknown character type keyword");
276
- }
277
- }
278
- if (!passCharacters.isEmpty()) {
279
- regexBuilder.append("\\Q");
280
- regexBuilder.append(passCharacters);
281
- regexBuilder.append("\\E");
282
- }
283
- regexBuilder.append("].*");
284
-
285
- Schema.Builder schemaBuidler = Schema.builder();
286
- for (Column column : inputSchema.getColumns()) {
287
- String name = column.getName();
288
- if (name.matches(regexBuilder.toString())) {
289
- if (replace.isPresent()) {
290
- name = replace.get() + name.substring(1);
291
- }
292
- else if (prefix.isPresent()) {
293
- name = prefix.get() + name;
294
- }
295
- }
296
- schemaBuidler.add(name, column.getType());
297
- }
298
- return schemaBuidler.build();
299
- }
300
-
301
- private Schema applyLowerToUpperRule(Schema inputSchema) {
302
- Schema.Builder builder = Schema.builder();
303
- for (Column column : inputSchema.getColumns()) {
304
- builder.add(column.getName().toUpperCase(Locale.ENGLISH), column.getType());
305
- }
306
- return builder.build();
307
- }
308
-
309
- private Schema applyTruncateRule(Schema inputSchema, TruncateRule rule) {
310
- Schema.Builder builder = Schema.builder();
311
- for (Column column : inputSchema.getColumns()) {
312
- if (column.getName().length() <= rule.getMaxLength()) {
313
- builder.add(column.getName(), column.getType());
314
- }
315
- else {
316
- try {
317
- builder.add(column.getName().substring(0, rule.getMaxLength()), column.getType());
318
- }
319
- catch (IndexOutOfBoundsException ex) {
320
- logger.error("FATAL unexpected error in \"truncate\" rule: substring failed.");
321
- throw new AssertionError("FATAL unexpected error in \"truncate\" rule: substring failed.", ex);
322
- }
323
- }
324
- }
325
- return builder.build();
326
- }
327
-
328
- private Schema applyUpperToLowerRule(Schema inputSchema) {
329
- Schema.Builder builder = Schema.builder();
330
- for (Column column : inputSchema.getColumns()) {
331
- builder.add(column.getName().toLowerCase(Locale.ENGLISH), column.getType());
332
- }
333
- return builder.build();
334
- }
335
-
336
- private Schema applyRegexReplaceRule(Schema inputSchema, RegexReplaceRule rule) {
337
- final String match = rule.getMatch();
338
- final String replace = rule.getReplace();
339
-
340
- Schema.Builder builder = Schema.builder();
341
- for (Column column : inputSchema.getColumns()) {
342
- // TODO(dmikurube): Check if we need a kind of sanitization?
343
- try {
344
- builder.add(column.getName().replaceAll(match, replace), column.getType());
345
- }
346
- catch (PatternSyntaxException ex) {
347
- throw new ConfigException(ex);
348
- }
349
- }
350
- return builder.build();
351
- }
352
-
353
- /**
354
- * Resolves conflicting column names by suffixing numbers.
355
- *
356
- * Conflicts are resolved by the following rules. The rules should not be changed casually because changing the
357
- * rules breaks compatibility.
358
- *
359
- * 1. Count all duplicates in the original column names. Indexes are counted up per original column name.
360
- * 2. Fix new column names from the left to the right
361
- * - Try to append the current index for the original column name (with truncation if requested (not implemented))
362
- * - Fix the new name if no duplication is found with fixed column names on the left and original column names
363
- * - Retry with an index incremented if a duplication is found with fixed column names on the left
364
- *
365
- * Examples:
366
- * [c, c1, c1, c2, c, c3]
367
- * ==> [c, c1, c1_2, c2, c_2, c3]
368
- *
369
- * If a newly suffixed name newly conflicts with other columns, the index is just skipped. For example:
370
- * [c, c, c_0, c_1, c_2]
371
- * ==> [c, c_3, c_0, c_1, c_2]
372
- *
373
- * If truncation is requested simultaneously with uniqueness (not implemented), it should work like:
374
- * [co, c, co , c , co , c , ..., co , c , co , c , co , c ]
375
- * ==> [co, c, co_2, c_2, co_3, c_3, ..., co_9, c_9, c_10, c_11, c_12, c_13] (max_length:4)
376
- *
377
- * [co, co , co , ..., co , c, c , ..., c , co , c , co , c , co , c ]
378
- * ==> [co, co_2, co_3, ..., co_9, c, c_2, ..., c_7, c_10, c_8, c_11, c_9, c_12, c_13] (max_length:4)
379
- *
380
- * Note that a delimiter should not be omitted. Recurring conflicts may confuse users.
381
- * [c, c, c, ..., c, c, c, c, c1, c1, c1]
382
- * NG: [c, c2, c3, ..., c10, c11, c12, c13, c1, c12, c13] (not unique!)
383
- * ==> [c, c2, c3, ..., c10, c11, c12, c13, c1, c14, c15] (confusing)
384
- */
385
- private Schema applyUniqueNumberSuffixRule(Schema inputSchema, UniqueNumberSuffixRule rule) {
386
- final String delimiter = rule.getDelimiter();
387
- final Optional<Integer> digits = rule.getDigits();
388
- final Optional<Integer> maxLength = rule.getMaxLength();
389
- final int offset = rule.getOffset();
390
-
391
- // |delimiter| must consist of just 1 character to check quickly that it does not contain any digit.
392
- if (delimiter == null || delimiter.length() != 1 || Character.isDigit(delimiter.charAt(0))) {
393
- throw new ConfigException("\"delimiter\" in rule \"unique_number_suffix\" must contain just 1 non-digit character");
394
- }
395
- if (maxLength.isPresent() && maxLength.get() < minimumMaxLengthInUniqueNumberSuffix) {
396
- throw new ConfigException("\"max_length\" in rule \"unique_number_suffix\" must be larger than " +(minimumMaxLengthInUniqueNumberSuffix-1));
397
- }
398
- if (maxLength.isPresent() && digits.isPresent() && maxLength.get() < digits.get() + delimiter.length()) {
399
- throw new ConfigException("\"max_length\" in rule \"unique_number_suffix\" must be larger than \"digits\"");
400
- }
401
- int digitsOfNumberOfColumns = Integer.toString(inputSchema.getColumnCount() + offset - 1).length();
402
- if (maxLength.isPresent() && maxLength.get() <= digitsOfNumberOfColumns) {
403
- throw new ConfigException("\"max_length\" in rule \"unique_number_suffix\" must be larger than digits of ((number of columns) + \"offset\" - 1)");
404
- }
405
- if (digits.isPresent() && digits.get() <= digitsOfNumberOfColumns) {
406
- throw new ConfigException("\"digits\" in rule \"unique_number_suffix\" must be larger than digits of ((number of columns) + \"offset\" - 1)");
407
- }
408
-
409
- // Columns should not be truncated here initially. Uniqueness should be identified before truncated.
410
-
411
- // Iterate for initial states.
412
- HashSet<String> originalColumnNames = new HashSet<>();
413
- HashMap<String, Integer> columnNameCountups = new HashMap<>();
414
- for (Column column : inputSchema.getColumns()) {
415
- originalColumnNames.add(column.getName());
416
- columnNameCountups.put(column.getName(), offset);
417
- }
418
-
419
- Schema.Builder outputBuilder = Schema.builder();
420
-
421
- HashSet<String> fixedColumnNames = new HashSet<>();
422
- for (Column column : inputSchema.getColumns()) {
423
- String truncatedName = column.getName();
424
- if (column.getName().length() > maxLength.or(Integer.MAX_VALUE)) {
425
- truncatedName = column.getName().substring(0, maxLength.get());
426
- }
427
-
428
- // Fix with the new name candidate if the new name does not conflict with the fixed names on the left.
429
- // Conflicts with original names do not matter here.
430
- if (!fixedColumnNames.contains(truncatedName)) {
431
- // The original name is counted up.
432
- columnNameCountups.put(column.getName(), columnNameCountups.get(column.getName()) + 1);
433
- // The truncated name is fixed.
434
- fixedColumnNames.add(truncatedName);
435
- outputBuilder.add(truncatedName, column.getType());
436
- continue;
437
- }
438
-
439
- int index = columnNameCountups.get(column.getName());
440
- String concatenatedName;
441
- do {
442
- // This can be replaced with String#format(Locale.ENGLISH, ...), but Java's String#format does not
443
- // have variable widths ("%*d" in C's printf). It cannot be very simple with String#format.
444
- String differentiatorString = Integer.toString(index);
445
- if (digits.isPresent() && (digits.get() > differentiatorString.length())) {
446
- differentiatorString =
447
- Strings.repeat("0", digits.get() - differentiatorString.length()) + differentiatorString;
448
- }
449
- differentiatorString = delimiter + differentiatorString;
450
- concatenatedName = column.getName() + differentiatorString;
451
- if (concatenatedName.length() > maxLength.or(Integer.MAX_VALUE)) {
452
- concatenatedName =
453
- column.getName().substring(0, maxLength.get() - differentiatorString.length())
454
- + differentiatorString;
455
- }
456
- ++index;
457
- // Conflicts with original names matter when creating new names with suffixes.
458
- } while (fixedColumnNames.contains(concatenatedName) || originalColumnNames.contains(concatenatedName));
459
- // The original name is counted up.
460
- columnNameCountups.put(column.getName(), index);
461
- // The concatenated&truncated name is fixed.
462
- fixedColumnNames.add(concatenatedName);
463
- outputBuilder.add(concatenatedName, column.getType());
464
- }
465
- return outputBuilder.build();
466
- }
467
-
468
- private static final ImmutableMap<String, String> CHARACTER_TYPE_KEYWORDS =
469
- new ImmutableMap.Builder<String, String>().put("a-z", "a-z")
470
- .put("A-Z", "A-Z")
471
- .put("0-9", "0-9")
472
- .build();
473
-
474
- // TODO(dmikurube): Revisit the limitation.
475
- // It should be practically acceptable to assume any output accepts column names with 8 characters at least...
476
- private static final int minimumMaxLengthInUniqueNumberSuffix = 8;
477
-
478
- private final Logger logger = Exec.getLogger(getClass());
479
- }