From 8fd7c8f68ab490e8eeacb9dc92f3d8b18b5f7b02 Mon Sep 17 00:00:00 2001
From: felmer <franz-josef.elmer@id.ethz.ch>
Date: Thu, 25 Jun 2020 11:24:14 +0200
Subject: [PATCH] SSDM-9648: DssPropertyParametersUtil.loadServiceProperties():
 keep loaded properties in a static field in order to avoid pollution of DSS
 log file with entries from CorePluginsInjector

---
 .../utils/DssPropertyParametersUtil.java      | 49 ++++++++++---------
 1 file changed, 27 insertions(+), 22 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
index 672d78e6aa3..a0b9d53451f 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/utils/DssPropertyParametersUtil.java
@@ -125,36 +125,41 @@ public class DssPropertyParametersUtil
     private static File recoveryState;
 
     private static File logRegistrations;
+    
+    private static ExtendedProperties fullServiceProperties;
 
     /** loads server configuration */
     public static ExtendedProperties loadServiceProperties()
     {
-        ExtendedProperties properties = loadProperties(SERVICE_PROPERTIES_FILE);
-        CorePluginsUtils.addCorePluginsProperties(properties, ScannerType.DSS);
-        ExtendedProperties serviceProperties = extendProperties(properties);
-        CorePluginsInjector injector =
-                new CorePluginsInjector(ScannerType.DSS, DssPluginType.values());
-        Map<String, File> pluginFolders = injector.injectCorePlugins(serviceProperties);
-
-        if (PluginContainer.tryGetInstance() == null)
+        if (fullServiceProperties == null)
         {
-            PluginContainer.initHotDeployment();
-        }
-
-        for (String name : pluginFolders.keySet())
-        {
-            File mainFolder = pluginFolders.get(name);
-            File hotDeployFolder = new File(mainFolder, "plugin");
-            if (hotDeployFolder.exists() && hotDeployFolder.isDirectory()
-                    && PluginContainer.tryGetInstance(name) == null)
+            ExtendedProperties properties = loadProperties(SERVICE_PROPERTIES_FILE);
+            CorePluginsUtils.addCorePluginsProperties(properties, ScannerType.DSS);
+            ExtendedProperties serviceProperties = extendProperties(properties);
+            CorePluginsInjector injector =
+                    new CorePluginsInjector(ScannerType.DSS, DssPluginType.values());
+            Map<String, File> pluginFolders = injector.injectCorePlugins(serviceProperties);
+            
+            if (PluginContainer.tryGetInstance() == null)
             {
-                PluginContainer pluginContainer = PluginContainer.initHotDeployment(name);
-                pluginContainer.addPluginDirectory(hotDeployFolder);
-                pluginContainer.refresh(true);
+                PluginContainer.initHotDeployment();
             }
+            
+            for (String name : pluginFolders.keySet())
+            {
+                File mainFolder = pluginFolders.get(name);
+                File hotDeployFolder = new File(mainFolder, "plugin");
+                if (hotDeployFolder.exists() && hotDeployFolder.isDirectory()
+                        && PluginContainer.tryGetInstance(name) == null)
+                {
+                    PluginContainer pluginContainer = PluginContainer.initHotDeployment(name);
+                    pluginContainer.addPluginDirectory(hotDeployFolder);
+                    pluginContainer.refresh(true);
+                }
+            }
+            fullServiceProperties = serviceProperties;
         }
-
-        return serviceProperties;
+        return fullServiceProperties;
     }
 
     public static ExtendedProperties loadProperties(String filePath)
-- 
GitLab