From b1dd6a33040b17be7cd52a8c482062453a00ed44 Mon Sep 17 00:00:00 2001 From: Igor Drozdov Date: Mon, 23 Jan 2017 14:20:38 +0300 Subject: [PATCH] Search for interpreter-settings in several jars in folder --- .../interpreter/InterpreterFactory.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java index e06574277eb..6f06f897344 100644 --- a/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java +++ b/zeppelin-zengine/src/main/java/org/apache/zeppelin/interpreter/InterpreterFactory.java @@ -41,6 +41,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Comparator; +import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -311,16 +312,19 @@ private boolean registerInterpreterFromResource(ClassLoader cl, String interpret URL[] urls = recursiveBuildLibList(new File(interpreterDir)); ClassLoader tempClassLoader = new URLClassLoader(urls, cl); - InputStream inputStream = tempClassLoader.getResourceAsStream(interpreterJson); - - if (null != inputStream) { - logger.debug("Reading {} from resources in {}", interpreterJson, interpreterDir); - List registeredInterpreterList = - getInterpreterListFromJson(inputStream); - registerInterpreters(registeredInterpreterList, interpreterDir); - return true; + Enumeration interpreterSettings = tempClassLoader.getResources(interpreterJson); + if (!interpreterSettings.hasMoreElements()) { + return false; } - return false; + for (URL url : Collections.list(interpreterSettings)) { + try (InputStream inputStream = url.openStream()) { + logger.debug("Reading {} from {}", interpreterJson, url); + List registeredInterpreterList = + getInterpreterListFromJson(inputStream); + registerInterpreters(registeredInterpreterList, interpreterDir); + } + } + return true; } private boolean registerInterpreterFromPath(String interpreterDir, String interpreterJson)