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,93 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import java.util.List;
|
|
4
|
+
import java.util.Objects;
|
|
5
|
+
import com.google.common.collect.ImmutableList;
|
|
6
|
+
import com.fasterxml.jackson.annotation.JsonCreator;
|
|
7
|
+
import com.fasterxml.jackson.annotation.JsonValue;
|
|
8
|
+
import org.embulk.spi.type.Type;
|
|
9
|
+
|
|
10
|
+
public class SchemaConfig
|
|
11
|
+
{
|
|
12
|
+
private final List<ColumnConfig> columns;
|
|
13
|
+
|
|
14
|
+
@JsonCreator
|
|
15
|
+
public SchemaConfig(List<ColumnConfig> columns)
|
|
16
|
+
{
|
|
17
|
+
this.columns = columns;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@JsonValue
|
|
21
|
+
public List<ColumnConfig> getColumns()
|
|
22
|
+
{
|
|
23
|
+
return columns;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
public int size()
|
|
27
|
+
{
|
|
28
|
+
return columns.size();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public int getColumnCount()
|
|
32
|
+
{
|
|
33
|
+
return columns.size();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public ColumnConfig getColumn(int index)
|
|
37
|
+
{
|
|
38
|
+
return columns.get(index);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public String getColumnName(int index)
|
|
42
|
+
{
|
|
43
|
+
return getColumn(index).getName();
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public Type getColumnType(int index)
|
|
47
|
+
{
|
|
48
|
+
return getColumn(index).getType();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
public boolean isEmpty()
|
|
52
|
+
{
|
|
53
|
+
return columns.isEmpty();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
public ColumnConfig lookupColumn(String name)
|
|
57
|
+
{
|
|
58
|
+
for (ColumnConfig c : columns) {
|
|
59
|
+
if (c.getName().equals(name)) {
|
|
60
|
+
return c;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
throw new SchemaConfigException(String.format("Column '%s' is not found", name));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
public Schema toSchema()
|
|
67
|
+
{
|
|
68
|
+
ImmutableList.Builder<Column> builder = ImmutableList.builder();
|
|
69
|
+
for (int i=0; i < columns.size(); i++) {
|
|
70
|
+
builder.add(columns.get(i).toColumn(i));
|
|
71
|
+
}
|
|
72
|
+
return new Schema(builder.build());
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@Override
|
|
76
|
+
public boolean equals(Object obj)
|
|
77
|
+
{
|
|
78
|
+
if (this == obj) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
if (!(obj instanceof SchemaConfig)) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
SchemaConfig other = (SchemaConfig) obj;
|
|
85
|
+
return Objects.equals(columns, other.columns);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@Override
|
|
89
|
+
public int hashCode()
|
|
90
|
+
{
|
|
91
|
+
return Objects.hashCode(columns);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import org.embulk.config.ConfigException;
|
|
4
|
+
|
|
5
|
+
public class SchemaConfigException
|
|
6
|
+
extends ConfigException
|
|
7
|
+
{
|
|
8
|
+
public SchemaConfigException(String message)
|
|
9
|
+
{
|
|
10
|
+
super(message);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
public SchemaConfigException(Throwable cause)
|
|
14
|
+
{
|
|
15
|
+
super(cause);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public SchemaConfigException(String message, Throwable cause)
|
|
19
|
+
{
|
|
20
|
+
super(message, cause);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import com.google.common.base.Optional;
|
|
4
|
+
import org.embulk.config.TaskReport;
|
|
5
|
+
import org.embulk.config.CommitReport;
|
|
6
|
+
|
|
7
|
+
public class TaskState
|
|
8
|
+
{
|
|
9
|
+
private volatile boolean started = false;
|
|
10
|
+
private volatile boolean finished = false;
|
|
11
|
+
private volatile Optional<TaskReport> taskReport = Optional.absent();
|
|
12
|
+
private volatile Optional<Throwable> exception = Optional.absent();
|
|
13
|
+
|
|
14
|
+
public void start()
|
|
15
|
+
{
|
|
16
|
+
this.started = true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
public void finish()
|
|
20
|
+
{
|
|
21
|
+
this.started = true;
|
|
22
|
+
this.finished = true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public void setTaskReport(TaskReport taskReport)
|
|
26
|
+
{
|
|
27
|
+
this.started = true;
|
|
28
|
+
this.taskReport = Optional.of(taskReport);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Deprecated
|
|
32
|
+
public void setCommitReport(CommitReport commitReport)
|
|
33
|
+
{
|
|
34
|
+
this.started = true;
|
|
35
|
+
this.taskReport = Optional.<TaskReport>of(commitReport);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public void setException(Throwable exception)
|
|
39
|
+
{
|
|
40
|
+
this.started = true;
|
|
41
|
+
this.exception = Optional.fromNullable(exception);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public void resetException()
|
|
45
|
+
{
|
|
46
|
+
this.started = true;
|
|
47
|
+
this.exception = Optional.absent();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
public boolean isStarted()
|
|
51
|
+
{
|
|
52
|
+
return started;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
public boolean isFinished()
|
|
56
|
+
{
|
|
57
|
+
return finished;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
public boolean isCommitted()
|
|
61
|
+
{
|
|
62
|
+
return taskReport.isPresent();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public Optional<TaskReport> getTaskReport()
|
|
66
|
+
{
|
|
67
|
+
return taskReport;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@Deprecated
|
|
71
|
+
@SuppressWarnings("unchecked")
|
|
72
|
+
public Optional<CommitReport> getCommitReport()
|
|
73
|
+
{
|
|
74
|
+
return (Optional) taskReport; // the only implementation of TaskReport is DataSourceImpl which implements CommitReport;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public Optional<Throwable> getException()
|
|
78
|
+
{
|
|
79
|
+
return exception;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
|
|
5
|
+
public class TempFileException
|
|
6
|
+
extends RuntimeException
|
|
7
|
+
{
|
|
8
|
+
public TempFileException(IOException cause)
|
|
9
|
+
{
|
|
10
|
+
super(cause);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@Override
|
|
15
|
+
public IOException getCause()
|
|
16
|
+
{
|
|
17
|
+
return (IOException) super.getCause();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import java.nio.file.Files;
|
|
4
|
+
import java.nio.file.Path;
|
|
5
|
+
import java.nio.file.SimpleFileVisitor;
|
|
6
|
+
import java.nio.file.attribute.BasicFileAttributes;
|
|
7
|
+
import java.nio.file.FileVisitResult;
|
|
8
|
+
import java.io.File;
|
|
9
|
+
import java.io.IOException;
|
|
10
|
+
import com.google.common.base.Preconditions;
|
|
11
|
+
|
|
12
|
+
public class TempFileSpace
|
|
13
|
+
{
|
|
14
|
+
private final File dir;
|
|
15
|
+
private boolean dirCreated;
|
|
16
|
+
|
|
17
|
+
public TempFileSpace(File dir)
|
|
18
|
+
{
|
|
19
|
+
Preconditions.checkArgument(dir != null, "dir is null");
|
|
20
|
+
this.dir = dir;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public File createTempFile()
|
|
24
|
+
{
|
|
25
|
+
return createTempFile("tmp");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public File createTempFile(String fileExt)
|
|
29
|
+
{
|
|
30
|
+
return createTempFile(Thread.currentThread().getName()+"_", fileExt);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public File createTempFile(String prefix, String fileExt)
|
|
34
|
+
{
|
|
35
|
+
try {
|
|
36
|
+
if (!dirCreated) {
|
|
37
|
+
dir.mkdirs();
|
|
38
|
+
dirCreated = true;
|
|
39
|
+
}
|
|
40
|
+
return File.createTempFile(prefix, "."+fileExt, dir);
|
|
41
|
+
} catch (IOException ex) {
|
|
42
|
+
throw new TempFileException(ex);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
public void cleanup()
|
|
47
|
+
{
|
|
48
|
+
try {
|
|
49
|
+
deleteFilesIfExistsRecursively(dir);
|
|
50
|
+
}
|
|
51
|
+
catch (IOException ex) {
|
|
52
|
+
// ignore IOException
|
|
53
|
+
}
|
|
54
|
+
dirCreated = false;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
private void deleteFilesIfExistsRecursively(File dir)
|
|
58
|
+
throws IOException
|
|
59
|
+
{
|
|
60
|
+
Files.walkFileTree(dir.toPath(), new SimpleFileVisitor<Path>()
|
|
61
|
+
{
|
|
62
|
+
@Override
|
|
63
|
+
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
|
|
64
|
+
{
|
|
65
|
+
try {
|
|
66
|
+
Files.deleteIfExists(file);
|
|
67
|
+
}
|
|
68
|
+
catch (IOException ex) {
|
|
69
|
+
// ignore IOException
|
|
70
|
+
}
|
|
71
|
+
return FileVisitResult.CONTINUE;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@Override
|
|
75
|
+
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
|
|
76
|
+
{
|
|
77
|
+
try {
|
|
78
|
+
Files.deleteIfExists(dir);
|
|
79
|
+
}
|
|
80
|
+
catch (IOException ex) {
|
|
81
|
+
// ignore IOException
|
|
82
|
+
}
|
|
83
|
+
return FileVisitResult.CONTINUE;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import org.embulk.config.TaskReport;
|
|
4
|
+
|
|
5
|
+
public interface TransactionalFileInput
|
|
6
|
+
extends Transactional, FileInput
|
|
7
|
+
{
|
|
8
|
+
Buffer poll();
|
|
9
|
+
|
|
10
|
+
boolean nextFile();
|
|
11
|
+
|
|
12
|
+
void close();
|
|
13
|
+
|
|
14
|
+
void abort();
|
|
15
|
+
|
|
16
|
+
TaskReport commit();
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import org.embulk.config.TaskReport;
|
|
4
|
+
|
|
5
|
+
public interface TransactionalFileOutput
|
|
6
|
+
extends Transactional, FileOutput
|
|
7
|
+
{
|
|
8
|
+
void nextFile();
|
|
9
|
+
|
|
10
|
+
void add(Buffer buffer);
|
|
11
|
+
|
|
12
|
+
void finish();
|
|
13
|
+
|
|
14
|
+
void close();
|
|
15
|
+
|
|
16
|
+
void abort();
|
|
17
|
+
|
|
18
|
+
TaskReport commit();
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
package org.embulk.spi;
|
|
2
|
+
|
|
3
|
+
import org.embulk.config.TaskReport;
|
|
4
|
+
|
|
5
|
+
public interface TransactionalPageOutput
|
|
6
|
+
extends Transactional, PageOutput
|
|
7
|
+
{
|
|
8
|
+
void add(Page page);
|
|
9
|
+
|
|
10
|
+
void finish();
|
|
11
|
+
|
|
12
|
+
void close();
|
|
13
|
+
|
|
14
|
+
void abort();
|
|
15
|
+
|
|
16
|
+
TaskReport commit();
|
|
17
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
package org.embulk.spi.time;
|
|
2
|
+
|
|
3
|
+
import java.io.IOException;
|
|
4
|
+
import org.joda.time.DateTimeZone;
|
|
5
|
+
import com.fasterxml.jackson.core.JsonGenerator;
|
|
6
|
+
import com.fasterxml.jackson.databind.module.SimpleModule;
|
|
7
|
+
import com.fasterxml.jackson.databind.SerializerProvider;
|
|
8
|
+
import com.fasterxml.jackson.databind.DeserializationContext;
|
|
9
|
+
import com.fasterxml.jackson.databind.JsonSerializer;
|
|
10
|
+
import com.fasterxml.jackson.databind.JsonMappingException;
|
|
11
|
+
import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer;
|
|
12
|
+
import com.fasterxml.jackson.module.guice.ObjectMapperModule;
|
|
13
|
+
|
|
14
|
+
public class DateTimeZoneSerDe
|
|
15
|
+
{
|
|
16
|
+
public static void configure(ObjectMapperModule mapper)
|
|
17
|
+
{
|
|
18
|
+
SimpleModule module = new SimpleModule();
|
|
19
|
+
module.addSerializer(DateTimeZone.class, new DateTimeZoneSerializer());
|
|
20
|
+
module.addDeserializer(DateTimeZone.class, new DateTimeZoneDeserializer());
|
|
21
|
+
mapper.registerModule(module);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
public static class DateTimeZoneSerializer
|
|
25
|
+
extends JsonSerializer<DateTimeZone>
|
|
26
|
+
{
|
|
27
|
+
@Override
|
|
28
|
+
public void serialize(DateTimeZone value, JsonGenerator jgen, SerializerProvider provider)
|
|
29
|
+
throws IOException
|
|
30
|
+
{
|
|
31
|
+
jgen.writeString(value.getID());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public static class DateTimeZoneDeserializer
|
|
36
|
+
extends FromStringDeserializer<DateTimeZone>
|
|
37
|
+
{
|
|
38
|
+
public DateTimeZoneDeserializer()
|
|
39
|
+
{
|
|
40
|
+
super(DateTimeZone.class);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@Override
|
|
44
|
+
protected DateTimeZone _deserialize(String value, DeserializationContext context)
|
|
45
|
+
throws JsonMappingException
|
|
46
|
+
{
|
|
47
|
+
DateTimeZone parsed = TimestampFormat.parseDateTimeZone(value);
|
|
48
|
+
if (parsed == null) {
|
|
49
|
+
// TODO include link to a document to the message for the list of supported time zones
|
|
50
|
+
throw new JsonMappingException(String.format("Unknown time zone name '%s'", value));
|
|
51
|
+
}
|
|
52
|
+
return parsed;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|