embulk 0.8.24 → 0.8.25

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: a6fca35ececfb2eea03ed15b0b3af8736d6718b5
4
- data.tar.gz: 5aa96c43334f01db59369485be85bb5e80c8da17
3
+ metadata.gz: fbfb023e1126cdf0cfda470fb03e10c4f6182dcf
4
+ data.tar.gz: 1be1cd41399316a5bc33bfe7535a93cb3cf9c21f
5
5
  SHA512:
6
- metadata.gz: 4b691f76b66180c86a8a36b91775494ad58dfd9259472cf255347b1766bd8bd7f4507b1985d25db168e9c486ca67b034ac50aec184d18022ebaf91dbe12ed5a1
7
- data.tar.gz: 4f4041be304a53a19c73958e2bcc09382c6db2e09c006033408f0894244a70ff484d36adcadecd1fe3c57eaae4f197ea13de73397a18ea2debe6b0a764250de3
6
+ metadata.gz: d7a985e9c29d4b3e834cd6f38c3b549ccb2972648eb830559fb792f9d3070dd04a0f084d6e7420638f840bf57a436a687409f1ce46c6a5736f35d2eaa6c58f95
7
+ data.tar.gz: 88a1578919f3c3de6cad9b3626c48787e23f6244a798a53cac75ce4ac409a43308bb5f94409e0bf9c5fc946333738dc2030a8378a69239fe74b8a767a92ab6d1
@@ -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,14 +1,14 @@
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: ruby
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
14
  name: jruby-jars
@@ -110,9 +110,9 @@ files:
110
110
  - classpath/commons-compress-1.10.jar
111
111
  - classpath/commons-lang-2.4.jar
112
112
  - classpath/commons-lang3-3.4.jar
113
- - classpath/embulk-cli-0.8.24.jar
114
- - classpath/embulk-core-0.8.24.jar
115
- - classpath/embulk-standards-0.8.24.jar
113
+ - classpath/embulk-cli-0.8.25.jar
114
+ - classpath/embulk-core-0.8.25.jar
115
+ - classpath/embulk-standards-0.8.25.jar
116
116
  - classpath/guava-18.0.jar
117
117
  - classpath/guice-4.0.jar
118
118
  - classpath/guice-bootstrap-0.1.1.jar
@@ -206,7 +206,9 @@ files:
206
206
  - embulk-core/src/main/java/org/embulk/jruby/JRubyPluginSource.java
207
207
  - embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java
208
208
  - embulk-core/src/main/java/org/embulk/plugin/BuiltinPluginSourceModule.java
209
+ - embulk-core/src/main/java/org/embulk/plugin/DefaultPluginType.java
209
210
  - embulk-core/src/main/java/org/embulk/plugin/InjectedPluginSource.java
211
+ - embulk-core/src/main/java/org/embulk/plugin/MavenPluginType.java
210
212
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoader.java
211
213
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderFactory.java
212
214
  - embulk-core/src/main/java/org/embulk/plugin/PluginClassLoaderModule.java
@@ -339,6 +341,7 @@ files:
339
341
  - embulk-core/src/test/java/org/embulk/config/TestTaskSource.java
340
342
  - embulk-core/src/test/java/org/embulk/plugin/MockPluginSource.java
341
343
  - embulk-core/src/test/java/org/embulk/plugin/TestPluginType.java
344
+ - embulk-core/src/test/java/org/embulk/plugin/TestPluginTypeSerDe.java
342
345
  - embulk-core/src/test/java/org/embulk/spi/MockFileOutput.java
343
346
  - embulk-core/src/test/java/org/embulk/spi/MockFormatterPlugin.java
344
347
  - embulk-core/src/test/java/org/embulk/spi/MockParserPlugin.java
@@ -463,6 +466,7 @@ files:
463
466
  - embulk-docs/src/release/release-0.8.22.rst
464
467
  - embulk-docs/src/release/release-0.8.23.rst
465
468
  - embulk-docs/src/release/release-0.8.24.rst
469
+ - embulk-docs/src/release/release-0.8.25.rst
466
470
  - embulk-docs/src/release/release-0.8.3.rst
467
471
  - embulk-docs/src/release/release-0.8.4.rst
468
472
  - embulk-docs/src/release/release-0.8.5.rst