kishoreg commented on a change in pull request #4956: Make plugin manager to 
load plugins based on environment variables
URL: https://github.com/apache/incubator-pinot/pull/4956#discussion_r362986199
 
 

 ##########
 File path: 
pinot-spi/src/main/java/org/apache/pinot/spi/plugin/PluginManager.java
 ##########
 @@ -28,19 +28,89 @@
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 public class PluginManager {
 
+  public static final String PLUGINS_DIR_ENV_VAR = "plugins.dir";
+  public static final String PLUGINS_INCLUDE_ENV_VAR = "plugins.include";
   public static final String DEFAULT_PLUGIN_NAME = "DEFAULT";
-  static PluginManager PLUGIN_MANAGER = new PluginManager();
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(PluginManager.class);
+  private static final String JAR_FILE_EXTENSION = "jar";
+  private static PluginManager PLUGIN_MANAGER = new PluginManager();
 
-  Map<Plugin, PluginClassLoader> _registry = new HashMap<>();
+  private Map<Plugin, PluginClassLoader> _registry = new HashMap<>();
+  private String _pluginsRootDir;
+  private String _pluginsInclude;
+  private boolean _initialized = false;
 
   private PluginManager() {
     _registry.put(new Plugin(DEFAULT_PLUGIN_NAME), 
createClassLoader(Collections.emptyList()));
+    init();
+  }
+
+  public synchronized void init() {
+    if (_initialized) {
+      return;
+    }
+    try {
+      _pluginsRootDir = System.getProperty(PLUGINS_DIR_ENV_VAR);
+    } catch (Exception e) {
+      LOGGER.error("Failed to load env variable {}", PLUGINS_DIR_ENV_VAR, e);
+      _pluginsRootDir = null;
+    }
+    try {
+      _pluginsInclude = System.getProperty(PLUGINS_INCLUDE_ENV_VAR);
+    } catch (Exception e) {
+      LOGGER.error("Failed to load env variable {}", PLUGINS_INCLUDE_ENV_VAR, 
e);
+      _pluginsInclude = null;
+    }
+    init(_pluginsRootDir, _pluginsInclude);
+    _initialized = true;
+  }
+
+  private void init(String pluginsRootDir, String pluginsLoading) {
 
 Review comment:
   pluginsLoading -- > pluginsInclude

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to