embulk 0.8.31-java → 0.8.32-java
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/build.gradle +9 -1
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkCommandLine.java +34 -66
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkMigrate.java +16 -1
- data/embulk-cli/src/main/java/org/embulk/cli/EmbulkRun.java +4 -10
- data/embulk-cli/src/main/java/org/embulk/cli/parse/EmbulkCommandLineParser.java +4 -0
- data/embulk-core/build.gradle +8 -0
- data/embulk-core/src/main/java/org/embulk/EmbulkRunner.java +44 -60
- data/embulk-core/src/main/java/org/embulk/EmbulkSetup.java +2 -8
- data/embulk-core/src/main/java/org/embulk/jruby/JRubyScriptingModule.java +259 -2
- data/embulk-core/src/main/java/org/embulk/spi/Page.java +16 -0
- data/embulk-core/src/test/java/org/embulk/spi/json/TestJsonParser.java +102 -0
- data/embulk-docs/src/release.rst +1 -0
- data/embulk-docs/src/release/release-0.8.32.rst +14 -0
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +1 -2
- data/gradlew +13 -10
- data/lib/embulk.rb +5 -8
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/embulk/data/new/java/gradle/wrapper/gradle-wrapper.properties +1 -2
- data/lib/embulk/data/new/java/gradlew +13 -10
- data/lib/embulk/version.rb +1 -1
- metadata +8 -7
- data/embulk-core/src/main/java/org/embulk/EmbulkGlobalJRubyScriptingContainer.java +0 -215
data/embulk-docs/src/release.rst
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
Release 0.8.32
|
2
|
+
==================================
|
3
|
+
|
4
|
+
General Changes
|
5
|
+
------------------
|
6
|
+
|
7
|
+
* Ensure plugin's "gradlew" to have executable permissions by "migrate" subcommand [#710] [#782]
|
8
|
+
* Upgrade Gradle wrapper of plugin templates to 4.1.0. [#781]
|
9
|
+
* Initialize the global JRuby instance in JRubyScriptingModule except for Embulk::Runner [#765]
|
10
|
+
|
11
|
+
|
12
|
+
Release Date
|
13
|
+
------------------
|
14
|
+
2017-09-07
|
Binary file
|
@@ -1,6 +1,5 @@
|
|
1
|
-
#Sun Jan 08 00:35:58 PST 2017
|
2
1
|
distributionBase=GRADLE_USER_HOME
|
3
2
|
distributionPath=wrapper/dists
|
4
3
|
zipStoreBase=GRADLE_USER_HOME
|
5
4
|
zipStorePath=wrapper/dists
|
6
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-
|
5
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip
|
data/gradlew
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env
|
1
|
+
#!/usr/bin/env sh
|
2
2
|
|
3
3
|
##############################################################################
|
4
4
|
##
|
@@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
|
|
33
33
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
34
34
|
MAX_FD="maximum"
|
35
35
|
|
36
|
-
warn (
|
36
|
+
warn () {
|
37
37
|
echo "$*"
|
38
38
|
}
|
39
39
|
|
40
|
-
die (
|
40
|
+
die () {
|
41
41
|
echo
|
42
42
|
echo "$*"
|
43
43
|
echo
|
@@ -154,16 +154,19 @@ if $cygwin ; then
|
|
154
154
|
esac
|
155
155
|
fi
|
156
156
|
|
157
|
-
#
|
158
|
-
|
159
|
-
|
157
|
+
# Escape application args
|
158
|
+
save () {
|
159
|
+
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
160
|
+
echo " "
|
160
161
|
}
|
161
|
-
|
162
|
-
|
162
|
+
APP_ARGS=$(save "$@")
|
163
|
+
|
164
|
+
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
165
|
+
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
163
166
|
|
164
167
|
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
165
|
-
if [
|
168
|
+
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
166
169
|
cd "$(dirname "$0")"
|
167
170
|
fi
|
168
171
|
|
169
|
-
exec "$JAVACMD" "
|
172
|
+
exec "$JAVACMD" "$@"
|
data/lib/embulk.rb
CHANGED
@@ -63,13 +63,10 @@ module Embulk
|
|
63
63
|
|
64
64
|
require_classpath(true)
|
65
65
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
Java::java.util.ArrayList.new(),
|
72
|
-
nil
|
73
|
-
)
|
66
|
+
require 'embulk/runner'
|
67
|
+
|
68
|
+
# see also embulk/java/bootstrap.rb loaded by JRubyScriptingModule
|
69
|
+
runner_java = EmbulkRunner.new(Java::org.embulk.EmbulkSetup::setup(Java::java.util.HashMap.new(system_config)))
|
70
|
+
Embulk.const_set :Runner, runner_java
|
74
71
|
end
|
75
72
|
end
|
Binary file
|
@@ -1,6 +1,5 @@
|
|
1
|
-
#Sun Jan 08 00:35:58 PST 2017
|
2
1
|
distributionBase=GRADLE_USER_HOME
|
3
2
|
distributionPath=wrapper/dists
|
4
3
|
zipStoreBase=GRADLE_USER_HOME
|
5
4
|
zipStorePath=wrapper/dists
|
6
|
-
distributionUrl=https\://services.gradle.org/distributions/gradle-
|
5
|
+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip
|
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env
|
1
|
+
#!/usr/bin/env sh
|
2
2
|
|
3
3
|
##############################################################################
|
4
4
|
##
|
@@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
|
|
33
33
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
34
34
|
MAX_FD="maximum"
|
35
35
|
|
36
|
-
warn (
|
36
|
+
warn () {
|
37
37
|
echo "$*"
|
38
38
|
}
|
39
39
|
|
40
|
-
die (
|
40
|
+
die () {
|
41
41
|
echo
|
42
42
|
echo "$*"
|
43
43
|
echo
|
@@ -154,16 +154,19 @@ if $cygwin ; then
|
|
154
154
|
esac
|
155
155
|
fi
|
156
156
|
|
157
|
-
#
|
158
|
-
|
159
|
-
|
157
|
+
# Escape application args
|
158
|
+
save () {
|
159
|
+
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
160
|
+
echo " "
|
160
161
|
}
|
161
|
-
|
162
|
-
|
162
|
+
APP_ARGS=$(save "$@")
|
163
|
+
|
164
|
+
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
165
|
+
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
163
166
|
|
164
167
|
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
165
|
-
if [
|
168
|
+
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
166
169
|
cd "$(dirname "$0")"
|
167
170
|
fi
|
168
171
|
|
169
|
-
exec "$JAVACMD" "
|
172
|
+
exec "$JAVACMD" "$@"
|
data/lib/embulk/version.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Embulk
|
4
4
|
@@warned = false
|
5
5
|
|
6
|
-
VERSION_INTERNAL = '0.8.
|
6
|
+
VERSION_INTERNAL = '0.8.32'
|
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.
|
4
|
+
version: 0.8.32
|
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-
|
11
|
+
date: 2017-09-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -155,10 +155,10 @@ files:
|
|
155
155
|
- classpath/commons-compress-1.10.jar
|
156
156
|
- classpath/commons-lang-2.4.jar
|
157
157
|
- classpath/commons-lang3-3.4.jar
|
158
|
-
- classpath/embulk-cli-0.8.
|
159
|
-
- classpath/embulk-core-0.8.
|
160
|
-
- classpath/embulk-jruby-strptime-0.8.
|
161
|
-
- classpath/embulk-standards-0.8.
|
158
|
+
- classpath/embulk-cli-0.8.32.jar
|
159
|
+
- classpath/embulk-core-0.8.32.jar
|
160
|
+
- classpath/embulk-jruby-strptime-0.8.32.jar
|
161
|
+
- classpath/embulk-standards-0.8.32.jar
|
162
162
|
- classpath/guava-18.0.jar
|
163
163
|
- classpath/guice-4.0.jar
|
164
164
|
- classpath/guice-bootstrap-0.1.1.jar
|
@@ -218,7 +218,6 @@ files:
|
|
218
218
|
- embulk-cli/src/test/java/org/embulk/cli/SelfrunTest.java
|
219
219
|
- embulk-core/build.gradle
|
220
220
|
- embulk-core/src/main/java/org/embulk/EmbulkEmbed.java
|
221
|
-
- embulk-core/src/main/java/org/embulk/EmbulkGlobalJRubyScriptingContainer.java
|
222
221
|
- embulk-core/src/main/java/org/embulk/EmbulkRunner.java
|
223
222
|
- embulk-core/src/main/java/org/embulk/EmbulkService.java
|
224
223
|
- embulk-core/src/main/java/org/embulk/EmbulkSetup.java
|
@@ -434,6 +433,7 @@ files:
|
|
434
433
|
- embulk-core/src/test/java/org/embulk/spi/TestFileOutputRunner.java
|
435
434
|
- embulk-core/src/test/java/org/embulk/spi/TestInputStreamFileInput.java
|
436
435
|
- embulk-core/src/test/java/org/embulk/spi/TestPageBuilderReader.java
|
436
|
+
- embulk-core/src/test/java/org/embulk/spi/json/TestJsonParser.java
|
437
437
|
- embulk-core/src/test/java/org/embulk/spi/time/TestTimestamp.java
|
438
438
|
- embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParser.java
|
439
439
|
- embulk-core/src/test/java/org/embulk/spi/time/TestTimestampFormatterParserDeprecated.java
|
@@ -561,6 +561,7 @@ files:
|
|
561
561
|
- embulk-docs/src/release/release-0.8.3.rst
|
562
562
|
- embulk-docs/src/release/release-0.8.30.rst
|
563
563
|
- embulk-docs/src/release/release-0.8.31.rst
|
564
|
+
- embulk-docs/src/release/release-0.8.32.rst
|
564
565
|
- embulk-docs/src/release/release-0.8.4.rst
|
565
566
|
- embulk-docs/src/release/release-0.8.5.rst
|
566
567
|
- embulk-docs/src/release/release-0.8.6.rst
|
@@ -1,215 +0,0 @@
|
|
1
|
-
package org.embulk;
|
2
|
-
|
3
|
-
import java.io.PrintStream;
|
4
|
-
import java.net.URISyntaxException;
|
5
|
-
import java.net.URL;
|
6
|
-
import java.nio.file.Files;
|
7
|
-
import java.nio.file.Path;
|
8
|
-
import java.nio.file.Paths;
|
9
|
-
import java.security.CodeSource;
|
10
|
-
import java.security.ProtectionDomain;
|
11
|
-
import java.util.Collections;
|
12
|
-
import java.util.List;
|
13
|
-
import org.jruby.RubyInstanceConfig;
|
14
|
-
import org.jruby.embed.LocalContextScope;
|
15
|
-
import org.jruby.embed.LocalVariableBehavior;
|
16
|
-
import org.jruby.embed.PathType;
|
17
|
-
import org.jruby.embed.ScriptingContainer;
|
18
|
-
import org.jruby.util.cli.Options;
|
19
|
-
|
20
|
-
/**
|
21
|
-
* EmbulkGlobalJRubyScriptingContainer creates a ScriptingContainer instance for global use in Embulk.
|
22
|
-
*
|
23
|
-
* The creator method is static because the target instance is singleton by definition.
|
24
|
-
*/
|
25
|
-
public class EmbulkGlobalJRubyScriptingContainer
|
26
|
-
{
|
27
|
-
private EmbulkGlobalJRubyScriptingContainer()
|
28
|
-
{
|
29
|
-
// Do not instantiate.
|
30
|
-
}
|
31
|
-
|
32
|
-
/**
|
33
|
-
* Sets up a ScriptingContainer instance for global use in Embulk.
|
34
|
-
*/
|
35
|
-
public static ScriptingContainer setup(
|
36
|
-
final List<String> jrubyOptions,
|
37
|
-
final String bundlePath,
|
38
|
-
final PrintStream warning)
|
39
|
-
{
|
40
|
-
// The JRuby instance is a global singleton so that the settings here affects later execution.
|
41
|
-
// The local variable should be persistent so that local variables are set through ScriptingContainer.put.
|
42
|
-
final ScriptingContainer jrubyGlobalContainer =
|
43
|
-
new ScriptingContainer(LocalContextScope.SINGLETON, LocalVariableBehavior.PERSISTENT);
|
44
|
-
final RubyInstanceConfig jrubyGlobalConfig = jrubyGlobalContainer.getProvider().getRubyInstanceConfig();
|
45
|
-
|
46
|
-
for (final String jrubyOption : jrubyOptions) {
|
47
|
-
try {
|
48
|
-
processJRubyOption(jrubyOption, jrubyGlobalConfig);
|
49
|
-
}
|
50
|
-
catch (UnrecognizedJRubyOptionException ex) {
|
51
|
-
warning.println("[WARN] The \"-R\" option(s) are not recognized in Embulk: -R" + jrubyOption);
|
52
|
-
warning.println("[WARN] Please add your requests at: https://github.com/embulk/embulk/issues/707");
|
53
|
-
warning.println("");
|
54
|
-
}
|
55
|
-
catch (NotWorkingJRubyOptionException ex) {
|
56
|
-
warning.println("[WARN] The \"-R\" option(s) do not work in Embulk: -R" + jrubyOption);
|
57
|
-
warning.println("");
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
if (bundlePath != null) {
|
62
|
-
/* Environment variables are set in the selfrun script or bin/embulk:
|
63
|
-
* ENV['EMBULK_BUNDLE_PATH']: set through '-b' | '--bundle', or inherit from the runtime environment
|
64
|
-
* ENV['BUNDLE_GEMFILE']: set for "ENV['EMBULK_BUNDLE_PATH']/Gemfile"
|
65
|
-
* ENV['GEM_HOME']: unset
|
66
|
-
* ENV['GEM_PATH']: unset
|
67
|
-
*/
|
68
|
-
|
69
|
-
// bundler is included in embulk-core.jar
|
70
|
-
jrubyGlobalContainer.runScriptlet("Gem.clear_paths");
|
71
|
-
jrubyGlobalContainer.runScriptlet("require 'bundler'");
|
72
|
-
|
73
|
-
jrubyGlobalContainer.runScriptlet("Bundler.load.setup_environment");
|
74
|
-
jrubyGlobalContainer.runScriptlet("require 'bundler/setup'");
|
75
|
-
// since here, `require` may load files of different (newer) embulk versions
|
76
|
-
// especially following 'embulk/command/embulk_main'.
|
77
|
-
|
78
|
-
// NOTE: It is intentionally not done by building a Ruby statement string from |bundlePath|.
|
79
|
-
// It can cause insecure injections.
|
80
|
-
//
|
81
|
-
// add bundle directory path to load local plugins at ./embulk
|
82
|
-
jrubyGlobalContainer.put("__internal_bundle_path__", bundlePath);
|
83
|
-
jrubyGlobalContainer.runScriptlet("$LOAD_PATH << File.expand_path(__internal_bundle_path__)");
|
84
|
-
jrubyGlobalContainer.remove("__internal_bundle_path__");
|
85
|
-
|
86
|
-
return jrubyGlobalContainer;
|
87
|
-
}
|
88
|
-
else {
|
89
|
-
/* Environment variables are set in the selfrun script or bin/embulk:
|
90
|
-
* ENV['EMBULK_BUNDLE_PATH']: unset
|
91
|
-
* ENV['BUNDLE_GEMFILE']: unset
|
92
|
-
* ENV['GEM_HOME']: set for "~/.embulk/jruby/${ruby-version}"
|
93
|
-
* ENV['GEM_PATH']: set for ""
|
94
|
-
*/
|
95
|
-
|
96
|
-
jrubyGlobalContainer.runScriptlet("Gem.clear_paths"); // force rubygems to reload GEM_HOME
|
97
|
-
|
98
|
-
// NOTE: The path from |getEmbulkJRubyLoadPath()| is added in $LOAD_PATH just in case.
|
99
|
-
// Though it is not mandatory just to run "embulk_main.rb", it may be required in later steps.
|
100
|
-
//
|
101
|
-
// NOTE: It is intentionally not done by building a Ruby statement string from |getEmbulkJRubyLoadPath()|.
|
102
|
-
// It can cause insecure injections.
|
103
|
-
//
|
104
|
-
// NOTE: It was written in Ruby as follows:
|
105
|
-
// $LOAD_PATH << File.expand_path('../../', File.dirname(__FILE__))
|
106
|
-
final String jrubyLoadPath;
|
107
|
-
try {
|
108
|
-
jrubyLoadPath = getEmbulkJRubyLoadPath();
|
109
|
-
}
|
110
|
-
catch (UnrecognizedJRubyLoadPathException ex) {
|
111
|
-
warning.println("[ERROR] Failed to retrieve Embulk's path.");
|
112
|
-
ex.printStackTrace(warning);
|
113
|
-
throw new RuntimeException(ex);
|
114
|
-
}
|
115
|
-
jrubyGlobalContainer.put("__internal_load_path__", jrubyLoadPath);
|
116
|
-
jrubyGlobalContainer.runScriptlet("$LOAD_PATH << File.expand_path(__internal_load_path__)");
|
117
|
-
jrubyGlobalContainer.remove("__internal_load_path__");
|
118
|
-
|
119
|
-
return jrubyGlobalContainer;
|
120
|
-
}
|
121
|
-
}
|
122
|
-
|
123
|
-
private static final class UnrecognizedJRubyOptionException extends Exception {}
|
124
|
-
private static final class NotWorkingJRubyOptionException extends Exception {}
|
125
|
-
private static final class UnrecognizedJRubyLoadPathException extends Exception {
|
126
|
-
public UnrecognizedJRubyLoadPathException(final String message)
|
127
|
-
{
|
128
|
-
super(message);
|
129
|
-
}
|
130
|
-
|
131
|
-
public UnrecognizedJRubyLoadPathException(final String message, final Throwable cause)
|
132
|
-
{
|
133
|
-
super(message, cause);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
|
137
|
-
private static void processJRubyOption(final String jrubyOption, final RubyInstanceConfig jrubyGlobalConfig)
|
138
|
-
throws UnrecognizedJRubyOptionException, NotWorkingJRubyOptionException
|
139
|
-
{
|
140
|
-
if (jrubyOption.charAt(0) != '-') {
|
141
|
-
throw new UnrecognizedJRubyOptionException();
|
142
|
-
}
|
143
|
-
|
144
|
-
for (int index = 1; index < jrubyOption.length(); ++index) {
|
145
|
-
switch (jrubyOption.charAt(index)) {
|
146
|
-
case '-':
|
147
|
-
if (jrubyOption.equals("--dev")) {
|
148
|
-
// They are not all of "--dev", but they are most possible configurations after JVM boot.
|
149
|
-
Options.COMPILE_INVOKEDYNAMIC.force("false"); // NOTE: Options is global.
|
150
|
-
jrubyGlobalConfig.setCompileMode(RubyInstanceConfig.CompileMode.OFF);
|
151
|
-
return;
|
152
|
-
}
|
153
|
-
else if (jrubyOption.equals("--client")) {
|
154
|
-
throw new NotWorkingJRubyOptionException();
|
155
|
-
}
|
156
|
-
else if (jrubyOption.equals("--server")) {
|
157
|
-
throw new NotWorkingJRubyOptionException();
|
158
|
-
}
|
159
|
-
throw new UnrecognizedJRubyOptionException();
|
160
|
-
default:
|
161
|
-
throw new UnrecognizedJRubyOptionException();
|
162
|
-
}
|
163
|
-
}
|
164
|
-
}
|
165
|
-
|
166
|
-
/**
|
167
|
-
* Returns a path to be added in JRuby's $LOAD_PATH.
|
168
|
-
*
|
169
|
-
* In case Embulk runs from the Embulk JAR file (normal case):
|
170
|
-
* "file:/some/directory/embulk.jar!"
|
171
|
-
*
|
172
|
-
* In case Embulk runs out of a JAR file (irregular case):
|
173
|
-
* "/some/directory"
|
174
|
-
*/
|
175
|
-
private static String getEmbulkJRubyLoadPath()
|
176
|
-
throws UnrecognizedJRubyLoadPathException
|
177
|
-
{
|
178
|
-
final ProtectionDomain protectionDomain;
|
179
|
-
try {
|
180
|
-
protectionDomain = EmbulkGlobalJRubyScriptingContainer.class.getProtectionDomain();
|
181
|
-
}
|
182
|
-
catch (SecurityException ex) {
|
183
|
-
throw new UnrecognizedJRubyLoadPathException("Failed to achieve ProtectionDomain", ex);
|
184
|
-
}
|
185
|
-
|
186
|
-
final CodeSource codeSource = protectionDomain.getCodeSource();
|
187
|
-
if (codeSource == null) {
|
188
|
-
throw new UnrecognizedJRubyLoadPathException("Failed to achieve CodeSource");
|
189
|
-
}
|
190
|
-
|
191
|
-
final URL locationUrl = codeSource.getLocation();
|
192
|
-
if (locationUrl == null) {
|
193
|
-
throw new UnrecognizedJRubyLoadPathException("Failed to achieve location");
|
194
|
-
}
|
195
|
-
else if (!locationUrl.getProtocol().equals("file")) {
|
196
|
-
throw new UnrecognizedJRubyLoadPathException("Invalid location: " + locationUrl.toString());
|
197
|
-
}
|
198
|
-
|
199
|
-
final Path locationPath;
|
200
|
-
try {
|
201
|
-
locationPath = Paths.get(locationUrl.toURI());
|
202
|
-
}
|
203
|
-
catch (URISyntaxException ex) {
|
204
|
-
throw new UnrecognizedJRubyLoadPathException("Invalid location: " + locationUrl.toString(), ex);
|
205
|
-
}
|
206
|
-
|
207
|
-
if (Files.isDirectory(locationPath)) { // Out of a JAR file
|
208
|
-
System.err.println("Warning: Embulk looks running out of the Embulk jar file. It is unsupported.");
|
209
|
-
return locationPath.toString();
|
210
|
-
}
|
211
|
-
|
212
|
-
// TODO: Consider checking the file is really a JAR file.
|
213
|
-
return locationUrl.toString() + "!"; // Inside the Embulk JAR file
|
214
|
-
}
|
215
|
-
}
|