embulk 0.8.24-java → 0.8.25-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4304649d3c657ab61884394e4b04c32934ecc516
4
- data.tar.gz: e99e2b6296c4660d6da94e9465e502dcdd218f22
3
+ metadata.gz: a2368360f1531d901df3fb7f5d0fe6069ad3362c
4
+ data.tar.gz: ef5f5347e9cfabb4ea31d9e29fd69695c9d4ebe4
5
5
  SHA512:
6
- metadata.gz: 29a99a36b30105da946f964c8f131c98a5f3dedb2fa16edf6e50b2463f9b08939ee4602e0cf6353bde581ae6b7ee471dbb5da8a0ca6a90d6872308609c15e6ad
7
- data.tar.gz: 0496df6ebb63f5bbef27d3dbf0fed1b6a2e8d6609b17651009f2c9498d97df289ca8a9e0f2f1868031b0aa273be28c36609552cc88d47bec9d4592f7cea8c9a8
6
+ metadata.gz: af58995886e862f1cc30dcbe23813da71f72bd443eb4b9af62584ff5c4aa49ab85a6c53d717e3258f331020e28f4e7b2ff9701c1fde24f1e58d93bff89705387
7
+ data.tar.gz: 791c332fcac833460e2a5458d72d8f937ec5881af769fe4100f1b30e225e7b6ed4db0c058f0eec5274f8d3cef56f86a73ff79e95d1987f5f479ad56330f77135
data/build.gradle CHANGED
@@ -16,7 +16,7 @@ def release_projects = [project(":embulk-core"), project(":embulk-standards"), p
16
16
 
17
17
  allprojects {
18
18
  group = 'org.embulk'
19
- version = '0.8.24'
19
+ version = '0.8.25'
20
20
 
21
21
  ext {
22
22
  jrubyVersion = '9.1.5.0'
@@ -2,7 +2,10 @@
2
2
 
3
3
  setlocal
4
4
 
5
+ rem Do not use %0 to identify the JAR (bat) file.
6
+ rem %0 is just "embulk" when run by just "> embulk" while %0 is "embulk.bat" when run by "> embulk.bat".
5
7
  set this=%~f0
8
+
6
9
  set java_args=
7
10
  set jruby_args=
8
11
  set default_optimize=
@@ -76,7 +79,7 @@ endlocal && set BUNDLE_GEMFILE=%bundle_gemfile%
76
79
  setlocal enabledelayedexpansion
77
80
 
78
81
  if not defined EMBULK_BUNDLE_PATH (
79
- for /f "delims=" %%w in ('java -cp %0 org.jruby.Main -e "print RbConfig::CONFIG['ruby_version']"') do set ruby_version=%%w
82
+ for /f "delims=" %%w in ('java -cp %this% org.jruby.Main -e "print RbConfig::CONFIG['ruby_version']"') do set ruby_version=%%w
80
83
  set gem_home=%USERPROFILE%\.embulk\jruby\!ruby_version!
81
84
  ) else (
82
85
  set gem_home=
@@ -528,7 +528,7 @@ public class BulkLoader
528
528
  private ExecutorPlugin newExecutorPlugin(BulkLoaderTask task)
529
529
  {
530
530
  return Exec.newPlugin(ExecutorPlugin.class,
531
- task.getExecConfig().get(PluginType.class, "type", new PluginType("local")));
531
+ task.getExecConfig().get(PluginType.class, "type", PluginType.LOCAL));
532
532
  }
533
533
 
534
534
  private ExecutionResult doRun(ConfigSource config)
@@ -36,9 +36,13 @@ public class JRubyPluginSource
36
36
 
37
37
  public <T> T newPlugin(Class<T> iface, PluginType type) throws PluginSourceNotMatchException
38
38
  {
39
- String name = type.getName();
39
+ if (type.getSourceType() != PluginSource.Type.DEFAULT) {
40
+ throw new PluginSourceNotMatchException();
41
+ }
42
+
43
+ final String name = type.getName();
40
44
 
41
- String category;
45
+ final String category;
42
46
  if (InputPlugin.class.isAssignableFrom(iface)) {
43
47
  category = "input";
44
48
  } else if (OutputPlugin.class.isAssignableFrom(iface)) {
@@ -0,0 +1,50 @@
1
+ package org.embulk.plugin;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonValue;
4
+ import java.util.Objects;
5
+
6
+ public final class DefaultPluginType
7
+ extends PluginType
8
+ {
9
+ private DefaultPluginType(final String name)
10
+ {
11
+ super("default", name);
12
+ }
13
+
14
+ public static PluginType create(final String name)
15
+ {
16
+ if (name == null) {
17
+ throw new NullPointerException("name must not be null");
18
+ }
19
+ return new DefaultPluginType(name);
20
+ }
21
+
22
+ @JsonValue
23
+ public final String getJsonValue()
24
+ {
25
+ return this.getName();
26
+ }
27
+
28
+ @Override
29
+ public final int hashCode()
30
+ {
31
+ return Objects.hash(getSourceType(), getName());
32
+ }
33
+
34
+ @Override
35
+ public final boolean equals(final Object objectOther)
36
+ {
37
+ if (!(objectOther instanceof DefaultPluginType)) {
38
+ return false;
39
+ }
40
+ final DefaultPluginType other = (DefaultPluginType) objectOther;
41
+ return (this.getSourceType().equals(other.getSourceType()) &&
42
+ this.getName().equals(other.getName()));
43
+ }
44
+
45
+ @Override
46
+ public final String toString()
47
+ {
48
+ return this.getName();
49
+ }
50
+ }
@@ -44,7 +44,11 @@ public class InjectedPluginSource
44
44
 
45
45
  public <T> T newPlugin(Class<T> iface, PluginType type) throws PluginSourceNotMatchException
46
46
  {
47
- String name = type.getName();
47
+ if (type.getSourceType() != PluginSource.Type.DEFAULT) {
48
+ throw new PluginSourceNotMatchException();
49
+ }
50
+
51
+ final String name = type.getName();
48
52
  try {
49
53
  @SuppressWarnings("unchecked")
50
54
  PluginFactory<T> factory = (PluginFactory<T>) injector.getInstance(
@@ -0,0 +1,97 @@
1
+ package org.embulk.plugin;
2
+
3
+ import com.fasterxml.jackson.annotation.JsonProperty;
4
+ import com.fasterxml.jackson.annotation.JsonValue;
5
+ import java.util.Collections;
6
+ import java.util.HashMap;
7
+ import java.util.Map;
8
+ import java.util.Objects;
9
+
10
+ public final class MavenPluginType
11
+ extends PluginType
12
+ {
13
+ private MavenPluginType(final String name, final String group, final String version)
14
+ {
15
+ super("maven", name);
16
+ this.group = group;
17
+ this.version = version;
18
+
19
+ final StringBuilder fullNameBuilder = new StringBuilder();
20
+ fullNameBuilder.append("maven:");
21
+ fullNameBuilder.append(group);
22
+ fullNameBuilder.append(":");
23
+ fullNameBuilder.append(name);
24
+ fullNameBuilder.append(":");
25
+ fullNameBuilder.append(version);
26
+ this.fullName = fullNameBuilder.toString();
27
+
28
+ final HashMap<String, String> fullMapMutable = new HashMap<String, String>();
29
+ fullMapMutable.put("source", "maven");
30
+ fullMapMutable.put("name", name);
31
+ fullMapMutable.put("group", group);
32
+ fullMapMutable.put("version", version);
33
+ this.fullMap = Collections.unmodifiableMap(fullMapMutable);
34
+ }
35
+
36
+ public static MavenPluginType create(final String name, final String group, final String version)
37
+ {
38
+ if (name == null) {
39
+ throw new NullPointerException("\"name\" must not present.");
40
+ }
41
+ return new MavenPluginType(name, group, version);
42
+ }
43
+
44
+ @JsonValue
45
+ public final Map<String, String> getJsonValue()
46
+ {
47
+ return this.fullMap;
48
+ }
49
+
50
+ @JsonProperty("group")
51
+ public final String getGroup()
52
+ {
53
+ return this.group;
54
+ }
55
+
56
+ @JsonProperty("version")
57
+ public final String getVersion()
58
+ {
59
+ return this.version;
60
+ }
61
+
62
+ public final String getFullName()
63
+ {
64
+ return this.fullName;
65
+ }
66
+
67
+ @Override
68
+ public final int hashCode()
69
+ {
70
+ return Objects.hash(getSourceType(), getName(), this.group, this.version);
71
+ }
72
+
73
+ @Override
74
+ public boolean equals(Object objectOther)
75
+ {
76
+ if (!(objectOther instanceof MavenPluginType)) {
77
+ return false;
78
+ }
79
+ MavenPluginType other = (MavenPluginType) objectOther;
80
+ return (this.getSourceType().equals(other.getSourceType()) &&
81
+ this.getName().equals(other.getName()) &&
82
+ this.getGroup().equals(other.getGroup()) &&
83
+ this.getVersion().equals(other.getVersion()));
84
+ }
85
+
86
+ @JsonValue
87
+ @Override
88
+ public String toString()
89
+ {
90
+ return this.fullName;
91
+ }
92
+
93
+ private final String group;
94
+ private final String version;
95
+ private final String fullName;
96
+ private final Map<String, String> fullMap;
97
+ }
@@ -1,6 +1,49 @@
1
1
  package org.embulk.plugin;
2
2
 
3
+ import java.util.Collections;
4
+ import java.util.HashMap;
5
+ import java.util.Map;
6
+
3
7
  public interface PluginSource
4
8
  {
5
9
  <T> T newPlugin(Class<T> iface, PluginType type) throws PluginSourceNotMatchException;
10
+
11
+ public enum Type
12
+ {
13
+ DEFAULT("default"), // DEFAULT includes InjectedPluginSource and JRubyPluginSource.
14
+ MAVEN("maven"),
15
+ ;
16
+
17
+ private Type(final String sourceTypeName)
18
+ {
19
+ this.sourceTypeName = sourceTypeName;
20
+ }
21
+
22
+ public static Type of(final String sourceTypeName)
23
+ {
24
+ final Type found = MAP_FROM_STRING.get(sourceTypeName);
25
+ if (found == null) {
26
+ throw new IllegalArgumentException("\"" + sourceTypeName + "\" is not a plugin source.");
27
+ }
28
+ return found;
29
+ }
30
+
31
+ @Override
32
+ public final String toString()
33
+ {
34
+ return this.sourceTypeName;
35
+ }
36
+
37
+ static
38
+ {
39
+ final HashMap<String, Type> mapToBuild = new HashMap<String, Type>();
40
+ for (Type type : values()) {
41
+ mapToBuild.put(type.sourceTypeName, type);
42
+ }
43
+ MAP_FROM_STRING = Collections.unmodifiableMap(mapToBuild);
44
+ }
45
+
46
+ private static final Map<String, Type> MAP_FROM_STRING;
47
+ private final String sourceTypeName;
48
+ }
6
49
  }
@@ -1,47 +1,121 @@
1
1
  package org.embulk.plugin;
2
2
 
3
3
  import com.fasterxml.jackson.annotation.JsonCreator;
4
- import com.fasterxml.jackson.annotation.JsonValue;
4
+ import com.fasterxml.jackson.annotation.JsonProperty;
5
+ import com.fasterxml.jackson.databind.JsonNode;
6
+ import com.fasterxml.jackson.databind.node.ContainerNode;
7
+ import com.fasterxml.jackson.databind.node.ObjectNode;
8
+ import com.fasterxml.jackson.databind.node.TextNode;
9
+ import com.google.common.annotations.VisibleForTesting;
10
+ import java.util.HashMap;
11
+ import java.util.Iterator;
12
+ import java.util.Map;
5
13
 
6
- public class PluginType
14
+ public abstract class PluginType
7
15
  {
8
- private final String name;
16
+ public static final PluginType LOCAL = DefaultPluginType.create("local");
17
+
18
+ /**
19
+ * Constructs {@code PluginType}.
20
+ *
21
+ * The constructor is {@code protected} to be called from subclasses, e.g. {@code DefaultPluginType}.
22
+ */
23
+ protected PluginType(final String source, final String name)
24
+ {
25
+ this.sourceType = PluginSource.Type.of(source);
26
+ this.name = name;
27
+ }
9
28
 
10
- // TODO accept isObject()/ObjectNode for complex PluginSource
11
29
  @JsonCreator
12
- public PluginType(String name)
30
+ private static PluginType create(final JsonNode typeJson)
31
+ {
32
+ if (typeJson.isTextual()) {
33
+ return createFromString(((TextNode) typeJson).textValue());
34
+ }
35
+ else if (typeJson.isObject()) {
36
+ final HashMap<String, String> stringMap = new HashMap<String, String>();
37
+ final ObjectNode typeObject = (ObjectNode) typeJson;
38
+ final Iterator<Map.Entry<String, JsonNode>> fieldIterator = typeObject.fields();
39
+ while (fieldIterator.hasNext()) {
40
+ final Map.Entry<String, JsonNode> field = fieldIterator.next();
41
+ final JsonNode fieldValue = field.getValue();
42
+ if (fieldValue instanceof ContainerNode) {
43
+ throw new IllegalArgumentException("\"type\" must be a string or a 1-depth mapping.");
44
+ }
45
+ stringMap.put(field.getKey(), fieldValue.textValue());
46
+ }
47
+ return createFromStringMap(stringMap);
48
+ }
49
+ else {
50
+ throw new IllegalArgumentException("\"type\" must be a string or a 1-depth mapping.");
51
+ }
52
+ }
53
+
54
+ private static PluginType createFromString(String name)
13
55
  {
14
56
  if (name == null) {
15
57
  throw new NullPointerException("name must not be null");
16
58
  }
17
- this.name = name;
59
+ return DefaultPluginType.create(name);
18
60
  }
19
61
 
20
- @JsonValue
21
- public String getName()
62
+ private static PluginType createFromStringMap(Map<String, String> stringMap)
22
63
  {
23
- return name;
64
+ final PluginSource.Type sourceType;
65
+ if (stringMap.containsKey("source")) {
66
+ sourceType = PluginSource.Type.of(stringMap.get("source"));
67
+ }
68
+ else {
69
+ sourceType = PluginSource.Type.DEFAULT;
70
+ }
71
+
72
+ switch (sourceType) {
73
+ case DEFAULT:
74
+ {
75
+ final String name = stringMap.get("name");
76
+ return createFromString(name);
77
+ }
78
+ case MAVEN:
79
+ {
80
+ final String name = stringMap.get("name");
81
+ final String group = stringMap.get("group");
82
+ final String version = stringMap.get("version");
83
+ return MavenPluginType.create(name, group, version);
84
+ }
85
+ default:
86
+ throw new IllegalArgumentException("\"source\" must be one of: [\"default\", \"maven\"]");
87
+ }
24
88
  }
25
89
 
26
- @Override
27
- public int hashCode()
90
+ @VisibleForTesting
91
+ static PluginType createFromStringForTesting(final String name)
28
92
  {
29
- return name.hashCode();
93
+ return createFromString(name);
30
94
  }
31
95
 
32
- @Override
33
- public boolean equals(Object other)
96
+ @VisibleForTesting
97
+ static PluginType createFromStringMapForTesting(final Map<String, String> stringMap)
34
98
  {
35
- if (!(other instanceof PluginType)) {
36
- return false;
37
- }
38
- PluginType o = (PluginType) other;
39
- return name.equals(o.name);
99
+ return createFromStringMap(stringMap);
40
100
  }
41
101
 
42
- @Override
43
- public String toString()
102
+ public final PluginSource.Type getSourceType()
103
+ {
104
+ return sourceType;
105
+ }
106
+
107
+ @JsonProperty("source")
108
+ public final String getSourceName()
109
+ {
110
+ return sourceType.toString();
111
+ }
112
+
113
+ @JsonProperty("name")
114
+ public final String getName()
44
115
  {
45
116
  return name;
46
117
  }
118
+
119
+ private final PluginSource.Type sourceType;
120
+ private final String name;
47
121
  }
@@ -1,7 +1,10 @@
1
1
  package org.embulk.plugin;
2
2
 
3
3
  import static org.junit.Assert.assertEquals;
4
+ import static org.junit.Assert.assertFalse;
5
+ import static org.junit.Assert.assertTrue;
4
6
 
7
+ import java.util.HashMap;
5
8
  import org.junit.Test;
6
9
 
7
10
  public class TestPluginType
@@ -9,10 +12,48 @@ public class TestPluginType
9
12
  @Test
10
13
  public void testEquals()
11
14
  {
12
- PluginType type = new PluginType("a");
13
- assertEquals(true, (type.equals(type)));
15
+ PluginType type = PluginType.createFromStringForTesting("a");
16
+ assertTrue(type instanceof DefaultPluginType);
17
+ assertEquals(PluginSource.Type.DEFAULT, type.getSourceType());
18
+ assertTrue(type.equals(type));
14
19
 
15
- assertEquals(true, (type.equals(new PluginType("a"))));
16
- assertEquals(false, (type.equals(new PluginType("b"))));
20
+ assertTrue(type.equals(PluginType.createFromStringForTesting("a")));
21
+ assertFalse(type.equals(PluginType.createFromStringForTesting("b")));
22
+ }
23
+
24
+ @Test
25
+ public void testMapping1()
26
+ {
27
+ HashMap<String, String> mapping = new HashMap<String, String>();
28
+ mapping.put("source", "default");
29
+ mapping.put("name", "c");
30
+
31
+ PluginType type = PluginType.createFromStringMapForTesting(mapping);
32
+ assertTrue(type instanceof DefaultPluginType);
33
+ assertEquals(PluginSource.Type.DEFAULT, type.getSourceType());
34
+ assertTrue(type.equals(type));
35
+
36
+ assertTrue(type.equals(PluginType.createFromStringForTesting("c")));
37
+ assertFalse(type.equals(PluginType.createFromStringForTesting("d")));
38
+ }
39
+
40
+ @Test
41
+ public void testMapping2()
42
+ {
43
+ HashMap<String, String> mapping = new HashMap<String, String>();
44
+ mapping.put("source", "maven");
45
+ mapping.put("name", "e");
46
+ mapping.put("group", "org.embulk.foobar");
47
+ mapping.put("version", "0.1.2");
48
+
49
+ PluginType type = PluginType.createFromStringMapForTesting(mapping);
50
+ assertTrue(type instanceof MavenPluginType);
51
+ assertEquals(PluginSource.Type.MAVEN, type.getSourceType());
52
+ MavenPluginType mavenType = (MavenPluginType) type;
53
+ assertTrue(mavenType.equals(mavenType));
54
+ assertEquals("e", mavenType.getName());
55
+ assertEquals("org.embulk.foobar", mavenType.getGroup());
56
+ assertEquals("0.1.2", mavenType.getVersion());
57
+ assertEquals("maven:org.embulk.foobar:e:0.1.2", mavenType.getFullName());
17
58
  }
18
59
  }
@@ -0,0 +1,50 @@
1
+ package org.embulk.plugin;
2
+
3
+ import static org.junit.Assert.assertEquals;
4
+ import static org.junit.Assert.assertTrue;
5
+
6
+ import org.embulk.EmbulkTestRuntime;
7
+ import org.junit.Rule;
8
+ import org.junit.Test;
9
+
10
+ public class TestPluginTypeSerDe
11
+ {
12
+ @Rule
13
+ public EmbulkTestRuntime testRuntime = new EmbulkTestRuntime();
14
+
15
+ @Test
16
+ public void testParseTypeString()
17
+ {
18
+ PluginType pluginType = testRuntime.getModelManager().readObjectWithConfigSerDe(
19
+ PluginType.class,
20
+ "\"file\"");
21
+ assertTrue(pluginType instanceof DefaultPluginType);
22
+ assertEquals(PluginSource.Type.DEFAULT, pluginType.getSourceType());
23
+ assertEquals("file", pluginType.getName());
24
+ }
25
+
26
+ @Test
27
+ public void testParseTypeMapping()
28
+ {
29
+ PluginType pluginType = testRuntime.getModelManager().readObjectWithConfigSerDe(
30
+ PluginType.class,
31
+ "{ \"name\": \"dummy\" }");
32
+ assertTrue(pluginType instanceof DefaultPluginType);
33
+ assertEquals(PluginSource.Type.DEFAULT, pluginType.getSourceType());
34
+ assertEquals("dummy", pluginType.getName());
35
+ }
36
+
37
+ @Test
38
+ public void testParseTypeMaven()
39
+ {
40
+ PluginType pluginType = testRuntime.getModelManager().readObjectWithConfigSerDe(
41
+ PluginType.class,
42
+ "{ \"name\": \"foo\", \"source\": \"maven\", \"group\": \"org.embulk.bar\", \"version\": \"0.1.2\" }");
43
+ assertTrue(pluginType instanceof MavenPluginType);
44
+ assertEquals(PluginSource.Type.MAVEN, pluginType.getSourceType());
45
+ MavenPluginType mavenPluginType = (MavenPluginType) pluginType;
46
+ assertEquals(mavenPluginType.getName(), "foo");
47
+ assertEquals(mavenPluginType.getGroup(), "org.embulk.bar");
48
+ assertEquals(mavenPluginType.getVersion(), "0.1.2");
49
+ }
50
+ }
@@ -4,6 +4,7 @@ Release Notes
4
4
  .. toctree::
5
5
  :maxdepth: 1
6
6
 
7
+ release/release-0.8.25
7
8
  release/release-0.8.24
8
9
  release/release-0.8.23
9
10
  release/release-0.8.22
@@ -0,0 +1,14 @@
1
+ Release 0.8.25
2
+ ==================================
3
+
4
+ General Changes
5
+ ------------------
6
+
7
+ * Prepare for JAR/Maven-based pure-Java plugins [#666] [#669]
8
+ * Fix "could not find or load main class org.jruby.Main" when run as just "embulk" on Windows. [#676]
9
+ * Fix "NameError: undefined local variable or method `bundle_path_index' for main:Object" when using Bundler. [#681]
10
+
11
+
12
+ Release Date
13
+ ------------------
14
+ 2017-06-16
@@ -10,7 +10,7 @@ import org.embulk.spi.OutputPlugin;
10
10
  import org.embulk.spi.ParserPlugin;
11
11
  import org.embulk.spi.DecoderPlugin;
12
12
  import org.embulk.spi.EncoderPlugin;
13
- import org.embulk.plugin.PluginType;
13
+ import org.embulk.plugin.DefaultPluginType;
14
14
  import static org.embulk.plugin.InjectedPluginSource.registerPluginTo;
15
15
  import static org.embulk.exec.GuessExecutor.registerDefaultGuessPluginTo;
16
16
 
@@ -50,10 +50,10 @@ public class StandardPluginModule
50
50
  registerPluginTo(binder, FilterPlugin.class, "remove_columns", RemoveColumnsFilterPlugin.class);
51
51
 
52
52
  // default guess plugins
53
- registerDefaultGuessPluginTo(binder, new PluginType("gzip"));
54
- registerDefaultGuessPluginTo(binder, new PluginType("bzip2"));
55
- registerDefaultGuessPluginTo(binder, new PluginType("json")); // should be registered before CsvGuessPlugin
56
- registerDefaultGuessPluginTo(binder, new PluginType("csv"));
53
+ registerDefaultGuessPluginTo(binder, DefaultPluginType.create("gzip"));
54
+ registerDefaultGuessPluginTo(binder, DefaultPluginType.create("bzip2"));
55
+ registerDefaultGuessPluginTo(binder, DefaultPluginType.create("json")); // should be registered before CsvGuessPlugin
56
+ registerDefaultGuessPluginTo(binder, DefaultPluginType.create("csv"));
57
57
  // charset and newline guess plugins are loaded and invoked by CsvGuessPlugin
58
58
  }
59
59
  }
@@ -2,8 +2,9 @@ bundle_path = ENV['EMBULK_BUNDLE_PATH'].to_s
2
2
  bundle_path = nil if bundle_path.empty?
3
3
 
4
4
  # Search for -b or --bundle, and remove it.
5
- if ARGV.find_index {|arg| arg == '-b' || arg == '--bundle' }
6
- ARGV.slice!(bundle_path_index, 2)[1]
5
+ bundle_option_index = ARGV.find_index {|arg| arg == '-b' || arg == '--bundle' }
6
+ if bundle_option_index
7
+ ARGV.slice!(bundle_option_index, 2)[1]
7
8
  end
8
9
 
9
10
  if bundle_path
@@ -3,7 +3,7 @@
3
3
  module Embulk
4
4
  @@warned = false
5
5
 
6
- VERSION_INTERNAL = '0.8.24'
6
+ VERSION_INTERNAL = '0.8.25'
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.24
4
+ version: 0.8.25
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-06-14 00:00:00.000000000 Z
11
+ date: 2017-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: 1.10.6
19
+ name: bundler
20
+ prerelease: false
21
+ type: :runtime
20
22
  version_requirements: !ruby/object:Gem::Requirement
21
23
  requirements:
22
24
  - - ">="
23
25
  - !ruby/object:Gem::Version
24
26
  version: 1.10.6
25
- prerelease: false
26
- type: :runtime
27
27
  - !ruby/object:Gem::Dependency
28
- name: msgpack
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
32
  version: 1.1.0
33
+ name: msgpack
34
+ prerelease: false
35
+ type: :runtime
34
36
  version_requirements: !ruby/object:Gem::Requirement
35
37
  requirements:
36
38
  - - "~>"
37
39
  - !ruby/object:Gem::Version
38
40
  version: 1.1.0
39
- prerelease: false
40
- type: :runtime
41
41
  - !ruby/object:Gem::Dependency
42
- name: liquid
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
46
  version: 3.0.6
47
+ name: liquid
48
+ prerelease: false
49
+ type: :runtime
48
50
  version_requirements: !ruby/object:Gem::Requirement
49
51
  requirements:
50
52
  - - "~>"
51
53
  - !ruby/object:Gem::Version
52
54
  version: 3.0.6
53
- prerelease: false
54
- type: :runtime
55
55
  - !ruby/object:Gem::Dependency
56
- name: rjack-icu
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
60
  version: 4.54.1.1
61
+ name: rjack-icu
62
+ prerelease: false
63
+ type: :runtime
62
64
  version_requirements: !ruby/object:Gem::Requirement
63
65
  requirements:
64
66
  - - "~>"
65
67
  - !ruby/object:Gem::Version
66
68
  version: 4.54.1.1
67
- prerelease: false
68
- type: :runtime
69
69
  - !ruby/object:Gem::Dependency
70
- name: rake
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
74
73
  - !ruby/object:Gem::Version
75
74
  version: 0.10.0
75
+ name: rake
76
+ prerelease: false
77
+ type: :development
76
78
  version_requirements: !ruby/object:Gem::Requirement
77
79
  requirements:
78
80
  - - ">="
79
81
  - !ruby/object:Gem::Version
80
82
  version: 0.10.0
81
- prerelease: false
82
- type: :development
83
83
  - !ruby/object:Gem::Dependency
84
- name: test-unit
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
88
  version: 3.0.9
89
+ name: test-unit
90
+ prerelease: false
91
+ type: :development
90
92
  version_requirements: !ruby/object:Gem::Requirement
91
93
  requirements:
92
94
  - - "~>"
93
95
  - !ruby/object:Gem::Version
94
96
  version: 3.0.9
95
- prerelease: false
96
- type: :development
97
97
  - !ruby/object:Gem::Dependency
98
- name: yard
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
100
  - - "~>"
102
101
  - !ruby/object:Gem::Version
103
102
  version: 0.8.7
103
+ name: yard
104
+ prerelease: false
105
+ type: :development
104
106
  version_requirements: !ruby/object:Gem::Requirement
105
107
  requirements:
106
108
  - - "~>"
107
109
  - !ruby/object:Gem::Version
108
110
  version: 0.8.7
109
- prerelease: false
110
- type: :development
111
111
  - !ruby/object:Gem::Dependency
112
- name: kramdown
113
112
  requirement: !ruby/object:Gem::Requirement
114
113
  requirements:
115
114
  - - "~>"
116
115
  - !ruby/object:Gem::Version
117
116
  version: 1.5.0
117
+ name: kramdown
118
+ prerelease: false
119
+ type: :development
118
120
  version_requirements: !ruby/object:Gem::Requirement
119
121
  requirements:
120
122
  - - "~>"
121
123
  - !ruby/object:Gem::Version
122
124
  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.24.jar
154
- - classpath/embulk-core-0.8.24.jar
155
- - classpath/embulk-standards-0.8.24.jar
153
+ - classpath/embulk-cli-0.8.25.jar
154
+ - classpath/embulk-core-0.8.25.jar
155
+ - classpath/embulk-standards-0.8.25.jar
156
156
  - classpath/guava-18.0.jar
157
157
  - classpath/guice-4.0.jar
158
158
  - classpath/guice-bootstrap-0.1.1.jar
@@ -246,7 +246,9 @@ files:
246
246
  - embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java
247
247
  - embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java
248
248
  - embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java
249
+ - embulk-core/src/main/java/org/embulk/plugin/DefaultPluginType.java
249
250
  - embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java
251
+ - embulk-core/src/main/java/org/embulk/plugin/MavenPluginType.java
250
252
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java
251
253
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java
252
254
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java
@@ -379,6 +381,7 @@ files:
379
381
  - embulk-core/src/test/java/org/embulk/config/TestTaskSource.java
380
382
  - embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java
381
383
  - embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java
384
+ - embulk-core/src/test/java/org/embulk/plugin/TestPluginTypeSerDe.java
382
385
  - embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java
383
386
  - embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java
384
387
  - embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java
@@ -503,6 +506,7 @@ files:
503
506
  - embulk-docs/src/release/release-0.8.22.rst
504
507
  - embulk-docs/src/release/release-0.8.23.rst
505
508
  - embulk-docs/src/release/release-0.8.24.rst
509
+ - embulk-docs/src/release/release-0.8.25.rst
506
510
  - embulk-docs/src/release/release-0.8.3.rst
507
511
  - embulk-docs/src/release/release-0.8.4.rst
508
512
  - embulk-docs/src/release/release-0.8.5.rst