From b27ebd0311e1e6f9bf99a24d0723819b6849e0ce Mon Sep 17 00:00:00 2001 From: kaloyane <kaloyane> Date: Tue, 10 May 2011 15:46:33 +0000 Subject: [PATCH] [LMS-2104] moved the IDataSetLocation down the hierarchy from ExternalData to DataSet. dependencies adjusted accordingly. SVN: 21215 --- .../path/PathInfoDatabaseFeedingTask.java | 6 +++++- .../TemplateBasedDataSetResourceResolver.java | 3 +-- .../shared/HierarchicalContentProvider.java | 11 +++++++++-- .../path/PathInfoDatabaseFeedingTaskTest.java | 10 +++++----- .../shared/HierarchicalContentProviderTest.java | 4 ++-- .../openbis/generic/shared/basic/dto/DataSet.java | 13 ++++++++++++- .../generic/shared/basic/dto/ExternalData.java | 14 +------------- .../shared/basic/dto/builders/DataSetBuilder.java | 2 +- 8 files changed, 36 insertions(+), 27 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTask.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTask.java index 934a232ebfe..823bebe6932 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTask.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTask.java @@ -135,7 +135,11 @@ public class PathInfoDatabaseFeedingTask implements IMaintenanceTask, IPostRegis operationLog.error("Data set " + dataSetCode + " unknown by openBIS."); return; } - feedPathInfoDatabase(dataSet); + if (false == dataSet.isContainerDataSet()) + { + IDatasetLocation dataSetLocation = dataSet.tryGetAsDataSet(); + feedPathInfoDatabase(dataSetLocation); + } } }; } diff --git a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java index 8e2e3c448cf..edcd6b9e717 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java +++ b/datastore_server/source/java/ch/systemsx/cisd/openbis/dss/generic/server/ftp/resolver/TemplateBasedDataSetResourceResolver.java @@ -186,8 +186,7 @@ public class TemplateBasedDataSetResourceResolver implements IFtpPathResolver, IHierarchicalContentNodeFilter fileFilter = getFileFilter(evaluationResult.dataSet); IHierarchicalContentProvider provider = ServiceProvider.getHierarchicalContentProvider(); - IHierarchicalContent content = - provider.asContent(evaluationResult.dataSet.getDataSetCode()); + IHierarchicalContent content = provider.asContent(evaluationResult.dataSet.getCode()); IHierarchicalContentNode contentNode = content.getNode(relativePath); if (fileFilter.accept(contentNode)) { 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 1fa4969d7cb..cee6bfab074 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 @@ -23,6 +23,7 @@ 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.dss.generic.shared.content.PathInfoDBAwareHierarchicalContentFactory; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; @@ -67,11 +68,17 @@ public class HierarchicalContentProvider implements IHierarchicalContentProvider public IHierarchicalContent asContent(String dataSetCode) { // this is temporary implementation - it shouldn't access openBIS after LMS-2172 is done - ExternalData dataSet = openbisService.tryGetDataSet(dataSetCode); - if (dataSet == null) + ExternalData externalData = openbisService.tryGetDataSet(dataSetCode); + if (externalData == null) { throw new IllegalArgumentException("Unknown data set " + dataSetCode); } + // this is a temporary fix + DataSet dataSet = externalData.tryGetAsDataSet(); + if (dataSet == null) + { + throw new IllegalArgumentException("Not implemented for container data sets."); + } return asContent(dataSet); } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTaskTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTaskTest.java index 75d114cc475..3ed38aa1031 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTaskTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/path/PathInfoDatabaseFeedingTaskTest.java @@ -36,7 +36,7 @@ import ch.systemsx.cisd.common.io.IHierarchicalContentNode; import ch.systemsx.cisd.openbis.dss.generic.shared.IDataSetDirectoryProvider; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.IShareIdManager; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.builders.DataSetBuilder; import ch.systemsx.cisd.openbis.generic.shared.dto.SimpleDataSetInformationDTO; @@ -124,7 +124,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase @Test public void testPostRegistrationHappyCase() { - final ExternalData dataSet = + final DataSet dataSet = new DataSetBuilder().code(DATA_SET_CODE).location("abc").getDataSet(); context.checking(new Expectations() { @@ -142,7 +142,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase @Test public void testPostRegistrationFailingCase() { - final ExternalData dataSet = + final DataSet dataSet = new DataSetBuilder().code(DATA_SET_CODE).location("abc").getDataSet(); context.checking(new Expectations() { @@ -163,7 +163,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase { { one(service).tryGetDataSet(DATA_SET_CODE); - ExternalData dataSet = + DataSet dataSet = new DataSetBuilder().code(DATA_SET_CODE).location("abc").getDataSet(); will(returnValue(dataSet)); @@ -186,7 +186,7 @@ public class PathInfoDatabaseFeedingTaskTest extends AbstractFileSystemTestCase { { one(service).tryGetDataSet(DATA_SET_CODE); - ExternalData dataSet = + DataSet dataSet = new DataSetBuilder().code(DATA_SET_CODE).location("abc").getDataSet(); will(returnValue(dataSet)); diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProviderTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProviderTest.java index 79f78feafe7..eb9867b46d1 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProviderTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/dss/generic/shared/HierarchicalContentProviderTest.java @@ -28,7 +28,7 @@ import org.testng.annotations.Test; import ch.systemsx.cisd.common.io.IHierarchicalContentFactory; import ch.systemsx.cisd.common.test.RecordingMatcher; 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.DataSet; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IDatasetLocation; /** @@ -84,7 +84,7 @@ public class HierarchicalContentProviderTest extends AssertJUnit { final String dataSetCode = "DS_CODE"; - final ExternalData data = new ExternalData(); + final DataSet data = new DataSet(); data.setCode(dataSetCode); final File dataRootFile = new File("DS_FILE"); final RecordingMatcher<IDelegatedAction> actionMatcher = RecordingMatcher.create(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSet.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSet.java index 486af00ea05..6201dff3dea 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSet.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DataSet.java @@ -22,7 +22,7 @@ package ch.systemsx.cisd.openbis.generic.shared.basic.dto; * * @author Kaloyan Enimanev */ -public class DataSet extends ExternalData +public class DataSet extends ExternalData implements IDatasetLocation { private static final long serialVersionUID = ServiceVersionHolder.VERSION; @@ -117,4 +117,15 @@ public class DataSet extends ExternalData return getStatus().isAvailable(); } + // IDatasetLocation + public String getDataSetLocation() + { + return getLocation(); + } + + public String getDataSetCode() + { + return getCode(); + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java index 568e6b36112..8fd9a7449c5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/ExternalData.java @@ -32,7 +32,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.IPermIdHolder; */ public class ExternalData extends CodeWithRegistration<ExternalData> implements IInvalidationProvider, IEntityInformationHolderWithProperties, IIdAndCodeHolder, - IPermIdHolder, IDatasetLocation + IPermIdHolder { private static final long serialVersionUID = ServiceVersionHolder.VERSION; @@ -418,18 +418,6 @@ public class ExternalData extends CodeWithRegistration<ExternalData> implements this.orderInContainer = orderInContainer; } - // IDatasetLocation - - public String getDataSetLocation() - { - return getLocation(); - } - - public String getDataSetCode() - { - return getCode(); - } - // 'transient' public String getSourceType() diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java index 7f6108eebf5..8f81a7925ad 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/builders/DataSetBuilder.java @@ -105,7 +105,7 @@ public class DataSetBuilder return this; } - public final ExternalData getDataSet() + public final DataSet getDataSet() { return dataSet; } -- GitLab