embulk 0.7.0-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 +7 -0
- data/.gitignore +15 -0
- data/.ruby-version +1 -0
- data/.travis.yml +18 -0
- data/COPYING +14 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +31 -0
- data/README.md +206 -0
- data/Rakefile +26 -0
- data/appveyor.yml +20 -0
- data/bin/embulk +106 -0
- data/build.gradle +338 -0
- data/embulk-cli/build.gradle +6 -0
- data/embulk-cli/src/main/java/org/embulk/cli/Main.java +22 -0
- data/embulk-cli/src/main/sh/selfrun.sh +158 -0
- data/embulk-cli/src/test/java/org/embulk/cli/DummyMain.java +23 -0
- data/embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java +281 -0
- data/embulk-core/build.gradle +59 -0
- data/embulk-core/src/main/java/org/embulk/EmbulkEmbed.java +315 -0
- data/embulk-core/src/main/java/org/embulk/EmbulkService.java +76 -0
- data/embulk-core/src/main/java/org/embulk/command/PreviewPrinter.java +84 -0
- data/embulk-core/src/main/java/org/embulk/command/TablePreviewPrinter.java +107 -0
- data/embulk-core/src/main/java/org/embulk/command/VerticalPreviewPrinter.java +47 -0
- data/embulk-core/src/main/java/org/embulk/config/CommitReport.java +33 -0
- data/embulk-core/src/main/java/org/embulk/config/Config.java +15 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigDefault.java +15 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigDiff.java +29 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigException.java +20 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigInject.java +14 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigLoader.java +141 -0
- data/embulk-core/src/main/java/org/embulk/config/ConfigSource.java +31 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSource.java +39 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSourceImpl.java +231 -0
- data/embulk-core/src/main/java/org/embulk/config/DataSourceSerDe.java +84 -0
- data/embulk-core/src/main/java/org/embulk/config/GenericTypeReference.java +20 -0
- data/embulk-core/src/main/java/org/embulk/config/ModelManager.java +123 -0
- data/embulk-core/src/main/java/org/embulk/config/Task.java +10 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskInvocationHandler.java +180 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskReport.java +29 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +345 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskSource.java +31 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskValidationException.java +38 -0
- data/embulk-core/src/main/java/org/embulk/config/TaskValidator.java +24 -0
- data/embulk-core/src/main/java/org/embulk/exec/BulkLoader.java +652 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecModule.java +52 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionInterruptedException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExecutionResult.java +26 -0
- data/embulk-core/src/main/java/org/embulk/exec/ExtensionServiceLoaderModule.java +43 -0
- data/embulk-core/src/main/java/org/embulk/exec/ForGuess.java +16 -0
- data/embulk-core/src/main/java/org/embulk/exec/ForSystemConfig.java +16 -0
- data/embulk-core/src/main/java/org/embulk/exec/GuessExecutor.java +373 -0
- data/embulk-core/src/main/java/org/embulk/exec/LocalExecutorPlugin.java +129 -0
- data/embulk-core/src/main/java/org/embulk/exec/LocalThreadExecutor.java +34 -0
- data/embulk-core/src/main/java/org/embulk/exec/LoggerProvider.java +60 -0
- data/embulk-core/src/main/java/org/embulk/exec/NoSampleException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/exec/PartialExecutionException.java +18 -0
- data/embulk-core/src/main/java/org/embulk/exec/PooledBufferAllocator.java +77 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewExecutor.java +183 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewResult.java +27 -0
- data/embulk-core/src/main/java/org/embulk/exec/PreviewedNoticeError.java +17 -0
- data/embulk-core/src/main/java/org/embulk/exec/ResumeState.java +100 -0
- data/embulk-core/src/main/java/org/embulk/exec/SamplingParserPlugin.java +136 -0
- data/embulk-core/src/main/java/org/embulk/exec/SetCurrentThreadName.java +19 -0
- data/embulk-core/src/main/java/org/embulk/exec/SystemConfigModule.java +24 -0
- data/embulk-core/src/main/java/org/embulk/exec/TempFileAllocator.java +35 -0
- data/embulk-core/src/main/java/org/embulk/guice/Bootstrap.java +157 -0
- data/embulk-core/src/main/java/org/embulk/guice/CloseableInjector.java +22 -0
- data/embulk-core/src/main/java/org/embulk/guice/InjectorProxy.java +145 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjector.java +26 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleInjectorProxy.java +61 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleManager.java +187 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethods.java +89 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleMethodsMap.java +38 -0
- data/embulk-core/src/main/java/org/embulk/guice/LifeCycleModule.java +97 -0
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java +72 -0
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +119 -0
- data/embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java +17 -0
- data/embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java +96 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java +168 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java +9 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java +71 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginManager.java +78 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSource.java +6 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginSourceNotMatchException.java +19 -0
- data/embulk-core/src/main/java/org/embulk/plugin/PluginType.java +47 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/InputPluginWrapper.java +102 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/PluginWrappers.java +30 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileInputWrapper.java +96 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalFileOutputWrapper.java +102 -0
- data/embulk-core/src/main/java/org/embulk/plugin/compat/TransactionalPageOutputWrapper.java +95 -0
- data/embulk-core/src/main/java/org/embulk/spi/Buffer.java +148 -0
- data/embulk-core/src/main/java/org/embulk/spi/BufferAllocator.java +8 -0
- data/embulk-core/src/main/java/org/embulk/spi/Column.java +92 -0
- data/embulk-core/src/main/java/org/embulk/spi/ColumnConfig.java +112 -0
- data/embulk-core/src/main/java/org/embulk/spi/ColumnVisitor.java +14 -0
- data/embulk-core/src/main/java/org/embulk/spi/DecoderPlugin.java +16 -0
- data/embulk-core/src/main/java/org/embulk/spi/EncoderPlugin.java +16 -0
- data/embulk-core/src/main/java/org/embulk/spi/Exec.java +113 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecAction.java +6 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecSession.java +217 -0
- data/embulk-core/src/main/java/org/embulk/spi/ExecutorPlugin.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/Extension.java +44 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInput.java +11 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInputPlugin.java +30 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileInputRunner.java +162 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutput.java +13 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputPlugin.java +28 -0
- data/embulk-core/src/main/java/org/embulk/spi/FileOutputRunner.java +202 -0
- data/embulk-core/src/main/java/org/embulk/spi/FilterPlugin.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/FormatterPlugin.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/GuessPlugin.java +9 -0
- data/embulk-core/src/main/java/org/embulk/spi/InputPlugin.java +33 -0
- data/embulk-core/src/main/java/org/embulk/spi/OutputPlugin.java +29 -0
- data/embulk-core/src/main/java/org/embulk/spi/Page.java +51 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageBuilder.java +338 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageFormat.java +47 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageOutput.java +11 -0
- data/embulk-core/src/main/java/org/embulk/spi/PageReader.java +226 -0
- data/embulk-core/src/main/java/org/embulk/spi/ParserPlugin.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/ProcessState.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/ProcessTask.java +117 -0
- data/embulk-core/src/main/java/org/embulk/spi/Schema.java +134 -0
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfig.java +93 -0
- data/embulk-core/src/main/java/org/embulk/spi/SchemaConfigException.java +22 -0
- data/embulk-core/src/main/java/org/embulk/spi/TaskState.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/TempFileException.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/TempFileSpace.java +87 -0
- data/embulk-core/src/main/java/org/embulk/spi/Transactional.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileInput.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalFileOutput.java +19 -0
- data/embulk-core/src/main/java/org/embulk/spi/TransactionalPageOutput.java +17 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/DateTimeZoneSerDe.java +55 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelper.java +8 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/JRubyTimeParserHelperFactory.java +6 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/Timestamp.java +159 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormat.java +100 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampFormatter.java +97 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParseException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampParser.java +104 -0
- data/embulk-core/src/main/java/org/embulk/spi/time/TimestampSerDe.java +49 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/AbstractType.java +58 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/BooleanType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/DoubleType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/LongType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/StringType.java +12 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java +41 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/Type.java +15 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/TypeDeserializer.java +44 -0
- data/embulk-core/src/main/java/org/embulk/spi/type/Types.java +14 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ByteSize.java +156 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFile.java +106 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/LocalFileSerDe.java +113 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToString.java +54 -0
- data/embulk-core/src/main/java/org/embulk/spi/unit/ToStringMap.java +34 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/CharsetSerDe.java +55 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Decoders.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnNotFoundException.java +10 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetter.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicColumnSetterFactory.java +94 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/DynamicPageBuilder.java +161 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Encoders.java +81 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Executors.java +95 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/FileInputInputStream.java +111 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/FileOutputOutputStream.java +119 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Filters.java +100 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamFileInput.java +190 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/InputStreamTransactionalFileInput.java +25 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Inputs.java +65 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/LineDecoder.java +118 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/LineEncoder.java +123 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/ListFileInput.java +52 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Newline.java +38 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/OutputStreamFileOutput.java +88 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/PagePrinter.java +102 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Pages.java +139 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/ResumableInputStream.java +128 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/RetryExecutor.java +130 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/Timestamps.java +53 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/AbstractDynamicColumnSetter.java +79 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/BooleanColumnSetter.java +64 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DefaultValueSetter.java +18 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/DoubleColumnSetter.java +61 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/LongColumnSetter.java +69 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/NullDefaultValueSetter.java +34 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/SkipColumnSetter.java +52 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/StringColumnSetter.java +56 -0
- data/embulk-core/src/main/java/org/embulk/spi/util/dynamic/TimestampColumnSetter.java +64 -0
- data/embulk-core/src/main/resources/embulk/logback-color.xml +72 -0
- data/embulk-core/src/main/resources/embulk/logback-console.xml +14 -0
- data/embulk-core/src/main/resources/embulk/logback-file.xml +25 -0
- data/embulk-core/src/main/resources/embulk/parent_first_packages.properties +70 -0
- data/embulk-core/src/main/resources/embulk/parent_first_resources.properties +28 -0
- data/embulk-core/src/test/java/org/embulk/EmbulkTestRuntime.java +114 -0
- data/embulk-core/src/test/java/org/embulk/GuiceBinder.java +72 -0
- data/embulk-core/src/test/java/org/embulk/RandomManager.java +53 -0
- data/embulk-core/src/test/java/org/embulk/TestPluginSourceModule.java +23 -0
- data/embulk-core/src/test/java/org/embulk/TestUtilityModule.java +17 -0
- data/embulk-core/src/test/java/org/embulk/config/TestConfigLoader.java +66 -0
- data/embulk-core/src/test/java/org/embulk/config/TestConfigSource.java +114 -0
- data/embulk-core/src/test/java/org/embulk/config/TestTaskSource.java +70 -0
- data/embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java +58 -0
- data/embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java +18 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java +63 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java +101 -0
- data/embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java +73 -0
- data/embulk-core/src/test/java/org/embulk/spi/PageTestUtils.java +57 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestBuffer.java +24 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputInputStream.java +89 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileInputRunner.java +196 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java +207 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestInputStreamFileInput.java +188 -0
- data/embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java +319 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestamp.java +116 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParser.java +63 -0
- data/embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParserDeprecated.java +67 -0
- data/embulk-core/src/test/java/org/embulk/spi/type/TestTypeSerDe.java +45 -0
- data/embulk-core/src/test/java/org/embulk/spi/unit/TestByteSize.java +79 -0
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineDecoder.java +132 -0
- data/embulk-core/src/test/java/org/embulk/spi/util/TestLineEncoder.java +123 -0
- data/embulk-docs/Makefile +178 -0
- data/embulk-docs/build.gradle +32 -0
- data/embulk-docs/make.bat +243 -0
- data/embulk-docs/push-gh-pages.sh +49 -0
- data/embulk-docs/src/_static/embulk-architecture.png +0 -0
- data/embulk-docs/src/_static/embulk-logo.png +0 -0
- data/embulk-docs/src/_static/embulk-logo.svg +133 -0
- data/embulk-docs/src/built-in.rst +440 -0
- data/embulk-docs/src/conf.py +260 -0
- data/embulk-docs/src/customization.rst +184 -0
- data/embulk-docs/src/index.rst +84 -0
- data/embulk-docs/src/recipe.rst +8 -0
- data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana4.rst +153 -0
- data/embulk-docs/src/release.rst +57 -0
- data/embulk-docs/src/release/release-0.1.0.rst +8 -0
- data/embulk-docs/src/release/release-0.2.0.rst +16 -0
- data/embulk-docs/src/release/release-0.2.1.rst +19 -0
- data/embulk-docs/src/release/release-0.3.0.rst +34 -0
- data/embulk-docs/src/release/release-0.3.1.rst +11 -0
- data/embulk-docs/src/release/release-0.3.2.rst +15 -0
- data/embulk-docs/src/release/release-0.4.0.rst +74 -0
- data/embulk-docs/src/release/release-0.4.1.rst +18 -0
- data/embulk-docs/src/release/release-0.4.10.rst +17 -0
- data/embulk-docs/src/release/release-0.4.2.rst +18 -0
- data/embulk-docs/src/release/release-0.4.3.rst +34 -0
- data/embulk-docs/src/release/release-0.4.4.rst +39 -0
- data/embulk-docs/src/release/release-0.4.5.rst +24 -0
- data/embulk-docs/src/release/release-0.4.6.rst +30 -0
- data/embulk-docs/src/release/release-0.4.7.rst +16 -0
- data/embulk-docs/src/release/release-0.4.8.rst +15 -0
- data/embulk-docs/src/release/release-0.4.9.rst +23 -0
- data/embulk-docs/src/release/release-0.5.0.rst +89 -0
- data/embulk-docs/src/release/release-0.5.1.rst +13 -0
- data/embulk-docs/src/release/release-0.5.2.rst +30 -0
- data/embulk-docs/src/release/release-0.5.3.rst +22 -0
- data/embulk-docs/src/release/release-0.5.4.rst +24 -0
- data/embulk-docs/src/release/release-0.5.5.rst +18 -0
- data/embulk-docs/src/release/release-0.6.0.rst +34 -0
- data/embulk-docs/src/release/release-0.6.1.rst +11 -0
- data/embulk-docs/src/release/release-0.6.10.rst +15 -0
- data/embulk-docs/src/release/release-0.6.11.rst +19 -0
- data/embulk-docs/src/release/release-0.6.12.rst +31 -0
- data/embulk-docs/src/release/release-0.6.13.rst +23 -0
- data/embulk-docs/src/release/release-0.6.14.rst +47 -0
- data/embulk-docs/src/release/release-0.6.15.rst +26 -0
- data/embulk-docs/src/release/release-0.6.16.rst +26 -0
- data/embulk-docs/src/release/release-0.6.17.rst +39 -0
- data/embulk-docs/src/release/release-0.6.18.rst +14 -0
- data/embulk-docs/src/release/release-0.6.19.rst +18 -0
- data/embulk-docs/src/release/release-0.6.2.rst +17 -0
- data/embulk-docs/src/release/release-0.6.20.rst +19 -0
- data/embulk-docs/src/release/release-0.6.21.rst +20 -0
- data/embulk-docs/src/release/release-0.6.22.rst +26 -0
- data/embulk-docs/src/release/release-0.6.23.rst +17 -0
- data/embulk-docs/src/release/release-0.6.24.rst +13 -0
- data/embulk-docs/src/release/release-0.6.25.rst +12 -0
- data/embulk-docs/src/release/release-0.6.3.rst +23 -0
- data/embulk-docs/src/release/release-0.6.4.rst +13 -0
- data/embulk-docs/src/release/release-0.6.5.rst +17 -0
- data/embulk-docs/src/release/release-0.6.6.rst +17 -0
- data/embulk-docs/src/release/release-0.6.7.rst +17 -0
- data/embulk-docs/src/release/release-0.6.8.rst +24 -0
- data/embulk-docs/src/release/release-0.6.9.rst +24 -0
- data/embulk-docs/src/release/release-0.7.0.rst +96 -0
- data/embulk-standards/build.gradle +5 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java +284 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java +379 -0
- data/embulk-standards/src/main/java/org/embulk/standards/CsvTokenizer.java +411 -0
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileDecoderPlugin.java +55 -0
- data/embulk-standards/src/main/java/org/embulk/standards/GzipFileEncoderPlugin.java +71 -0
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileInputPlugin.java +203 -0
- data/embulk-standards/src/main/java/org/embulk/standards/LocalFileOutputPlugin.java +148 -0
- data/embulk-standards/src/main/java/org/embulk/standards/NullOutputPlugin.java +59 -0
- data/embulk-standards/src/main/java/org/embulk/standards/RenameFilterPlugin.java +56 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginExtension.java +16 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StandardPluginModule.java +53 -0
- data/embulk-standards/src/main/java/org/embulk/standards/StdoutOutputPlugin.java +85 -0
- data/embulk-standards/src/main/resources/META-INF/services/org.embulk.spi.Extension +1 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvFormatterPlugin.java +312 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvParserPlugin.java +75 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestCsvTokenizer.java +360 -0
- data/embulk-standards/src/test/java/org/embulk/standards/TestRenameFilterPlugin.java +88 -0
- data/embulk.gemspec +39 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/gradlew +164 -0
- data/gradlew.bat +90 -0
- data/lib/embulk.rb +72 -0
- data/lib/embulk/buffer.rb +22 -0
- data/lib/embulk/column.rb +70 -0
- data/lib/embulk/command/embulk_bundle.rb +56 -0
- data/lib/embulk/command/embulk_example.rb +32 -0
- data/lib/embulk/command/embulk_generate_bin.rb +62 -0
- data/lib/embulk/command/embulk_main.rb +2 -0
- data/lib/embulk/command/embulk_migrate_plugin.rb +170 -0
- data/lib/embulk/command/embulk_new_plugin.rb +124 -0
- data/lib/embulk/command/embulk_run.rb +470 -0
- data/lib/embulk/command/embulk_selfupdate.rb +84 -0
- data/lib/embulk/data/bundle/.bundle/config +3 -0
- data/lib/embulk/data/bundle/.ruby-version +1 -0
- data/lib/embulk/data/bundle/Gemfile +26 -0
- data/lib/embulk/data/bundle/embulk/filter/example.rb +42 -0
- data/lib/embulk/data/bundle/embulk/input/example.rb +54 -0
- data/lib/embulk/data/bundle/embulk/output/example.rb +58 -0
- data/lib/embulk/data/new/LICENSE.txt +21 -0
- data/lib/embulk/data/new/README.md.erb +111 -0
- data/lib/embulk/data/new/gitignore.erb +13 -0
- data/lib/embulk/data/new/java/build.gradle.erb +73 -0
- data/lib/embulk/data/new/java/decoder.java.erb +84 -0
- data/lib/embulk/data/new/java/encoder.java.erb +86 -0
- data/lib/embulk/data/new/java/file_input.java.erb +143 -0
- data/lib/embulk/data/new/java/file_output.java.erb +93 -0
- data/lib/embulk/data/new/java/filter.java.erb +56 -0
- data/lib/embulk/data/new/java/formatter.java.erb +54 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/lib/embulk/data/new/java/gradlew +164 -0
- data/lib/embulk/data/new/java/gradlew.bat +90 -0
- data/lib/embulk/data/new/java/input.java.erb +87 -0
- data/lib/embulk/data/new/java/output.java.erb +77 -0
- data/lib/embulk/data/new/java/parser.java.erb +60 -0
- data/lib/embulk/data/new/java/plugin_loader.rb.erb +3 -0
- data/lib/embulk/data/new/java/test.java.erb +5 -0
- data/lib/embulk/data/new/ruby/.ruby-version +1 -0
- data/lib/embulk/data/new/ruby/Gemfile +2 -0
- data/lib/embulk/data/new/ruby/Rakefile +3 -0
- data/lib/embulk/data/new/ruby/decoder_guess.rb.erb +25 -0
- data/lib/embulk/data/new/ruby/filter.rb.erb +41 -0
- data/lib/embulk/data/new/ruby/formatter.rb.erb +49 -0
- data/lib/embulk/data/new/ruby/gemspec.erb +20 -0
- data/lib/embulk/data/new/ruby/input.rb.erb +59 -0
- data/lib/embulk/data/new/ruby/output.rb.erb +61 -0
- data/lib/embulk/data/new/ruby/parser.rb.erb +44 -0
- data/lib/embulk/data/new/ruby/parser_guess.rb.erb +65 -0
- data/lib/embulk/data/package_data.rb +50 -0
- data/lib/embulk/data_source.rb +220 -0
- data/lib/embulk/decoder_plugin.rb +27 -0
- data/lib/embulk/encoder_plugin.rb +27 -0
- data/lib/embulk/error.rb +8 -0
- data/lib/embulk/executor_plugin.rb +23 -0
- data/lib/embulk/file_input.rb +87 -0
- data/lib/embulk/file_input_plugin.rb +27 -0
- data/lib/embulk/file_output.rb +56 -0
- data/lib/embulk/file_output_plugin.rb +27 -0
- data/lib/embulk/filter_plugin.rb +105 -0
- data/lib/embulk/formatter_plugin.rb +105 -0
- data/lib/embulk/guess/charset.rb +44 -0
- data/lib/embulk/guess/csv.rb +327 -0
- data/lib/embulk/guess/gzip.rb +18 -0
- data/lib/embulk/guess/newline.rb +22 -0
- data/lib/embulk/guess/schema_guess.rb +118 -0
- data/lib/embulk/guess/time_format_guess.rb +394 -0
- data/lib/embulk/guess_plugin.rb +129 -0
- data/lib/embulk/input_plugin.rb +121 -0
- data/lib/embulk/java/bootstrap.rb +24 -0
- data/lib/embulk/java/imports.rb +69 -0
- data/lib/embulk/java/time_helper.rb +79 -0
- data/lib/embulk/java_plugin.rb +90 -0
- data/lib/embulk/logger.rb +154 -0
- data/lib/embulk/output_plugin.rb +150 -0
- data/lib/embulk/page.rb +30 -0
- data/lib/embulk/page_builder.rb +76 -0
- data/lib/embulk/parser_plugin.rb +78 -0
- data/lib/embulk/plugin.rb +239 -0
- data/lib/embulk/plugin_registry.rb +96 -0
- data/lib/embulk/runner.rb +184 -0
- data/lib/embulk/schema.rb +103 -0
- data/lib/embulk/version.rb +3 -0
- data/settings.gradle +6 -0
- data/test/guess/test_schema_guess.rb +11 -0
- data/test/guess/test_time_format_guess.rb +133 -0
- data/test/helper.rb +21 -0
- data/test/run-test.rb +14 -0
- metadata +566 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
package org.embulk;
|
|
2
|
+
|
|
3
|
+
import static org.embulk.plugin.InjectedPluginSource.registerPluginTo;
|
|
4
|
+
|
|
5
|
+
import org.embulk.spi.FormatterPlugin;
|
|
6
|
+
import org.embulk.spi.MockFormatterPlugin;
|
|
7
|
+
import org.embulk.spi.MockParserPlugin;
|
|
8
|
+
import org.embulk.spi.ParserPlugin;
|
|
9
|
+
|
|
10
|
+
import com.google.inject.Binder;
|
|
11
|
+
import com.google.inject.Module;
|
|
12
|
+
|
|
13
|
+
public class TestPluginSourceModule implements Module
|
|
14
|
+
{
|
|
15
|
+
@Override
|
|
16
|
+
public void configure(Binder binder)
|
|
17
|
+
{
|
|
18
|
+
registerPluginTo(binder, ParserPlugin.class, "mock",
|
|
19
|
+
MockParserPlugin.class);
|
|
20
|
+
registerPluginTo(binder, FormatterPlugin.class, "mock",
|
|
21
|
+
MockFormatterPlugin.class);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package org.embulk;
|
|
2
|
+
|
|
3
|
+
//import org.embulk.record.RandomRecordGenerator;
|
|
4
|
+
//import org.embulk.record.RandomSchemaGenerator;
|
|
5
|
+
import com.google.inject.Binder;
|
|
6
|
+
import com.google.inject.Module;
|
|
7
|
+
|
|
8
|
+
public class TestUtilityModule
|
|
9
|
+
implements Module
|
|
10
|
+
{
|
|
11
|
+
@Override
|
|
12
|
+
public void configure(Binder binder) {
|
|
13
|
+
binder.bind(RandomManager.class);
|
|
14
|
+
//binder.bind(RandomRecordGenerator.class);
|
|
15
|
+
//binder.bind(RandomSchemaGenerator.class);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
package org.embulk.config;
|
|
2
|
+
|
|
3
|
+
import java.util.Properties;
|
|
4
|
+
import java.io.InputStream;
|
|
5
|
+
import java.io.ByteArrayInputStream;
|
|
6
|
+
import java.io.IOException;
|
|
7
|
+
import java.nio.charset.StandardCharsets;
|
|
8
|
+
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
9
|
+
import org.junit.Before;
|
|
10
|
+
import org.junit.Test;
|
|
11
|
+
import static org.junit.Assert.assertEquals;
|
|
12
|
+
import com.google.inject.Inject;
|
|
13
|
+
import org.embulk.spi.Exec;
|
|
14
|
+
import org.embulk.EmbulkTestRuntime;
|
|
15
|
+
|
|
16
|
+
public class TestConfigLoader
|
|
17
|
+
{
|
|
18
|
+
private ConfigLoader loader;
|
|
19
|
+
|
|
20
|
+
@Before
|
|
21
|
+
public void setup() throws Exception
|
|
22
|
+
{
|
|
23
|
+
this.loader = new ConfigLoader(new ModelManager(null, new ObjectMapper()));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@Test
|
|
27
|
+
public void testFromEmptyJson() throws IOException
|
|
28
|
+
{
|
|
29
|
+
ConfigSource config = loader.fromJson(newInputStream("{\"type\":\"test\",\"data\":1}"));
|
|
30
|
+
assertEquals("test", config.get(String.class, "type"));
|
|
31
|
+
assertEquals(1, (int) config.get(Integer.class, "data"));
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Test
|
|
35
|
+
public void testFromYamlProperties() throws IOException
|
|
36
|
+
{
|
|
37
|
+
Properties props = new Properties();
|
|
38
|
+
props.setProperty("type", "test");
|
|
39
|
+
props.setProperty("data", "1");
|
|
40
|
+
|
|
41
|
+
ConfigSource config = loader.fromPropertiesYamlLiteral(props, "");
|
|
42
|
+
assertEquals("test", config.get(String.class, "type"));
|
|
43
|
+
assertEquals(1, (int) config.get(Integer.class, "data"));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Test
|
|
47
|
+
public void testFromYamlPropertiesNested() throws IOException
|
|
48
|
+
{
|
|
49
|
+
Properties props = new Properties();
|
|
50
|
+
props.setProperty("type", "test");
|
|
51
|
+
props.setProperty("columns.k1", "1");
|
|
52
|
+
props.setProperty("values.myval.data", "2");
|
|
53
|
+
|
|
54
|
+
ConfigSource config = loader.fromPropertiesYamlLiteral(props, "");
|
|
55
|
+
System.out.println("config: "+config);
|
|
56
|
+
assertEquals("test", config.get(String.class, "type"));
|
|
57
|
+
assertEquals(1, (int) config.getNested("columns").get(Integer.class, "k1"));
|
|
58
|
+
assertEquals(2, (int) config.getNested("values").getNested("myval").get(Integer.class, "data"));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
private static InputStream newInputStream(String string)
|
|
62
|
+
{
|
|
63
|
+
byte[] bytes = string.getBytes(StandardCharsets.UTF_8);
|
|
64
|
+
return new ByteArrayInputStream(bytes);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
package org.embulk.config;
|
|
2
|
+
|
|
3
|
+
import org.junit.Rule;
|
|
4
|
+
import org.junit.Before;
|
|
5
|
+
import org.junit.Test;
|
|
6
|
+
import static org.junit.Assert.assertEquals;
|
|
7
|
+
import com.google.inject.Inject;
|
|
8
|
+
import org.embulk.spi.Exec;
|
|
9
|
+
import org.embulk.EmbulkTestRuntime;
|
|
10
|
+
|
|
11
|
+
public class TestConfigSource
|
|
12
|
+
{
|
|
13
|
+
@Rule
|
|
14
|
+
public EmbulkTestRuntime runtime = new EmbulkTestRuntime();
|
|
15
|
+
|
|
16
|
+
private ConfigSource config;
|
|
17
|
+
|
|
18
|
+
@Before
|
|
19
|
+
public void setup() throws Exception
|
|
20
|
+
{
|
|
21
|
+
config = Exec.newConfigSource();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private static interface TypeFields
|
|
25
|
+
extends Task
|
|
26
|
+
{
|
|
27
|
+
@Config("boolean")
|
|
28
|
+
public boolean getBoolean();
|
|
29
|
+
|
|
30
|
+
@Config("double")
|
|
31
|
+
public double getDouble();
|
|
32
|
+
|
|
33
|
+
@Config("int")
|
|
34
|
+
public int getInt();
|
|
35
|
+
|
|
36
|
+
@Config("long")
|
|
37
|
+
public long getLong();
|
|
38
|
+
|
|
39
|
+
@Config("string")
|
|
40
|
+
public String getString();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Test
|
|
44
|
+
public void testSetGet()
|
|
45
|
+
{
|
|
46
|
+
config.set("boolean", true);
|
|
47
|
+
config.set("int", 3);
|
|
48
|
+
config.set("double", 0.2);
|
|
49
|
+
config.set("long", Long.MAX_VALUE);
|
|
50
|
+
config.set("string", "sf");
|
|
51
|
+
|
|
52
|
+
assertEquals(true, (boolean) config.get(boolean.class, "boolean"));
|
|
53
|
+
assertEquals(3, (int) config.get(int.class, "int"));
|
|
54
|
+
assertEquals(0.2, (double) config.get(double.class, "double"), 0.001);
|
|
55
|
+
assertEquals(Long.MAX_VALUE, (long) config.get(long.class, "long"));
|
|
56
|
+
assertEquals("sf", config.get(String.class, "string"));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@Test
|
|
60
|
+
public void testLoadConfig()
|
|
61
|
+
{
|
|
62
|
+
config.set("boolean", true);
|
|
63
|
+
config.set("int", 3);
|
|
64
|
+
config.set("double", 0.2);
|
|
65
|
+
config.set("long", Long.MAX_VALUE);
|
|
66
|
+
config.set("string", "sf");
|
|
67
|
+
|
|
68
|
+
TypeFields task = config.loadConfig(TypeFields.class);
|
|
69
|
+
assertEquals(true, task.getBoolean());
|
|
70
|
+
assertEquals(3, task.getInt());
|
|
71
|
+
assertEquals(0.2, task.getDouble(), 0.001);
|
|
72
|
+
assertEquals(Long.MAX_VALUE, task.getLong());
|
|
73
|
+
assertEquals("sf", task.getString());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private static interface ValidateFields
|
|
77
|
+
extends Task
|
|
78
|
+
{
|
|
79
|
+
@Config("valid")
|
|
80
|
+
public String getValid();
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@Test
|
|
84
|
+
public void testValidatePasses()
|
|
85
|
+
{
|
|
86
|
+
config.set("valid", "data");
|
|
87
|
+
ValidateFields task = config.loadConfig(ValidateFields.class);
|
|
88
|
+
task.validate();
|
|
89
|
+
assertEquals("data", task.getValid());
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@Test(expected = ConfigException.class)
|
|
93
|
+
public void testDefaultValueValidateFails()
|
|
94
|
+
{
|
|
95
|
+
ValidateFields task = config.loadConfig(ValidateFields.class);
|
|
96
|
+
task.validate();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// TODO test Min, Max, and other validations
|
|
100
|
+
|
|
101
|
+
private static interface SimpleFields
|
|
102
|
+
extends Task
|
|
103
|
+
{
|
|
104
|
+
@Config("type")
|
|
105
|
+
public String getType();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@Test
|
|
109
|
+
public void testFromJson()
|
|
110
|
+
{
|
|
111
|
+
String json = "{\"type\":\"test\"}";
|
|
112
|
+
// TODO
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
package org.embulk.config;
|
|
2
|
+
|
|
3
|
+
import org.junit.Rule;
|
|
4
|
+
import org.junit.Before;
|
|
5
|
+
import org.junit.Test;
|
|
6
|
+
import static org.junit.Assert.assertEquals;
|
|
7
|
+
import static org.junit.Assert.assertTrue;
|
|
8
|
+
import static org.junit.Assert.assertFalse;
|
|
9
|
+
import com.google.inject.Inject;
|
|
10
|
+
import org.embulk.spi.Exec;
|
|
11
|
+
import org.embulk.EmbulkTestRuntime;
|
|
12
|
+
|
|
13
|
+
public class TestTaskSource
|
|
14
|
+
{
|
|
15
|
+
private static interface TypeFields
|
|
16
|
+
extends Task
|
|
17
|
+
{
|
|
18
|
+
public boolean getBoolean();
|
|
19
|
+
public void setBoolean(boolean v);
|
|
20
|
+
|
|
21
|
+
public double getDouble();
|
|
22
|
+
public void setDouble(double v);
|
|
23
|
+
|
|
24
|
+
public int getInt();
|
|
25
|
+
public void setInt(int v);
|
|
26
|
+
|
|
27
|
+
public long getLong();
|
|
28
|
+
public void setLong(long v);
|
|
29
|
+
|
|
30
|
+
public String getString();
|
|
31
|
+
public void setString(String v);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@Rule
|
|
35
|
+
public EmbulkTestRuntime runtime = new EmbulkTestRuntime();
|
|
36
|
+
|
|
37
|
+
private TaskSource taskSource;
|
|
38
|
+
|
|
39
|
+
@Before
|
|
40
|
+
public void setup() throws Exception
|
|
41
|
+
{
|
|
42
|
+
taskSource = Exec.newTaskSource();
|
|
43
|
+
taskSource.set("Boolean", false);
|
|
44
|
+
taskSource.set("Double", 0.5);
|
|
45
|
+
taskSource.set("Int", 0);
|
|
46
|
+
taskSource.set("Long", 0);
|
|
47
|
+
taskSource.set("String", "");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@Test
|
|
51
|
+
public void testEqualsOfLoadedTasks()
|
|
52
|
+
{
|
|
53
|
+
TypeFields task = taskSource.loadTask(TypeFields.class);
|
|
54
|
+
task.setBoolean(true);
|
|
55
|
+
task.setDouble(0.2);
|
|
56
|
+
task.setInt(3);
|
|
57
|
+
task.setLong(Long.MAX_VALUE);
|
|
58
|
+
task.setString("sf");
|
|
59
|
+
|
|
60
|
+
TaskSource taskSource2 = task.dump();
|
|
61
|
+
TypeFields task2 = taskSource2.loadTask(TypeFields.class);
|
|
62
|
+
|
|
63
|
+
assertTrue(task.equals(task2));
|
|
64
|
+
assertTrue(task.hashCode() == task2.hashCode());
|
|
65
|
+
|
|
66
|
+
task.setBoolean(false);
|
|
67
|
+
assertFalse(task.equals(task2));
|
|
68
|
+
assertFalse(task.hashCode() == task2.hashCode());
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
package org.embulk.plugin;
|
|
2
|
+
|
|
3
|
+
import com.google.inject.Binder;
|
|
4
|
+
import com.google.inject.Module;
|
|
5
|
+
import com.google.inject.multibindings.Multibinder;
|
|
6
|
+
|
|
7
|
+
public class MockPluginSource
|
|
8
|
+
implements PluginSource
|
|
9
|
+
{
|
|
10
|
+
private final Class<?> expectedIface;
|
|
11
|
+
private final Object plugin;
|
|
12
|
+
private PluginType typeConfig;
|
|
13
|
+
|
|
14
|
+
public <T> MockPluginSource(Class<T> expectedIface, T plugin)
|
|
15
|
+
{
|
|
16
|
+
this.expectedIface = expectedIface;
|
|
17
|
+
this.plugin = plugin;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public PluginType getTypeConfig()
|
|
21
|
+
{
|
|
22
|
+
return typeConfig;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@SuppressWarnings("unchecked")
|
|
26
|
+
public <T> T newPlugin(Class<T> iface, PluginType typeConfig) throws PluginSourceNotMatchException
|
|
27
|
+
{
|
|
28
|
+
if (expectedIface.equals(iface)) {
|
|
29
|
+
this.typeConfig = typeConfig;
|
|
30
|
+
return (T) plugin;
|
|
31
|
+
} else {
|
|
32
|
+
throw new PluginSourceNotMatchException();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public static <T> Module newInjectModule(final Class<T> expectedIface, final T plugin)
|
|
37
|
+
{
|
|
38
|
+
return new InjectModule(expectedIface, plugin);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public static class InjectModule
|
|
42
|
+
implements Module
|
|
43
|
+
{
|
|
44
|
+
private final PluginSource pluginSource;
|
|
45
|
+
|
|
46
|
+
public <T> InjectModule(Class<T> expectedIface, T plugin)
|
|
47
|
+
{
|
|
48
|
+
this.pluginSource = new MockPluginSource(expectedIface, plugin);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@Override
|
|
52
|
+
public void configure(Binder binder)
|
|
53
|
+
{
|
|
54
|
+
Multibinder<PluginSource> multibinder = Multibinder.newSetBinder(binder, PluginSource.class);
|
|
55
|
+
multibinder.addBinding().toInstance(pluginSource);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
package org.embulk.plugin;
|
|
2
|
+
|
|
3
|
+
import static org.junit.Assert.assertEquals;
|
|
4
|
+
|
|
5
|
+
import org.junit.Test;
|
|
6
|
+
|
|
7
|
+
public class TestPluginType
|
|
8
|
+
{
|
|
9
|
+
@Test
|
|
10
|
+
public void testEquals()
|
|
11
|
+
{
|
|
12
|
+
PluginType type = new PluginType("a");
|
|
13
|
+
assertEquals(true, (type.equals(type)));
|
|
14
|
+
|
|
15
|
+
assertEquals(true, (type.equals(new PluginType("a"))));
|
|
16
|
+
assertEquals(false, (type.equals(new PluginType("b"))));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import java.util.List;
|
|
4
|
+
import java.util.ArrayList;
|
|
5
|
+
|
|
6
|
+
public class MockFileOutput
|
|
7
|
+
implements FileOutput
|
|
8
|
+
{
|
|
9
|
+
private List<List<Buffer>> files = new ArrayList<List<Buffer>>();
|
|
10
|
+
private List<Buffer> lastBuffers = null;
|
|
11
|
+
private boolean finished = false;
|
|
12
|
+
private boolean closed = false;
|
|
13
|
+
|
|
14
|
+
public List<List<Buffer>> getFiles()
|
|
15
|
+
{
|
|
16
|
+
return files;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public List<Buffer> getLastBuffers()
|
|
20
|
+
{
|
|
21
|
+
return lastBuffers;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public void nextFile()
|
|
25
|
+
{
|
|
26
|
+
lastBuffers = new ArrayList<Buffer>();
|
|
27
|
+
files.add(lastBuffers);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public boolean isFinished()
|
|
31
|
+
{
|
|
32
|
+
return finished;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public boolean isClosed()
|
|
36
|
+
{
|
|
37
|
+
return closed;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
public void add(Buffer buffer)
|
|
41
|
+
{
|
|
42
|
+
if (lastBuffers == null) {
|
|
43
|
+
throw new IllegalStateException("FileOutput.nextFile is not called");
|
|
44
|
+
}
|
|
45
|
+
if (finished) {
|
|
46
|
+
throw new IllegalStateException("FileOutput is already finished");
|
|
47
|
+
}
|
|
48
|
+
if (closed) {
|
|
49
|
+
throw new IllegalStateException("FileOutput is already closed");
|
|
50
|
+
}
|
|
51
|
+
lastBuffers.add(buffer);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public void finish()
|
|
55
|
+
{
|
|
56
|
+
finished = true;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
public void close()
|
|
60
|
+
{
|
|
61
|
+
closed = true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import java.util.ArrayList;
|
|
4
|
+
import java.util.List;
|
|
5
|
+
|
|
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.Schema;
|
|
11
|
+
import org.embulk.spi.ColumnVisitor;
|
|
12
|
+
|
|
13
|
+
public class MockFormatterPlugin implements FormatterPlugin
|
|
14
|
+
{
|
|
15
|
+
public static List<List<Object>> records;
|
|
16
|
+
|
|
17
|
+
public interface PluginTask extends Task
|
|
18
|
+
{
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@Override
|
|
22
|
+
public void transaction(ConfigSource config, Schema schema,
|
|
23
|
+
FormatterPlugin.Control control)
|
|
24
|
+
{
|
|
25
|
+
PluginTask task = config.loadConfig(PluginTask.class);
|
|
26
|
+
control.run(task.dump());
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@Override
|
|
30
|
+
public PageOutput open(TaskSource taskSource, final Schema schema,
|
|
31
|
+
FileOutput output)
|
|
32
|
+
{
|
|
33
|
+
return new PageOutput()
|
|
34
|
+
{
|
|
35
|
+
public void add(Page page)
|
|
36
|
+
{
|
|
37
|
+
records = readPage(schema, page);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@Override
|
|
41
|
+
public void finish()
|
|
42
|
+
{
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@Override
|
|
46
|
+
public void close()
|
|
47
|
+
{
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
public static List<List<Object>> readPage(final Schema schema, Page page)
|
|
53
|
+
{
|
|
54
|
+
List<List<Object>> records = new ArrayList<>();
|
|
55
|
+
try (final PageReader pageReader = new PageReader(schema)) {
|
|
56
|
+
pageReader.setPage(page);
|
|
57
|
+
while (pageReader.nextRecord()) {
|
|
58
|
+
final List<Object> record = new ArrayList<>();
|
|
59
|
+
schema.visitColumns(new ColumnVisitor()
|
|
60
|
+
{
|
|
61
|
+
public void booleanColumn(Column column)
|
|
62
|
+
{
|
|
63
|
+
if (!pageReader.isNull(column)) {
|
|
64
|
+
record.add(pageReader.getBoolean(column));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public void longColumn(Column column)
|
|
69
|
+
{
|
|
70
|
+
if (!pageReader.isNull(column)) {
|
|
71
|
+
record.add(pageReader.getLong(column));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
public void doubleColumn(Column column)
|
|
76
|
+
{
|
|
77
|
+
if (!pageReader.isNull(column)) {
|
|
78
|
+
record.add(pageReader.getDouble(column));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public void stringColumn(Column column)
|
|
83
|
+
{
|
|
84
|
+
if (!pageReader.isNull(column)) {
|
|
85
|
+
record.add(pageReader.getString(column));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public void timestampColumn(Column column)
|
|
90
|
+
{
|
|
91
|
+
if (!pageReader.isNull(column)) {
|
|
92
|
+
record.add(pageReader.getTimestamp(column));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
records.add(record);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return records;
|
|
100
|
+
}
|
|
101
|
+
}
|