embulk 0.5.0 → 0.5.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5579fdedc41918d4b640030c9f2c8b088e3687ce
4
- data.tar.gz: 0c01cabaca3edfee8c64a4add44a824b000d7a10
3
+ metadata.gz: 0abe724d59ea2a21922310c9b7a575b612369147
4
+ data.tar.gz: 753c67c46772c9fd44a7ed46d1deb185a386edba
5
5
  SHA512:
6
- metadata.gz: d4c53e8d4452494e615d6cf0e8600a9874512fa2ca7ed7e024621438fb8a88a358fe91d800c4c8fe6516cc6cf5cd0bb29f3499fe431007deda40e0a9b1fadece
7
- data.tar.gz: eea74616fed84cbbefd494a457748c533f9f8551ae240417b7741cba10497cd7a7e1c319410b7738e3f790785527c025c627390593cfcdeb132506359fa9eea9
6
+ metadata.gz: e2632ab7e8c77ffc4d31a4c63c58b2e88cd617dcb2c941e545aa6c51ff75e0909f3bf05faf679b95f176e63a7057c42e07992fcafef8fd5ffc135b5f21008eb3
7
+ data.tar.gz: 50619880fc999eaa53cf637f5a8fca1f96740b4966280aa83408d55a6b997ab78fc74cfcb213542116f8804bcf20d87b83590ef4dd0e44fdf9309fc9089a8cce
data/README.md CHANGED
@@ -28,7 +28,7 @@ The single-file package is the simplest way to try Embulk. You can download the
28
28
  Following 4 commands install embulk to your home directory:
29
29
 
30
30
  ```
31
- curl --create-dirs -o ~/.embulk/bin/embulk -L https://bintray.com/artifact/download/embulk/maven/embulk-0.5.0.jar
31
+ curl --create-dirs -o ~/.embulk/bin/embulk -L https://bintray.com/artifact/download/embulk/maven/embulk-0.5.1.jar
32
32
  chmod +x ~/.embulk/bin/embulk
33
33
  echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
34
34
  source ~/.bashrc
@@ -39,7 +39,7 @@ source ~/.bashrc
39
39
  You can assume the jar file is a .bat file.
40
40
 
41
41
  ```
42
- curl -o embulk.bat -L https://bintray.com/artifact/download/embulk/maven/embulk-0.5.0.jar
42
+ PowerShell -Command "& {Invoke-WebRequest https://bintray.com/artifact/download/embulk/maven/embulk-0.5.1.jar -OutFile embulk.bat}"
43
43
  ```
44
44
 
45
45
  ### Trying examples
data/build.gradle CHANGED
@@ -12,7 +12,7 @@ def release_projects = [project(":embulk-core"), project(":embulk-standards")]
12
12
 
13
13
  allprojects {
14
14
  group = 'org.embulk'
15
- version = '0.5.0'
15
+ version = '0.5.1'
16
16
 
17
17
  apply plugin: 'java'
18
18
  apply plugin: 'maven-publish'
@@ -35,12 +35,21 @@ public class PluginManager
35
35
  } catch (PluginSourceNotMatchException e) {
36
36
  if (e.getCause() != null) {
37
37
  causes.add(e.getCause());
38
+ } else {
39
+ causes.add(e);
38
40
  }
39
41
  }
40
42
  }
41
43
 
42
- ConfigException e = new ConfigException(String.format("%s '%s' is not found",
43
- iface.getSimpleName(), type.getName()), causes.remove(causes.size()-1));
44
+ StringBuilder message = new StringBuilder();
45
+ message.append(String.format("%s '%s' is not found.", iface.getSimpleName(), type.getName()));
46
+ for (Throwable cause : causes) {
47
+ if (cause.getMessage() != null) {
48
+ message.append(String.format("%n"));
49
+ message.append(cause.getMessage());
50
+ }
51
+ }
52
+ ConfigException e = new ConfigException(message.toString());
44
53
  for (Throwable cause : causes) {
45
54
  e.addSuppressed(cause);
46
55
  }
@@ -53,9 +53,9 @@ copyright = u'2015, Embulk Project'
53
53
  # built documents.
54
54
  #
55
55
  # The short X.Y version.
56
- version = '0.4'
56
+ version = '0.5'
57
57
  # The full version, including alpha/beta/rc tags.
58
- release = '0.4'
58
+ release = '0.5'
59
59
 
60
60
  # The language for content autogenerated by Sphinx. Refer to documentation
61
61
  # for a list of supported languages.
@@ -56,7 +56,7 @@ You can find the latest embulk binary from the `releases <https://bintray.com/em
56
56
 
57
57
  .. code-block:: console
58
58
 
59
- $ sudo wget https://bintray.com/artifact/download/embulk/maven/embulk-0.5.0.jar -O /usr/local/bin/embulk
59
+ $ sudo wget https://bintray.com/artifact/download/embulk/maven/embulk-0.5.1.jar -O /usr/local/bin/embulk
60
60
  $ sudo chmod +x /usr/local/bin/embulk
61
61
 
62
62
  Step 2. Install Elasticsearch plugin
@@ -22,4 +22,5 @@ Release Notes
22
22
  release/release-0.4.9
23
23
  release/release-0.4.10
24
24
  release/release-0.5.0
25
+ release/release-0.5.1
25
26
 
@@ -18,6 +18,8 @@ Embulk v0.5.0 supports dynamically loadable guess plugins.
18
18
 
19
19
  * ``guess`` subcommand executes the new guess method and takes the return value of the method.
20
20
 
21
+ Plugins can use new ``Guess::SchemaGuess`` utility class for ease of implementation.
22
+
21
23
  For example, if you write a parser plugin named ``myparser``, you can use this configuration file first:
22
24
 
23
25
  .. code-block:: yaml
@@ -51,6 +53,12 @@ The ``embulk guess`` command finds the ``InputPlugin.guess`` of the input plugin
51
53
  $ embulk gem install embulk-input-myinput
52
54
  $ embulk guess config.yml -o guessed.yml
53
55
 
56
+ Plugin API
57
+ ------------------
58
+
59
+ * Added ``Guess::SchemaGuess`` class. This utility class inputs array of hash objects or array of array objects and returns schema.
60
+
61
+
54
62
  Plugin SPI
55
63
  ------------------
56
64
 
@@ -0,0 +1,13 @@
1
+ Release 0.5.1
2
+ ==================================
3
+
4
+ General Changes
5
+ ------------------
6
+
7
+ * Fixed a problem where embulk wrongly shows "unknown plugin" when a plugin is found but caused LoadError.
8
+ * Preview, guess and run subcommands show causes of the exception and suppressed exceptions in addition to the stacktrace.
9
+ * PluginManager includes messages of exceptions from all plugin sources.
10
+
11
+ Release Date
12
+ ------------------
13
+ 2015-03-04
@@ -135,8 +135,8 @@ categories:
135
135
  ruby-filter Ruby record filter plugin (like "add-hostname")
136
136
  #ruby-file-input Ruby file input plugin (like "ftp") # not implemented yet [#21]
137
137
  #ruby-file-output Ruby file output plugin (like "ftp") # not implemented yet [#22]
138
- ruby-parser Ruby file parser plugin (like "csv") # not implemented yet [#33]
139
- ruby-formatter Ruby file formatter plugin (like "csv") # not implemented yet [#34]
138
+ ruby-parser Ruby file parser plugin (like "csv")
139
+ ruby-formatter Ruby file formatter plugin (like "csv")
140
140
  #ruby-decoder Ruby file decoder plugin (like "gzip") # not implemented yet [#31]
141
141
  #ruby-encoder Ruby file encoder plugin (like "gzip") # not implemented yet [#32]
142
142
  java-input Java record input plugin (like "mysql")
@@ -298,10 +298,7 @@ examples:
298
298
  begin
299
299
  org.embulk.command.Runner.new(options.to_json).main(subcmd, argv.to_java(:string))
300
300
  rescue => ex
301
- puts ex.to_s
302
- ex.backtrace.each do |bt|
303
- puts " #{bt}"
304
- end
301
+ print_exception(ex)
305
302
  puts ""
306
303
  puts "Error: #{ex}"
307
304
  raise SystemExit.new(1, ex.to_s)
@@ -377,4 +374,15 @@ examples:
377
374
  end
378
375
  exit 1
379
376
  end
377
+
378
+ def self.print_exception(ex)
379
+ if ex.respond_to?(:to_java)
380
+ ex.to_java.printStackTrace(java.lang.System.out)
381
+ else
382
+ puts "#{ex.to_s}"
383
+ ex.backtrace.each do |bt|
384
+ puts " #{bt}"
385
+ end
386
+ end
387
+ end
380
388
  end
@@ -41,22 +41,19 @@ module Embulk
41
41
  # TODO: the best code here is to raise exception only if
42
42
  # `name` file is not in $LOAD_PATH.
43
43
  raise e if e.to_s =~ /java.lang.ClassNotFoundException/
44
+ raise e if $LOAD_PATH.any? {|dir| File.exists? File.join(dir, "#{name}.rb") }
44
45
  end
45
46
 
46
47
  # search from $LOAD_PATH
47
- load_paths = $LOAD_PATH.map do |lp|
48
+ load_path_files = $LOAD_PATH.map do |lp|
48
49
  lpath = File.expand_path(File.join(lp, "#{name}.rb"))
49
50
  File.exist?(lpath) ? lpath : nil
50
51
  end
51
52
 
52
- paths = [name] + load_paths.compact.sort # sort to prefer newer version
53
+ paths = load_path_files.compact.sort # sort to prefer newer version
53
54
  paths.each do |path|
54
- begin
55
- require path
56
- return true
57
- rescue LoadError => e
58
- raise e if e.to_s =~ /java.lang.ClassNotFoundException/
59
- end
55
+ require path
56
+ return true
60
57
  end
61
58
 
62
59
  # search gems
@@ -1,3 +1,3 @@
1
1
  module Embulk
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: embulk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-03 00:00:00.000000000 Z
11
+ date: 2015-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -272,6 +272,7 @@ files:
272
272
  - embulk-docs/src/release/release-0.4.8.rst
273
273
  - embulk-docs/src/release/release-0.4.9.rst
274
274
  - embulk-docs/src/release/release-0.5.0.rst
275
+ - embulk-docs/src/release/release-0.5.1.rst
275
276
  - embulk-standards/build.gradle
276
277
  - embulk-standards/src/main/java/org/embulk/standards/CsvFormatterPlugin.java
277
278
  - embulk-standards/src/main/java/org/embulk/standards/CsvParserPlugin.java
@@ -376,8 +377,8 @@ files:
376
377
  - classpath/bval-jsr303-0.5.jar
377
378
  - classpath/commons-beanutils-core-1.8.3.jar
378
379
  - classpath/commons-lang3-3.1.jar
379
- - classpath/embulk-core-0.5.0.jar
380
- - classpath/embulk-standards-0.5.0.jar
380
+ - classpath/embulk-core-0.5.1.jar
381
+ - classpath/embulk-standards-0.5.1.jar
381
382
  - classpath/guava-18.0.jar
382
383
  - classpath/guice-3.0.jar
383
384
  - classpath/guice-multibindings-3.0.jar