From 41cc61277ff16ff8e98778aba09995d8a9abf4ca Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Tue, 16 Oct 2018 14:14:16 +0200 Subject: [PATCH] added system property to disable extraction of core plugins --- .../scm/boot/BootstrapContextListener.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java index 4f7a00ce56..bf7583b2a2 100644 --- a/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java +++ b/scm-webapp/src/main/java/sonia/scm/boot/BootstrapContextListener.java @@ -148,13 +148,15 @@ public class BootstrapContextListener implements ServletContextListener { context = sce.getServletContext(); - PluginIndex index = readCorePluginIndex(context); - File pluginDirectory = getPluginDirectory(); try { - extractCorePlugins(context, pluginDirectory, index); + if (!isCorePluginExtractionDisabled()) { + extractCorePlugins(context, pluginDirectory); + } else { + logger.info("core plugin extraction is disabled"); + } ClassLoader cl = ClassLoaders.getContextClassLoader(BootstrapContextListener.class); @@ -181,6 +183,10 @@ public class BootstrapContextListener implements ServletContextListener } } + private boolean isCorePluginExtractionDisabled() { + return Boolean.getBoolean("sonia.scm.boot.disable-core-plugin-extraction"); + } + /** * Restart the whole webapp context. * @@ -269,17 +275,15 @@ public class BootstrapContextListener implements ServletContextListener * * @param context * @param pluginDirectory - * @param lines - * @param index * * @throws IOException */ - private void extractCorePlugins(ServletContext context, File pluginDirectory, - PluginIndex index) - throws IOException + private void extractCorePlugins(ServletContext context, File pluginDirectory) throws IOException { IOUtil.mkdirs(pluginDirectory); + PluginIndex index = readCorePluginIndex(context); + for (PluginIndexEntry entry : index) { extractCorePlugin(context, pluginDirectory, entry);