From 61851f2cddfe1ceaea544f0800a8cd391bada5ce Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Fri, 5 Aug 2016 15:57:05 +0000
Subject: [PATCH] SSDM-3989 : Ugly fix that works, several services are being
 initialized using "${download-url}" when the property is missing since they
 are created using spring. These have been tracked down and fixed one by one.

SVN: 36876
---
 .../openbis/dss/generic/server/ConfigParameters.java   |  6 ++++--
 .../dss/generic/server/EncapsulatedOpenBISService.java |  6 +++---
 .../openbisauth/OpenBISAuthenticationInterceptor.java  | 10 +---------
 .../standard/GenericDssLinkReportingPlugin.java        |  8 +++++++-
 .../shared/api/v1/DataStoreApiUrlUtilities.java        |  1 +
 .../shared/utils/DssPropertyParametersUtil.java        |  2 +-
 datastore_server/source/java/dssApplicationContext.xml |  1 -
 7 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
index ef6ccbacc89..7e18f337f64 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ConfigParameters.java
@@ -29,8 +29,8 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
 import ch.systemsx.cisd.common.properties.PropertyParametersUtil;
-import ch.systemsx.cisd.common.properties.PropertyUtils;
 import ch.systemsx.cisd.common.properties.PropertyParametersUtil.SectionProperties;
+import ch.systemsx.cisd.common.properties.PropertyUtils;
 import ch.systemsx.cisd.openbis.common.api.client.ServiceFinder;
 import ch.systemsx.cisd.openbis.dss.generic.shared.Constants;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.PluginServletConfig;
@@ -157,7 +157,9 @@ public final class ConfigParameters implements IServletPropertiesManager
         dssRecoveryStateDir = DssPropertyParametersUtil.getDssRecoveryStateDir(properties);
         port = getMandatoryIntegerProperty(properties, PORT_KEY);
         serverURL = PropertyUtils.getMandatoryProperty(properties, SERVER_URL_KEY);
-        downloadURL = PropertyUtils.getMandatoryProperty(properties, DOWNLOAD_URL);
+
+        downloadURL = PropertyUtils.getProperty(properties, DOWNLOAD_URL, "");
+
         sessionTimeout = getMandatoryIntegerProperty(properties, SESSION_TIMEOUT_KEY) * 60;
         serverTimeoutInMinutes =
                 PropertyUtils.getInt(properties, SERVER_TIMEOUT_IN_MINUTES,
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
index ea2fb19f317..c6f1ec459c4 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISService.java
@@ -238,13 +238,13 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
     }
 
     public EncapsulatedOpenBISService(IServiceForDataStoreServer service,
-            OpenBISSessionHolder sessionHolder, String downloadUrl)
+            OpenBISSessionHolder sessionHolder)
     {
-        this(service, sessionHolder, downloadUrl, null);
+        this(service, sessionHolder, null);
     }
 
     public EncapsulatedOpenBISService(IServiceForDataStoreServer service,
-            OpenBISSessionHolder sessionHolder, String downloadUrl, IShareIdManager shareIdManager)
+            OpenBISSessionHolder sessionHolder, IShareIdManager shareIdManager)
     {
         this.shareIdManager = shareIdManager;
         assert service != null : "Given IETLLIMSService implementation can not be null.";
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/openbisauth/OpenBISAuthenticationInterceptor.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/openbisauth/OpenBISAuthenticationInterceptor.java
index e3bc0bb0610..67dba910624 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/openbisauth/OpenBISAuthenticationInterceptor.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/openbisauth/OpenBISAuthenticationInterceptor.java
@@ -24,7 +24,6 @@ import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException;
 import ch.systemsx.cisd.common.exceptions.InvalidSessionException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
-import ch.systemsx.cisd.common.shared.basic.string.StringUtils;
 import ch.systemsx.cisd.common.spring.PropertyPlaceholderUtils;
 import ch.systemsx.cisd.openbis.dss.generic.server.ConfigParameters;
 import ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService;
@@ -32,7 +31,6 @@ import ch.systemsx.cisd.openbis.dss.generic.server.SessionTokenManager;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.IPluginTaskInfoProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSourceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ManagedAuthentication;
-import ch.systemsx.cisd.openbis.dss.generic.shared.utils.DssPropertyParametersUtil;
 import ch.systemsx.cisd.openbis.generic.shared.IServiceForDataStoreServer;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStoreServerInfo;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatastoreServiceDescriptions;
@@ -145,12 +143,6 @@ public class OpenBISAuthenticationInterceptor implements MethodInterceptor
         dataStoreServerInfo.setPort(port);
         dataStoreServerInfo.setUseSSL(useSSL);
         dataStoreServerInfo.setDataStoreCode(sessionHolder.getDataStoreCode());
-        if (StringUtils.isBlank(downloadUrl))
-        {
-            final String msg =
-                    "'" + DssPropertyParametersUtil.DOWNLOAD_URL_KEY + "' has to be set.";
-            throw new ConfigurationFailureException(msg);
-        }
         dataStoreServerInfo.setDownloadUrl(downloadUrl);
         dataStoreServerInfo.setSessionToken(sessionTokenManager.drawSessionToken());
         dataStoreServerInfo.setServicesDescriptions(pluginTaskDescriptions);
@@ -201,7 +193,7 @@ public class OpenBISAuthenticationInterceptor implements MethodInterceptor
 
     public final void setDownloadUrl(String downloadUrl)
     {
-        this.downloadUrl = downloadUrl;
+        this.downloadUrl = downloadUrl.equals("${download-url}") ? "" : downloadUrl;
     }
 
     public void setTimeoutInMinutes(String timeoutInMinutes)
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/GenericDssLinkReportingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/GenericDssLinkReportingPlugin.java
index b03b213868a..b422442993f 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/GenericDssLinkReportingPlugin.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/GenericDssLinkReportingPlugin.java
@@ -62,7 +62,13 @@ public class GenericDssLinkReportingPlugin extends AbstractDssLinkReportingPlugi
     public GenericDssLinkReportingPlugin(Properties properties, File storeRoot)
     {
         super(properties, storeRoot);
-        this.downloadUrl = PropertyUtils.getMandatoryProperty(properties, DOWNLOAD_URL);
+        if (PropertyUtils.getProperty(properties, DOWNLOAD_URL, "").equals("${download-url}"))
+        {
+            this.downloadUrl = "";
+        } else
+        {
+            this.downloadUrl = PropertyUtils.getProperty(properties, DOWNLOAD_URL, "");
+        }
         this.regexOrNull = PropertyUtils.getProperty(properties, DATA_SET_REGEX);
         this.pathOrNull = PropertyUtils.getProperty(properties, DATA_SET_PATH);
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataStoreApiUrlUtilities.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataStoreApiUrlUtilities.java
index bd9908e215f..0ec6f512283 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataStoreApiUrlUtilities.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/api/v1/DataStoreApiUrlUtilities.java
@@ -35,6 +35,7 @@ public class DataStoreApiUrlUtilities
      */
     public static String getDataStoreUrlFromDownloadUrl(String dataStoreDownloadUrl)
     {
+        dataStoreDownloadUrl = dataStoreDownloadUrl.equals("${download-url}") ? "" : dataStoreDownloadUrl;
         String datastoreUrl = dataStoreDownloadUrl;
 
         // The url objained form a DataStore object is the *download* url. Convert this to the
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 cbf7939dac9..4fb76749ef8 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
@@ -164,7 +164,7 @@ public class DssPropertyParametersUtil
 
     public static String getDownloadUrl(Properties serviceProperties)
     {
-        return PropertyUtils.getMandatoryProperty(serviceProperties, DOWNLOAD_URL_KEY);
+        return PropertyUtils.getProperty(serviceProperties, DOWNLOAD_URL_KEY, "");
     }
 
     public static int getDataStreamTimeout(Properties serviceProperties)
diff --git a/datastore_server/source/java/dssApplicationContext.xml b/datastore_server/source/java/dssApplicationContext.xml
index 4434f98b5b1..3eece3f463c 100644
--- a/datastore_server/source/java/dssApplicationContext.xml
+++ b/datastore_server/source/java/dssApplicationContext.xml
@@ -97,7 +97,6 @@
     <bean id="openBIS-service" class="ch.systemsx.cisd.openbis.dss.generic.server.EncapsulatedOpenBISService">
        <constructor-arg ref="etl-lims-service"/>
        <constructor-arg ref="sessionHolder"/>
-       <constructor-arg value="${download-url}"/>
        <property name="conversationClient" ref="data-store-service-conversation-client-manager"/>
     </bean>
     
-- 
GitLab