embulk 0.4.9 → 0.4.10
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 +4 -4
- data/README.md +2 -2
- data/build.gradle +1 -1
- data/embulk-core/src/main/java/org/embulk/config/TaskSerDe.java +2 -2
- data/embulk-core/src/main/java/org/embulk/spi/PluginClassLoader.java +25 -13
- data/embulk-docs/plugins/index.html.erb +5 -4
- data/embulk-docs/plugins/plugins.css +9 -2
- data/embulk-docs/src/recipe/scheduled-csv-load-to-elasticsearch-kibana4.rst +1 -1
- data/embulk-docs/src/release.rst +1 -0
- data/embulk-docs/src/release/release-0.4.10.rst +17 -0
- data/lib/embulk/command/embulk_new_plugin.rb +1 -1
- data/lib/embulk/data/new/java/build.gradle.erb +1 -1
- data/lib/embulk/data/new/ruby/Rakefile +2 -0
- data/lib/embulk/data/new/ruby/gemspec.erb +1 -1
- data/lib/embulk/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1aea38d2d64e785a477bb3b7aa81a0801b78bbf9
|
4
|
+
data.tar.gz: b1c68158658a6c8274cb4375be5c03e6c58410e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38bed0a199023c3989997a48a466c70e8e6a778714951c0cbef215dbb351c4a6eced66722f41ed7dfb8984976f2d2c44352a955c7146d871de0c1c8e9e8d47d3
|
7
|
+
data.tar.gz: 68fa1091e21c306cc7ed12e87f68e387e3a98e4319b5806b2eaf09eb4991fe1a0bc09fd86490155a8be0fab2000c37c6781fdfcfd0c6072eac61913f79e09f82
|
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.4.
|
31
|
+
curl --create-dirs -o ~/.embulk/bin/embulk -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.10.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.4.
|
42
|
+
curl -o embulk.bat -L https://bintray.com/artifact/download/embulk/maven/embulk-0.4.10.jar
|
43
43
|
```
|
44
44
|
|
45
45
|
### Trying examples
|
data/build.gradle
CHANGED
@@ -156,7 +156,7 @@ class TaskSerDe
|
|
156
156
|
} else {
|
157
157
|
Object value = nestedObjectMapper.readValue(jp, new GenericTypeReference(field.getType()));
|
158
158
|
if (value == null) {
|
159
|
-
throw new JsonMappingException("Setting null to a
|
159
|
+
throw new JsonMappingException("Setting null to a task field is not allowed. Use Optional<T> (com.google.common.base.Optional) to represent null.");
|
160
160
|
}
|
161
161
|
objects.put(field.getName(), value);
|
162
162
|
unusedMappings.remove(key);
|
@@ -169,7 +169,7 @@ class TaskSerDe
|
|
169
169
|
if (field.getDefaultJsonString().isPresent()) {
|
170
170
|
Object value = nestedObjectMapper.readValue(field.getDefaultJsonString().get(), new GenericTypeReference(field.getType()));
|
171
171
|
if (value == null) {
|
172
|
-
throw new JsonMappingException("Setting null to a
|
172
|
+
throw new JsonMappingException("Setting null to a task field is not allowed. Use Optional<T> (com.google.common.base.Optional) to represent null.");
|
173
173
|
}
|
174
174
|
objects.put(field.getName(), value);
|
175
175
|
} else {
|
@@ -1,7 +1,9 @@
|
|
1
1
|
package org.embulk.spi;
|
2
2
|
|
3
|
+
import java.nio.file.Path;
|
3
4
|
import java.net.URL;
|
4
5
|
import java.net.URLClassLoader;
|
6
|
+
import java.net.MalformedURLException;
|
5
7
|
import java.util.List;
|
6
8
|
import com.google.common.collect.ImmutableList;
|
7
9
|
import org.jruby.Ruby;
|
@@ -9,14 +11,10 @@ import org.jruby.Ruby;
|
|
9
11
|
public class PluginClassLoader
|
10
12
|
extends URLClassLoader
|
11
13
|
{
|
12
|
-
private static final String[]
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"com.
|
16
|
-
"com.google.inject.",
|
17
|
-
"org.jruby.",
|
18
|
-
"javax.inject.",
|
19
|
-
"java.",
|
14
|
+
private static final String[] CHILD_FIRST_PACKAGES = new String[] {
|
15
|
+
"io.netty.",
|
16
|
+
"org.yaml.",
|
17
|
+
"com.ibm.icu.",
|
20
18
|
};
|
21
19
|
|
22
20
|
public PluginClassLoader(Ruby pluginJRubyRuntime, List<URL> urls)
|
@@ -29,6 +27,20 @@ public class PluginClassLoader
|
|
29
27
|
super(urls.toArray(new URL[urls.size()]), parent);
|
30
28
|
}
|
31
29
|
|
30
|
+
public void addPath(Path path)
|
31
|
+
{
|
32
|
+
try {
|
33
|
+
addUrl(path.toUri().toURL());
|
34
|
+
} catch (MalformedURLException ex) {
|
35
|
+
throw new IllegalArgumentException(ex);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
public void addUrl(URL url)
|
40
|
+
{
|
41
|
+
super.addURL(url);
|
42
|
+
}
|
43
|
+
|
32
44
|
@Override
|
33
45
|
protected Class<?> loadClass(String name, boolean resolve)
|
34
46
|
throws ClassNotFoundException
|
@@ -39,8 +51,8 @@ public class PluginClassLoader
|
|
39
51
|
return resolveClass(loadedClass, resolve);
|
40
52
|
}
|
41
53
|
|
42
|
-
boolean
|
43
|
-
if (
|
54
|
+
boolean childFirst = isInChildFirstPackage(name);
|
55
|
+
if (childFirst) {
|
44
56
|
try {
|
45
57
|
return resolveClass(findClass(name), resolve);
|
46
58
|
} catch (ClassNotFoundException ignored) {
|
@@ -52,7 +64,7 @@ public class PluginClassLoader
|
|
52
64
|
} catch (ClassNotFoundException ignored) {
|
53
65
|
}
|
54
66
|
|
55
|
-
if (
|
67
|
+
if (!childFirst) {
|
56
68
|
return resolveClass(findClass(name), resolve);
|
57
69
|
}
|
58
70
|
|
@@ -68,9 +80,9 @@ public class PluginClassLoader
|
|
68
80
|
return clazz;
|
69
81
|
}
|
70
82
|
|
71
|
-
private boolean
|
83
|
+
private boolean isInChildFirstPackage(String name)
|
72
84
|
{
|
73
|
-
for (String pkg :
|
85
|
+
for (String pkg : CHILD_FIRST_PACKAGES) {
|
74
86
|
if (name.startsWith(pkg)) {
|
75
87
|
return true;
|
76
88
|
}
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<body>
|
13
13
|
<div class="header"><h1 class="heading"><a href="../docs/index.html">
|
14
14
|
<span>Embulk plugins</span></a></h1>
|
15
|
-
<h2 class="heading"><span>Embulk by category</span></h2>
|
15
|
+
<h2 class="heading"><span>Embulk plugins by category</span></h2>
|
16
16
|
</div>
|
17
17
|
|
18
18
|
<div class="content">
|
@@ -45,10 +45,11 @@
|
|
45
45
|
<a class="gh-count" href="https://github.com/<%=e gem[:owner] %>/<%=e gem[:repo] %>/stargazers" target="_blank" style="display: block"><%=h gem[:stargazers_count] %></a>
|
46
46
|
</span>
|
47
47
|
</div>
|
48
|
-
|
49
|
-
<td style="width:
|
48
|
+
</td>
|
49
|
+
<td style="min-width:9em"><a href="<%=h gem[:url] %>"><%=h gem[:name] %></a><pre class="install">$ embulk gem install <%=h gem[:gem_name] %></pre></td>
|
50
|
+
<td style="min-width:13em"><%=h gem[:author] %>
|
50
51
|
<% if gem[:avatar_url] %>
|
51
|
-
<img src="<%=h gem[:avatar_url] %>" height=32 width=32></img
|
52
|
+
<img src="<%=h gem[:avatar_url] %>" height=32 width=32></img>
|
52
53
|
<% else %>
|
53
54
|
</td>
|
54
55
|
<% end %>
|
@@ -1,15 +1,22 @@
|
|
1
1
|
body {
|
2
2
|
max-width: 90em;
|
3
|
+
font-size: 105%;
|
3
4
|
}
|
4
5
|
.plugins {
|
5
6
|
border-collapse: collapse
|
6
7
|
}
|
7
8
|
.plugins th, td {
|
8
|
-
padding:
|
9
|
+
padding: 8px 20px;
|
9
10
|
border: 1px solid #eee;
|
10
11
|
vertical-align: middle;
|
11
12
|
}
|
12
|
-
.
|
13
|
+
.plugins pre.install {
|
14
|
+
font-size: 50%;
|
15
|
+
padding: 7px 0 2px 0;
|
16
|
+
margin: 0;
|
17
|
+
background: none;
|
18
|
+
border: none;
|
19
|
+
color: #999;
|
13
20
|
}
|
14
21
|
|
15
22
|
.github-btn-container {
|
@@ -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.4.
|
59
|
+
$ sudo wget https://bintray.com/artifact/download/embulk/maven/embulk-0.4.10.jar -O /usr/local/bin/embulk
|
60
60
|
$ sudo chmod +x /usr/local/bin/embulk
|
61
61
|
|
62
62
|
Step 2. Install Elasticsearch plugin
|
data/embulk-docs/src/release.rst
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
Release 0.4.10
|
2
|
+
==================================
|
3
|
+
|
4
|
+
Plugin API Changes
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Classloader of Java-based plugins search classes from the embulk's classloader by default. This solves mismatches of the same class loaded by 2 classloaders.
|
8
|
+
* Added ``spi.PluginClassLoader.addPath(Path)`` method so that Java-based plugins can load jar files dynamically.
|
9
|
+
|
10
|
+
General Changes
|
11
|
+
------------------
|
12
|
+
|
13
|
+
* Rakefile generated by plugin template generator has default task aliased to ``build`` task (@takei-yuya++)
|
14
|
+
|
15
|
+
Release Date
|
16
|
+
------------------
|
17
|
+
2015-02-26
|
@@ -45,7 +45,7 @@ module Embulk
|
|
45
45
|
%[Dumps records to #{display_name}.]
|
46
46
|
when :file_output
|
47
47
|
%[Stores files on #{display_name}.]
|
48
|
-
when :
|
48
|
+
when :formatter
|
49
49
|
%[Formats #{display_name} files for other file output plugins.]
|
50
50
|
when :encoder
|
51
51
|
%[Encodes files using #{display_name} for other file output plugins.]
|
@@ -43,7 +43,7 @@ Gem::Specification.new do |spec|
|
|
43
43
|
spec.description = %[<%= "#{description}".dump %>]
|
44
44
|
spec.email = [<%= email.dump %>]
|
45
45
|
spec.licenses = ["MIT"]
|
46
|
-
# TODO: spec.homepage = <%= "https://github.com/#{email[/([^@]*)/]}/#{project_name}".dump %>
|
46
|
+
# TODO set this: spec.homepage = <%= "https://github.com/#{email[/([^@]*)/]}/#{project_name}".dump %>
|
47
47
|
|
48
48
|
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
49
49
|
spec.test_files = spec.files.grep(%r"^(test|spec)/")
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.description = <%= "#{description}".dump %>
|
8
8
|
spec.email = [<%= email.dump %>]
|
9
9
|
spec.licenses = ["MIT"]
|
10
|
-
# TODO: spec.homepage = "https://github.com/<%= email[/([^@]*)/] %>/<%= project_name %>"
|
10
|
+
# TODO set this: spec.homepage = "https://github.com/<%= email[/([^@]*)/] %>/<%= project_name %>"
|
11
11
|
|
12
12
|
spec.files = `git ls-files`.split("\n") + Dir["classpath/*.jar"]
|
13
13
|
spec.test_files = spec.files.grep(%r{^(test|spec)/})
|
data/lib/embulk/version.rb
CHANGED
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.4.
|
4
|
+
version: 0.4.10
|
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-02-
|
11
|
+
date: 2015-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -261,6 +261,7 @@ files:
|
|
261
261
|
- embulk-docs/src/release/release-0.3.2.rst
|
262
262
|
- embulk-docs/src/release/release-0.4.0.rst
|
263
263
|
- embulk-docs/src/release/release-0.4.1.rst
|
264
|
+
- embulk-docs/src/release/release-0.4.10.rst
|
264
265
|
- embulk-docs/src/release/release-0.4.2.rst
|
265
266
|
- embulk-docs/src/release/release-0.4.3.rst
|
266
267
|
- embulk-docs/src/release/release-0.4.4.rst
|
@@ -369,8 +370,8 @@ files:
|
|
369
370
|
- classpath/bval-jsr303-0.5.jar
|
370
371
|
- classpath/commons-beanutils-core-1.8.3.jar
|
371
372
|
- classpath/commons-lang3-3.1.jar
|
372
|
-
- classpath/embulk-core-0.4.
|
373
|
-
- classpath/embulk-standards-0.4.
|
373
|
+
- classpath/embulk-core-0.4.10.jar
|
374
|
+
- classpath/embulk-standards-0.4.10.jar
|
374
375
|
- classpath/guava-18.0.jar
|
375
376
|
- classpath/guice-3.0.jar
|
376
377
|
- classpath/guice-multibindings-3.0.jar
|