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 f1fc3a5e4a9209d591264082f1158b30c52e8487..5bf9a6110d32b6de98284eea778eade8a000913c 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 @@ -100,7 +100,7 @@ class FeatureVectorDatasetLoader extends ImageDatasetLoader DataStore dataStore = externalData.getDataStore(); ExternalData parentDataset = externalData.getParents().iterator().next(); return new FeatureVectorDatasetReference(externalData.getCode(), - dataStore.getDownloadUrl(), createPlateIdentifier(parentDataset), + getDataStoreUrlFromDataStore(dataStore), createPlateIdentifier(parentDataset), extractPlateGeometry(parentDataset), externalData.getRegistrationDate(), asImageDataset(parentDataset)); } 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 2dee96c43c82db69cfb5688015dea2a73c9a2e6c..86d5a60c01dbcaf00f62605098f43c3537eec797 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 @@ -65,8 +65,8 @@ class ImageDatasetLoader extends PlateDatasetLoader protected ImageDatasetReference asImageDataset(ExternalData externalData) { DataStore dataStore = externalData.getDataStore(); - return new ImageDatasetReference(externalData.getCode(), dataStore.getDownloadUrl(), - createPlateIdentifier(externalData), extractPlateGeometry(externalData), - externalData.getRegistrationDate()); + return new ImageDatasetReference(externalData.getCode(), + getDataStoreUrlFromDataStore(dataStore), createPlateIdentifier(externalData), + extractPlateGeometry(externalData), externalData.getRegistrationDate()); } } 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 891e0309cf7e034586fbde189b1c7560c7a3d7bf..3629d4b483f020c633f3917513e4b2397eec99a4 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 @@ -1,5 +1,7 @@ package ch.systemsx.cisd.openbis.plugin.screening.server.logic; +import static ch.systemsx.cisd.openbis.generic.shared.GenericSharedConstants.DATA_STORE_SERVER_WEB_APPLICATION_NAME; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -7,6 +9,7 @@ import java.util.List; import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.server.business.bo.datasetlister.IDatasetLister; import ch.systemsx.cisd.openbis.generic.server.business.bo.samplelister.ISampleLister; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStore; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListOrSearchSampleCriteria; @@ -225,6 +228,25 @@ class PlateDatasetLoader return sampleIds; } + protected String getDataStoreUrlFromDataStore(DataStore dataStore) + { + String datastoreUrl = dataStore.getDownloadUrl(); + // The url objained form a DataStore object is the *download* url. Convert this to the + // datastore URL + if (datastoreUrl.endsWith(DATA_STORE_SERVER_WEB_APPLICATION_NAME)) + { + datastoreUrl = + datastoreUrl.substring(0, datastoreUrl.length() + - DATA_STORE_SERVER_WEB_APPLICATION_NAME.length()); + } + if (datastoreUrl.endsWith("/")) + { + datastoreUrl = datastoreUrl.substring(0, datastoreUrl.length() - 1); + } + + return datastoreUrl; + } + protected static SampleIdentifier createSampleIdentifier(PlateIdentifier plate) { SampleOwnerIdentifier owner;