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 b87c63fcd27912b9b6b57911db7f6c75c4dcf6fb..fb157be4712b14dac5ee83ccfab4706ca15dd864 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 @@ -82,6 +82,12 @@ import ch.systemsx.cisd.openbis.generic.shared.util.UuidUtil; public class DataStoreService extends AbstractServiceWithLogger<IDataStoreService> implements IDataStoreServiceInternal, InitializingBean { + private static final String COPYING_TO_ARCHIVE_PROCESSING_PLUGIN_KEY = "Copying data sets to archive"; + + private static final String ARCHIVING_PROCESSING_PLUGIN_KEY = "Archiving"; + + private static final String UNARCHIVING_PROCESSING_PLUGIN_KEY = "Unarchiving"; + private final SessionTokenManager sessionTokenManager; private final OpenbisSessionTokenCache sessionTokenCache; @@ -320,10 +326,9 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic public void unarchiveDatasets(String sessionToken, String userSessionToken, List<DatasetDescription> datasets, String userId, String userEmailOrNull) { - String description = "Unarchiving"; IProcessingPluginTask task = new UnarchiveProcessingPluginTask(getArchiverPlugin()); - scheduleTask(sessionToken, userSessionToken, description, task, datasets, userId, + scheduleTask(sessionToken, userSessionToken, UNARCHIVING_PROCESSING_PLUGIN_KEY, task, datasets, userId, userEmailOrNull); } @@ -339,12 +344,10 @@ public class DataStoreService extends AbstractServiceWithLogger<IDataStoreServic List<DatasetDescription> datasets, String userId, String userEmailOrNull, boolean removeFromDataStore) { - String description = removeFromDataStore ? "Archiving" : "Copying data sets to archive"; - IProcessingPluginTask task = - new ArchiveProcessingPluginTask(getArchiverPlugin(), removeFromDataStore); + String description = removeFromDataStore ? ARCHIVING_PROCESSING_PLUGIN_KEY : COPYING_TO_ARCHIVE_PROCESSING_PLUGIN_KEY; + IProcessingPluginTask task = new ArchiveProcessingPluginTask(getArchiverPlugin(), removeFromDataStore); - scheduleTask(sessionToken, userSessionToken, description, task, datasets, userId, - userEmailOrNull); + scheduleTask(sessionToken, userSessionToken, description, task, datasets, userId, userEmailOrNull); } @Override diff --git a/datastore_server/source/java/dssApplicationContext.xml b/datastore_server/source/java/dssApplicationContext.xml index 414bda5aa8271982deb2f98393f4c99480fea069..c96950ed90e1e2dd9c6a4bd27ce4bbb320bf28a0 100644 --- a/datastore_server/source/java/dssApplicationContext.xml +++ b/datastore_server/source/java/dssApplicationContext.xml @@ -105,7 +105,7 @@ </bean> <bean id="data-set-command-executor-provider" class="ch.systemsx.cisd.openbis.dss.generic.server.KeyBasedDataSetCommandExecutorProvider"> - <constructor-arg value="${data-set-command-executor-mapping}"/> + <constructor-arg value="${data-set-command-queue-mapping}"/> <constructor-arg value="${commandqueue-dir}"/> </bean> diff --git a/openbis_standard_technologies/dist/etc/service.properties b/openbis_standard_technologies/dist/etc/service.properties index 0bd327251e92072dfc7b15f9cdabc19dfa9e93fc..40d7ad10ca897707b731299564c337439e20d68e 100644 --- a/openbis_standard_technologies/dist/etc/service.properties +++ b/openbis_standard_technologies/dist/etc/service.properties @@ -15,9 +15,21 @@ incoming-root-dir = ${root-dir} # Cache for data set files from other Data Store Servers cache-workspace-folder = ../../data/dss-cache -# The directory where the command queue file is located; defaults to storeroot-dir +# The directory where the command queue files are located; defaults to storeroot-dir commandqueue-dir = +# Comma-separated list of definitions of additional queues for processing processing plugins. +# Each entry is of the form <queue name>:<regular expression> +# A corresponding persistent queue is created. All processing plugins with a key matching the corresponding +# regular expression are associated with the corresponding queue. +# +# The key of a processing plugin is its core-plugin name which is the name of the folder containing +# 'plugin.properties'. +# +# In case of archiving is enabled the following three processing plugins are defined: +# 'Archiving', 'Copying data sets to archive', and 'Unarchiving' +#data-set-command-queue-mapping = archiving:Archiving|Copying data sets to archive + # Port port = 8444 use-ssl = true