From 02c88163331b7f9a47da0dc366866d44ca955a9b Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Mon, 1 Nov 2010 15:21:13 +0000
Subject: [PATCH] LMS-1809 changes to prevent using property storeroot-dir in
 spring application context, because DSS SystemTestCase overrides the location

SVN: 18504
---
 .../dss/generic/server/DataStoreService.java       |  6 +-----
 .../server/plugins/tasks/PluginTaskProviders.java  | 14 +++++++++++++-
 .../source/java/dssApplicationContext.xml          |  8 +++-----
 .../dss/generic/server/DataStoreServiceTest.java   |  1 -
 4 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
index 1349b6cd7f0..d39fdd8c8df 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java
@@ -96,11 +96,7 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic
         this.commandExecutorFactory = commandExecutorFactory;
         this.mailClientParameters = mailClientParameters;
         this.pluginTaskParameters = pluginTaskParameters;
-    }
-
-    public final void setStoreRoot(File storeRoot)
-    {
-        this.storeRoot = storeRoot;
+        storeRoot = pluginTaskParameters.getStoreRoot();
     }
 
     public final void setCommandQueueDir(String queueDirOrNull)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
index d1950105fc2..69358745be9 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/tasks/PluginTaskProviders.java
@@ -30,6 +30,8 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions;
  */
 public class PluginTaskProviders
 {
+    public static final String STOREROOT_DIR_KEY = "storeroot-dir";
+
     /** property with repotring plugins names separated by delimiter */
     @Private
     static final String REPORTING_PLUGIN_NAMES = "reporting-plugins";
@@ -48,10 +50,14 @@ public class PluginTaskProviders
 
     private final ArchiverTaskFactory archiverTaskFactory;
 
+    private final File storeRoot;
+
     /** for external injections */
-    public static PluginTaskProviders create(File storeRoot)
+    public static PluginTaskProviders create()
     {
         Properties properties = DssPropertyParametersUtil.loadServiceProperties();
+        String property = properties.getProperty(STOREROOT_DIR_KEY);
+        File storeRoot = new File(property);
         PluginTaskProviders providers = new PluginTaskProviders(properties, storeRoot);
         providers.check();
         providers.logConfigurations();
@@ -62,6 +68,7 @@ public class PluginTaskProviders
     // public only for tests
     public PluginTaskProviders(Properties serviceProperties, File storeRoot)
     {
+        this.storeRoot = storeRoot;
         String datastoreCode = DssPropertyParametersUtil.getDataStoreCode(serviceProperties);
         this.reportingPlugins =
                 createReportingPluginsFactories(serviceProperties, datastoreCode, storeRoot);
@@ -70,6 +77,11 @@ public class PluginTaskProviders
         this.archiverTaskFactory = createArchiverTaskFactory(serviceProperties, datastoreCode);
     }
 
+    public final File getStoreRoot()
+    {
+        return storeRoot;
+    }
+
     public PluginTaskProvider<IReportingPluginTask> getReportingPluginsProvider()
     {
         return reportingPlugins;
diff --git a/datastore_server/source/java/dssApplicationContext.xml b/datastore_server/source/java/dssApplicationContext.xml
index da1a7d4a417..e568a86b18b 100644
--- a/datastore_server/source/java/dssApplicationContext.xml
+++ b/datastore_server/source/java/dssApplicationContext.xml
@@ -17,10 +17,9 @@
         <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
         <property name="ignoreUnresolvablePlaceholders" value="true" />
     </bean>
-    
-    <bean id="plugin-tasks" class="ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProviders" factory-method="create" >
-      <constructor-arg value="${storeroot-dir}" />
-    </bean>
+
+  <bean id="plugin-tasks" class="ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProviders"
+        factory-method="create" />
 
     <bean id="openBIS-service" class="ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService">
         <constructor-arg ref="session-token-manager"/>
@@ -50,7 +49,6 @@
                 <constructor-arg ref="plugin-tasks" />
                 <property name="cifexAdminUserOrNull" value="${cifex-admin-username}" />
                 <property name="cifexAdminPasswordOrNull" value="${cifex-admin-password}" />
-                <property name="storeRoot" value="${storeroot-dir}"/>
                 <property name="commandQueueDir" value="${commandqueue-dir}"/>
             </bean>
         </property>
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceTest.java
index 2ca94255804..32dc33cc3b4 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceTest.java
@@ -294,7 +294,6 @@ public class DataStoreServiceTest extends AssertJUnit
         MockDataStoreService service =
                 new MockDataStoreService(sessionTokenManager, commandExecutorFactory,
                         mailClientParameters, cifexServiceFactory, CIFEX_URL, pluginTaskParameters);
-        service.setStoreRoot(TEST_STORE);
         service.afterPropertiesSet();
         return service;
     }
-- 
GitLab