diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java index e2cd3d1ac93a0affe7a405affba930e1a7ac783e..75c13b85acf4ecf055599ef1993b8af9edd7bfbc 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategy.java @@ -33,8 +33,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.DataSetType; */ public final class IdentifiedDataStrategy implements IDataStoreStrategy { - private static final String IDENTIFIED_DIRECTORY_NAME = "identified"; - static final String DATA_SET_TYPE_PREFIX = "DataSetType_"; static final String UNEXPECTED_PATHS_MSG_FORMAT = @@ -61,19 +59,13 @@ public final class IdentifiedDataStrategy implements IDataStoreStrategy * Note that this method does not call {@link File#mkdirs()} on returned <code>File</code>. * </p> */ - private final static File createBaseDirectory(final File baseDir, - final DataSetInformation dataSetInfo, final DataSetType dataSetType) - { - String dataSetCode = dataSetInfo.getDataSetCode(); - return createBaseDirectory(baseDir, dataSetCode); - - } - @Private - static File createBaseDirectory(final File baseDir, String dataSetCode) + static File createBaseDirectory(final File baseDir, final DataSetInformation dataSetInfo) { - final File mainDir = new File(baseDir, IDENTIFIED_DIRECTORY_NAME); - final File shardingDir = createShardingDir(mainDir, dataSetCode); + String dataSetCode = dataSetInfo.getDataSetCode(); + final String instanceUUID = dataSetInfo.getInstanceUUID(); + final File instanceDir = new File(baseDir, instanceUUID); + final File shardingDir = createShardingDir(instanceDir, dataSetCode); final File datasetDir = new File(shardingDir, dataSetCode); return datasetDir; } @@ -104,8 +96,7 @@ public final class IdentifiedDataStrategy implements IDataStoreStrategy { assert storeRoot != null : "Store root can not be null"; assert dataSetInfo != null : "Data set information can not be null"; - assert dataSetType != null : "Data set type can not be null"; - final File baseDirectory = createBaseDirectory(storeRoot, dataSetInfo, dataSetType); + final File baseDirectory = createBaseDirectory(storeRoot, dataSetInfo); if (baseDirectory.exists()) { throw EnvironmentFailureException.fromTemplate(STORAGE_LAYOUT_ERROR_MSG_PREFIX diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java index 3ca1c3f579691654c5b0b3a305d19f5046646273..3cf0e61e330171b6c9442fb87f1e7b8842f8476c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/IdentifiedDataStrategyTest.java @@ -97,7 +97,7 @@ public class IdentifiedDataStrategyTest extends AbstractFileSystemTestCase assertTrue("Null values not permited here", exceptionThrown); final DataSetInformation dataSetInfo = createDataSetInfo(); File baseDirectory = strategy.getBaseDirectory(workingDirectory, dataSetInfo, dataSetType); - final File file = new File(workingDirectory, "identified/27/35/33/data-set-code"); + final File file = new File(workingDirectory, "1111-2222/27/35/33/data-set-code"); assertEquals(file, baseDirectory); assertTrue(baseDirectory.exists() == false); // Create a file instead of a directory diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java index 0fc18e3f57396a769589c197c47280e3b0e96179..9eb8cebcf8ebb106d4002d638cc49835b8fb5b9c 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/TransferredDataSetHandlerTest.java @@ -113,8 +113,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC private static final Date DATA_PRODUCTION_DATE = new Date(2001); - private static final String EXAMPLE_PROCESSOR_ID = - ProcedureTypeCode.DATA_ACQUISITION.getCode(); + private static final String EXAMPLE_PROCESSOR_ID = ProcedureTypeCode.DATA_ACQUISITION.getCode(); private static final class ExternalDataMatcher extends BaseMatcher<ExternalData> { @@ -292,7 +291,8 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC dataSetInformation.setProductionDate(DATA_PRODUCTION_DATE); dataSetInformation.setDataSetCode(DATA_SET_CODE); dataSetInformation.setParentDataSetCode(PARENT_DATA_SET_CODE); - targetFolder = IdentifiedDataStrategy.createBaseDirectory(workingDirectory, DATA_SET_CODE); + targetFolder = + IdentifiedDataStrategy.createBaseDirectory(workingDirectory, dataSetInformation); targetData1 = createTargetData(data1); logRecorder = new BufferedAppender("%-5p %c - %m%n", Level.INFO); } @@ -427,10 +427,10 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC one(typeExtractor).getFileFormatType(dataSet); will(returnValue(FILE_FORMAT_TYPE)); - + one(typeExtractor).getProcessorType(dataSet); will(returnValue(EXAMPLE_PROCESSOR_ID)); - + one(typeExtractor).isMeasuredData(dataSet); will(returnValue(true)); } @@ -529,8 +529,8 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC @Test public final void testBaseDirectoryCouldNotBeCreated() throws IOException { - FileUtils - .touch(IdentifiedDataStrategy.createBaseDirectory(workingDirectory, DATA_SET_CODE)); + FileUtils.touch(IdentifiedDataStrategy.createBaseDirectory(workingDirectory, + dataSetInformation)); prepareForStrategyIDENTIFIED(data1, null, createBaseExperiment(dataSetInformation)); try { @@ -723,7 +723,7 @@ public final class TransferredDataSetHandlerTest extends AbstractFileSystemTestC one(processorFactory).createProcessor(); will(returnValue(processor)); - + allowing(processor).getRequiredInputDataFormat(); will(returnValue(StorageFormat.PROPRIETARY));