From e4191248d3d13aa0a2721273ac5baf50b2a716b9 Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Thu, 23 Feb 2012 16:29:57 +0000 Subject: [PATCH] minor refactoring SVN: 24551 --- ...actOmniscientTopLevelDataSetRegistrator.java | 6 +++++- .../registrator/DataSetStorageAlgorithm.java | 4 ++-- .../DataSetStorageAlgorithmRunner.java | 17 +++++++++++------ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java index cb044d7cb87..61da40fc4c2 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/AbstractOmniscientTopLevelDataSetRegistrator.java @@ -332,6 +332,7 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat { incomingDataSetFile = state.getMarkerFileUtility().getIncomingDataSetPathFromMarker(isFinishedFile); + markerFileCleanupAction = new IDelegatedActionWithResult<Boolean>() { public Boolean execute(boolean didOperationSucceed) @@ -348,21 +349,24 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat markerFileCleanupAction = new DoNothingDelegatedAction(); } + //read from configuration prestaging parameter. DataSetRegistrationPreStagingBehavior preStagingUsage = state.getGlobalState().getThreadParameters() .getDataSetRegistrationPreStagingBehavior(); + if (preStagingUsage == DataSetRegistrationPreStagingBehavior.USE_ORIGINAL) { DataSetFile incoming = new DataSetFile(incomingDataSetFile); handle(incoming, null, new NoOpDelegate(), markerFileCleanupAction); } else { - // Make a hardlink copy of the file + // If we should the prestaging phase, we make a hardlink copy in prestaging area File copyOfIncoming = copyIncomingFileToPreStaging(incomingDataSetFile); DataSetFile dsf = new DataSetFile(incomingDataSetFile, copyOfIncoming); + // For cleanup we use the postRegistrationCleanUpAction wich clears the prestaging area. PostRegistrationCleanUpAction cleanupAction = new PostRegistrationCleanUpAction(dsf, markerFileCleanupAction); handle(dsf, null, new NoOpDelegate(), cleanupAction); diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java index d0ad6416877..9b453efdb20 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithm.java @@ -440,10 +440,10 @@ public class DataSetStorageAlgorithm<T extends DataSetInformation> transactionStoreData(); - moveFilesFromStagingToStore(); + moveFilesFromStagingToPrecommit(); } - private void moveFilesFromStagingToStore() + private void moveFilesFromStagingToPrecommit() { File stagedStoredDataDirectory = transaction.getStoredDataDirectory(); assert stagedStoredDataDirectory != null : "The folder that contains the stored data should not be null."; diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java index 176e24b6b86..be3f96be558 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetStorageAlgorithmRunner.java @@ -237,12 +237,7 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> try { - for (DataSetStorageAlgorithm<T> storageAlgorithm : dataSetStorageAlgorithms) - { - String dataSetCode = storageAlgorithm.getDataSetInformation() - .getDataSetCode(); - openBISService.setStorageConfirmed(dataSetCode); - } + confirmStorageInApplicationServer(); dssRegistrationLog.log("Storage has been confirmed in openBIS Application Server."); } catch (final Exception ex) @@ -262,6 +257,16 @@ public class DataSetStorageAlgorithmRunner<T extends DataSetInformation> } + private void confirmStorageInApplicationServer() + { + for (DataSetStorageAlgorithm<T> storageAlgorithm : dataSetStorageAlgorithms) + { + String dataSetCode = storageAlgorithm.getDataSetInformation() + .getDataSetCode(); + openBISService.setStorageConfirmed(dataSetCode); + } + } + private void logPreCommitMessage() { // Use the precommit folder to create an informative message -- GitLab