diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java similarity index 73% rename from datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java rename to datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java index a4f63ce595e246672ed0ba5eaf268bca9934b53f..d4d95561ffb07d022cd73f190efa57dffa3c03ed 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerExtended.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IDataSetHandlerRpc.java @@ -20,11 +20,14 @@ import java.io.File; import java.util.List; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; +import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; /** + * The interface for data set handlers that are used in RPC situtations. + * * @author Chandrasekhar Ramakrishnan */ -public interface IDataSetHandlerExtended extends IDataSetHandler +public interface IDataSetHandlerRpc extends IDataSetHandler { /** * Handles the data set using the template to get default information for the data sets to be @@ -36,4 +39,14 @@ public interface IDataSetHandlerExtended extends IDataSetHandler */ public List<DataSetInformation> handleDataSet(final File dataSet, final DataSetInformation template); + + /** + * Returns the session context for the current user. + */ + public SessionContextDTO getSessionContext(); + + /** + * Get the file for a path from the data store. + */ + public File getStoreFileForPath(String path); } diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java index cd160ccbe8ad92246ac885105c37457ff6cbedd7..d493c142f5e98fc97eefb2606177da17ada0f49f 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/api/v1/PutDataSetExecutor.java @@ -39,7 +39,7 @@ import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult; import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm; import ch.systemsx.cisd.etlserver.IDataSetHandler; -import ch.systemsx.cisd.etlserver.IDataSetHandlerExtended; +import ch.systemsx.cisd.etlserver.IDataSetHandlerRpc; import ch.systemsx.cisd.etlserver.IDataSetInfoExtractor; import ch.systemsx.cisd.etlserver.IDataStrategyStore; import ch.systemsx.cisd.etlserver.IETLServerPlugin; @@ -56,6 +56,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.FileFormatType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.LocatorType; +import ch.systemsx.cisd.openbis.generic.shared.dto.SessionContextDTO; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifier; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ExperimentIdentifierFactory; import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifier; @@ -69,7 +70,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SpaceIdentifier; * * @author Chandrasekhar Ramakrishnan */ -class PutDataSetExecutor implements IDataSetHandlerExtended +class PutDataSetExecutor implements IDataSetHandlerRpc { // General State private final PutDataSetService service; @@ -180,6 +181,11 @@ class PutDataSetExecutor implements IDataSetHandlerExtended return Collections.singletonList(helper.getDataSetInformation()); } + public SessionContextDTO getSessionContext() + { + return getOpenBisService().tryGetSession(sessionToken); + } + private void createDefaultOverride() { override = new DataSetInformation(); @@ -536,12 +542,17 @@ class PutDataSetExecutor implements IDataSetHandlerExtended dataSetInfo.setDataSetProperties(override.getDataSetProperties()); } - dataSetInfo.setUploadingUserEmail(service.getOpenBisService().tryGetSession() - .getUserEmail()); + dataSetInfo.setUploadingUserEmail(service.getOpenBisService().tryGetSession( + sessionToken).getUserEmail()); // TODO: When registering, set the registrator to the session owner; only an admin on // the space or an ETL server can override. return dataSetInfo; } } + + public File getStoreFileForPath(String path) + { + return new File(service.getStoreRootDirectory(), path); + } } 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 a7ada36c132cf0e131686d6d6299ea92635f56fd..2ffbf55024232f380b9a6277e7fd3f8eecf0a94c 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 @@ -708,8 +708,8 @@ public final class EncapsulatedOpenBISService implements IEncapsulatedOpenBISSer containerPermId, codes, sampleTypeCode)); } - public SessionContextDTO tryGetSession() + public SessionContextDTO tryGetSession(String sToken) { - return service.tryGetSession(sessionToken); + return service.tryGetSession(sToken); } } \ No newline at end of file diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java index 22af017aa6ada5b02b171651c743e2ae3c23f2b2..6b53e3327047f843a0a345bab5bfe8ed6f9b3954 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IEncapsulatedOpenBISService.java @@ -232,6 +232,7 @@ public interface IEncapsulatedOpenBISService public Map<String, String> listOrRegisterComponents(final String containerPermId, Set<String> codes, String sampleTypeCode) throws UserFailureException; - /** See {@link IETLLIMSService#tryGetSession(String)} */ - public SessionContextDTO tryGetSession(); + /** See {@link IETLLIMSService#tryGetSession(String)} + * @param sessionToken */ + public SessionContextDTO tryGetSession(String sessionToken); } \ No newline at end of file