embulk 0.8.36-java → 0.10.25-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/Gemfile +1 -1
- data/LICENSE +202 -0
- data/embulk.gemspec +34 -33
- data/lib/embulk.rb +5 -61
- data/lib/embulk/buffer.rb +1 -2
- data/lib/embulk/gem_version.rb +3 -0
- data/lib/embulk/guess/charset.rb +2 -11
- data/lib/embulk/java/bootstrap.rb +1 -2
- data/lib/embulk/java_plugin.rb +9 -1
- data/lib/embulk/logger.rb +2 -1
- data/lib/embulk/page_builder.rb +2 -2
- data/lib/embulk/plugin.rb +2 -2
- data/lib/embulk/schema.rb +3 -4
- data/lib/embulk/version.rb +45 -19
- metadata +24 -753
- data/.gitignore +0 -15
- data/.ruby-version +0 -1
- data/.travis.yml +0 -28
- data/COPYING +0 -14
- data/Gemfile.lock +0 -30
- data/README.md +0 -229
- data/Rakefile +0 -26
- data/appveyor.yml +0 -28
- data/bin/embulk +0 -139
- data/build.gradle +0 -415
- data/embulk-cli/build.gradle +0 -9
- data/embulk-cli/src/main/bat/selfrun.bat +0 -107
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkArguments.java +0 -54
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkCommandLine.java +0 -227
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkCommandLineException.java +0 -25
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkExample.java +0 -86
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkMigrate.java +0 -480
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkNew.java +0 -419
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkRun.java +0 -786
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkSelfUpdate.java +0 -235
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkSubcommand.java +0 -47
- data/embulk-cli/src/main/java/org/embulk/cli/Main.java +0 -31
- data/embulk-cli/src/main/java/org/embulk/cli/parse/AbstractHelpLineDefinition.java +0 -15
- data/embulk-cli/src/main/java/org/embulk/cli/parse/CliHelpFormatterWithHelpMessages.java +0 -141
- data/embulk-cli/src/main/java/org/embulk/cli/parse/CliOptionsWithHelpMessages.java +0 -45
- data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineHelpRequired.java +0 -10
- data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineParseException.java +0 -25
- data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineParser.java +0 -187
- data/embulk-cli/src/main/java/org/embulk/cli/parse/HelpMessageAsCliOption.java +0 -36
- data/embulk-cli/src/main/java/org/embulk/cli/parse/HelpMessageLineDefinition.java +0 -20
- data/embulk-cli/src/main/java/org/embulk/cli/parse/OptionBehavior.java +0 -39
- data/embulk-cli/src/main/java/org/embulk/cli/parse/OptionDefinition.java +0 -120
- data/embulk-cli/src/main/sh/selfrun.sh +0 -60
- data/embulk-cli/src/test/java/org/embulk/cli/DummyMain.java +0 -23
- data/embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java +0 -296
- data/embulk-core/build.gradle +0 -83
- data/embulk-core/src/main/java/org/embulk/EmbulkEmbed.java +0 -321
- data/embulk-core/src/main/java/org/embulk/EmbulkRunner.java +0 -582
- data/embulk-core/src/main/java/org/embulk/EmbulkService.java +0 -78
- data/embulk-core/src/main/java/org/embulk/EmbulkSetup.java +0 -49
- data/embulk-core/src/main/java/org/embulk/EmbulkVersion.java +0 -109
- data/embulk-core/src/main/java/org/embulk/command/PreviewPrinter.java +0 -87
- data/embulk-core/src/main/java/org/embulk/command/TablePreviewPrinter.java +0 -107
- data/embulk-core/src/main/java/org/embulk/command/VerticalPreviewPrinter.java +0 -47
- data/embulk-core/src/main/java/org/embulk/config/CommitReport.java +0 -36
- data/embulk-core/src/main/java/org/embulk/config/Config.java +0 -15
- data/embulk-core/src/main/java/org/embulk/config/ConfigDefault.java +0 -15
- data/embulk-core/src/main/java/org/embulk/config/ConfigDiff.java +0 -32
- data/embulk-core/src/main/java/org/embulk/config/ConfigException.java +0 -26
- data/embulk-core/src/main/java/org/embulk/config/ConfigInject.java +0 -14
- data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +0 -149
- data/embulk-core/src/main/java/org/embulk/config/ConfigSource.java +0 -34
- data/embulk-core/src/main/java/org/embulk/config/DataSource.java +0 -41
- data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +0 -243
- data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +0 -84
- data/embulk-core/src/main/java/org/embulk/config/GenericTypeReference.java +0 -20
- data/embulk-core/src/main/java/org/embulk/config/ModelManager.java +0 -123
- data/embulk-core/src/main/java/org/embulk/config/Task.java +0 -10
- data/embulk-core/src/main/java/org/embulk/config/TaskInvocationHandler.java +0 -180
- data/embulk-core/src/main/java/org/embulk/config/TaskReport.java +0 -32
- data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +0 -349
- data/embulk-core/src/main/java/org/embulk/config/TaskSource.java +0 -34
- data/embulk-core/src/main/java/org/embulk/config/TaskValidationException.java +0 -38
- data/embulk-core/src/main/java/org/embulk/config/TaskValidator.java +0 -24
- data/embulk-core/src/main/java/org/embulk/config/UserDataException.java +0 -4
- data/embulk-core/src/main/java/org/embulk/config/UserDataExceptions.java +0 -17
- data/embulk-core/src/main/java/org/embulk/config/YamlTagResolver.java +0 -53
- data/embulk-core/src/main/java/org/embulk/exec/BufferFileInputPlugin.java +0 -88
- data/embulk-core/src/main/java/org/embulk/exec/BulkLoader.java +0 -754
- data/embulk-core/src/main/java/org/embulk/exec/ConfigurableGuessInputPlugin.java +0 -9
- data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +0 -53
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionInterruptedException.java +0 -10
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionResult.java +0 -33
- data/embulk-core/src/main/java/org/embulk/exec/ExtensionServiceLoaderModule.java +0 -43
- data/embulk-core/src/main/java/org/embulk/exec/ForGuess.java +0 -16
- data/embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java +0 -16
- data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +0 -309
- data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +0 -563
- data/embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java +0 -68
- data/embulk-core/src/main/java/org/embulk/exec/NoSampleException.java +0 -10
- data/embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java +0 -26
- data/embulk-core/src/main/java/org/embulk/exec/PooledBufferAllocator.java +0 -77
- data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +0 -222
- data/embulk-core/src/main/java/org/embulk/exec/PreviewResult.java +0 -27
- data/embulk-core/src/main/java/org/embulk/exec/PreviewedNoticeError.java +0 -17
- data/embulk-core/src/main/java/org/embulk/exec/ResumeState.java +0 -100
- data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +0 -215
- data/embulk-core/src/main/java/org/embulk/exec/SetCurrentThreadName.java +0 -22
- data/embulk-core/src/main/java/org/embulk/exec/SkipTransactionException.java +0 -23
- data/embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java +0 -24
- data/embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java +0 -35
- data/embulk-core/src/main/java/org/embulk/exec/TransactionStage.java +0 -27
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java +0 -76
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +0 -395
- data/embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java +0 -17
- data/embulk-core/src/main/java/org/embulk/plugin/DefaultPluginType.java +0 -50
- data/embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java +0 -100
- data/embulk-core/src/main/java/org/embulk/plugin/MavenPluginType.java +0 -112
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java +0 -993
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java +0 -16
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java +0 -102
- data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +0 -78
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSource.java +0 -49
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSourceNotMatchException.java +0 -25
- data/embulk-core/src/main/java/org/embulk/plugin/PluginType.java +0 -122
- data/embulk-core/src/main/java/org/embulk/plugin/compat/InputPluginWrapper.java +0 -102
- data/embulk-core/src/main/java/org/embulk/plugin/compat/PluginWrappers.java +0 -30
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileInputWrapper.java +0 -96
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileOutputWrapper.java +0 -102
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalPageOutputWrapper.java +0 -95
- data/embulk-core/src/main/java/org/embulk/plugin/jar/InvalidJarPluginException.java +0 -14
- data/embulk-core/src/main/java/org/embulk/plugin/jar/JarPluginLoader.java +0 -232
- data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenArtifactFinder.java +0 -134
- data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenArtifactNotFoundException.java +0 -20
- data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenPluginSource.java +0 -187
- data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenPluginSourceModule.java +0 -22
- data/embulk-core/src/main/java/org/embulk/plugin/maven/MavenRepositoryNotFoundException.java +0 -31
- data/embulk-core/src/main/java/org/embulk/spi/AbortTransactionResource.java +0 -36
- data/embulk-core/src/main/java/org/embulk/spi/Buffer.java +0 -148
- data/embulk-core/src/main/java/org/embulk/spi/BufferAllocator.java +0 -8
- data/embulk-core/src/main/java/org/embulk/spi/CloseResource.java +0 -42
- data/embulk-core/src/main/java/org/embulk/spi/Column.java +0 -95
- data/embulk-core/src/main/java/org/embulk/spi/ColumnConfig.java +0 -112
- data/embulk-core/src/main/java/org/embulk/spi/ColumnVisitor.java +0 -16
- data/embulk-core/src/main/java/org/embulk/spi/DataException.java +0 -23
- data/embulk-core/src/main/java/org/embulk/spi/DecoderPlugin.java +0 -16
- data/embulk-core/src/main/java/org/embulk/spi/EncoderPlugin.java +0 -16
- data/embulk-core/src/main/java/org/embulk/spi/Exec.java +0 -113
- data/embulk-core/src/main/java/org/embulk/spi/ExecAction.java +0 -6
- data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +0 -220
- data/embulk-core/src/main/java/org/embulk/spi/ExecutorPlugin.java +0 -19
- data/embulk-core/src/main/java/org/embulk/spi/Extension.java +0 -44
- data/embulk-core/src/main/java/org/embulk/spi/FileInput.java +0 -11
- data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +0 -30
- data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +0 -169
- data/embulk-core/src/main/java/org/embulk/spi/FileOutput.java +0 -13
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +0 -28
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +0 -199
- data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +0 -18
- data/embulk-core/src/main/java/org/embulk/spi/FormatterPlugin.java +0 -18
- data/embulk-core/src/main/java/org/embulk/spi/GuessPlugin.java +0 -9
- data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +0 -33
- data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +0 -29
- data/embulk-core/src/main/java/org/embulk/spi/Page.java +0 -86
- data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +0 -696
- data/embulk-core/src/main/java/org/embulk/spi/PageFormat.java +0 -47
- data/embulk-core/src/main/java/org/embulk/spi/PageOutput.java +0 -11
- data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +0 -248
- data/embulk-core/src/main/java/org/embulk/spi/ParserPlugin.java +0 -17
- data/embulk-core/src/main/java/org/embulk/spi/ProcessState.java +0 -10
- data/embulk-core/src/main/java/org/embulk/spi/ProcessTask.java +0 -117
- data/embulk-core/src/main/java/org/embulk/spi/Schema.java +0 -139
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfig.java +0 -93
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfigException.java +0 -22
- data/embulk-core/src/main/java/org/embulk/spi/TaskState.java +0 -81
- data/embulk-core/src/main/java/org/embulk/spi/TempFileException.java +0 -19
- data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +0 -88
- data/embulk-core/src/main/java/org/embulk/spi/Transactional.java +0 -10
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java +0 -17
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java +0 -19
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java +0 -17
- data/embulk-core/src/main/java/org/embulk/spi/json/JsonParseException.java +0 -17
- data/embulk-core/src/main/java/org/embulk/spi/json/JsonParser.java +0 -233
- data/embulk-core/src/main/java/org/embulk/spi/json/RubyValueApi.java +0 -100
- data/embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java +0 -55
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelper.java +0 -8
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelperFactory.java +0 -6
- data/embulk-core/src/main/java/org/embulk/spi/time/Timestamp.java +0 -180
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormat.java +0 -121
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +0 -125
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParseException.java +0 -12
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +0 -283
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampSerDe.java +0 -49
- data/embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java +0 -58
- data/embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java +0 -12
- data/embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java +0 -12
- data/embulk-core/src/main/java/org/embulk/spi/type/JsonType.java +0 -14
- data/embulk-core/src/main/java/org/embulk/spi/type/LongType.java +0 -12
- data/embulk-core/src/main/java/org/embulk/spi/type/StringType.java +0 -12
- data/embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java +0 -41
- data/embulk-core/src/main/java/org/embulk/spi/type/Type.java +0 -15
- data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +0 -45
- data/embulk-core/src/main/java/org/embulk/spi/type/Types.java +0 -16
- data/embulk-core/src/main/java/org/embulk/spi/unit/ByteSize.java +0 -156
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFile.java +0 -106
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFileSerDe.java +0 -113
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToString.java +0 -54
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToStringMap.java +0 -34
- data/embulk-core/src/main/java/org/embulk/spi/util/CharsetSerDe.java +0 -55
- data/embulk-core/src/main/java/org/embulk/spi/util/Decoders.java +0 -81
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnNotFoundException.java +0 -10
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetter.java +0 -21
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetterFactory.java +0 -134
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicPageBuilder.java +0 -200
- data/embulk-core/src/main/java/org/embulk/spi/util/Encoders.java +0 -81
- data/embulk-core/src/main/java/org/embulk/spi/util/Executors.java +0 -93
- data/embulk-core/src/main/java/org/embulk/spi/util/FileInputInputStream.java +0 -111
- data/embulk-core/src/main/java/org/embulk/spi/util/FileOutputOutputStream.java +0 -119
- data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +0 -100
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamFileInput.java +0 -189
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamTransactionalFileInput.java +0 -25
- data/embulk-core/src/main/java/org/embulk/spi/util/Inputs.java +0 -65
- data/embulk-core/src/main/java/org/embulk/spi/util/LineDecoder.java +0 -157
- data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +0 -123
- data/embulk-core/src/main/java/org/embulk/spi/util/ListFileInput.java +0 -52
- data/embulk-core/src/main/java/org/embulk/spi/util/Newline.java +0 -38
- data/embulk-core/src/main/java/org/embulk/spi/util/OutputStreamFileOutput.java +0 -88
- data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +0 -126
- data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +0 -149
- data/embulk-core/src/main/java/org/embulk/spi/util/ResumableInputStream.java +0 -168
- data/embulk-core/src/main/java/org/embulk/spi/util/RetryExecutor.java +0 -130
- data/embulk-core/src/main/java/org/embulk/spi/util/Timestamps.java +0 -53
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/AbstractDynamicColumnSetter.java +0 -94
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java +0 -71
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java +0 -20
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java +0 -68
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/JsonColumnSetter.java +0 -64
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java +0 -78
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java +0 -39
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java +0 -68
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/StringColumnSetter.java +0 -63
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/TimestampColumnSetter.java +0 -72
- data/embulk-core/src/main/resources/embulk/logback-color.xml +0 -72
- data/embulk-core/src/main/resources/embulk/logback-console.xml +0 -14
- data/embulk-core/src/main/resources/embulk/logback-file.xml +0 -23
- data/embulk-core/src/main/resources/embulk/parent_first_packages.properties +0 -73
- data/embulk-core/src/main/resources/embulk/parent_first_resources.properties +0 -29
- data/embulk-core/src/test/java/org/embulk/EmbulkTestRuntime.java +0 -122
- data/embulk-core/src/test/java/org/embulk/GuiceBinder.java +0 -72
- data/embulk-core/src/test/java/org/embulk/RandomManager.java +0 -53
- data/embulk-core/src/test/java/org/embulk/TestPluginSourceModule.java +0 -23
- data/embulk-core/src/test/java/org/embulk/TestUtilityModule.java +0 -17
- data/embulk-core/src/test/java/org/embulk/config/TestConfigLoader.java +0 -66
- data/embulk-core/src/test/java/org/embulk/config/TestConfigSource.java +0 -114
- data/embulk-core/src/test/java/org/embulk/config/TestTaskSource.java +0 -70
- data/embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java +0 -58
- data/embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java +0 -83
- data/embulk-core/src/test/java/org/embulk/plugin/TestPluginTypeSerDe.java +0 -67
- data/embulk-core/src/test/java/org/embulk/plugin/jar/ExampleJarSpiV0.java +0 -9
- data/embulk-core/src/test/java/org/embulk/plugin/jar/JarBuilder.java +0 -101
- data/embulk-core/src/test/java/org/embulk/plugin/jar/TestJarPluginLoader.java +0 -60
- data/embulk-core/src/test/java/org/embulk/plugin/maven/TestMavenArtifactFinder.java +0 -41
- data/embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java +0 -63
- data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +0 -108
- data/embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java +0 -80
- data/embulk-core/src/test/java/org/embulk/spi/PageTestUtils.java +0 -59
- data/embulk-core/src/test/java/org/embulk/spi/TestBuffer.java +0 -24
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputInputStream.java +0 -89
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +0 -199
- data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +0 -221
- data/embulk-core/src/test/java/org/embulk/spi/TestInputStreamFileInput.java +0 -188
- data/embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java +0 -411
- data/embulk-core/src/test/java/org/embulk/spi/json/TestJsonParser.java +0 -102
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestamp.java +0 -116
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParser.java +0 -75
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParserDeprecated.java +0 -67
- data/embulk-core/src/test/java/org/embulk/spi/type/TestTypeSerDe.java +0 -45
- data/embulk-core/src/test/java/org/embulk/spi/unit/TestByteSize.java +0 -79
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineDecoder.java +0 -237
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineEncoder.java +0 -123
- data/embulk-core/src/test/resources/m2.test/.gitignore +0 -1
- 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
- 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
- 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
- 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
- data/embulk-docs/Makefile +0 -178
- data/embulk-docs/build.gradle +0 -41
- data/embulk-docs/make.bat +0 -243
- data/embulk-docs/push-gh-pages.sh +0 -49
- data/embulk-docs/src/_static/embulk-architecture.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-tr.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-wt.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline.ai +0 -396
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr-small.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-wt.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.ai +0 -417
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.svg +0 -1
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-tr.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-wt.png +0 -0
- data/embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol.ai +1 -394
- data/embulk-docs/src/_static/embulk-logo.svg +0 -133
- data/embulk-docs/src/built-in.rst +0 -1017
- data/embulk-docs/src/conf.py +0 -260
- data/embulk-docs/src/customization.rst +0 -184
- data/embulk-docs/src/developers/index.rst +0 -45
- data/embulk-docs/src/index.rst +0 -102
- data/embulk-docs/src/logo.rst +0 -27
- data/embulk-docs/src/recipe.rst +0 -8
- data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana5.rst +0 -163
- data/embulk-docs/src/release.rst +0 -106
- data/embulk-docs/src/release/release-0.1.0.rst +0 -8
- data/embulk-docs/src/release/release-0.2.0.rst +0 -16
- data/embulk-docs/src/release/release-0.2.1.rst +0 -19
- data/embulk-docs/src/release/release-0.3.0.rst +0 -34
- data/embulk-docs/src/release/release-0.3.1.rst +0 -11
- data/embulk-docs/src/release/release-0.3.2.rst +0 -15
- data/embulk-docs/src/release/release-0.4.0.rst +0 -74
- data/embulk-docs/src/release/release-0.4.1.rst +0 -18
- data/embulk-docs/src/release/release-0.4.10.rst +0 -17
- data/embulk-docs/src/release/release-0.4.2.rst +0 -18
- data/embulk-docs/src/release/release-0.4.3.rst +0 -34
- data/embulk-docs/src/release/release-0.4.4.rst +0 -39
- data/embulk-docs/src/release/release-0.4.5.rst +0 -24
- data/embulk-docs/src/release/release-0.4.6.rst +0 -30
- data/embulk-docs/src/release/release-0.4.7.rst +0 -16
- data/embulk-docs/src/release/release-0.4.8.rst +0 -15
- data/embulk-docs/src/release/release-0.4.9.rst +0 -23
- data/embulk-docs/src/release/release-0.5.0.rst +0 -89
- data/embulk-docs/src/release/release-0.5.1.rst +0 -13
- data/embulk-docs/src/release/release-0.5.2.rst +0 -30
- data/embulk-docs/src/release/release-0.5.3.rst +0 -22
- data/embulk-docs/src/release/release-0.5.4.rst +0 -24
- data/embulk-docs/src/release/release-0.5.5.rst +0 -18
- data/embulk-docs/src/release/release-0.6.0.rst +0 -34
- data/embulk-docs/src/release/release-0.6.1.rst +0 -11
- data/embulk-docs/src/release/release-0.6.10.rst +0 -15
- data/embulk-docs/src/release/release-0.6.11.rst +0 -19
- data/embulk-docs/src/release/release-0.6.12.rst +0 -31
- data/embulk-docs/src/release/release-0.6.13.rst +0 -23
- data/embulk-docs/src/release/release-0.6.14.rst +0 -47
- data/embulk-docs/src/release/release-0.6.15.rst +0 -26
- data/embulk-docs/src/release/release-0.6.16.rst +0 -26
- data/embulk-docs/src/release/release-0.6.17.rst +0 -39
- data/embulk-docs/src/release/release-0.6.18.rst +0 -14
- data/embulk-docs/src/release/release-0.6.19.rst +0 -18
- data/embulk-docs/src/release/release-0.6.2.rst +0 -17
- data/embulk-docs/src/release/release-0.6.20.rst +0 -19
- data/embulk-docs/src/release/release-0.6.21.rst +0 -20
- data/embulk-docs/src/release/release-0.6.22.rst +0 -26
- data/embulk-docs/src/release/release-0.6.23.rst +0 -17
- data/embulk-docs/src/release/release-0.6.24.rst +0 -13
- data/embulk-docs/src/release/release-0.6.25.rst +0 -12
- data/embulk-docs/src/release/release-0.6.26.rst +0 -17
- data/embulk-docs/src/release/release-0.6.27.rst +0 -11
- data/embulk-docs/src/release/release-0.6.3.rst +0 -23
- data/embulk-docs/src/release/release-0.6.4.rst +0 -13
- data/embulk-docs/src/release/release-0.6.5.rst +0 -17
- data/embulk-docs/src/release/release-0.6.6.rst +0 -17
- data/embulk-docs/src/release/release-0.6.7.rst +0 -17
- data/embulk-docs/src/release/release-0.6.8.rst +0 -24
- data/embulk-docs/src/release/release-0.6.9.rst +0 -24
- data/embulk-docs/src/release/release-0.7.0.rst +0 -96
- data/embulk-docs/src/release/release-0.7.1.rst +0 -22
- data/embulk-docs/src/release/release-0.7.10.rst +0 -13
- data/embulk-docs/src/release/release-0.7.11.rst +0 -12
- data/embulk-docs/src/release/release-0.7.2.rst +0 -25
- data/embulk-docs/src/release/release-0.7.3.rst +0 -21
- data/embulk-docs/src/release/release-0.7.4.rst +0 -14
- data/embulk-docs/src/release/release-0.7.5.rst +0 -22
- data/embulk-docs/src/release/release-0.7.6.rst +0 -18
- data/embulk-docs/src/release/release-0.7.7.rst +0 -13
- data/embulk-docs/src/release/release-0.7.8.rst +0 -14
- data/embulk-docs/src/release/release-0.7.9.rst +0 -14
- data/embulk-docs/src/release/release-0.8.0.rst +0 -74
- data/embulk-docs/src/release/release-0.8.1.rst +0 -18
- data/embulk-docs/src/release/release-0.8.10.rst +0 -35
- data/embulk-docs/src/release/release-0.8.11.rst +0 -12
- data/embulk-docs/src/release/release-0.8.12.rst +0 -12
- data/embulk-docs/src/release/release-0.8.13.rst +0 -12
- data/embulk-docs/src/release/release-0.8.14.rst +0 -31
- data/embulk-docs/src/release/release-0.8.15.rst +0 -17
- data/embulk-docs/src/release/release-0.8.16.rst +0 -43
- data/embulk-docs/src/release/release-0.8.17.rst +0 -11
- data/embulk-docs/src/release/release-0.8.18.rst +0 -27
- data/embulk-docs/src/release/release-0.8.19.rst +0 -43
- data/embulk-docs/src/release/release-0.8.2.rst +0 -19
- data/embulk-docs/src/release/release-0.8.20.rst +0 -11
- data/embulk-docs/src/release/release-0.8.21.rst +0 -17
- data/embulk-docs/src/release/release-0.8.22.rst +0 -15
- data/embulk-docs/src/release/release-0.8.23.rst +0 -14
- data/embulk-docs/src/release/release-0.8.24.rst +0 -15
- data/embulk-docs/src/release/release-0.8.25.rst +0 -14
- data/embulk-docs/src/release/release-0.8.26.rst +0 -16
- data/embulk-docs/src/release/release-0.8.27.rst +0 -15
- data/embulk-docs/src/release/release-0.8.28.rst +0 -14
- data/embulk-docs/src/release/release-0.8.29.rst +0 -14
- data/embulk-docs/src/release/release-0.8.3.rst +0 -15
- data/embulk-docs/src/release/release-0.8.30.rst +0 -14
- data/embulk-docs/src/release/release-0.8.31.rst +0 -12
- data/embulk-docs/src/release/release-0.8.32.rst +0 -14
- data/embulk-docs/src/release/release-0.8.33.rst +0 -13
- data/embulk-docs/src/release/release-0.8.34.rst +0 -12
- data/embulk-docs/src/release/release-0.8.35.rst +0 -12
- data/embulk-docs/src/release/release-0.8.36.rst +0 -32
- data/embulk-docs/src/release/release-0.8.4.rst +0 -18
- data/embulk-docs/src/release/release-0.8.5.rst +0 -11
- data/embulk-docs/src/release/release-0.8.6.rst +0 -14
- data/embulk-docs/src/release/release-0.8.7.rst +0 -18
- data/embulk-docs/src/release/release-0.8.8.rst +0 -18
- data/embulk-docs/src/release/release-0.8.9.rst +0 -14
- data/embulk-jruby-strptime/build.gradle +0 -3
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/RubyDateParser.java +0 -121
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeFormat.java +0 -53
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeParser.java +0 -884
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/StrptimeToken.java +0 -111
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/TimeZoneConverter.java +0 -466
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/lexer/StrptimeLexer.flex +0 -62
- data/embulk-jruby-strptime/src/main/java/org/embulk/spi/time/lexer/StrptimeLexer.java +0 -577
- data/embulk-standards/build.gradle +0 -7
- data/embulk-standards/src/main/java/org/embulk/standards/Bzip2FileDecoderPlugin.java +0 -55
- data/embulk-standards/src/main/java/org/embulk/standards/Bzip2FileEncoderPlugin.java +0 -67
- data/embulk-standards/src/main/java/org/embulk/standards/ConfigInputPlugin.java +0 -170
- data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +0 -295
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +0 -416
- data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +0 -545
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileDecoderPlugin.java +0 -55
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileEncoderPlugin.java +0 -71
- data/embulk-standards/src/main/java/org/embulk/standards/JsonParserPlugin.java +0 -235
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +0 -232
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +0 -148
- data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +0 -59
- data/embulk-standards/src/main/java/org/embulk/standards/RemoveColumnsFilterPlugin.java +0 -268
- data/embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java +0 -479
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginExtension.java +0 -16
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +0 -60
- data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +0 -91
- data/embulk-standards/src/main/resources/META-INF/services/org.embulk.spi.Extension +0 -1
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvFormatterPlugin.java +0 -312
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvParserPlugin.java +0 -75
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvTokenizer.java +0 -457
- data/embulk-standards/src/test/java/org/embulk/standards/TestJsonParserPlugin.java +0 -351
- data/embulk-standards/src/test/java/org/embulk/standards/TestRemoveColumnsFilterPlugin.java +0 -121
- data/embulk-standards/src/test/java/org/embulk/standards/TestRenameFilterPlugin.java +0 -1020
- data/embulk-standards/src/test/java/org/embulk/standards/guess/TestCsvAllStringsGuessPlugin.java +0 -38
- data/embulk-standards/src/test/java/org/embulk/standards/guess/TestCsvGuessPlugin.java +0 -248
- data/embulk-standards/src/test/java/org/embulk/standards/preview/TestFilePreview.java +0 -73
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row.csv +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_and_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_int_single_column_row_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows.csv +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_and_header_with_trim_needed_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed.csv +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_rows_with_trim_needed_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row.csv +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_and_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_1_string_single_column_row_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_int_single_column_rows_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header.csv +0 -3
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_and_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_rows_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows.csv +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_2_string_single_column_rows_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape_guessed.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_backslash_escape_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column.csv +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_double_single_column_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_int_single_column_with_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter_guessed.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_semicolon_delimiter_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple_guessed.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_simple_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote_guessed.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_single_quote_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_guessed.yml +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_skip_suggest_if_empty_sample_records_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header_guessed.yml +0 -12
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_string_single_column_with_header_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter_guessed.yml +0 -16
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv/test/test_tab_delimiter_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple_guessed.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/guess/csv_all_strings/test/test_simple_seed.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_exec.yml +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_load.yml +0 -19
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_sample_buffer_bytes_previewed.csv +0 -1
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_load.yml +0 -19
- data/embulk-standards/src/test/resources/org/embulk/standards/preview/file/test/test_simple_previewed.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_expected.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_filter.yml +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_in.yml +0 -18
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names.yml +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names_expected.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_duplicated_column_names_in.yml +0 -17
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_with_unmatched_filter.yml +0 -3
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_keep_without_unmatched_filter.yml +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove.csv +0 -5
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_expected.csv +0 -4
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_filter.yml +0 -2
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_in.yml +0 -18
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_with_unmatched_filter.yml +0 -3
- data/embulk-standards/src/test/resources/org/embulk/standards/remove_columns/test/test_remove_without_unmatched_filter.yml +0 -2
- data/embulk-test/build.gradle +0 -6
- data/embulk-test/src/main/java/org/embulk/test/EmbulkTests.java +0 -75
- data/embulk-test/src/main/java/org/embulk/test/PreviewResultInputPlugin.java +0 -65
- data/embulk-test/src/main/java/org/embulk/test/TestingBulkLoader.java +0 -129
- data/embulk-test/src/main/java/org/embulk/test/TestingEmbulk.java +0 -710
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +0 -5
- data/gradlew +0 -172
- data/gradlew.bat +0 -84
- data/lib/embulk/data/bundle/.bundle/config +0 -3
- data/lib/embulk/data/bundle/.ruby-version +0 -1
- data/lib/embulk/data/bundle/Gemfile +0 -31
- data/lib/embulk/data/bundle/embulk/filter/example.rb +0 -42
- data/lib/embulk/data/bundle/embulk/input/example.rb +0 -54
- data/lib/embulk/data/bundle/embulk/output/example.rb +0 -58
- data/lib/embulk/data/new/LICENSE.txt +0 -21
- data/lib/embulk/data/new/README.md.vm +0 -106
- data/lib/embulk/data/new/gitignore.vm +0 -17
- data/lib/embulk/data/new/java/build.gradle.vm +0 -96
- data/lib/embulk/data/new/java/config/checkstyle/checkstyle.xml +0 -128
- data/lib/embulk/data/new/java/config/checkstyle/default.xml +0 -108
- data/lib/embulk/data/new/java/decoder.java.vm +0 -86
- data/lib/embulk/data/new/java/encoder.java.vm +0 -88
- data/lib/embulk/data/new/java/file_input.java.vm +0 -145
- data/lib/embulk/data/new/java/file_output.java.vm +0 -95
- data/lib/embulk/data/new/java/filter.java.vm +0 -57
- data/lib/embulk/data/new/java/formatter.java.vm +0 -55
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +0 -5
- data/lib/embulk/data/new/java/gradlew +0 -172
- data/lib/embulk/data/new/java/gradlew.bat +0 -84
- data/lib/embulk/data/new/java/input.java.vm +0 -89
- data/lib/embulk/data/new/java/output.java.vm +0 -79
- data/lib/embulk/data/new/java/parser.java.vm +0 -61
- data/lib/embulk/data/new/java/plugin_loader.rb.vm +0 -3
- data/lib/embulk/data/new/java/test.java.vm +0 -5
- data/lib/embulk/data/new/ruby/.ruby-version +0 -1
- data/lib/embulk/data/new/ruby/Gemfile +0 -2
- data/lib/embulk/data/new/ruby/Rakefile +0 -3
- data/lib/embulk/data/new/ruby/decoder_guess.rb.vm +0 -25
- data/lib/embulk/data/new/ruby/filter.rb.vm +0 -50
- data/lib/embulk/data/new/ruby/formatter.rb.vm +0 -49
- data/lib/embulk/data/new/ruby/gemspec.vm +0 -20
- data/lib/embulk/data/new/ruby/input.rb.vm +0 -59
- data/lib/embulk/data/new/ruby/output.rb.vm +0 -61
- data/lib/embulk/data/new/ruby/parser.rb.vm +0 -44
- data/lib/embulk/data/new/ruby/parser_guess.rb.vm +0 -65
- data/lib/embulk/data/package_data.rb +0 -59
- data/lib/embulk/java/time_helper.rb +0 -79
- data/lib/embulk/runner.rb +0 -53
- data/settings.gradle +0 -8
- data/test/guess/test_csv_all_strings.rb +0 -43
- data/test/guess/test_csv_guess.rb +0 -170
- data/test/guess/test_schema_guess.rb +0 -47
- data/test/guess/test_time_format_guess.rb +0 -135
- data/test/helper.rb +0 -23
- data/test/mri/date/test_date_strptime.rb +0 -515
- data/test/run-test.rb +0 -28
@@ -1,710 +0,0 @@
|
|
1
|
-
package org.embulk.test;
|
2
|
-
|
3
|
-
import com.google.common.base.Throwables;
|
4
|
-
import com.google.common.collect.ImmutableList;
|
5
|
-
import com.google.common.collect.Lists;
|
6
|
-
import com.google.common.io.ByteStreams;
|
7
|
-
import com.google.inject.Binder;
|
8
|
-
import com.google.inject.Injector;
|
9
|
-
import com.google.inject.Module;
|
10
|
-
|
11
|
-
import java.io.BufferedReader;
|
12
|
-
import java.io.IOException;
|
13
|
-
import java.io.InputStream;
|
14
|
-
import java.io.OutputStream;
|
15
|
-
import java.nio.file.DirectoryStream;
|
16
|
-
import java.nio.file.Files;
|
17
|
-
import java.nio.file.Path;
|
18
|
-
import java.util.ArrayList;
|
19
|
-
import java.util.Collections;
|
20
|
-
import java.util.List;
|
21
|
-
|
22
|
-
import org.embulk.EmbulkEmbed;
|
23
|
-
import org.embulk.config.ConfigDiff;
|
24
|
-
import org.embulk.config.ConfigLoader;
|
25
|
-
import org.embulk.config.ConfigSource;
|
26
|
-
import org.embulk.config.ModelManager;
|
27
|
-
import org.embulk.config.TaskReport;
|
28
|
-
import org.embulk.exec.PreviewResult;
|
29
|
-
import org.embulk.plugin.PluginClassLoader;
|
30
|
-
import org.embulk.spi.ColumnConfig;
|
31
|
-
import org.embulk.spi.FileOutputRunner;
|
32
|
-
import org.embulk.spi.Page;
|
33
|
-
import org.embulk.spi.Schema;
|
34
|
-
import org.embulk.spi.SchemaConfig;
|
35
|
-
import org.embulk.spi.TempFileException;
|
36
|
-
import org.embulk.spi.TempFileSpace;
|
37
|
-
import org.embulk.spi.type.Type;
|
38
|
-
import org.junit.rules.TestRule;
|
39
|
-
import org.junit.rules.TestWatcher;
|
40
|
-
import org.junit.runner.Description;
|
41
|
-
import org.junit.runners.model.Statement;
|
42
|
-
import static com.google.common.base.Preconditions.checkArgument;
|
43
|
-
import static java.nio.charset.StandardCharsets.UTF_8;
|
44
|
-
import static java.nio.file.Files.newBufferedReader;
|
45
|
-
import static java.util.Locale.ENGLISH;
|
46
|
-
import static com.google.common.base.Preconditions.checkNotNull;
|
47
|
-
import static com.google.common.base.Preconditions.checkState;
|
48
|
-
import static java.nio.charset.StandardCharsets.UTF_8;
|
49
|
-
import static java.nio.file.Files.newBufferedReader;
|
50
|
-
import static org.embulk.plugin.InjectedPluginSource.registerPluginTo;
|
51
|
-
import static org.embulk.test.EmbulkTests.copyResource;
|
52
|
-
|
53
|
-
public class TestingEmbulk
|
54
|
-
implements TestRule
|
55
|
-
{
|
56
|
-
public static class Builder
|
57
|
-
{
|
58
|
-
private List<Module> modules = new ArrayList<>();
|
59
|
-
|
60
|
-
Builder()
|
61
|
-
{ }
|
62
|
-
|
63
|
-
public <T> Builder registerPlugin(final Class<T> iface, final String name, final Class<?> impl)
|
64
|
-
{
|
65
|
-
modules.add(new Module() {
|
66
|
-
public void configure(Binder binder)
|
67
|
-
{
|
68
|
-
registerPluginTo(binder, iface, name, impl);
|
69
|
-
}
|
70
|
-
});
|
71
|
-
return this;
|
72
|
-
}
|
73
|
-
|
74
|
-
public TestingEmbulk build()
|
75
|
-
{
|
76
|
-
return new TestingEmbulk(this);
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
public static Builder builder()
|
81
|
-
{
|
82
|
-
return new Builder();
|
83
|
-
}
|
84
|
-
|
85
|
-
private final List<Module> modules;
|
86
|
-
|
87
|
-
private EmbulkEmbed embed;
|
88
|
-
private TempFileSpace tempFiles;
|
89
|
-
|
90
|
-
TestingEmbulk(Builder builder)
|
91
|
-
{
|
92
|
-
this.modules = ImmutableList.copyOf(builder.modules);
|
93
|
-
reset();
|
94
|
-
}
|
95
|
-
|
96
|
-
public void reset()
|
97
|
-
{
|
98
|
-
destroy();
|
99
|
-
|
100
|
-
this.embed = new EmbulkEmbed.Bootstrap()
|
101
|
-
.addModules(modules)
|
102
|
-
.overrideModules(TestingBulkLoader.override())
|
103
|
-
.initializeCloseable();
|
104
|
-
|
105
|
-
try {
|
106
|
-
this.tempFiles = new TempFileSpace(Files.createTempDirectory("embulk-test-temp-").toFile());
|
107
|
-
}
|
108
|
-
catch (IOException ex) {
|
109
|
-
throw new TempFileException(ex);
|
110
|
-
}
|
111
|
-
}
|
112
|
-
|
113
|
-
public void destroy()
|
114
|
-
{
|
115
|
-
if (embed != null) {
|
116
|
-
embed.destroy();
|
117
|
-
embed = null;
|
118
|
-
}
|
119
|
-
if (tempFiles != null) {
|
120
|
-
tempFiles.cleanup();
|
121
|
-
tempFiles = null;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
|
125
|
-
@Override
|
126
|
-
public Statement apply(Statement base, Description description)
|
127
|
-
{
|
128
|
-
return new EmbulkTestingEmbedWatcher().apply(base, description);
|
129
|
-
}
|
130
|
-
|
131
|
-
private class EmbulkTestingEmbedWatcher
|
132
|
-
extends TestWatcher
|
133
|
-
{
|
134
|
-
@Override
|
135
|
-
protected void starting(Description description)
|
136
|
-
{
|
137
|
-
reset();
|
138
|
-
}
|
139
|
-
|
140
|
-
@Override
|
141
|
-
protected void finished(Description description)
|
142
|
-
{
|
143
|
-
destroy();
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
public Path createTempFile(String suffix)
|
148
|
-
{
|
149
|
-
return tempFiles.createTempFile(suffix).toPath();
|
150
|
-
}
|
151
|
-
|
152
|
-
public Injector injector()
|
153
|
-
{
|
154
|
-
return embed.getInjector();
|
155
|
-
}
|
156
|
-
|
157
|
-
public ConfigLoader configLoader()
|
158
|
-
{
|
159
|
-
return embed.newConfigLoader();
|
160
|
-
}
|
161
|
-
|
162
|
-
public ConfigSource newConfig()
|
163
|
-
{
|
164
|
-
return configLoader().newConfigSource();
|
165
|
-
}
|
166
|
-
|
167
|
-
public ConfigSource loadYamlResource(String name)
|
168
|
-
{
|
169
|
-
return configLoader()
|
170
|
-
.fromYamlString(EmbulkTests.readResource(name));
|
171
|
-
}
|
172
|
-
|
173
|
-
private static final List<String> SUPPORTED_TYPES = ImmutableList.of(
|
174
|
-
"boolean", "long", "double", "string", "timestamp", "json"
|
175
|
-
);
|
176
|
-
|
177
|
-
public static interface RunResult
|
178
|
-
{
|
179
|
-
ConfigDiff getConfigDiff();
|
180
|
-
|
181
|
-
List<Throwable> getIgnoredExceptions();
|
182
|
-
|
183
|
-
Schema getInputSchema();
|
184
|
-
|
185
|
-
Schema getOutputSchema();
|
186
|
-
|
187
|
-
List<TaskReport> getInputTaskReports();
|
188
|
-
|
189
|
-
List<TaskReport> getOutputTaskReports();
|
190
|
-
}
|
191
|
-
|
192
|
-
public class InputBuilder
|
193
|
-
{
|
194
|
-
private ConfigSource inConfig = null;
|
195
|
-
private List<ConfigSource> filtersConfig = ImmutableList.of();
|
196
|
-
private ConfigSource execConfig = newConfig();
|
197
|
-
private Path outputPath = null;
|
198
|
-
|
199
|
-
private InputBuilder()
|
200
|
-
{ }
|
201
|
-
|
202
|
-
public InputBuilder in(ConfigSource inConfig)
|
203
|
-
{
|
204
|
-
checkNotNull(inConfig, "inConfig");
|
205
|
-
this.inConfig = inConfig.deepCopy();
|
206
|
-
return this;
|
207
|
-
}
|
208
|
-
|
209
|
-
public InputBuilder filters(List<ConfigSource> filtersConfig)
|
210
|
-
{
|
211
|
-
checkNotNull(filtersConfig, "filtersConfig");
|
212
|
-
ImmutableList.Builder<ConfigSource> builder = ImmutableList.builder();
|
213
|
-
for (ConfigSource filter : filtersConfig) {
|
214
|
-
builder.add(filter.deepCopy());
|
215
|
-
}
|
216
|
-
this.filtersConfig = builder.build();
|
217
|
-
return this;
|
218
|
-
}
|
219
|
-
|
220
|
-
public InputBuilder exec(ConfigSource execConfig)
|
221
|
-
{
|
222
|
-
checkNotNull(execConfig, "execConfig");
|
223
|
-
this.execConfig = execConfig.deepCopy();
|
224
|
-
return this;
|
225
|
-
}
|
226
|
-
|
227
|
-
public InputBuilder outputPath(Path outputPath)
|
228
|
-
{
|
229
|
-
checkNotNull(outputPath, "outputPath");
|
230
|
-
this.outputPath = outputPath;
|
231
|
-
return this;
|
232
|
-
}
|
233
|
-
|
234
|
-
public ConfigDiff guess()
|
235
|
-
{
|
236
|
-
checkState(inConfig != null, "in config must be set");
|
237
|
-
|
238
|
-
// config = {exec: execConfig, in: inConfig}
|
239
|
-
ConfigSource config = newConfig()
|
240
|
-
.set("exec", execConfig)
|
241
|
-
.set("in", inConfig)
|
242
|
-
.set("filters", filtersConfig);
|
243
|
-
|
244
|
-
// embed.guess returns GuessExecutor.ConfigDiff
|
245
|
-
return embed.guess(config).getNested("in");
|
246
|
-
}
|
247
|
-
|
248
|
-
/**
|
249
|
-
* This method returns PreviewResult.
|
250
|
-
*
|
251
|
-
* @return PreviewResult returns the result by PreviewExecutor
|
252
|
-
* @throws IOException
|
253
|
-
*/
|
254
|
-
public PreviewResult preview()
|
255
|
-
throws IOException
|
256
|
-
{
|
257
|
-
checkState(inConfig != null, "inputPath must be set");
|
258
|
-
checkState(outputPath != null, "outputPath must be set");
|
259
|
-
|
260
|
-
// Execute preview to get PreviewResult
|
261
|
-
ConfigSource previewConfig = newConfig()
|
262
|
-
.set("exec", execConfig.set("min_output_tasks", 1)) // exec: config
|
263
|
-
.set("in", inConfig)
|
264
|
-
.set("filters", filtersConfig);
|
265
|
-
PreviewResult result = embed.preview(previewConfig);
|
266
|
-
PreviewResultInputPlugin.setPreviewResult(result);
|
267
|
-
|
268
|
-
String fileName = outputPath.getFileName().toString();
|
269
|
-
checkArgument(fileName.endsWith(".csv"), "outputPath must end with .csv");
|
270
|
-
Path dir = outputPath.getParent().resolve(fileName.substring(0, fileName.length() - 4));
|
271
|
-
Files.createDirectories(dir);
|
272
|
-
|
273
|
-
// Execute run to write PreviewResult's Page objects to output files
|
274
|
-
ConfigSource runConfig = newConfig()
|
275
|
-
.set("in", newConfig().set("type", "preview_result")) // in: config
|
276
|
-
.set("out", newConfig() // out: config
|
277
|
-
.set("type", "file")
|
278
|
-
.set("path_prefix", dir.resolve("fragments_").toString())
|
279
|
-
.set("file_ext", "csv")
|
280
|
-
.set("formatter", newConfig()
|
281
|
-
.set("type", "csv")
|
282
|
-
.set("header_line", false)
|
283
|
-
.set("newline", "LF")));
|
284
|
-
embed.run(runConfig);
|
285
|
-
|
286
|
-
return buildPreviewResultWithOutput(result, dir, outputPath);
|
287
|
-
}
|
288
|
-
|
289
|
-
public RunResult run()
|
290
|
-
throws IOException
|
291
|
-
{
|
292
|
-
checkState(inConfig != null, "in config must be set");
|
293
|
-
checkState(outputPath != null, "outputPath must be set");
|
294
|
-
|
295
|
-
String fileName = outputPath.getFileName().toString();
|
296
|
-
checkArgument(fileName.endsWith(".csv"), "outputPath must end with .csv");
|
297
|
-
Path dir = outputPath.getParent().resolve(fileName.substring(0, fileName.length() - 4));
|
298
|
-
|
299
|
-
Files.createDirectories(dir);
|
300
|
-
|
301
|
-
// exec: config
|
302
|
-
execConfig.set("min_output_tasks", 1);
|
303
|
-
|
304
|
-
// out: config
|
305
|
-
ConfigSource outConfig = newConfig()
|
306
|
-
.set("type", "file")
|
307
|
-
.set("path_prefix", dir.resolve("fragments_").toString())
|
308
|
-
.set("file_ext", "csv")
|
309
|
-
.set("formatter", newConfig()
|
310
|
-
.set("type", "csv")
|
311
|
-
.set("header_line", false)
|
312
|
-
.set("newline", "LF"));
|
313
|
-
|
314
|
-
// combine exec:, out: and in:
|
315
|
-
ConfigSource config = newConfig()
|
316
|
-
.set("exec", execConfig)
|
317
|
-
.set("in", inConfig)
|
318
|
-
.set("filters", filtersConfig)
|
319
|
-
.set("out", outConfig);
|
320
|
-
|
321
|
-
// embed.run returns TestingBulkLoader.TestingExecutionResult because
|
322
|
-
// LoaderState.buildExecuteResultWithWarningException is overridden.
|
323
|
-
RunResult result = (RunResult) embed.run(config);
|
324
|
-
|
325
|
-
return buildRunResultWithOutput(result, dir, outputPath);
|
326
|
-
}
|
327
|
-
}
|
328
|
-
|
329
|
-
public class ParserBuilder
|
330
|
-
{
|
331
|
-
private ConfigSource parserConfig = newConfig();
|
332
|
-
private ConfigSource execConfig = newConfig();
|
333
|
-
private Path inputPath = null;
|
334
|
-
private Path outputPath = null;
|
335
|
-
|
336
|
-
private ParserBuilder()
|
337
|
-
{ }
|
338
|
-
|
339
|
-
public ParserBuilder parser(ConfigSource parserConfig)
|
340
|
-
{
|
341
|
-
checkNotNull(parserConfig, "parserConfig");
|
342
|
-
this.parserConfig = parserConfig.deepCopy();
|
343
|
-
return this;
|
344
|
-
}
|
345
|
-
|
346
|
-
public ParserBuilder exec(ConfigSource execConfig)
|
347
|
-
{
|
348
|
-
checkNotNull(execConfig, "execConfig");
|
349
|
-
this.execConfig = execConfig.deepCopy();
|
350
|
-
return this;
|
351
|
-
}
|
352
|
-
|
353
|
-
public ParserBuilder inputPath(Path inputPath)
|
354
|
-
{
|
355
|
-
checkNotNull(inputPath, "inputPath");
|
356
|
-
this.inputPath = inputPath;
|
357
|
-
return this;
|
358
|
-
}
|
359
|
-
|
360
|
-
public ParserBuilder inputResource(String resourceName)
|
361
|
-
throws IOException
|
362
|
-
{
|
363
|
-
checkNotNull(resourceName, "resourceName");
|
364
|
-
Path path = createTempFile("csv");
|
365
|
-
copyResource(resourceName, path);
|
366
|
-
return inputPath(path);
|
367
|
-
}
|
368
|
-
|
369
|
-
public ParserBuilder outputPath(Path outputPath)
|
370
|
-
{
|
371
|
-
checkNotNull(outputPath, "outputPath");
|
372
|
-
this.outputPath = outputPath;
|
373
|
-
return this;
|
374
|
-
}
|
375
|
-
|
376
|
-
public ConfigDiff guess()
|
377
|
-
{
|
378
|
-
checkState(inputPath != null, "inputPath must be set");
|
379
|
-
|
380
|
-
// in: config
|
381
|
-
ConfigSource inConfig = newConfig()
|
382
|
-
.set("type", "file")
|
383
|
-
.set("path_prefix", inputPath.toAbsolutePath().toString());
|
384
|
-
inConfig.set("parser", parserConfig);
|
385
|
-
|
386
|
-
// config = {exec: execConfig, in: inConfig}
|
387
|
-
ConfigSource config = newConfig()
|
388
|
-
.set("exec", execConfig)
|
389
|
-
.set("in", inConfig);
|
390
|
-
|
391
|
-
// embed.guess calls GuessExecutor and returns ConfigDiff
|
392
|
-
return embed.guess(config).getNested("in").getNested("parser");
|
393
|
-
}
|
394
|
-
|
395
|
-
public RunResult run()
|
396
|
-
throws IOException
|
397
|
-
{
|
398
|
-
checkState(parserConfig != null, "parser config must be set");
|
399
|
-
checkState(inputPath != null, "inputPath must be set");
|
400
|
-
checkState(outputPath != null, "outputPath must be set");
|
401
|
-
|
402
|
-
String fileName = outputPath.getFileName().toString();
|
403
|
-
checkArgument(fileName.endsWith(".csv"), "outputPath must end with .csv");
|
404
|
-
Path dir = outputPath.getParent().resolve(fileName.substring(0, fileName.length() - 4));
|
405
|
-
|
406
|
-
Files.createDirectories(dir);
|
407
|
-
|
408
|
-
// in: config
|
409
|
-
ConfigSource inConfig = newConfig()
|
410
|
-
.set("type", "file")
|
411
|
-
.set("path_prefix", inputPath.toAbsolutePath().toString());
|
412
|
-
inConfig.set("parser", parserConfig);
|
413
|
-
|
414
|
-
// exec: config
|
415
|
-
execConfig.set("min_output_tasks", 1);
|
416
|
-
|
417
|
-
// out: config
|
418
|
-
ConfigSource outConfig = newConfig()
|
419
|
-
.set("type", "file")
|
420
|
-
.set("path_prefix", dir.resolve("fragments_").toString())
|
421
|
-
.set("file_ext", "csv")
|
422
|
-
.set("formatter", newConfig()
|
423
|
-
.set("type", "csv")
|
424
|
-
.set("header_line", false)
|
425
|
-
.set("newline", "LF"));
|
426
|
-
|
427
|
-
// config = {exec: execConfig, in: inConfig, out: outConfig}
|
428
|
-
ConfigSource config = newConfig()
|
429
|
-
.set("exec", execConfig)
|
430
|
-
.set("in", inConfig)
|
431
|
-
.set("out", outConfig);
|
432
|
-
|
433
|
-
// embed.run returns TestingBulkLoader.TestingExecutionResult because
|
434
|
-
// LoaderState.buildExecuteResultWithWarningException is overridden.
|
435
|
-
RunResult result = (RunResult) embed.run(config);
|
436
|
-
|
437
|
-
return buildRunResultWithOutput(result, dir, outputPath);
|
438
|
-
}
|
439
|
-
}
|
440
|
-
|
441
|
-
public class OutputBuilder
|
442
|
-
{
|
443
|
-
private ConfigSource outConfig = null;
|
444
|
-
private ConfigSource execConfig = newConfig();
|
445
|
-
private Path inputPath;
|
446
|
-
private SchemaConfig inputSchema;
|
447
|
-
|
448
|
-
public OutputBuilder()
|
449
|
-
{ }
|
450
|
-
|
451
|
-
public OutputBuilder out(ConfigSource outConfig)
|
452
|
-
{
|
453
|
-
checkNotNull(outConfig, "outConfig");
|
454
|
-
this.outConfig = outConfig;
|
455
|
-
return this;
|
456
|
-
}
|
457
|
-
|
458
|
-
public OutputBuilder exec(ConfigSource execConfig)
|
459
|
-
{
|
460
|
-
checkNotNull(execConfig, "execConfig");
|
461
|
-
this.execConfig = execConfig;
|
462
|
-
return this;
|
463
|
-
}
|
464
|
-
|
465
|
-
public OutputBuilder inputPath(Path inputPath)
|
466
|
-
{
|
467
|
-
checkNotNull(inputPath, "inputPath");
|
468
|
-
this.inputPath = inputPath;
|
469
|
-
return this;
|
470
|
-
}
|
471
|
-
|
472
|
-
public OutputBuilder inputResource(String resourceName)
|
473
|
-
throws IOException
|
474
|
-
{
|
475
|
-
checkNotNull(resourceName, "resourceName");
|
476
|
-
Path path = createTempFile("csv");
|
477
|
-
copyResource(resourceName, path);
|
478
|
-
return inputPath(path);
|
479
|
-
}
|
480
|
-
|
481
|
-
public OutputBuilder inputSchema(SchemaConfig inputSchema)
|
482
|
-
{
|
483
|
-
checkNotNull(inputSchema, "inputSchema");
|
484
|
-
this.inputSchema = inputSchema;
|
485
|
-
return this;
|
486
|
-
}
|
487
|
-
|
488
|
-
public RunResult run()
|
489
|
-
throws IOException
|
490
|
-
{
|
491
|
-
checkState(outConfig != null, "out config must be set");
|
492
|
-
checkState(inputPath != null, "inputPath must be set");
|
493
|
-
|
494
|
-
String fileName = inputPath.toAbsolutePath().toString();
|
495
|
-
checkArgument(fileName.endsWith(".csv"), "inputPath must end with .csv");
|
496
|
-
|
497
|
-
// exec: config
|
498
|
-
execConfig.set("min_output_tasks", 1);
|
499
|
-
|
500
|
-
// in: config
|
501
|
-
ConfigSource inConfig = newConfig()
|
502
|
-
.set("type", "file")
|
503
|
-
.set("path_prefix", fileName)
|
504
|
-
.set("parser", newParserConfig());
|
505
|
-
|
506
|
-
// config = {exec: execConfig, in: inConfig, out: outConfig}
|
507
|
-
ConfigSource config = newConfig()
|
508
|
-
.set("exec", execConfig)
|
509
|
-
.set("in", inConfig)
|
510
|
-
.set("out", outConfig);
|
511
|
-
|
512
|
-
// embed.run returns TestingBulkLoader.TestingExecutionResult because
|
513
|
-
// LoaderState.buildExecuteResultWithWarningException is overridden.
|
514
|
-
return (RunResult) embed.run(config);
|
515
|
-
}
|
516
|
-
|
517
|
-
private ConfigSource newParserConfig()
|
518
|
-
{
|
519
|
-
return newConfig()
|
520
|
-
.set("charset", "UTF-8")
|
521
|
-
.set("newline", "LF")
|
522
|
-
.set("type", "csv")
|
523
|
-
.set("delimiter", ",")
|
524
|
-
.set("quote", "\"")
|
525
|
-
.set("escape", "\"")
|
526
|
-
.set("columns", newSchemaConfig());
|
527
|
-
}
|
528
|
-
|
529
|
-
private SchemaConfig newSchemaConfig()
|
530
|
-
{
|
531
|
-
ImmutableList.Builder<ColumnConfig> schema = ImmutableList.builder();
|
532
|
-
try (BufferedReader reader = newBufferedReader(inputPath, UTF_8)) {
|
533
|
-
for (String column : reader.readLine().split(",")) {
|
534
|
-
ColumnConfig columnConfig = newColumnConfig(column);
|
535
|
-
if (columnConfig != null) {
|
536
|
-
schema.add(columnConfig);
|
537
|
-
}
|
538
|
-
}
|
539
|
-
return new SchemaConfig(schema.build());
|
540
|
-
}
|
541
|
-
catch (IOException e) {
|
542
|
-
throw Throwables.propagate(e);
|
543
|
-
}
|
544
|
-
}
|
545
|
-
|
546
|
-
private ColumnConfig newColumnConfig(String column)
|
547
|
-
{
|
548
|
-
String[] tuple = column.split(":", 2);
|
549
|
-
checkArgument(tuple.length == 2, "tuple must be a pair of column name and type");
|
550
|
-
String type = tuple[1];
|
551
|
-
if (!SUPPORTED_TYPES.contains(type)) {
|
552
|
-
throw new IllegalArgumentException(String.format(ENGLISH,
|
553
|
-
"Unknown column type %s. Supported types are boolean, long, double, string, timestamp and json: %s",
|
554
|
-
tuple[1], column));
|
555
|
-
}
|
556
|
-
return new ColumnConfig(newConfig()
|
557
|
-
.set("name", tuple[0])
|
558
|
-
.set("type", type));
|
559
|
-
}
|
560
|
-
}
|
561
|
-
|
562
|
-
private PreviewResult buildPreviewResultWithOutput(PreviewResult result, Path outputDir, Path outputPath)
|
563
|
-
throws IOException
|
564
|
-
{
|
565
|
-
copyToPath(outputDir, outputPath);
|
566
|
-
return result;
|
567
|
-
}
|
568
|
-
|
569
|
-
private RunResult buildRunResultWithOutput(RunResult result, Path outputDir, Path outputPath)
|
570
|
-
throws IOException
|
571
|
-
{
|
572
|
-
copyToPath(outputDir, outputPath);
|
573
|
-
return result;
|
574
|
-
}
|
575
|
-
|
576
|
-
private void copyToPath(Path outputDir, Path outputPath)
|
577
|
-
throws IOException
|
578
|
-
{
|
579
|
-
try (OutputStream out = Files.newOutputStream(outputPath)) {
|
580
|
-
List<Path> fragments = new ArrayList<Path>();
|
581
|
-
try (DirectoryStream<Path> stream = Files.newDirectoryStream(outputDir, "fragments_*.csv")) {
|
582
|
-
for (Path fragment : stream) {
|
583
|
-
fragments.add(fragment);
|
584
|
-
}
|
585
|
-
}
|
586
|
-
Collections.sort(fragments);
|
587
|
-
for (Path fragment : fragments) {
|
588
|
-
try (InputStream in = Files.newInputStream(fragment)) {
|
589
|
-
ByteStreams.copy(in, out);
|
590
|
-
}
|
591
|
-
}
|
592
|
-
}
|
593
|
-
}
|
594
|
-
|
595
|
-
public InputBuilder inputBuilder()
|
596
|
-
{
|
597
|
-
return new InputBuilder();
|
598
|
-
}
|
599
|
-
|
600
|
-
public ParserBuilder parserBuilder()
|
601
|
-
{
|
602
|
-
return new ParserBuilder();
|
603
|
-
}
|
604
|
-
|
605
|
-
public OutputBuilder outputBuilder()
|
606
|
-
{
|
607
|
-
return new OutputBuilder();
|
608
|
-
}
|
609
|
-
|
610
|
-
public RunResult runParser(ConfigSource parserConfig, Path inputPath, Path outputPath)
|
611
|
-
throws IOException
|
612
|
-
{
|
613
|
-
return parserBuilder()
|
614
|
-
.parser(parserConfig)
|
615
|
-
.inputPath(inputPath)
|
616
|
-
.outputPath(outputPath)
|
617
|
-
.run();
|
618
|
-
}
|
619
|
-
|
620
|
-
public RunResult runParser(ConfigSource parserConfig, Path inputPath, Path outputPath, ConfigSource execConfig)
|
621
|
-
throws IOException
|
622
|
-
{
|
623
|
-
return parserBuilder()
|
624
|
-
.parser(parserConfig)
|
625
|
-
.inputPath(inputPath)
|
626
|
-
.outputPath(outputPath)
|
627
|
-
.exec(execConfig)
|
628
|
-
.run();
|
629
|
-
}
|
630
|
-
|
631
|
-
public RunResult runInput(ConfigSource inConfig, Path outputPath)
|
632
|
-
throws IOException
|
633
|
-
{
|
634
|
-
return inputBuilder()
|
635
|
-
.in(inConfig)
|
636
|
-
.outputPath(outputPath)
|
637
|
-
.run();
|
638
|
-
}
|
639
|
-
|
640
|
-
public RunResult runInput(ConfigSource inConfig, Path outputPath, ConfigSource execConfig)
|
641
|
-
throws IOException
|
642
|
-
{
|
643
|
-
return inputBuilder()
|
644
|
-
.exec(execConfig)
|
645
|
-
.in(inConfig)
|
646
|
-
.outputPath(outputPath)
|
647
|
-
.run();
|
648
|
-
}
|
649
|
-
|
650
|
-
public RunResult runOutput(ConfigSource outConfig, Path inputPath)
|
651
|
-
throws IOException
|
652
|
-
{
|
653
|
-
return outputBuilder()
|
654
|
-
.out(outConfig)
|
655
|
-
.inputPath(inputPath)
|
656
|
-
.run();
|
657
|
-
}
|
658
|
-
|
659
|
-
public RunResult runOutput(ConfigSource outConfig, Path inputPath, ConfigSource execConfig)
|
660
|
-
throws IOException
|
661
|
-
{
|
662
|
-
return outputBuilder()
|
663
|
-
.exec(execConfig)
|
664
|
-
.out(outConfig)
|
665
|
-
.inputPath(inputPath)
|
666
|
-
.run();
|
667
|
-
}
|
668
|
-
|
669
|
-
public ConfigDiff guessInput(ConfigSource inSeedConfig)
|
670
|
-
{
|
671
|
-
return inputBuilder()
|
672
|
-
.in(inSeedConfig)
|
673
|
-
.guess();
|
674
|
-
}
|
675
|
-
|
676
|
-
public ConfigDiff guessInput(ConfigSource inSeedConfig, ConfigSource execConfig)
|
677
|
-
{
|
678
|
-
return inputBuilder()
|
679
|
-
.exec(execConfig)
|
680
|
-
.in(inSeedConfig)
|
681
|
-
.guess();
|
682
|
-
}
|
683
|
-
|
684
|
-
public ConfigDiff guessParser(Path inputPath)
|
685
|
-
{
|
686
|
-
return parserBuilder()
|
687
|
-
.inputPath(inputPath)
|
688
|
-
.guess();
|
689
|
-
}
|
690
|
-
|
691
|
-
public ConfigDiff guessParser(ConfigSource parserSeedConfig, Path inputPath)
|
692
|
-
{
|
693
|
-
return parserBuilder()
|
694
|
-
.parser(parserSeedConfig)
|
695
|
-
.inputPath(inputPath)
|
696
|
-
.guess();
|
697
|
-
}
|
698
|
-
|
699
|
-
public ConfigDiff guessParser(ConfigSource parserSeedConfig, Path inputPath, ConfigSource execConfig)
|
700
|
-
{
|
701
|
-
return parserBuilder()
|
702
|
-
.parser(parserSeedConfig)
|
703
|
-
.inputPath(inputPath)
|
704
|
-
.exec(execConfig)
|
705
|
-
.guess();
|
706
|
-
}
|
707
|
-
|
708
|
-
// TODO add runFilter(ConfigSource filterConfig, Path inputPath, Path outputPath) where inputPath is a path to
|
709
|
-
// a CSV file whose column types can be naturally guessed using csv guess plugin.
|
710
|
-
}
|