From 297a88337552f9a25053b9fa1d72027c5fb847bb Mon Sep 17 00:00:00 2001
From: buczekp <buczekp>
Date: Fri, 13 Aug 2010 10:03:12 +0000
Subject: [PATCH] [LMS-1691] got rid of dataStoreBaseURL in most places in
 openbis

SVN: 17442
---
 .../server/EncapsulatedOpenBISService.java    | 11 +++++--
 .../generic/server/UploadingCommandTest.java  |  4 +--
 openbis/dist/server/service.properties        |  2 +-
 .../web/server/AbstractClientService.java     |  5 ----
 .../web/server/CommonClientService.java       |  1 -
 .../generic/server/AbstractCommonServer.java  |  2 +-
 .../generic/server/AbstractServer.java        | 12 ++++----
 .../server/CommonBusinessObjectFactory.java   |  5 ++--
 .../openbis/generic/server/CommonServer.java  |  6 ++--
 .../openbis/generic/server/ETLService.java    |  6 ++--
 .../generic/server/TrackingServer.java        |  3 +-
 .../bo/ICommonBusinessObjectFactory.java      |  2 +-
 .../bo/datasetlister/DatasetLister.java       | 24 +++++----------
 .../basic/IDataStoreBaseURLProvider.java      |  1 -
 .../translator/DataStoreTranslator.java       | 17 ++++-------
 .../translator/ExternalDataTranslator.java    | 16 ++++------
 openbis/source/java/service.properties        |  6 ++--
 .../web/server/CommonClientServiceTest.java   |  3 +-
 .../generic/server/CommonServerTest.java      | 12 +++-----
 .../bo/datasetlister/DatasetListerTest.java   |  8 ++---
 .../ExternalDataTranslatorTest.java           | 28 +++++++++++------
 .../server/RawDataServiceInternal.java        | 26 ++++++++--------
 .../server/RawDataServiceInternalTest.java    |  4 +--
 .../plugin/screening/client/cli/Login.java    |  5 ++--
 .../IScreeningBusinessObjectFactory.java      |  2 +-
 .../ScreeningBusinessObjectFactory.java       |  5 ++--
 .../screening/server/ScreeningServer.java     | 16 +++++-----
 .../logic/FeatureVectorDatasetLoader.java     |  9 +++---
 .../logic/GenePlateLocationsLoader.java       | 30 +++++++------------
 .../server/logic/ImageDatasetLoader.java      |  6 ++--
 .../server/logic/PlateContentLoader.java      | 29 +++++++-----------
 .../server/logic/PlateDatasetLoader.java      | 10 ++-----
 .../server/logic/ScreeningApiImpl.java        | 27 ++++++++---------
 .../server/logic/ScreeningApiImplTest.java    | 12 ++++----
 34 files changed, 155 insertions(+), 200 deletions(-)

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 d5fe2d712bb..80d566b2d2f 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
@@ -28,6 +28,7 @@ import ch.systemsx.cisd.common.exceptions.InvalidSessionException;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.logging.LogCategory;
 import ch.systemsx.cisd.common.logging.LogFactory;
+import ch.systemsx.cisd.common.shared.basic.utils.StringUtils;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.tasks.PluginTaskProviders;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation;
@@ -204,6 +205,11 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         dataStoreServerInfo.setPort(port);
         dataStoreServerInfo.setUseSSL(useSSL);
         dataStoreServerInfo.setDataStoreCode(dataStoreCode);
+        if (StringUtils.isBlank(downloadUrl))
+        {
+            final String msg = "'download-url' has to be set.";
+            throw new ConfigurationFailureException(msg);
+        }
         dataStoreServerInfo.setDownloadUrl(downloadUrl);
         dataStoreServerInfo.setSessionToken(sessionTokenManager.drawSessionToken());
         dataStoreServerInfo.setServicesDescriptions(pluginTaskDescriptions);
@@ -316,7 +322,8 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
         }
     }
 
-    synchronized public SampleIdentifier tryToGetSampleIdentifier(String samplePermID) throws UserFailureException
+    synchronized public SampleIdentifier tryToGetSampleIdentifier(String samplePermID)
+            throws UserFailureException
     {
         checkSessionToken();
         try
@@ -467,7 +474,7 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer
                     + ".");
         }
     }
-    
+
     synchronized public void deleteDataSet(String dataSetCode, String reason)
             throws UserFailureException
     {
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java
index 823cd013dd1..398193702ac 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/UploadingCommandTest.java
@@ -157,11 +157,11 @@ public class UploadingCommandTest extends AssertJUnit
         createTestData(LOCATION1);
         ds2 = createTestData(LOCATION2);
         ExternalData dataSet1 =
-                ExternalDataTranslator.translate(createDataSet("1", LOCATION1), "?", "?",
+                ExternalDataTranslator.translate(createDataSet("1", LOCATION1), "?",
                         ExperimentTranslator.LoadableFields.PROPERTIES);
         System.out.println("ds1:" + dataSet1.getExperiment().getProperties());
         ExternalData dataSet2 =
-                ExternalDataTranslator.translate(createDataSet("2", LOCATION2), "?", "?",
+                ExternalDataTranslator.translate(createDataSet("2", LOCATION2), "?",
                         ExperimentTranslator.LoadableFields.PROPERTIES);
         dataSets = Arrays.<ExternalData> asList(dataSet1, dataSet2);
         command =
diff --git a/openbis/dist/server/service.properties b/openbis/dist/server/service.properties
index 5d9725ac91b..f47274d851c 100644
--- a/openbis/dist/server/service.properties
+++ b/openbis/dist/server/service.properties
@@ -65,7 +65,7 @@ ldap.attributenames.last.name =
 database-instance = TEST
 
 # Base URL of the Data Store Server. 
-# Will be used only for data sets registered in an openBIS server version before 14.04.2009 (or revision 10665)
+# Will be used only by DSS client trying to register data sets.
 data-store-server-base-url = 
 
 # The URL of the CIFEX server
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
index 55d483bce03..eceaaa26465 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java
@@ -98,11 +98,6 @@ public abstract class AbstractClientService implements IClientService,
         this.requestContextProvider = requestContextProvider;
     }
 
-    protected String getDataStoreBaseURL()
-    {
-        return commonClientService.getDataStoreBaseURL();
-    }
-
     @SuppressWarnings("unchecked")
     protected final <K> IResultSetManager<K> getResultSetManager()
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
index 316b53868ad..a0e3ed67ea8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java
@@ -165,7 +165,6 @@ public final class CommonClientService extends AbstractClientService implements
         this.commonServer = commonServer;
     }
 
-    @Override
     public String getDataStoreBaseURL()
     {
         return this.dataStoreBaseURL;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractCommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractCommonServer.java
index ecd022ecf33..00501c2733f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractCommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractCommonServer.java
@@ -109,7 +109,7 @@ abstract class AbstractCommonServer<T extends IServer> extends AbstractServer<T>
 
     protected IDatasetLister createDatasetLister(Session session)
     {
-        return businessObjectFactory.createDatasetLister(session, getDataStoreBaseURL());
+        return businessObjectFactory.createDatasetLister(session);
     }
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
index 41f2114590e..9722ddaece6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/AbstractServer.java
@@ -66,10 +66,10 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp
 {
     @Resource(name = ResourceNames.SAMPLE_PLUGIN_REGISTRY)
     private SampleServerPluginRegistry sampleServerPluginRegistry;
-    
+
     @Resource(name = ResourceNames.DATA_SET_PLUGIN_REGISTRY)
     private DataSetServerPluginRegistry dataSetServerPluginRegistry;
-    
+
     // For testing purpose.
     private ISampleTypeSlaveServerPlugin sampleTypeSlaveServerPlugin;
 
@@ -133,8 +133,7 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp
         {
             return sampleTypeSlaveServerPlugin;
         }
-        return sampleServerPluginRegistry.getPlugin(EntityKind.SAMPLE, sampleType)
-                .getSlaveServer();
+        return sampleServerPluginRegistry.getPlugin(EntityKind.SAMPLE, sampleType).getSlaveServer();
     }
 
     protected final IDataSetTypeSlaveServerPlugin getDataSetTypeSlaveServerPlugin(
@@ -144,7 +143,8 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp
         {
             return dataSetTypeSlaveServerPlugin;
         }
-        return dataSetServerPluginRegistry.getPlugin(EntityKind.DATA_SET, dataSetType).getSlaveServer();
+        return dataSetServerPluginRegistry.getPlugin(EntityKind.DATA_SET, dataSetType)
+                .getSlaveServer();
     }
 
     private final RoleAssignmentPE createInstanceAdminRoleAssigment(final PersonPE registrator,
@@ -202,7 +202,7 @@ public abstract class AbstractServer<T> extends AbstractServiceWithLogger<T> imp
         return daoFactory;
     }
 
-    protected final String getDataStoreBaseURL()
+    protected final String getDefaultDataStoreBaseURL()
     {
         return dataStoreBaseURLProvider.getDataStoreBaseURL();
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
index c115ab7aed7..922b79e6280 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonBusinessObjectFactory.java
@@ -109,10 +109,9 @@ public final class CommonBusinessObjectFactory extends AbstractBusinessObjectFac
         return SampleLister.create(getDaoFactory(), session.getBaseIndexURL());
     }
 
-    public IDatasetLister createDatasetLister(Session session, String defaultDataStoreBaseURL)
+    public IDatasetLister createDatasetLister(Session session)
     {
-        return DatasetLister.create(getDaoFactory(), session.getBaseIndexURL(),
-                defaultDataStoreBaseURL);
+        return DatasetLister.create(getDaoFactory(), session.getBaseIndexURL());
     }
 
     public IMaterialLister createMaterialLister(Session session)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
index 20706791274..665dc9aff2c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java
@@ -774,8 +774,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServer> impl
         datasetBO.enrichWithChildren();
         datasetBO.enrichWithProperties();
         final ExternalDataPE dataset = datasetBO.getExternalData();
-        return ExternalDataTranslator.translate(dataset, getDataStoreBaseURL(), session
-                .getBaseIndexURL(), false);
+        return ExternalDataTranslator.translate(dataset, session.getBaseIndexURL(), false);
     }
 
     public List<ExternalData> listRelatedDataSets(String sessionToken,
@@ -790,8 +789,7 @@ public final class CommonServer extends AbstractCommonServer<ICommonServer> impl
             final List<ExternalData> list = new ArrayList<ExternalData>(resultSet.size());
             for (final ExternalDataPE hit : resultSet)
             {
-                list.add(ExternalDataTranslator.translate(hit, getDataStoreBaseURL(), session
-                        .getBaseIndexURL(), false));
+                list.add(ExternalDataTranslator.translate(hit, session.getBaseIndexURL(), false));
             }
             return list;
         } catch (final DataAccessException ex)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
index 1a12cf2951e..42ce9feeae2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java
@@ -643,8 +643,7 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET
         ExternalDataPE externalDataPE = externalDataBO.tryExternalData();
         if (null == externalDataPE)
             return null;
-        return ExternalDataTranslator.translate(externalDataPE, dataStoreBaseURLProvider
-                .getDataStoreBaseURL(), session.getBaseIndexURL());
+        return ExternalDataTranslator.translate(externalDataPE, session.getBaseIndexURL());
     }
 
     public void checkDataSetAccess(String sessionToken, String dataSetCode)
@@ -718,7 +717,8 @@ public class ETLService extends AbstractCommonServer<IETLService> implements IET
     public String getDefaultDataStoreBaseURL(String sessionToken)
     {
         // See DataStoreApiUrlUtilities
-        String url = getDataStoreBaseURL();
+        // TODO 2010-08-13, Piotr Buczek: get directly from properties
+        String url = getDefaultDataStoreBaseURL();
         // Strip the web application name from the URL
         if (url.endsWith("/" + DATA_STORE_SERVER_WEB_APPLICATION_NAME))
         {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/TrackingServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/TrackingServer.java
index 64357994dca..ce18b126ce6 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/TrackingServer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/TrackingServer.java
@@ -84,8 +84,7 @@ public final class TrackingServer extends AbstractServer<ITrackingServer> implem
 
         // retrieve data sets connected to samples of type specified in criteria
         // (these samples don't have properties loaded but ids are loaded)
-        final IDatasetLister datasetLister =
-                businessObjectFactory.createDatasetLister(session, getDataStoreBaseURL());
+        final IDatasetLister datasetLister = businessObjectFactory.createDatasetLister(session);
         final List<ExternalData> dataSets = datasetLister.listByTrackingCriteria(criteria);
         // retrieve samples enriched with their dependent samples and properties
         // (drawback - samples directly connected to data sets are retrieved twice)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
index a9647462cc1..2ff1099aa89 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ICommonBusinessObjectFactory.java
@@ -77,7 +77,7 @@ public interface ICommonBusinessObjectFactory
 
     public ISampleLister createSampleLister(Session session);
 
-    public IDatasetLister createDatasetLister(Session session, String defaultDataStoreBaseURL);
+    public IDatasetLister createDatasetLister(Session session);
 
     public IMaterialLister createMaterialLister(Session session);
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
index c37a39d27a5..fef98587ae9 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetLister.java
@@ -83,8 +83,6 @@ public class DatasetLister implements IDatasetLister
 
     private final String baseIndexURL;
 
-    private final String defaultDataStoreBaseURL;
-
     //
     // Working interfaces
     //
@@ -108,30 +106,28 @@ public class DatasetLister implements IDatasetLister
 
     private final Map<Long, LocatorType> locatorTypes = new HashMap<Long, LocatorType>();
 
-    public static IDatasetLister create(IDAOFactory daoFactory, String baseIndexURL,
-            String defaultDataStoreBaseURL)
+    public static IDatasetLister create(IDAOFactory daoFactory, String baseIndexURL)
     {
         DatasetListerDAO dao = DatasetListerDAO.create(daoFactory);
         SecondaryEntityDAO referencedEntityDAO = SecondaryEntityDAO.create(daoFactory);
 
-        return create(dao, referencedEntityDAO, baseIndexURL, defaultDataStoreBaseURL);
+        return create(dao, referencedEntityDAO, baseIndexURL);
     }
 
     static IDatasetLister create(DatasetListerDAO dao, SecondaryEntityDAO referencedEntityDAO,
-            String baseIndexURL, String defaultDataStoreBaseURL)
+            String baseIndexURL)
     {
         IDatasetListingQuery query = dao.getQuery();
         EntityPropertiesEnricher propertiesEnricher =
                 new EntityPropertiesEnricher(query, dao.getPropertySetQuery());
         return new DatasetLister(dao.getDatabaseInstanceId(), dao.getDatabaseInstance(), query,
-                propertiesEnricher, referencedEntityDAO, baseIndexURL, defaultDataStoreBaseURL);
+                propertiesEnricher, referencedEntityDAO, baseIndexURL);
     }
 
     // For unit tests
     DatasetLister(final long databaseInstanceId, final DatabaseInstance databaseInstance,
             final IDatasetListingQuery query, IEntityPropertiesEnricher propertiesEnricher,
-            SecondaryEntityDAO referencedEntityDAO, String baseIndexURL,
-            String defaultDataStoreBaseURL)
+            SecondaryEntityDAO referencedEntityDAO, String baseIndexURL)
     {
         assert databaseInstance != null;
         assert query != null;
@@ -142,7 +138,6 @@ public class DatasetLister implements IDatasetLister
         this.propertiesEnricher = propertiesEnricher;
         this.referencedEntityDAO = referencedEntityDAO;
         this.baseIndexURL = baseIndexURL;
-        this.defaultDataStoreBaseURL = defaultDataStoreBaseURL;
     }
 
     public List<ExternalData> listBySampleTechId(TechId sampleId, boolean showOnlyDirectlyConnected)
@@ -491,7 +486,7 @@ public class DatasetLister implements IDatasetLister
         dataStores.clear();
         for (DataStoreRecord code : query.getDataStores(databaseInstanceId))
         {
-            dataStores.put(code.id, createDataStore(code, defaultDataStoreBaseURL));
+            dataStores.put(code.id, createDataStore(code));
         }
     }
 
@@ -500,14 +495,11 @@ public class DatasetLister implements IDatasetLister
         codeHolder.setCode(escapeHtml(codeRecord.code));
     }
 
-    private static DataStore createDataStore(DataStoreRecord codeRecord,
-            String defaultDataStoreBaseURL)
+    private static DataStore createDataStore(DataStoreRecord codeRecord)
     {
         DataStore result = new DataStore();
         setCode(result, codeRecord);
-        String downloadUrl =
-                DataStoreTranslator.translateDownloadUrl(defaultDataStoreBaseURL,
-                        codeRecord.download_url);
+        String downloadUrl = DataStoreTranslator.translateDownloadUrl(codeRecord.download_url);
         result.setDownloadUrl(downloadUrl);
         return result;
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDataStoreBaseURLProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDataStoreBaseURLProvider.java
index 29519840c08..2621dd78d14 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDataStoreBaseURLProvider.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/IDataStoreBaseURLProvider.java
@@ -1,6 +1,5 @@
 package ch.systemsx.cisd.openbis.generic.shared.basic;
 
-
 /**
  * Implementation of this interface provides a way to expose the data store base URL.
  * 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreTranslator.java
index 2f947e9cfd6..ef2e49fdfb3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataStoreTranslator.java
@@ -19,34 +19,27 @@ package ch.systemsx.cisd.openbis.generic.shared.translator;
 import static ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants.DATA_STORE_SERVER_WEB_APPLICATION_NAME;
 
 import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
 
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataStorePE;
 
 /**
- * @author     Franz-Josef Elmer
+ * @author Franz-Josef Elmer
  */
 public class DataStoreTranslator
 {
-    public static DataStore translate(DataStorePE dataStorePE, String defaultDataStoreBaseURL)
+    public static DataStore translate(DataStorePE dataStorePE)
     {
         DataStore dataStore = new DataStore();
         String downloadUrl = dataStorePE.getDownloadUrl();
-        downloadUrl = translateDownloadUrl(defaultDataStoreBaseURL, downloadUrl);
+        downloadUrl = translateDownloadUrl(downloadUrl);
         dataStore.setDownloadUrl(downloadUrl);
         dataStore.setCode(StringEscapeUtils.escapeHtml(dataStorePE.getCode()));
         return dataStore;
     }
 
-    public static String translateDownloadUrl(String defaultDataStoreBaseURL, String downloadUrl)
+    public static String translateDownloadUrl(String downloadUrl)
     {
-        if (StringUtils.isBlank(downloadUrl))
-        {
-            return defaultDataStoreBaseURL;
-        } else
-        {
-            return downloadUrl + "/" + DATA_STORE_SERVER_WEB_APPLICATION_NAME;
-        }
+        return downloadUrl + "/" + DATA_STORE_SERVER_WEB_APPLICATION_NAME;
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java
index c850000dc90..bcb905e7a62 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslator.java
@@ -58,24 +58,21 @@ public class ExternalDataTranslator
         for (ExternalDataPE externalDataPE : list)
         {
             ExternalData data =
-                    translate(externalDataPE, defaultDataStoreBaseURL, baseIndexURL, true,
+                    translate(externalDataPE, baseIndexURL, true,
                             ExperimentTranslator.LoadableFields.PROPERTIES);
             result.add(data);
         }
         return result;
     }
 
-    public static ExternalData translate(ExternalDataPE externalDataPE,
-            String defaultDataStoreBaseURL, String baseIndexURL,
+    public static ExternalData translate(ExternalDataPE externalDataPE, String baseIndexURL,
             final LoadableFields... withExperimentFields)
     {
-        return translate(externalDataPE, defaultDataStoreBaseURL, baseIndexURL, true,
-                withExperimentFields);
+        return translate(externalDataPE, baseIndexURL, true, withExperimentFields);
     }
 
-    public static ExternalData translate(ExternalDataPE externalDataPE,
-            String defaultDataStoreBaseURL, String baseIndexURL, boolean loadSampleProperties,
-            final LoadableFields... withExperimentFields)
+    public static ExternalData translate(ExternalDataPE externalDataPE, String baseIndexURL,
+            boolean loadSampleProperties, final LoadableFields... withExperimentFields)
     {
         SamplePE sampleOrNull = externalDataPE.tryGetSample();
         ExperimentPE experiment = externalDataPE.getExperiment();
@@ -106,8 +103,7 @@ public class ExternalDataTranslator
         externalData.setRegistrationDate(externalDataPE.getRegistrationDate());
         externalData.setSample(sampleOrNull == null ? null : fillSample(new Sample(), sampleOrNull,
                 loadSampleProperties));
-        externalData.setDataStore(DataStoreTranslator.translate(externalDataPE.getDataStore(),
-                defaultDataStoreBaseURL));
+        externalData.setDataStore(DataStoreTranslator.translate(externalDataPE.getDataStore()));
         externalData.setPermlink(PermlinkUtilities.createPermlinkURL(baseIndexURL,
                 EntityKind.DATA_SET, externalData.getIdentifier()));
         setProperties(externalDataPE, externalData);
diff --git a/openbis/source/java/service.properties b/openbis/source/java/service.properties
index ad3172228ff..8d843243f03 100644
--- a/openbis/source/java/service.properties
+++ b/openbis/source/java/service.properties
@@ -15,6 +15,7 @@ database.create-from-scratch = false
 # For debugging set this value to true.
 database.script-single-step-mode = false
 database.url-host-part =
+#database.kind = plasmids_clean2
 database.kind = test
 #database.kind = system_test
 # database.kind = system_test_strict
@@ -32,10 +33,11 @@ crowd.application.password =
 
 # The database instance local unique identifier. Used when the new database is created.
 database-instance = CISD 
+#database-instance = CSB 
 
 
-# Base URL of the Data Store Server. 
-# Will be used only for data sets registered in an openBIS server version before 14.04.2009 (or revision 10665)
+# Base URL of the default Data Store Server. 
+# Will be used only by DSS client trying to register data sets.
 data-store-server-base-url = http://localhost:8889/data_store
 
 # The URL of the CIFEX server
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
index 6882b419740..05ab92da90d 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientServiceTest.java
@@ -358,8 +358,7 @@ public final class CommonClientServiceTest extends AbstractClientServiceTest
         fileFormatTypePE.setDescription("Portable Network Graphics");
         externalDataPE.setFileFormatType(fileFormatTypePE);
         final ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, "§SHOULDN'T BE USED",
-                        BASE_INDEX_URL, false);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL, false);
         context.checking(new Expectations()
             {
                 {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
index bbca1f360cc..37c046ce024 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/CommonServerTest.java
@@ -507,15 +507,13 @@ public final class CommonServerTest extends AbstractServerTestCase
         dataStorePE.setCode("DST");
         externalDataPE.setDataStore(dataStorePE);
         final ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, DATA_STORE_BASE_URL,
-                        BASE_INDEX_URL);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL);
         prepareGetSession();
         final boolean showOnlyDirectlyConnected = true;
         context.checking(new Expectations()
             {
                 {
-                    one(commonBusinessObjectFactory).createDatasetLister(SESSION,
-                            DATA_STORE_BASE_URL);
+                    one(commonBusinessObjectFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
 
                     one(datasetLister).listBySampleTechId(sampleId, showOnlyDirectlyConnected);
@@ -548,14 +546,12 @@ public final class CommonServerTest extends AbstractServerTestCase
         dataStorePE.setCode("DST");
         externalDataPE.setDataStore(dataStorePE);
         final ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, DATA_STORE_BASE_URL,
-                        BASE_INDEX_URL);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL);
         prepareGetSession();
         context.checking(new Expectations()
             {
                 {
-                    one(commonBusinessObjectFactory).createDatasetLister(SESSION,
-                            DATA_STORE_BASE_URL);
+                    one(commonBusinessObjectFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
                     one(datasetLister).listByExperimentTechIds(Collections.singleton(experimentId));
                     will(returnValue(Arrays.asList(externalData)));
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerTest.java
index 323a2d22a8b..e1272f4b422 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/datasetlister/DatasetListerTest.java
@@ -59,7 +59,7 @@ public class DatasetListerTest extends AbstractDAOTest
                 DatasetListingQueryTest.createDatasetListerDAO(daoFactory);
         SecondaryEntityDAO secondaryEntityDAO =
                 SecondaryEntityListingQueryTest.createSecondaryEntityDAO(daoFactory);
-        lister = DatasetLister.create(datasetListerDAO, secondaryEntityDAO, "url1", "url2");
+        lister = DatasetLister.create(datasetListerDAO, secondaryEntityDAO, "url");
         SamplePE sample =
                 DatasetListingQueryTest.getSample("CISD", "CP-TEST-1", datasetListerDAO
                         .getDatabaseInstanceId(), daoFactory);
@@ -76,13 +76,13 @@ public class DatasetListerTest extends AbstractDAOTest
         assertFalse(externalData.getProperties().isEmpty());
         AssertJUnit.assertNotNull(externalData.getExperiment());
     }
-    
+
     @Test
     public void testListParents()
     {
-        Map<Long, Set<Long>> map = lister.listParentIds(Arrays.<Long>asList(2L, 4L, 9L));
+        Map<Long, Set<Long>> map = lister.listParentIds(Arrays.<Long> asList(2L, 4L, 9L));
         System.out.println(map);
-        
+
         assertEquals(null, map.get(2L));
         assertEquals("[2]", map.get(4L).toString());
         List<Long> list = new ArrayList<Long>(map.get(9L));
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java
index 8a1392cace9..33e113972b6 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/translator/ExternalDataTranslatorTest.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.translator;
 
+import static ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants.DATA_STORE_SERVER_WEB_APPLICATION_NAME;
+
 import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
@@ -46,7 +48,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SampleTypePE;
  */
 public class ExternalDataTranslatorTest extends AssertJUnit
 {
-    private static final String BASE_URL = "url";
+    private static final String DOWNLOAD_URL = "url";
 
     private static final String BASE_INDEX_URL = "index.html";
 
@@ -54,9 +56,9 @@ public class ExternalDataTranslatorTest extends AssertJUnit
     public void testTranslationOfEmptyExternalDataPE()
     {
         ExternalDataPE externalDataPE = new ExternalDataPE();
-        externalDataPE.setDataStore(new DataStorePE());
+        externalDataPE.setDataStore(createStore());
         ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, BASE_URL, BASE_INDEX_URL);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL);
 
         assertEquals(null, externalData.getCode());
         assertEquals(null, externalData.getExperiment());
@@ -70,7 +72,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit
     {
         ExternalDataPE externalDataPE = new ExternalDataPE();
         externalDataPE.setCode("code");
-        externalDataPE.setDataStore(new DataStorePE());
+        externalDataPE.setDataStore(createStore());
         externalDataPE.setComplete(BooleanOrUnknown.F);
         externalDataPE.setDataProducerCode("dataProducerCode");
         DataSetTypePE dataSetTypePE = new DataSetTypePE();
@@ -118,9 +120,10 @@ public class ExternalDataTranslatorTest extends AssertJUnit
         externalDataPE.setSampleAcquiredFrom(samplePE);
 
         ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, BASE_URL, BASE_INDEX_URL);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL);
 
-        assertEquals(BASE_URL, externalData.getDataStore().getDownloadUrl());
+        assertEquals(DOWNLOAD_URL + "/" + DATA_STORE_SERVER_WEB_APPLICATION_NAME, externalData
+                .getDataStore().getDownloadUrl());
         assertEquals("code", externalData.getCode());
         assertEquals(Boolean.FALSE, externalData.getComplete());
         assertEquals("dataProducerCode", externalData.getDataProducerCode());
@@ -148,7 +151,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit
     public void testTranslationADerivedExternalDataPEWithParents()
     {
         ExternalDataPE externalDataPE = new ExternalDataPE();
-        externalDataPE.setDataStore(new DataStorePE());
+        externalDataPE.setDataStore(createStore());
         externalDataPE.setDerived(true);
 
         ExperimentPE experimentPE = new ExperimentPE();
@@ -169,7 +172,7 @@ public class ExternalDataTranslatorTest extends AssertJUnit
         externalDataPE.addParent(createParent("parent-2"));
 
         ExternalData externalData =
-                ExternalDataTranslator.translate(externalDataPE, BASE_URL, BASE_INDEX_URL);
+                ExternalDataTranslator.translate(externalDataPE, BASE_INDEX_URL);
 
         assertEquals("my-experiment", externalData.getExperiment().getCode());
         assertEquals(2, externalData.getParents().size());
@@ -194,8 +197,15 @@ public class ExternalDataTranslatorTest extends AssertJUnit
     {
         DataPE parent = new DataPE();
         parent.setCode(parentCode);
-        parent.setDataStore(new DataStorePE());
+        parent.setDataStore(createStore());
         return parent;
     }
 
+    private DataStorePE createStore()
+    {
+        DataStorePE store = new DataStorePE();
+        store.setDownloadUrl(DOWNLOAD_URL);
+        return store;
+    }
+
 }
diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java
index 0263f825817..b9e834fbbf1 100644
--- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java
+++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternal.java
@@ -50,17 +50,19 @@ import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.authorization.validato
 import ch.systemsx.cisd.openbis.plugin.phosphonetx.shared.dto.MsInjectionSample;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
-public class RawDataServiceInternal extends AbstractServer<IRawDataServiceInternal> implements IRawDataServiceInternal
+public class RawDataServiceInternal extends AbstractServer<IRawDataServiceInternal> implements
+        IRawDataServiceInternal
 {
-     @Private static final String SPACE_CODE = "MS_DATA";
+    @Private
+    static final String SPACE_CODE = "MS_DATA";
+
+    @Private
+    static final String RAW_DATA_SAMPLE_TYPE = "MS_INJECTION";
 
-    @Private static final String RAW_DATA_SAMPLE_TYPE = "MS_INJECTION";
-    
-    private static final IValidator<MsInjectionSample> RAW_DATA_SAMPLE_VALIDATOR = new RawDataSampleValidator();
+    private static final IValidator<MsInjectionSample> RAW_DATA_SAMPLE_VALIDATOR =
+            new RawDataSampleValidator();
 
     private ICommonBusinessObjectFactory businessObjectFactory;
 
@@ -87,12 +89,12 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern
     {
         return new RawDataServiceInternalLogger(getSessionManager(), context);
     }
-    
+
     public List<MsInjectionSample> listRawDataSamples(String sessionToken)
     {
         return loadAllRawDataSamples(getSession(sessionToken));
     }
-    
+
     public void processRawData(String sessionToken, String dataSetProcessingKey,
             long[] rawDataSampleIDs, String dataSetType)
     {
@@ -135,7 +137,7 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern
         ISampleLister sampleLister = businessObjectFactory.createSampleLister(session);
         ListSampleCriteria criteria = new ListSampleCriteria();
         SampleTypePE sampleTypePE =
-            getDAOFactory().getSampleTypeDAO().tryFindSampleTypeByCode(RAW_DATA_SAMPLE_TYPE);
+                getDAOFactory().getSampleTypeDAO().tryFindSampleTypeByCode(RAW_DATA_SAMPLE_TYPE);
         criteria.setSampleType(SampleTypeTranslator.translate(sampleTypePE, null));
         criteria.setIncludeSpace(true);
         criteria.setSpaceCode(SPACE_CODE);
@@ -147,10 +149,10 @@ public class RawDataServiceInternal extends AbstractServer<IRawDataServiceIntern
         {
             manager.addSample(sample);
         }
-        manager.gatherDataSets(businessObjectFactory.createDatasetLister(session, ""));
+        manager.gatherDataSets(businessObjectFactory.createDatasetLister(session));
         return manager.getSamples();
     }
-    
+
     private String findDataStoreServer(String dataSetProcessingKey)
     {
         List<DataStorePE> dataStores = getDAOFactory().getDataStoreDAO().listDataStores();
diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java
index c1c938ce67e..b99cbae40b3 100644
--- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java
+++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/server/RawDataServiceInternalTest.java
@@ -92,7 +92,7 @@ public class RawDataServiceInternalTest extends AbstractServerTestCase
         prepareGetSession();
         prepareListRawDataSamples(1L, 2L, 3L, 42L);
         final long[] ids = new long[]
-            { 2};
+            { 2 };
         context.checking(new Expectations()
             {
                 {
@@ -189,7 +189,7 @@ public class RawDataServiceInternalTest extends AbstractServerTestCase
                         }));
                     will(returnValue(samples));
 
-                    one(boFactory).createDatasetLister(SESSION, "");
+                    one(boFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
 
                     one(datasetLister).listByExperimentTechIds(experimentIds);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/cli/Login.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/cli/Login.java
index a433b2c64ad..2bf35a46ff5 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/cli/Login.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/cli/Login.java
@@ -27,11 +27,11 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
+import jline.ConsoleReader;
+
 import org.apache.log4j.BasicConfigurator;
 import org.apache.log4j.varia.NullAppender;
 
-import jline.ConsoleReader;
-
 import ch.systemsx.cisd.args4j.Argument;
 import ch.systemsx.cisd.args4j.CmdLineParser;
 import ch.systemsx.cisd.args4j.Option;
@@ -118,7 +118,6 @@ public class Login
             }
         }
 
-        @SuppressWarnings("unused")
         public List<String> getArgs()
         {
             return Collections.unmodifiableList(args);
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java
index 52f2f2bac3a..b825235d185 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/IScreeningBusinessObjectFactory.java
@@ -51,5 +51,5 @@ public interface IScreeningBusinessObjectFactory
 
     public IExternalDataBO createExternalDataBO(Session session);
 
-    public IDatasetLister createDatasetLister(Session session, String defaultDataStoreBaseURL);
+    public IDatasetLister createDatasetLister(Session session);
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java
index 2223df0fa4c..e778633e3b2 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningBusinessObjectFactory.java
@@ -95,10 +95,9 @@ public final class ScreeningBusinessObjectFactory extends AbstractPluginBusiness
         return getCommonBusinessObjectFactory().createExternalDataBO(session);
     }
 
-    public IDatasetLister createDatasetLister(Session session, String defaultDataStoreBaseURL)
+    public IDatasetLister createDatasetLister(Session session)
     {
-        return getCommonBusinessObjectFactory().createDatasetLister(session,
-                defaultDataStoreBaseURL);
+        return getCommonBusinessObjectFactory().createDatasetLister(session);
     }
 
 }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
index 5c247961ada..37421c61e78 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java
@@ -128,15 +128,14 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl
     public PlateContent getPlateContent(String sessionToken, TechId plateId)
     {
         Session session = getSession(sessionToken);
-        return PlateContentLoader.loadImagesAndMetadata(session, businessObjectFactory,
-                getDataStoreBaseURL(), plateId);
+        return PlateContentLoader.loadImagesAndMetadata(session, businessObjectFactory, plateId);
     }
 
     public PlateImages getPlateContentForDataset(String sessionToken, TechId datasetId)
     {
         Session session = getSession(sessionToken);
         return PlateContentLoader.loadImagesAndMetadataForDataset(session, businessObjectFactory,
-                getDataStoreBaseURL(), datasetId);
+                datasetId);
     }
 
     public List<WellContent> listPlateWells(String sessionToken,
@@ -144,21 +143,21 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl
     {
         Session session = getSession(sessionToken);
         return GenePlateLocationsLoader.load(session, businessObjectFactory, getDAOFactory(),
-                getDataStoreBaseURL(), materialCriteria, true);
+                materialCriteria, true);
     }
 
     public TableModel loadImageAnalysisForExperiment(String sessionToken, TechId experimentId)
     {
         Session session = getSession(sessionToken);
         return PlateContentLoader.loadImageAnalysisForExperiment(session, businessObjectFactory,
-                getDataStoreBaseURL(), experimentId);
+                experimentId);
     }
 
     public TableModel loadImageAnalysisForPlate(String sessionToken, TechId plateId)
     {
         Session session = getSession(sessionToken);
-        return PlateContentLoader.loadImageAnalysisForPlate(session, businessObjectFactory,
-                getDataStoreBaseURL(), plateId);
+        return PlateContentLoader
+                .loadImageAnalysisForPlate(session, businessObjectFactory, plateId);
     }
 
     public ExternalData getDataSetInfo(String sessionToken, TechId datasetId)
@@ -232,8 +231,7 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl
     private ScreeningApiImpl createScreeningApiImpl(String sessionToken)
     {
         final Session session = getSession(sessionToken);
-        return new ScreeningApiImpl(session, businessObjectFactory, getDAOFactory(),
-                getDataStoreBaseURL());
+        return new ScreeningApiImpl(session, businessObjectFactory, getDAOFactory());
     }
 
     public void logoutScreening(String sessionToken)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java
index 572301d1226..169eafcace9 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/FeatureVectorDatasetLoader.java
@@ -48,10 +48,10 @@ class FeatureVectorDatasetLoader extends ImageDatasetLoader
     private List<ExternalData> featureVectorDatasets;
 
     FeatureVectorDatasetLoader(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String dataStoreBaseURL,
-            String homeSpaceOrNull, Collection<? extends PlateIdentifier> plates)
+            IScreeningBusinessObjectFactory businessObjectFactory, String homeSpaceOrNull,
+            Collection<? extends PlateIdentifier> plates)
     {
-        super(session, businessObjectFactory, dataStoreBaseURL, homeSpaceOrNull, plates,
+        super(session, businessObjectFactory, homeSpaceOrNull, plates,
                 ScreeningConstants.IMAGE_DATASET_TYPE,
                 ScreeningConstants.IMAGE_ANALYSIS_DATASET_TYPE);
         featureVectorDatasetTypeCode = ScreeningConstants.IMAGE_ANALYSIS_DATASET_TYPE;
@@ -69,8 +69,7 @@ class FeatureVectorDatasetLoader extends ImageDatasetLoader
     {
         final Long2ObjectSortedMap<ExternalData> featureVectorDatasetSet =
                 new Long2ObjectLinkedOpenHashMap<ExternalData>();
-        IDatasetLister datasetLister =
-                businessObjectFactory.createDatasetLister(session, dataStoreBaseURL);
+        IDatasetLister datasetLister = businessObjectFactory.createDatasetLister(session);
 
         for (ExternalData data : getDatasets())
         {
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
index 67462a95c08..4368104d7b6 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/GenePlateLocationsLoader.java
@@ -65,29 +65,26 @@ public class GenePlateLocationsLoader
 {
     public static List<WellContent> load(Session session,
             IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
-            String dataStoreBaseURL, TechId geneMaterialId, String experimentPermId,
-            boolean enrichWithImages)
+            TechId geneMaterialId, String experimentPermId, boolean enrichWithImages)
     {
-        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory,
-                dataStoreBaseURL).getPlateLocations(geneMaterialId, experimentPermId,
-                enrichWithImages);
+        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory)
+                .getPlateLocations(geneMaterialId, experimentPermId, enrichWithImages);
     }
 
     public static List<WellContent> load(Session session,
             IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
-            String dataStoreBaseURL, TechId geneMaterialId)
+            TechId geneMaterialId)
     {
-        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory,
-                dataStoreBaseURL).getPlateLocations(geneMaterialId);
+        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory)
+                .getPlateLocations(geneMaterialId);
     }
 
     public static List<WellContent> load(Session session,
             IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
-            String dataStoreBaseURL, PlateMaterialsSearchCriteria materialCriteria,
-            boolean enrichWithImages)
+            PlateMaterialsSearchCriteria materialCriteria, boolean enrichWithImages)
     {
-        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory,
-                dataStoreBaseURL).getPlateLocations(materialCriteria, enrichWithImages);
+        return new GenePlateLocationsLoader(session, businessObjectFactory, daoFactory)
+                .getPlateLocations(materialCriteria, enrichWithImages);
     }
 
     private final Session session;
@@ -96,16 +93,12 @@ public class GenePlateLocationsLoader
 
     private final IDAOFactory daoFactory;
 
-    private final String dataStoreBaseURL;
-
     private GenePlateLocationsLoader(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory,
-            String dataStoreBaseURL)
+            IScreeningBusinessObjectFactory businessObjectFactory, IDAOFactory daoFactory)
     {
         this.session = session;
         this.businessObjectFactory = businessObjectFactory;
         this.daoFactory = daoFactory;
-        this.dataStoreBaseURL = dataStoreBaseURL;
     }
 
     private List<WellContent> getPlateLocations(PlateMaterialsSearchCriteria materialCriteria,
@@ -235,8 +228,7 @@ public class GenePlateLocationsLoader
     {
         Set<Long> plateIds = extractPlateIds(locations);
 
-        IDatasetLister datasetLister =
-                businessObjectFactory.createDatasetLister(session, dataStoreBaseURL);
+        IDatasetLister datasetLister = businessObjectFactory.createDatasetLister(session);
         List<ExternalData> imageDatasets = datasetLister.listBySampleIds(plateIds);
         imageDatasets =
                 ScreeningUtils.filterExternalDataByType(imageDatasets,
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java
index cf7c7b92d62..374225ae738 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ImageDatasetLoader.java
@@ -38,10 +38,10 @@ class ImageDatasetLoader extends PlateDatasetLoader
     // TODO 2010-05-27, CR : See PlateDatasetLoader todo comment
 
     ImageDatasetLoader(Session session, IScreeningBusinessObjectFactory businessObjectFactory,
-            String dataStoreBaseURL, String homeSpaceOrNull,
-            Collection<? extends PlateIdentifier> plates, String... datasetTypeCodes)
+            String homeSpaceOrNull, Collection<? extends PlateIdentifier> plates,
+            String... datasetTypeCodes)
     {
-        super(session, businessObjectFactory, dataStoreBaseURL, homeSpaceOrNull, plates,
+        super(session, businessObjectFactory, homeSpaceOrNull, plates,
                 (datasetTypeCodes.length == 0) ? new String[]
                     { ScreeningConstants.IMAGE_DATASET_TYPE } : datasetTypeCodes);
     }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
index 59febe9802d..f832ef5ecc1 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateContentLoader.java
@@ -58,18 +58,16 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.imaging.IHCSDatasetLoade
 public class PlateContentLoader
 {
     public static TableModel loadImageAnalysisForPlate(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String defaultDataStoreBaseURL,
-            TechId plateId)
+            IScreeningBusinessObjectFactory businessObjectFactory, TechId plateId)
     {
-        return new PlateContentLoader(session, businessObjectFactory, defaultDataStoreBaseURL)
+        return new PlateContentLoader(session, businessObjectFactory)
                 .loadImageAnalysisForPlate(plateId);
     }
 
     public static TableModel loadImageAnalysisForExperiment(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String defaultDataStoreBaseURL,
-            TechId experimentId)
+            IScreeningBusinessObjectFactory businessObjectFactory, TechId experimentId)
     {
-        return new PlateContentLoader(session, businessObjectFactory, defaultDataStoreBaseURL)
+        return new PlateContentLoader(session, businessObjectFactory)
                 .loadImageAnalysisForExperiment(experimentId);
     }
 
@@ -78,11 +76,9 @@ public class PlateContentLoader
      * image analysis only if one dataset with such a data exist.
      */
     public static PlateContent loadImagesAndMetadata(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String defaultDataStoreBaseURL,
-            TechId plateId)
+            IScreeningBusinessObjectFactory businessObjectFactory, TechId plateId)
     {
-        return new PlateContentLoader(session, businessObjectFactory, defaultDataStoreBaseURL)
-                .getPlateContent(plateId);
+        return new PlateContentLoader(session, businessObjectFactory).getPlateContent(plateId);
     }
 
     /**
@@ -90,10 +86,9 @@ public class PlateContentLoader
      * BDS-HCS format.
      */
     public static PlateImages loadImagesAndMetadataForDataset(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String defaultDataStoreBaseURL,
-            TechId datasetId)
+            IScreeningBusinessObjectFactory businessObjectFactory, TechId datasetId)
     {
-        return new PlateContentLoader(session, businessObjectFactory, defaultDataStoreBaseURL)
+        return new PlateContentLoader(session, businessObjectFactory)
                 .getPlateContentForDataset(datasetId);
     }
 
@@ -101,14 +96,11 @@ public class PlateContentLoader
 
     private final IScreeningBusinessObjectFactory businessObjectFactory;
 
-    private final String defaultDataStoreBaseURL;
-
     private PlateContentLoader(Session session,
-            IScreeningBusinessObjectFactory businessObjectFactory, String defaultDataStoreBaseURL)
+            IScreeningBusinessObjectFactory businessObjectFactory)
     {
         this.session = session;
         this.businessObjectFactory = businessObjectFactory;
-        this.defaultDataStoreBaseURL = defaultDataStoreBaseURL;
     }
 
     private PlateImages getPlateContentForDataset(TechId datasetId)
@@ -144,8 +136,7 @@ public class PlateContentLoader
 
     private ExternalData translate(ExternalDataPE externalData)
     {
-        return ExternalDataTranslator.translate(externalData, defaultDataStoreBaseURL, session
-                .getBaseIndexURL());
+        return ExternalDataTranslator.translate(externalData, session.getBaseIndexURL());
     }
 
     private TableModel loadImageAnalysisForPlate(TechId plateId)
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java
index 768174dea94..31de9e17692 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/PlateDatasetLoader.java
@@ -50,8 +50,6 @@ class PlateDatasetLoader
 
     protected final IScreeningBusinessObjectFactory businessObjectFactory;
 
-    protected final String dataStoreBaseURL;
-
     // Parameter state
     private final Collection<? extends PlateIdentifier> plates;
 
@@ -71,12 +69,11 @@ class PlateDatasetLoader
     private boolean loaded = false;
 
     PlateDatasetLoader(Session session, IScreeningBusinessObjectFactory businessObjectFactory,
-            String dataStoreBaseURL, String homeSpaceOrNull,
-            Collection<? extends PlateIdentifier> plates, String... datasetTypeCodes)
+            String homeSpaceOrNull, Collection<? extends PlateIdentifier> plates,
+            String... datasetTypeCodes)
     {
         this.session = session;
         this.businessObjectFactory = businessObjectFactory;
-        this.dataStoreBaseURL = dataStoreBaseURL;
         this.homeSpaceOrNull = (homeSpaceOrNull != null) ? ("/" + homeSpaceOrNull + "/") : null;
         this.plates = plates;
         this.datasetTypeCodes = datasetTypeCodes;
@@ -120,8 +117,7 @@ class PlateDatasetLoader
     private void loadDatasets()
     {
         List<Long> sampleIds = extractSampleIds();
-        IDatasetLister datasetLister =
-                businessObjectFactory.createDatasetLister(session, dataStoreBaseURL);
+        IDatasetLister datasetLister = businessObjectFactory.createDatasetLister(session);
         datasets = datasetLister.listBySampleIds(sampleIds);
         datasets = ScreeningUtils.filterExternalDataByType(datasets, datasetTypeCodes);
     }
diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
index 0b193dc7b7d..68d3e3d45f2 100644
--- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
+++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImpl.java
@@ -90,23 +90,20 @@ public class ScreeningApiImpl
 
     private final IDAOFactory daoFactory;
 
-    private final String dataStoreBaseURL;
-
     public ScreeningApiImpl(Session session, IScreeningBusinessObjectFactory businessObjectFactory,
-            IDAOFactory daoFactory, String dataStoreBaseURL)
+            IDAOFactory daoFactory)
     {
         this.session = session;
         this.businessObjectFactory = businessObjectFactory;
         this.daoFactory = daoFactory;
-        this.dataStoreBaseURL = dataStoreBaseURL;
     }
 
     public List<FeatureVectorDatasetReference> listFeatureVectorDatasets(
             List<? extends PlateIdentifier> plates)
     {
         FeatureVectorDatasetLoader datasetRetriever =
-                new FeatureVectorDatasetLoader(session, businessObjectFactory, dataStoreBaseURL,
-                        session.tryGetHomeGroupCode(), plates);
+                new FeatureVectorDatasetLoader(session, businessObjectFactory, session
+                        .tryGetHomeGroupCode(), plates);
         List<FeatureVectorDatasetReference> result = datasetRetriever.getFeatureVectorDatasets();
 
         return result;
@@ -114,8 +111,8 @@ public class ScreeningApiImpl
 
     public List<ImageDatasetReference> listImageDatasets(List<? extends PlateIdentifier> plates)
     {
-        return new ImageDatasetLoader(session, businessObjectFactory, dataStoreBaseURL, session
-                .tryGetHomeGroupCode(), plates).getImageDatasets();
+        return new ImageDatasetLoader(session, businessObjectFactory,
+                session.tryGetHomeGroupCode(), plates).getImageDatasets();
     }
 
     public List<Plate> listPlates()
@@ -253,8 +250,8 @@ public class ScreeningApiImpl
                 getExperimentIdentifierFromDB(experimentIdentifier);
         wellContent =
                 GenePlateLocationsLoader.load(session, businessObjectFactory, daoFactory,
-                        dataStoreBaseURL, new TechId(materialOrNull.getId()),
-                        fullExperimentIdentifier.getPermId(), false);
+                        new TechId(materialOrNull.getId()), fullExperimentIdentifier.getPermId(),
+                        false);
         if (findDatasets)
         {
             final Set<Plate> plates = new HashSet<Plate>(wellContent.size());
@@ -263,8 +260,8 @@ public class ScreeningApiImpl
                 plates.add(asPlate(fullExperimentIdentifier, w));
             }
             final FeatureVectorDatasetLoader datasetRetriever =
-                    new FeatureVectorDatasetLoader(session, businessObjectFactory,
-                            dataStoreBaseURL, session.tryGetHomeGroupCode(), plates);
+                    new FeatureVectorDatasetLoader(session, businessObjectFactory, session
+                            .tryGetHomeGroupCode(), plates);
             final List<ImageDatasetReference> imageDatasets = datasetRetriever.getImageDatasets();
             final List<FeatureVectorDatasetReference> featureVectorDatasets =
                     datasetRetriever.getFeatureVectorDatasets();
@@ -293,7 +290,7 @@ public class ScreeningApiImpl
         }
         final List<WellContent> wellContent =
                 GenePlateLocationsLoader.load(session, businessObjectFactory, daoFactory,
-                        dataStoreBaseURL, new TechId(materialOrNull.getId()));
+                        new TechId(materialOrNull.getId()));
 
         if (findDatasets)
         {
@@ -303,8 +300,8 @@ public class ScreeningApiImpl
                 plates.add(asPlate(w));
             }
             final FeatureVectorDatasetLoader datasetRetriever =
-                    new FeatureVectorDatasetLoader(session, businessObjectFactory,
-                            dataStoreBaseURL, session.tryGetHomeGroupCode(), plates);
+                    new FeatureVectorDatasetLoader(session, businessObjectFactory, session
+                            .tryGetHomeGroupCode(), plates);
             final List<ImageDatasetReference> imageDatasets = datasetRetriever.getImageDatasets();
             final List<FeatureVectorDatasetReference> featureVectorDatasets =
                     datasetRetriever.getFeatureVectorDatasets();
diff --git a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImplTest.java b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImplTest.java
index 3b69e82472a..c7d94e81902 100644
--- a/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImplTest.java
+++ b/screening/sourceTest/java/ch/systemsx/cisd/openbis/plugin/screening/server/logic/ScreeningApiImplTest.java
@@ -52,8 +52,6 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConst
  */
 public class ScreeningApiImplTest extends AbstractServerTestCase
 {
-    private static final String DSS_URL = "http://localhost:8889/";
-
     private static final String SERVER_URL = "server-url";
 
     private IScreeningBusinessObjectFactory screeningBOFactory;
@@ -64,7 +62,7 @@ public class ScreeningApiImplTest extends AbstractServerTestCase
     public void beforeMethod()
     {
         screeningBOFactory = context.mock(IScreeningBusinessObjectFactory.class);
-        screeningApi = new ScreeningApiImpl(SESSION, screeningBOFactory, daoFactory, DSS_URL);
+        screeningApi = new ScreeningApiImpl(SESSION, screeningBOFactory, daoFactory);
     }
 
     @Test
@@ -80,7 +78,7 @@ public class ScreeningApiImplTest extends AbstractServerTestCase
                     Sample p1 = plateSample(pi1, "384_WELLS_16X24");
                     will(returnValue(Arrays.asList(p1)));
 
-                    one(screeningBOFactory).createDatasetLister(SESSION, DSS_URL);
+                    one(screeningBOFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
                     one(datasetLister).listBySampleIds(with(Arrays.asList((long) 1)));
                     will(returnValue(Arrays.asList(imageDataSet(p1, "1", 1), imageAnalysisDataSet(
@@ -118,7 +116,7 @@ public class ScreeningApiImplTest extends AbstractServerTestCase
                     Sample p1 = plateSample(pi1, null);
                     will(returnValue(Arrays.asList(p1)));
 
-                    one(screeningBOFactory).createDatasetLister(SESSION, DSS_URL);
+                    one(screeningBOFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
                     one(datasetLister).listBySampleIds(with(Arrays.asList((long) 1)));
                     will(returnValue(Arrays.asList(imageDataSet(p1, "1", 1))));
@@ -178,7 +176,7 @@ public class ScreeningApiImplTest extends AbstractServerTestCase
                     Sample p1 = plateSample(pi1, "384_WELLS_16X24");
                     will(returnValue(Arrays.asList(p1)));
 
-                    exactly(2).of(screeningBOFactory).createDatasetLister(SESSION, DSS_URL);
+                    exactly(2).of(screeningBOFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
                     one(datasetLister).listBySampleIds(with(Arrays.asList((long) 1)));
                     will(returnValue(Arrays.asList(imageDataSet(p1, "1", 1), imageAnalysisDataSet(
@@ -222,7 +220,7 @@ public class ScreeningApiImplTest extends AbstractServerTestCase
                     Sample p1 = plateSample(pi1, plateGeometry);
                     will(returnValue(Arrays.asList(p1)));
 
-                    one(screeningBOFactory).createDatasetLister(SESSION, DSS_URL);
+                    one(screeningBOFactory).createDatasetLister(SESSION);
                     will(returnValue(datasetLister));
                     one(datasetLister).listBySampleIds(with(Arrays.asList((long) 1)));
                     will(returnValue(Arrays.asList(imageDataSet(p1, "1", 1))));
-- 
GitLab