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 9eec61cdaf7917064d8dcab5f95789752ad42a00..6ff187bede34d09c82d04bbf88968f161cc7fb34 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 @@ -28,7 +28,7 @@ import ch.systemsx.cisd.common.filesystem.BooleanStatus; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.properties.PropertyUtils; -import ch.systemsx.cisd.openbis.common.io.hierarchical_content.DefaultFileBasedHierarchicalContentFactory; +import ch.systemsx.cisd.openbis.common.io.hierarchical_content.Hdf5AwareHierarchicalContentFactory; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.archiver.AbstractDataSetFileOperationsManager; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.standard.archiver.ArchiveDestination; @@ -279,7 +279,7 @@ public class DataSetFileOperationsManager extends AbstractDataSetFileOperationsM @Override public IHierarchicalContent getAsHierarchicalContent(DatasetDescription dataset) { - return new DefaultFileBasedHierarchicalContentFactory() + return new Hdf5AwareHierarchicalContentFactory(dataset.isH5Folders(), dataset.isH5arFolders()) .asHierarchicalContent(new File(archiveDestination.getDestination(), dataset.getDataSetLocation()), null); } 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 f081f6c01e8138d52d9b1d29fcf1dd0e2ff71f6e..54917ef4637255f355022521f6d39ec728dc8a48 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 @@ -29,7 +29,8 @@ 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.common.properties.PropertyUtils; -import ch.systemsx.cisd.openbis.common.io.hierarchical_content.DefaultFileBasedHierarchicalContentFactory; +import ch.systemsx.cisd.openbis.common.io.hierarchical_content.Hdf5AwareHierarchicalContentFactory; +import ch.systemsx.cisd.openbis.common.io.hierarchical_content.IHierarchicalContentFactory; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContent; import ch.systemsx.cisd.openbis.common.io.hierarchical_content.api.IHierarchicalContentNode; import ch.systemsx.cisd.openbis.dss.generic.shared.ArchiverTaskContext; @@ -213,7 +214,6 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin ArchiverTaskContext context, boolean removeFromDataStore) throws UserFailureException { DatasetProcessingStatuses statuses = new DatasetProcessingStatuses(); - DefaultFileBasedHierarchicalContentFactory contentFactory = new DefaultFileBasedHierarchicalContentFactory(); for (DatasetDescription dataset : datasets) { File originalData = getDatasetDirectory(context, dataset); @@ -236,6 +236,8 @@ public class RsyncArchiver extends AbstractArchiverProcessingPlugin if (getFileOperationsManager().isHosted()) { getFileOperationsManager().retrieveFromDestination(temp, dataset); + IHierarchicalContentFactory contentFactory = new Hdf5AwareHierarchicalContentFactory( + dataset.isH5Folders(), dataset.isH5arFolders()); archivedContent = contentFactory.asHierarchicalContent(temp, null); } else { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java index e27e1c736f452ff298101954f6a0ba7430bd00d4..36e97b4b1834160f8e207ad19529d21d97599c47 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/translator/DataSetTranslator.java @@ -98,6 +98,8 @@ public class DataSetTranslator description.setDataSetLocation(dataSet.getLocation()); description.setSpeedHint(dataSet.getSpeedHint()); description.setFileFormatType(dataSet.getFileFormatType().getCode()); + description.setH5Folders(dataSet.isH5Folders()); + description.setH5arFolders(dataSet.isH5arFolders()); } description.setDataSetSize(data.getSize()); DataSetType dataSetType = data.getDataSetType(); @@ -515,6 +517,8 @@ public class DataSetTranslator description.setSpeedHint(externalData.getSpeedHint()); description.setFileFormatType(externalData.getFileFormatType().getCode()); description.setStorageConfirmed(externalData.isStorageConfirmation()); + description.setH5Folders(externalData.isH5Folders()); + description.setH5arFolders(externalData.isH5arFolders()); } SamplePE sample = dataSet.tryGetSample(); if (sample != null)