From f8839b3e28c3fcdf488a08f73519f7a71c3584d7 Mon Sep 17 00:00:00 2001
From: juanf <juanf>
Date: Mon, 15 Aug 2016 10:47:39 +0000
Subject: [PATCH] SSDM-3989 : Reverting ugly fix from commits, 36876, 36877 and
 36878

SVN: 36903
---
 .../openbis/dss/generic/server/ConfigParameters.java  |  4 +---
 .../generic/server/EncapsulatedOpenBISService.java    |  6 +++---
 .../openbisauth/OpenBISAuthenticationInterceptor.java | 10 +++++++++-
 .../standard/GenericDssLinkReportingPlugin.java       |  8 +-------
 .../shared/api/v1/DataStoreApiUrlUtilities.java       |  1 -
 .../shared/utils/DssPropertyParametersUtil.java       |  2 +-
 .../source/java/dssApplicationContext.xml             |  1 +
 .../cisd/etlserver/TransferredDataSetHandlerTest.java | 11 ++++++-----
 .../server/EncapsulatedOpenBISServiceTest.java        |  2 +-
 9 files changed, 23 insertions(+), 22 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 7e18f337f64..452fb0ce317 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
@@ -157,9 +157,7 @@ public final class ConfigParameters implements IServletPropertiesManager
         dssRecoveryStateDir = DssPropertyParametersUtil.getDssRecoveryStateDir(properties);
         port = getMandatoryIntegerProperty(properties, PORT_KEY);
         serverURL = PropertyUtils.getMandatoryProperty(properties, SERVER_URL_KEY);
-
-        downloadURL = PropertyUtils.getProperty(properties, DOWNLOAD_URL, "");
-
+        downloadURL = PropertyUtils.getMandatoryProperty(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 c6f1ec459c4..ea2fb19f317 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)
+            OpenBISSessionHolder sessionHolder, String downloadUrl)
     {
-        this(service, sessionHolder, null);
+        this(service, sessionHolder, downloadUrl, null);
     }
 
     public EncapsulatedOpenBISService(IServiceForDataStoreServer service,
-            OpenBISSessionHolder sessionHolder, IShareIdManager shareIdManager)
+            OpenBISSessionHolder sessionHolder, String downloadUrl, 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 67dba910624..e3bc0bb0610 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,6 +24,7 @@ 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;
@@ -31,6 +32,7 @@ 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;
@@ -143,6 +145,12 @@ 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);
@@ -193,7 +201,7 @@ public class OpenBISAuthenticationInterceptor implements MethodInterceptor
 
     public final void setDownloadUrl(String downloadUrl)
     {
-        this.downloadUrl = downloadUrl.equals("${download-url}") ? "" : downloadUrl;
+        this.downloadUrl = 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 b422442993f..b03b213868a 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,13 +62,7 @@ public class GenericDssLinkReportingPlugin extends AbstractDssLinkReportingPlugi
     public GenericDssLinkReportingPlugin(Properties properties, File storeRoot)
     {
         super(properties, storeRoot);
-        if (PropertyUtils.getProperty(properties, DOWNLOAD_URL, "").equals("${download-url}"))
-        {
-            this.downloadUrl = "";
-        } else
-        {
-            this.downloadUrl = PropertyUtils.getProperty(properties, DOWNLOAD_URL, "");
-        }
+        this.downloadUrl = PropertyUtils.getMandatoryProperty(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 0ec6f512283..bd9908e215f 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,7 +35,6 @@ 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 4fb76749ef8..cbf7939dac9 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.getProperty(serviceProperties, DOWNLOAD_URL_KEY, "");
+        return PropertyUtils.getMandatoryProperty(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 3eece3f463c..4434f98b5b1 100644
--- a/datastore_server/source/java/dssApplicationContext.xml
+++ b/datastore_server/source/java/dssApplicationContext.xml
@@ -97,6 +97,7 @@
     <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>
     
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
index 6e59a3bb9b7..0c767af6e1b 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java
@@ -85,7 +85,8 @@ import ch.systemsx.cisd.openbis.util.LogRecordingUtils;
  * 
  * @author Franz-Josef Elmer
  */
-@Friend(toClasses = { TransferredDataSetHandler.class, DataSetRegistrationHelper.class,
+@Friend(toClasses =
+{ TransferredDataSetHandler.class, DataSetRegistrationHelper.class,
         IdentifiedDataStrategy.class, PluginTaskInfoProvider.class,
         DssPropertyParametersUtil.class })
 public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestCase
@@ -280,7 +281,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
         OpenBISSessionHolder sessionHolder = new OpenBISSessionHolder();
         sessionHolder.setSessionToken(SESSION_TOKEN);
         authorizedLimsService =
-                new EncapsulatedOpenBISService(limsService, sessionHolder, shareIdManager);
+                new EncapsulatedOpenBISService(limsService, sessionHolder, "", shareIdManager);
         dataSetValidator = context.mock(IDataSetValidator.class);
 
         Properties threadProperties = new Properties();
@@ -486,7 +487,8 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
             final DataSetInformation dataSet, final String dataSetCode, final String recipient)
     {
         SampleIdentifier sampleIdentifier = dataSet.getSampleIdentifier();
-        String code = sampleIdentifier != null ? sampleIdentifier.getSampleCode() : dataSet.getExperimentIdentifier().getExperimentCode();
+        String code = sampleIdentifier != null ? sampleIdentifier.getSampleCode() :
+                dataSet.getExperimentIdentifier().getExperimentCode();
         expectations.one(mailClient).sendMessage(
                 String.format(DataSetRegistrationHelper.EMAIL_SUBJECT_TEMPLATE, code),
                 getNotificationEmailContent(dataSet, dataSetCode), null, null, recipient);
@@ -871,8 +873,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC
                 LogMonitoringAppender
                         .addAppender(
                                 LogCategory.OPERATION,
-                                Pattern.compile(
-                                        "P[0-9]+-\\{test-script.sh\\} had command line: \\[sourceTest/java/ch/systemsx/cisd/etlserver/utils/test-script.sh, 4711-42, .*/datastore_server/targets/unit-test-wd/ch.systemsx.cisd.etlserver.TransferredDataSetHandlerTest/data1\\]"),
+                                Pattern.compile("P[0-9]+-\\{test-script.sh\\} had command line: \\[sourceTest/java/ch/systemsx/cisd/etlserver/utils/test-script.sh, 4711-42, .*/datastore_server/targets/unit-test-wd/ch.systemsx.cisd.etlserver.TransferredDataSetHandlerTest/data1\\]"),
                                 Pattern.compile("P[0-9]+-\\{test-script.sh\\} process returned with exit value 1."));
 
         handler.handle(isFinishedData1);
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
index 44ec9062324..4d9ba721a0c 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/EncapsulatedOpenBISServiceTest.java
@@ -63,7 +63,7 @@ public class EncapsulatedOpenBISServiceTest
         shareIdManager = context.mock(IShareIdManager.class);
         session = new OpenBISSessionHolder();
         session.setSessionToken(SESSION_TOKEN);
-        encapsulatedLimsService = new EncapsulatedOpenBISService(limsService, session, shareIdManager);
+        encapsulatedLimsService = new EncapsulatedOpenBISService(limsService, session, "", shareIdManager);
     }
 
     @AfterMethod
-- 
GitLab