embulk 0.8.22-java → 0.8.23-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -949,7 +949,7 @@ Example
949
949
  ...
950
950
 
951
951
  Preview executor
952
- ---------------
952
+ ----------------
953
953
 
954
954
  The preview executor is called by ``preview`` command. It tries to read sample buffer from a specified input source and writes them to Page objects. ``preview`` outputs the Page objects to console.
955
955
 
@@ -6,7 +6,7 @@
6
6
  Embulk
7
7
  ==================================
8
8
 
9
- .. image:: _static/embulk-logo.png
9
+ .. image:: _static/embulk-logo-v2/embulk-logo-v2-sq-tr-small.png
10
10
  :width: 512px
11
11
  :target: https://github.com/embulk/embulk
12
12
 
@@ -75,6 +75,8 @@ Documents
75
75
 
76
76
  release
77
77
 
78
+ logo
79
+
78
80
  For developers
79
81
  ---------------
80
82
 
@@ -0,0 +1,27 @@
1
+ Logo
2
+ ===========================
3
+
4
+ Feel free to use these logos on your slides, blog posts, etc!
5
+
6
+ Square
7
+ ------------------
8
+
9
+ .. image:: _static/embulk-logo-v2/embulk-logo-v2-sq-tr.png
10
+ :scale: 30 %
11
+
12
+ Horizontal
13
+ ------------------
14
+
15
+ .. image:: _static/embulk-logo-v2/embulk-logo-v2-oneline-tr.png
16
+ :scale: 30 %
17
+
18
+ Icon
19
+ ------------------
20
+
21
+ .. image:: _static/embulk-logo-v2/embulk-logo-v2-symbol-tr.png
22
+ :scale: 30 %
23
+
24
+ Links
25
+ ------------------
26
+
27
+ * `Full list of files <https://github.com/embulk/embulk/tree/master/embulk-docs/src/_static/embulk-logo-v2/>`_
@@ -4,6 +4,7 @@ Release Notes
4
4
  .. toctree::
5
5
  :maxdepth: 1
6
6
 
7
+ release/release-0.8.23
7
8
  release/release-0.8.22
8
9
  release/release-0.8.21
9
10
  release/release-0.8.20
@@ -90,4 +91,3 @@ Release Notes
90
91
  release/release-0.2.1
91
92
  release/release-0.2.0
92
93
  release/release-0.1.0
93
-
@@ -0,0 +1,14 @@
1
+ Release 0.8.23
2
+ ==================================
3
+
4
+ General Changes
5
+ ------------------
6
+
7
+ * PageReader#get{String,Timestamp,Json} calls #isNull to return null. [#654]
8
+ * Ignore JsonParseException in JSON guess if JsonGuessPlugin could parse at least one JSON. [#659]
9
+ * Ignore JsonParseException in JSON preview if at least one JSON is already parsed. [#661]
10
+
11
+
12
+ Release Date
13
+ ------------------
14
+ 2017-06-06
@@ -65,6 +65,7 @@ public class JsonParserPlugin
65
65
  try (PageBuilder pageBuilder = newPageBuilder(schema, output);
66
66
  FileInputInputStream in = new FileInputInputStream(input)) {
67
67
  while (in.nextFile()) {
68
+ boolean evenOneJsonParsed = false;
68
69
  try (JsonParser.Stream stream = newJsonStream(in)) {
69
70
  Value value;
70
71
  while ((value = stream.next()) != null) {
@@ -76,6 +77,7 @@ public class JsonParserPlugin
76
77
 
77
78
  pageBuilder.setJson(column, value);
78
79
  pageBuilder.addRecord();
80
+ evenOneJsonParsed = true;
79
81
  }
80
82
  catch (JsonRecordValidateException e) {
81
83
  if (stopOnInvalidRecord) {
@@ -86,6 +88,12 @@ public class JsonParserPlugin
86
88
  }
87
89
  }
88
90
  catch (IOException | JsonParseException e) {
91
+ if (Exec.isPreview() && evenOneJsonParsed) {
92
+ // JsonParseException occurs when it cannot parse the last part of sampling buffer. Because
93
+ // the last part is sometimes invalid as JSON data. Therefore JsonParseException can be
94
+ // ignore in preview if at least one JSON is already parsed.
95
+ break;
96
+ }
89
97
  throw new DataException(e);
90
98
  }
91
99
  }
@@ -16,14 +16,24 @@ module Embulk
16
16
 
17
17
  # Use org.embulk.spi.json.JsonParser to respond to multi-line Json
18
18
  json_parser = new_json_parser(sample_buffer)
19
+ one_json_parsed = false
19
20
  begin
20
- while json_parser.next
21
+ while (v = json_parser.next)
22
+ # "v" needs to be JSON object type (isMapValue) because:
23
+ # 1) Single-column CSV can be mis-guessed as JSON if JSON non-objects are accepted.
24
+ # 2) JsonParserPlugin accepts only the JSON object type.
25
+ raise JsonParseException.new("v must be JSON object type") unless v.isMapValue
26
+ one_json_parsed = true
21
27
  end
22
28
  rescue JsonParseException
23
- return {}
29
+ # the exception is ignored
24
30
  end
25
31
 
26
- return {"parser" => {"type" => "json"}}
32
+ if one_json_parsed
33
+ return {"parser" => {"type" => "json"}} # if JsonParser can parse even one JSON data
34
+ else
35
+ return {}
36
+ end
27
37
  end
28
38
 
29
39
  private
@@ -3,7 +3,7 @@
3
3
  module Embulk
4
4
  @@warned = false
5
5
 
6
- VERSION_INTERNAL = '0.8.22'
6
+ VERSION_INTERNAL = '0.8.23'
7
7
 
8
8
  DEPRECATED_MESSAGE = 'Embulk::VERSION in (J)Ruby is deprecated. Use org.embulk.EmbulkVersion::VERSION instead. If this message is from a plugin, please tell this to the author of the plugin!'
9
9
  def self.const_missing(name)
metadata CHANGED
@@ -1,127 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.22
4
+ version: 0.8.23
5
5
  platform: java
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-19 00:00:00.000000000 Z
11
+ date: 2017-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
+ name: bundler
14
15
  requirement: !ruby/object:Gem::Requirement
15
16
  requirements:
16
17
  - - ">="
17
18
  - !ruby/object:Gem::Version
18
19
  version: 1.10.6
19
- name: bundler
20
- prerelease: false
21
- type: :runtime
22
20
  version_requirements: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - ">="
25
23
  - !ruby/object:Gem::Version
26
24
  version: 1.10.6
25
+ prerelease: false
26
+ type: :runtime
27
27
  - !ruby/object:Gem::Dependency
28
+ name: msgpack
28
29
  requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - "~>"
31
32
  - !ruby/object:Gem::Version
32
33
  version: 1.1.0
33
- name: msgpack
34
- prerelease: false
35
- type: :runtime
36
34
  version_requirements: !ruby/object:Gem::Requirement
37
35
  requirements:
38
36
  - - "~>"
39
37
  - !ruby/object:Gem::Version
40
38
  version: 1.1.0
39
+ prerelease: false
40
+ type: :runtime
41
41
  - !ruby/object:Gem::Dependency
42
+ name: liquid
42
43
  requirement: !ruby/object:Gem::Requirement
43
44
  requirements:
44
45
  - - "~>"
45
46
  - !ruby/object:Gem::Version
46
47
  version: 3.0.6
47
- name: liquid
48
- prerelease: false
49
- type: :runtime
50
48
  version_requirements: !ruby/object:Gem::Requirement
51
49
  requirements:
52
50
  - - "~>"
53
51
  - !ruby/object:Gem::Version
54
52
  version: 3.0.6
53
+ prerelease: false
54
+ type: :runtime
55
55
  - !ruby/object:Gem::Dependency
56
+ name: rjack-icu
56
57
  requirement: !ruby/object:Gem::Requirement
57
58
  requirements:
58
59
  - - "~>"
59
60
  - !ruby/object:Gem::Version
60
61
  version: 4.54.1.1
61
- name: rjack-icu
62
- prerelease: false
63
- type: :runtime
64
62
  version_requirements: !ruby/object:Gem::Requirement
65
63
  requirements:
66
64
  - - "~>"
67
65
  - !ruby/object:Gem::Version
68
66
  version: 4.54.1.1
67
+ prerelease: false
68
+ type: :runtime
69
69
  - !ruby/object:Gem::Dependency
70
+ name: rake
70
71
  requirement: !ruby/object:Gem::Requirement
71
72
  requirements:
72
73
  - - ">="
73
74
  - !ruby/object:Gem::Version
74
75
  version: 0.10.0
75
- name: rake
76
- prerelease: false
77
- type: :development
78
76
  version_requirements: !ruby/object:Gem::Requirement
79
77
  requirements:
80
78
  - - ">="
81
79
  - !ruby/object:Gem::Version
82
80
  version: 0.10.0
81
+ prerelease: false
82
+ type: :development
83
83
  - !ruby/object:Gem::Dependency
84
+ name: test-unit
84
85
  requirement: !ruby/object:Gem::Requirement
85
86
  requirements:
86
87
  - - "~>"
87
88
  - !ruby/object:Gem::Version
88
89
  version: 3.0.9
89
- name: test-unit
90
- prerelease: false
91
- type: :development
92
90
  version_requirements: !ruby/object:Gem::Requirement
93
91
  requirements:
94
92
  - - "~>"
95
93
  - !ruby/object:Gem::Version
96
94
  version: 3.0.9
95
+ prerelease: false
96
+ type: :development
97
97
  - !ruby/object:Gem::Dependency
98
+ name: yard
98
99
  requirement: !ruby/object:Gem::Requirement
99
100
  requirements:
100
101
  - - "~>"
101
102
  - !ruby/object:Gem::Version
102
103
  version: 0.8.7
103
- name: yard
104
- prerelease: false
105
- type: :development
106
104
  version_requirements: !ruby/object:Gem::Requirement
107
105
  requirements:
108
106
  - - "~>"
109
107
  - !ruby/object:Gem::Version
110
108
  version: 0.8.7
109
+ prerelease: false
110
+ type: :development
111
111
  - !ruby/object:Gem::Dependency
112
+ name: kramdown
112
113
  requirement: !ruby/object:Gem::Requirement
113
114
  requirements:
114
115
  - - "~>"
115
116
  - !ruby/object:Gem::Version
116
117
  version: 1.5.0
117
- name: kramdown
118
- prerelease: false
119
- type: :development
120
118
  version_requirements: !ruby/object:Gem::Requirement
121
119
  requirements:
122
120
  - - "~>"
123
121
  - !ruby/object:Gem::Version
124
122
  version: 1.5.0
123
+ prerelease: false
124
+ type: :development
125
125
  description: Embulk is an open-source, plugin-based bulk data loader to scale and simplify data management across heterogeneous data stores. It can collect and ship any kinds of data in high throughput with transaction control.
126
126
  email:
127
127
  - frsyuki@gmail.com
@@ -150,9 +150,9 @@ files:
150
150
  - classpath/commons-compress-1.10.jar
151
151
  - classpath/commons-lang-2.4.jar
152
152
  - classpath/commons-lang3-3.4.jar
153
- - classpath/embulk-cli-0.8.22.jar
154
- - classpath/embulk-core-0.8.22.jar
155
- - classpath/embulk-standards-0.8.22.jar
153
+ - classpath/embulk-cli-0.8.23.jar
154
+ - classpath/embulk-core-0.8.23.jar
155
+ - classpath/embulk-standards-0.8.23.jar
156
156
  - classpath/guava-18.0.jar
157
157
  - classpath/guice-4.0.jar
158
158
  - classpath/guice-bootstrap-0.1.1.jar
@@ -401,13 +401,24 @@ files:
401
401
  - embulk-docs/make.bat
402
402
  - embulk-docs/push-gh-pages.sh
403
403
  - embulk-docs/src/_static/embulk-architecture.png
404
- - embulk-docs/src/_static/embulk-logo.png
404
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-tr.png
405
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline-wt.png
406
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-oneline.ai
407
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr-small.png
408
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-tr.png
409
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq-wt.png
410
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.ai
411
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-sq.svg
412
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-tr.png
413
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol-wt.png
414
+ - embulk-docs/src/_static/embulk-logo-v2/embulk-logo-v2-symbol.ai
405
415
  - embulk-docs/src/_static/embulk-logo.svg
406
416
  - embulk-docs/src/built-in.rst
407
417
  - embulk-docs/src/conf.py
408
418
  - embulk-docs/src/customization.rst
409
419
  - embulk-docs/src/developers/index.rst
410
420
  - embulk-docs/src/index.rst
421
+ - embulk-docs/src/logo.rst
411
422
  - embulk-docs/src/recipe.rst
412
423
  - embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana5.rst
413
424
  - embulk-docs/src/release.rst
@@ -490,6 +501,7 @@ files:
490
501
  - embulk-docs/src/release/release-0.8.20.rst
491
502
  - embulk-docs/src/release/release-0.8.21.rst
492
503
  - embulk-docs/src/release/release-0.8.22.rst
504
+ - embulk-docs/src/release/release-0.8.23.rst
493
505
  - embulk-docs/src/release/release-0.8.3.rst
494
506
  - embulk-docs/src/release/release-0.8.4.rst
495
507
  - embulk-docs/src/release/release-0.8.5.rst