From d86e78f1097f53bd01d0457db98ad960e6fce0cb Mon Sep 17 00:00:00 2001
From: kaloyane <kaloyane>
Date: Mon, 18 Apr 2011 08:46:04 +0000
Subject: [PATCH] refactoring: IArchiver.deleteFromArchive now takes a list of
 "DatasetLocation" instead of "DeletedDataSet" objects.

SVN: 20922
---
 .../DeleteFromArchiveMaintenanceTask.java     | 31 +++++++++++++++----
 .../ArchivingPostRegistrationTask.java        | 14 +++++----
 .../server/plugins/demo/DemoArchiver.java     |  4 +--
 .../AbstractArchiverProcessingPlugin.java     |  6 ++--
 .../DataSetFileOperationsManager.java         |  8 ++---
 .../IDataSetFileOperationsManager.java        |  4 +--
 .../plugins/standard/RsyncArchiver.java       | 10 +++---
 .../dss/generic/shared/IArchiverPlugin.java   |  4 +--
 .../DataSetFileOperationsManagerTest.java     | 19 +++++++-----
 .../plugins/standard/RsyncArchiverTest.java   |  2 --
 .../shared/basic/dto/DatasetLocation.java     |  8 ++++-
 .../cisd/yeastx/etl/MLArchiverTask.java       |  8 ++---
 12 files changed, 73 insertions(+), 45 deletions(-)

diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/DeleteFromArchiveMaintenanceTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/DeleteFromArchiveMaintenanceTask.java
index 915f1bd36eb..63abb4c4c15 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/DeleteFromArchiveMaintenanceTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/plugins/DeleteFromArchiveMaintenanceTask.java
@@ -27,6 +27,7 @@ import ch.systemsx.cisd.common.filesystem.FileUtilities;
 import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IArchiverPlugin;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
 
 /**
@@ -53,20 +54,21 @@ public class DeleteFromArchiveMaintenanceTask extends
     }
 
     @Override
-    protected void execute(List<DeletedDataSet> datasets)
+    protected void execute(List<DeletedDataSet> list)
     {
-        List<DeletedDataSet> datasetsToBeArchived = datasets;
+        List<DeletedDataSet> datasets = list;
         if (lastSeenEventIdFile.exists() == false)
         {
-            datasetsToBeArchived = filterOldStyleHistoryEvents(datasets);
+            datasets = filterOldStyleHistoryEvents(list);
         }
 
         IArchiverPlugin archiverPlugin = ServiceProvider.getDataStoreService().getArchiverPlugin();
-        archiverPlugin.deleteFromArchive(datasetsToBeArchived);
+        List<DatasetLocation> datasetLocations = toDataSetLocations(datasets);
+        archiverPlugin.deleteFromArchive(datasetLocations);
 
         String logMessage =
-                String.format("Deleted %s dataset from archive: '%s'", datasetsToBeArchived.size(),
-                        CollectionUtils.abbreviate(datasetsToBeArchived, 10));
+                String.format("Deleted %s dataset from archive: '%s'", datasets.size(),
+                        CollectionUtils.abbreviate(datasets, 10));
         operationLog.info(logMessage);
 
     }
@@ -131,4 +133,21 @@ public class DeleteFromArchiveMaintenanceTask extends
         return result;
     }
 
+    private List<DatasetLocation> toDataSetLocations(List<DeletedDataSet> datasets)
+    {
+        ArrayList<DatasetLocation> result = new ArrayList<DatasetLocation>(datasets.size());
+        for (DeletedDataSet deletedDS : datasets)
+        {
+            result.add(toDataSetLocations(deletedDS));
+        }
+        return result;
+    }
+
+    private DatasetLocation toDataSetLocations(DeletedDataSet deletedDS)
+    {
+        DatasetLocation dsLocation = new DatasetLocation();
+        dsLocation.setDatasetCode(deletedDS.getIdentifier());
+        dsLocation.setDataSetLocation(deletedDS.getLocation());
+        return dsLocation;
+    }
 }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java
index c7cd4fe03f2..c04c0b9b0bc 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/postregistration/ArchivingPostRegistrationTask.java
@@ -33,7 +33,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ArchiverTaskContext;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IArchiverPlugin;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator;
@@ -165,12 +165,14 @@ public class ArchivingPostRegistrationTask extends AbstractPostRegistrationTask
             DatasetDescription dataSet = tryGetDatasetDescription(dataSetCode, openBISService);
             if (archiver != null && dataSet != null)
             {
-                // TODO KE: the API here is not optimal. refactor this on Tuesday.
-                DeletedDataSet deletedDataset =
-                        new DeletedDataSet(dataSetCode, dataSet.getDataSetLocation(), 0);
-                List<DeletedDataSet> dataSetAsList = Collections.singletonList(deletedDataset);
+                DatasetLocation dataset = new DatasetLocation();
+                dataset.setDatasetCode(dataSetCode);
+                dataset.setDataSetLocation(dataSet.getDataSetLocation());
+
+                List<DatasetLocation> dataSetAsList = Collections.singletonList(dataset);
                 archiver.deleteFromArchive(dataSetAsList);
-                logger.log(LogLevel.INFO, "Data set " + dataSetCode + " deleted from archive.");
+                logger.log(LogLevel.INFO, "Successfully cleaned up leftovers from incomplete "
+                        + "archiving of dataset '" + dataSetCode + "'.");
             }
         }
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/demo/DemoArchiver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/demo/DemoArchiver.java
index 45789088171..a523cf50e54 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/demo/DemoArchiver.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/demo/DemoArchiver.java
@@ -28,7 +28,7 @@ import ch.systemsx.cisd.common.filesystem.BooleanStatus;
 import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.AbstractArchiverProcessingPlugin;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ArchiverTaskContext;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Code;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -71,7 +71,7 @@ public class DemoArchiver extends AbstractArchiverProcessingPlugin
     }
 
     @Override
-    public DatasetProcessingStatuses doDeleteFromArchive(List<DeletedDataSet> dataSets)
+    public DatasetProcessingStatuses doDeleteFromArchive(List<DatasetLocation> dataSets)
     {
         List<String> datasetCodes = Code.extractCodes(dataSets);
         archiveContents.addAll(datasetCodes);
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
index 12905afd3ff..2a2a7c43d4b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/AbstractArchiverProcessingPlugin.java
@@ -57,7 +57,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetCodesWithStatus;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.SegmentedStoreUtils;
 import ch.systemsx.cisd.openbis.dss.generic.shared.utils.Share;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetArchivingStatus;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 import ch.systemsx.cisd.openbis.generic.shared.translator.SimpleDataSetHelper;
@@ -116,7 +116,7 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
      * deletes data sets from archive. At the time when this method is invoked the data sets do not
      * exist in the openBIS database.
      */
-    abstract protected DatasetProcessingStatuses doDeleteFromArchive(List<DeletedDataSet> datasets);
+    abstract protected DatasetProcessingStatuses doDeleteFromArchive(List<DatasetLocation> datasets);
     
     /**
      * @return <code>true</code> if the dataset is present in the archive, <code>false</code>
@@ -316,7 +316,7 @@ public abstract class AbstractArchiverProcessingPlugin extends AbstractDatastore
         return statuses;
     }
 
-    public ProcessingStatus deleteFromArchive(List<DeletedDataSet> datasets)
+    public ProcessingStatus deleteFromArchive(List<DatasetLocation> datasets)
     {
         DatasetProcessingStatuses status = doDeleteFromArchive(datasets);
         return status != null ? status.getProcessingStatus() : null;
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManager.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManager.java
index 34cedd5d7f0..122b4c8ae04 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManager.java
@@ -37,7 +37,7 @@ import ch.systemsx.cisd.common.utilities.PropertyUtils;
 import ch.systemsx.cisd.openbis.dss.generic.server.IDataSetFileOperationsExecutor;
 import ch.systemsx.cisd.openbis.dss.generic.server.LocalDataSetFileOperationsExcecutor;
 import ch.systemsx.cisd.openbis.dss.generic.server.RemoteDataSetFileOperationsExecutor;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -176,18 +176,18 @@ public class DataSetFileOperationsManager implements IDataSetFileOperationsManag
      * Deletes specified datases's data from the destination specified in constructor. The path at
      * the destination is defined by original location of the data set.
      */
-    public Status deleteFromDestination(DeletedDataSet dataset)
+    public Status deleteFromDestination(DatasetLocation dataset)
     {
         try
         {
-            File destinationFolder = new File(destination, dataset.getLocation());
+            File destinationFolder = new File(destination, dataset.getDataSetLocation());
             BooleanStatus destinationExists = destinationExists(destinationFolder);
             if (destinationExists.isSuccess())
             {
                 executor.deleteFolder(destinationFolder);
             } else
             {
-                operationLog.info("Data of data set '" + dataset.getIdentifier()
+                operationLog.info("Data of data set '" + dataset.getDatasetCode()
                         + "' don't exist in the destination '" + destinationFolder.getPath()
                         + "'. There is nothing to delete.");
             }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/IDataSetFileOperationsManager.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/IDataSetFileOperationsManager.java
index 8df7a3c9c62..c67929fa905 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/IDataSetFileOperationsManager.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/IDataSetFileOperationsManager.java
@@ -20,7 +20,7 @@ import java.io.File;
 
 import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.filesystem.BooleanStatus;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -47,7 +47,7 @@ public interface IDataSetFileOperationsManager
      * Deletes specified datases's data from the destination specified in constructor. The path at
      * the destination is defined by original location of the data set.
      */
-    public abstract Status deleteFromDestination(DeletedDataSet dataset);
+    public abstract Status deleteFromDestination(DatasetLocation dataset);
 
     /**
      * Checks if specified dataset's data are present in the destination specified in constructor.
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java
index 23833f87fff..8e446c49a48 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiver.java
@@ -25,7 +25,7 @@ import ch.systemsx.cisd.common.exceptions.Status;
 import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.common.filesystem.BooleanStatus;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ArchiverTaskContext;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -92,13 +92,13 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin
     }
 
     @Override
-    protected DatasetProcessingStatuses doDeleteFromArchive(List<DeletedDataSet> datasets)
+    protected DatasetProcessingStatuses doDeleteFromArchive(List<DatasetLocation> datasets)
     {
         DatasetProcessingStatuses statuses = new DatasetProcessingStatuses();
-        for (DeletedDataSet dataset : datasets)
+        for (DatasetLocation dataset : datasets)
         {
             Status status = doDeleteFromArchive(dataset);
-            statuses.addResult(dataset.getIdentifier(), status, Operation.DELETE_FROM_ARCHIVE);
+            statuses.addResult(dataset.getDatasetCode(), status, Operation.DELETE_FROM_ARCHIVE);
         }
 
         return statuses;
@@ -122,7 +122,7 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin
         return fileOperationsManager.retrieveFromDestination(originalData, dataset);
     }
 
-    private Status doDeleteFromArchive(DeletedDataSet dataset)
+    private Status doDeleteFromArchive(DatasetLocation dataset)
     {
         return fileOperationsManager.deleteFromDestination(dataset);
     }
diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IArchiverPlugin.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IArchiverPlugin.java
index 562db2d8f59..d7aad7b503b 100644
--- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IArchiverPlugin.java
+++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IArchiverPlugin.java
@@ -19,7 +19,7 @@ package ch.systemsx.cisd.openbis.dss.generic.shared;
 import java.io.Serializable;
 import java.util.List;
 
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -55,5 +55,5 @@ public interface IArchiverPlugin extends Serializable
      * @returns {@link ProcessingStatus} containing the deletion statuses for all data sets or null
      *          if processing succeeded for all datasets and no additional information is provided.
      */
-    ProcessingStatus deleteFromArchive(List<DeletedDataSet> datasets);
+    ProcessingStatus deleteFromArchive(List<DatasetLocation> datasets);
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManagerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManagerTest.java
index 99344f8e4a7..d5a49e0e368 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManagerTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/DataSetFileOperationsManagerTest.java
@@ -40,7 +40,7 @@ import ch.systemsx.cisd.common.filesystem.IPathCopier;
 import ch.systemsx.cisd.common.filesystem.ssh.ISshCommandExecutor;
 import ch.systemsx.cisd.common.logging.LogInitializer;
 import ch.systemsx.cisd.common.process.ProcessResult;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
 
 /**
@@ -481,7 +481,7 @@ public class DataSetFileOperationsManagerTest extends AbstractFileSystemTestCase
         /*
          * delete from archive
          */
-        DeletedDataSet deletedDs1 = deletedDataset(ds1);
+        DatasetLocation deletedDs1 = datasetLocation(ds1);
         Status statusDelete = dataSetCopier.deleteFromDestination(deletedDs1);
         assertSuccessful(statusDelete);
         assertDs1NotInArchive();
@@ -787,8 +787,8 @@ public class DataSetFileOperationsManagerTest extends AbstractFileSystemTestCase
                     will(returnValue(BooleanStatus.createFalse()));
                 }
             });
-        Status status1 = dataSetCopier.deleteFromDestination(deletedDataset(ds1));
-        Status status2 = dataSetCopier.deleteFromDestination(deletedDataset(ds2));
+        Status status1 = dataSetCopier.deleteFromDestination(datasetLocation(ds1));
+        Status status2 = dataSetCopier.deleteFromDestination(datasetLocation(ds2));
         assertSuccessful(status1);
         assertSuccessful(status2);
 
@@ -821,8 +821,8 @@ public class DataSetFileOperationsManagerTest extends AbstractFileSystemTestCase
                     will(returnValue(BooleanStatus.createError(DUMMY_ERROR_MESSAGE)));
                 }
             });
-        Status status1 = dataSetCopier.deleteFromDestination(deletedDataset(ds1));
-        Status status2 = dataSetCopier.deleteFromDestination(deletedDataset(ds2));
+        Status status1 = dataSetCopier.deleteFromDestination(datasetLocation(ds1));
+        Status status2 = dataSetCopier.deleteFromDestination(datasetLocation(ds2));
         assertError(status1, "couldn't delete");
         assertError(status2, "couldn't check existence");
 
@@ -1040,9 +1040,12 @@ public class DataSetFileOperationsManagerTest extends AbstractFileSystemTestCase
         }
     }
 
-    private DeletedDataSet deletedDataset(DatasetDescription dsd)
+    private DatasetLocation datasetLocation(DatasetDescription dsd)
     {
-        return new DeletedDataSet(dsd.getDatasetCode(), dsd.getDataSetLocation(), 0);
+        DatasetLocation result = new DatasetLocation();
+        result.setDatasetCode(dsd.getDatasetCode());
+        result.setDataSetLocation(dsd.getDataSetLocation());
+        return result;
     }
 
 }
diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiverTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiverTest.java
index e3700c15346..2b1dbe483ef 100644
--- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiverTest.java
+++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/server/plugins/standard/RsyncArchiverTest.java
@@ -61,8 +61,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO;
 import ch.systemsx.cisd.openbis.generic.shared.dto.builders.DatasetDescriptionBuilder;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 @Friend(toClasses = {AbstractArchiverProcessingPlugin.class, RsyncArchiver.class})
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatasetLocation.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatasetLocation.java
index b00d54c574e..a9b225797fb 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatasetLocation.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DatasetLocation.java
@@ -16,6 +16,7 @@
 
 package ch.systemsx.cisd.openbis.generic.shared.basic.dto;
 
+import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeHolder;
 import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
 
 /**
@@ -23,7 +24,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable;
  * 
  * @author Piotr Buczek
  */
-public class DatasetLocation implements IDatasetLocation, ISerializable
+public class DatasetLocation implements IDatasetLocation, ISerializable, ICodeHolder
 {
     private static final long serialVersionUID = 1L;
 
@@ -57,4 +58,9 @@ public class DatasetLocation implements IDatasetLocation, ISerializable
         return "Dataset[" + datasetCode + "], location[" + dataSetLocation + "]";
     }
 
+    public String getCode()
+    {
+        return getDatasetCode();
+    }
+
 }
diff --git a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/MLArchiverTask.java b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/MLArchiverTask.java
index 9dcb9bc87fb..1116925a5ee 100644
--- a/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/MLArchiverTask.java
+++ b/rtd_yeastx/source/java/ch/systemsx/cisd/yeastx/etl/MLArchiverTask.java
@@ -33,7 +33,7 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.ArchiverTaskContext;
 import ch.systemsx.cisd.openbis.dss.generic.shared.DataSourceProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSetDirectoryProvider;
 import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider;
-import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatasetLocation;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatasetDescription;
@@ -248,12 +248,12 @@ public class MLArchiverTask extends AbstractArchiverProcessingPlugin
     }
 
     @Override
-    protected DatasetProcessingStatuses doDeleteFromArchive(List<DeletedDataSet> datasets)
+    protected DatasetProcessingStatuses doDeleteFromArchive(List<DatasetLocation> datasets)
     {
         DatasetProcessingStatuses statuses = new DatasetProcessingStatuses();
-        for (DeletedDataSet dataset : datasets)
+        for (DatasetLocation dataset : datasets)
         {
-            statuses.addResult(dataset.getIdentifier(), Status.OK, Operation.DELETE_FROM_ARCHIVE);
+            statuses.addResult(dataset.getDatasetCode(), Status.OK, Operation.DELETE_FROM_ARCHIVE);
         }
         return statuses;
     }
-- 
GitLab