diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java index aefa2480124bd1da5fdf1a144bb7595c9e73b5b6..8b82e7cca4a1fda8145eaf1ba37a6f03d12ba78e 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreService.java @@ -33,6 +33,8 @@ import ch.systemsx.cisd.cifex.rpc.client.ICIFEXComponent; import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.exceptions.InvalidAuthenticationException; import ch.systemsx.cisd.common.exceptions.InvalidSessionException; +import ch.systemsx.cisd.common.mail.IMailClient; +import ch.systemsx.cisd.common.mail.MailClient; import ch.systemsx.cisd.common.mail.MailClientParameters; import ch.systemsx.cisd.common.spring.AbstractServiceWithLogger; import ch.systemsx.cisd.common.spring.IInvocationLoggerContext; @@ -312,7 +314,8 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic @Override public TableModel createReportFromDatasets(String sessionToken, String userSessionToken, - String serviceKey, List<DatasetDescription> datasets) + String serviceKey, List<DatasetDescription> datasets, + String userEmailOrNull) { sessionTokenManager.assertValidSessionToken(sessionToken); @@ -326,9 +329,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic { manager.lock(dataSet.getDataSetCode()); } + IMailClient mailClient = createEMailClient(); return task.createReport(datasets, new DataSetProcessingContext( getHierarchicalContentProvider(), new DataSetDirectoryProvider(storeRoot, - manager), new HashMap<String, String>(), null, null, userSessionToken)); + manager), new HashMap<String, String>(), mailClient, userEmailOrNull, + userSessionToken)); } finally { @@ -388,7 +393,8 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic @Override public TableModel createReportFromAggregationService(String sessionToken, - String userSessionToken, String serviceKey, Map<String, Object> parameters) + String userSessionToken, String serviceKey, Map<String, Object> parameters, + String userEmailOrNull) { sessionTokenManager.assertValidSessionToken(sessionToken); PluginTaskProvider<IReportingPluginTask> reportingPlugins = @@ -397,9 +403,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic IShareIdManager manager = getShareIdManager(); try { + IMailClient mailClient = createEMailClient(); return task.createAggregationReport(parameters, new DataSetProcessingContext( getHierarchicalContentProvider(), new DataSetDirectoryProvider(storeRoot, - manager), new HashMap<String, String>(), null, null, userSessionToken)); + manager), new HashMap<String, String>(), mailClient, userEmailOrNull, + userSessionToken)); } finally { @@ -407,6 +415,11 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic } } + private IMailClient createEMailClient() + { + return new MailClient(mailClientParameters); + } + private void scheduleTask(String sessionToken, String description, IProcessingPluginTask processingTask, List<DatasetDescription> datasets, String userEmailOrNull) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java index 694ac583613534d973533a1babc6c4673a8b459f..39b74ad44d339547f79fd1d7cf84bea8f6d9dab9 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/DataStoreServiceLogger.java @@ -134,10 +134,11 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable @Override public TableModel createReportFromDatasets(String sessionToken, String userSessionToken, - String serviceKey, List<DatasetDescription> datasets) + String serviceKey, List<DatasetDescription> datasets, + String userEmailOrNull) { - log("createReportFromDatasets", "USER_SESSION(%s) TASK_ID(%s) NO_OF_DATASETS(%s)", - userSessionToken, serviceKey, datasets.size()); + log("createReportFromDatasets", "USER_SESSION(%s) TASK_ID(%s) NO_OF_DATASETS(%s) EMAIL(%s)", + userSessionToken, serviceKey, datasets.size(), userEmailOrNull); return null; } @@ -177,10 +178,11 @@ class DataStoreServiceLogger implements IDataStoreService, IInitializable @Override public TableModel createReportFromAggregationService(String sessionToken, - String userSessionToken, String serviceKey, Map<String, Object> parameters) + String userSessionToken, String serviceKey, Map<String, Object> parameters, + String userEmailOrNull) { - log("createReportFromAggregationService", "USER_SESSION(%s) SERVICE(%s) PARAMETERS(%s)", - userSessionToken, serviceKey, parameters); + log("createReportFromAggregationService", "USER_SESSION(%s) SERVICE(%s) PARAMETERS(%s) EMAIL(%s)", + userSessionToken, serviceKey, parameters, userEmailOrNull); return null; } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java index 07109604c23ce6e852f94898cc1870ba36ab2f08..1f57f31a80f1a2a544e44d1a86d92ff55c06e254 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/business/bo/DataSetTable.java @@ -597,7 +597,7 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements String sessionToken = dataStore.getSessionToken(); String userSessionToken = session.getSessionToken(); return service.createReportFromDatasets(sessionToken, userSessionToken, - datastoreServiceKey, locations); + datastoreServiceKey, locations, tryGetLoggedUserEmail()); } private List<DatasetDescription> loadAvailableDatasetDescriptions(List<String> dataSetCodes) @@ -1051,6 +1051,6 @@ public final class DataSetTable extends AbstractDataSetBusinessObject implements String sessionToken = dataStore.getSessionToken(); String userSessionToken = session.getSessionToken(); return service.createReportFromAggregationService(sessionToken, userSessionToken, - datastoreServiceKey, parameters); + datastoreServiceKey, parameters, tryGetLoggedUserEmail()); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java index a89aa38fa135acefbdb9e49985a99fd2fd30a3b8..b57331150e6f8887dc9750a72dca9fa7d3de6a72 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IDataStoreService.java @@ -85,7 +85,7 @@ public interface IDataStoreService /** Runs the reporting task with the specified id for provided datasets */ public TableModel createReportFromDatasets(String sessionToken, String userSessionToken, - String serviceKey, List<DatasetDescription> datasets); + String serviceKey, List<DatasetDescription> datasets, String userEmailOrNull); /** * Schedules the processing task with the specified id for provided datasets and specified @@ -147,7 +147,8 @@ public interface IDataStoreService * @since 7 */ public TableModel createReportFromAggregationService(String sessionToken, - String userSessionToken, String serviceKey, Map<String, Object> parameters); + String userSessionToken, String serviceKey, Map<String, Object> parameters, + String userEmailOrNull); public String putDataSet(String sessionToken, String dropboxName, CustomImportFile customImportFile);