From c05660e9e530623b40f06bcc58cc30a359596eae Mon Sep 17 00:00:00 2001 From: buczekp <buczekp> Date: Tue, 12 Apr 2011 09:39:23 +0000 Subject: [PATCH] [LMS-2172] changes in dss SVN: 20821 --- .../generic/shared/HierarchicalContentProvider.java | 13 +++++++++++-- .../shared/IHierarchicalContentProvider.java | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProvider.java index 9196f34b03d..802f510f384 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProvider.java @@ -21,6 +21,7 @@ import java.io.File; import ch.systemsx.cisd.common.io.HierarchicalContentFactory; import ch.systemsx.cisd.common.io.IHierarchicalContent; import ch.systemsx.cisd.common.io.IHierarchicalContentFactory; +import ch.systemsx.cisd.common.utilities.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; @@ -66,14 +67,22 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider public IHierarchicalContent asContent(IDatasetLocation datasetLocation) { // this is temporary implementation - it should access DB instead of filesystem - // FIXME locking + // IHierarchicalContent.close() should be called to unlock the dataset + directoryProvider.getShareIdManager().lock(datasetLocation.getDatasetCode()); File dataSetDirectory = directoryProvider.getDataSetDirectory(datasetLocation); + return asContent(dataSetDirectory); } public IHierarchicalContent asContent(File dataSetDirectory) { - return hierarchicalContentFactory.asHierarchicalContent(dataSetDirectory); + return hierarchicalContentFactory.asHierarchicalContent(dataSetDirectory, + IDelegatedAction.DO_NOTHING); + } + + public IHierarchicalContent asContent(File dataSetDirectory, IDelegatedAction onCloseAction) + { + return hierarchicalContentFactory.asHierarchicalContent(dataSetDirectory, onCloseAction); } } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IHierarchicalContentProvider.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IHierarchicalContentProvider.java index c5eb447cc3f..a365cad8b02 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IHierarchicalContentProvider.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/shared/IHierarchicalContentProvider.java @@ -34,6 +34,7 @@ public interface IHierarchicalContentProvider IHierarchicalContent asContent(IDatasetLocation datasetLocation); + // the data set file is assumed to be locked IHierarchicalContent asContent(File datasetDirectory); } -- GitLab