From c7d4130fab9bda7c213cf7dc9abbf015e79c642b Mon Sep 17 00:00:00 2001 From: Mars Lan Date: Fri, 15 Sep 2017 16:02:20 -0700 Subject: [PATCH] Add all jython directories found in class path to jython interpreter's path (#751) --- .../src/main/java/metadata/etl/EtlJob.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/wherehows-etl/src/main/java/metadata/etl/EtlJob.java b/wherehows-etl/src/main/java/metadata/etl/EtlJob.java index 4081c9e80d..486b0acdf9 100644 --- a/wherehows-etl/src/main/java/metadata/etl/EtlJob.java +++ b/wherehows-etl/src/main/java/metadata/etl/EtlJob.java @@ -14,7 +14,9 @@ package metadata.etl; import java.io.File; +import java.io.IOException; import java.net.URL; +import java.util.Enumeration; import java.util.Properties; import org.python.core.PyDictionary; import org.python.core.PyString; @@ -50,14 +52,25 @@ public abstract class EtlJob extends BaseJob { } private void addJythonToPath(PySystemState pySystemState) { - URL url = classLoader.getResource("jython"); - if (url != null) { - File file = new File(url.getFile()); - String path = file.getPath(); - if (path.startsWith("file:")) { - path = path.substring(5); + Enumeration urls; + try { + urls = classLoader.getResources("jython/"); + } catch (IOException e) { + logger.info("Failed to get resource: {}", e.getMessage()); + return; + } + + while (urls.hasMoreElements()) { + URL url = urls.nextElement(); + logger.debug("jython url: {}", url.getPath()); + if (url != null) { + File file = new File(url.getFile()); + String path = file.getPath(); + if (path.startsWith("file:")) { + path = path.substring(5); + } + pySystemState.path.append(new PyString(path.replace("!", ""))); } - pySystemState.path.append(new PyString(path.replace("!", ""))); } }