From b55a1575425b04c37b2e1a0608352c546a8cd77f Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 5 Apr 2011 14:29:06 +0000 Subject: [PATCH] LMS-2164 by Sekhar: remove unused code from python framework, use rollback_service if rollback_transaction is not defined SVN: 20657 --- ...tOmniscientTopLevelDataSetRegistrator.java | 19 --- .../DataSetRegistrationService.java | 117 +----------------- .../JythonTopLevelDataSetHandler.java | 31 ++--- .../JythonTopLevelDataSetRegistratorTest.java | 8 -- 4 files changed, 10 insertions(+), 165 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 5865ef39ca5..2a35ab24816 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 @@ -34,8 +34,6 @@ import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult; import ch.systemsx.cisd.etlserver.AbstractTopLevelDataSetRegistrator; -import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm; -import ch.systemsx.cisd.etlserver.DataSetRegistrationRollbacker; import ch.systemsx.cisd.etlserver.DataStrategyStore; import ch.systemsx.cisd.etlserver.IDataStrategyStore; import ch.systemsx.cisd.etlserver.IPostRegistrationAction; @@ -319,23 +317,6 @@ public abstract class AbstractOmniscientTopLevelDataSetRegistrator<T extends Dat .runCheck(); } - /** - * Rollback a failure when trying to register an individual data set. - * <p> - * Subclasses may override, but should call super. - * - * @param dataSetRegistrationService - */ - public void rollback(DataSetRegistrationService<T> dataSetRegistrationService, - DataSetRegistrationAlgorithm registrationAlgorithm, Throwable throwable) - { - updateStopped(throwable instanceof InterruptedExceptionUnchecked); - - new DataSetRegistrationRollbacker(stopped, registrationAlgorithm, - registrationAlgorithm.getIncomingDataSetFile(), notificationLog, operationLog, - throwable).doRollback(); - } - /** * Rollback a failure when trying to commit a transaction. * <p> diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java index 2f88d25b8d8..fc80fe66294 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/DataSetRegistrationService.java @@ -25,7 +25,6 @@ import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult; import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.etlserver.BaseDirectoryHolder; import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm; -import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithm.DataSetRegistrationAlgorithmState; import ch.systemsx.cisd.etlserver.DataSetRegistrationAlgorithmRunner; import ch.systemsx.cisd.etlserver.FileRenamer; import ch.systemsx.cisd.etlserver.IDataStoreStrategy; @@ -33,13 +32,11 @@ import ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate; import ch.systemsx.cisd.etlserver.IdentifiedDataStrategy; import ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState; import ch.systemsx.cisd.etlserver.TransferredDataSetHandler; -import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.DoNothingDelegatedAction; import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState; import ch.systemsx.cisd.etlserver.registrator.api.v1.IDataSetRegistrationTransaction; import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; -import ch.systemsx.cisd.openbis.generic.shared.dto.NewExternalData; import ch.systemsx.cisd.openbis.generic.shared.dto.types.DataSetTypeCode; /** @@ -47,50 +44,9 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.types.DataSetTypeCode; * * @author Chandrasekhar Ramakrishnan */ -/** - * - * - * @author Chandrasekhar Ramakrishnan - */ -/** - * - * - * @author Chandrasekhar Ramakrishnan - */ -/** - * - * - * @author Chandrasekhar Ramakrishnan - */ -/** - * @author Chandrasekhar Ramakrishnan - */ -/** - * @author Chandrasekhar Ramakrishnan - */ public class DataSetRegistrationService<T extends DataSetInformation> implements - DataSetRegistrationAlgorithm.IRollbackDelegate, IDataSetRegistrationService + IDataSetRegistrationService { - /** - * A data set that will be created but might not yet exist. - * - * @author Chandrasekhar Ramakrishnan - */ - public static class FutureDataSet - { - private final String code; - - public FutureDataSet(String code) - { - this.code = code; - } - - public String getCode() - { - return code; - } - } - static final String STAGING_DIR = "staging-dir"; private final AbstractOmniscientTopLevelDataSetRegistrator<T> registrator; @@ -158,21 +114,6 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements return registratorContext; } - /** - * Queue registration a data set and return a future for the data set that will be created. - */ - public FutureDataSet queueDataSetRegistration(File dataSetFile, - final DataSetRegistrationDetails<T> details) - { - DataSetRegistrationAlgorithm registration = - createRegistrationAlgorithm(dataSetFile, details); - dataSetRegistrations.add(registration); - - FutureDataSet future = - new FutureDataSet(registration.getDataSetInformation().getDataSetCode()); - return future; - } - /** * Create a new transaction that atomically performs file operations and registers entities. */ @@ -365,62 +306,6 @@ public class DataSetRegistrationService<T extends DataSetInformation> implements } } - private DataSetRegistrationAlgorithm createRegistrationAlgorithm(File aDataSetFile, - DataSetRegistrationDetails<T> details) - { - final TopLevelDataSetRegistratorGlobalState globalState = - registratorContext.getGlobalState(); - details.getDataSetInformation().setShareId(globalState.getShareId()); - final IDelegatedActionWithResult<Boolean> cleanAfterwardsAction = - new DoNothingDelegatedAction(); - - IDataStoreStrategy dataStoreStrategy = - registratorContext.getDataStrategyStore().getDataStoreStrategy( - details.getDataSetInformation(), aDataSetFile); - - DataSetRegistrationAlgorithmState state = - new DataSetRegistrationAlgorithmState(aDataSetFile, - globalState.getOpenBisService(), cleanAfterwardsAction, - registratorContext.getPreRegistrationAction(), - registratorContext.getPostRegistrationAction(), - details.getDataSetInformation(), dataStoreStrategy, details, - registratorContext.getStorageProcessor(), - registratorContext.getFileOperations(), globalState.getDataSetValidator(), - globalState.getMailClient(), globalState.isDeleteUnidentified(), - registratorContext.getRegistrationLock(), globalState.getDssCode(), - globalState.isNotifySuccessfulRegistration()); - return new DataSetRegistrationAlgorithm(state, this, - new DefaultApplicationServerRegistrator(registrator, - details.getDataSetInformation())); - } - - private static class DefaultApplicationServerRegistrator implements - DataSetRegistrationAlgorithm.IDataSetInApplicationServerRegistrator - { - private final AbstractOmniscientTopLevelDataSetRegistrator<?> registrator; - - private final DataSetInformation dataSetInformation; - - DefaultApplicationServerRegistrator( - AbstractOmniscientTopLevelDataSetRegistrator<?> registrator, - DataSetInformation dataSetInformation) - { - this.dataSetInformation = dataSetInformation; - this.registrator = registrator; - } - - public void registerDataSetInApplicationServer(NewExternalData data) throws Throwable - { - registrator.registerDataSetInApplicationServer(dataSetInformation, data); - } - } - - public void rollback(DataSetRegistrationAlgorithm algorithm, Throwable ex) - { - encounteredErrors.add(ex); - registrator.rollback(this, algorithm, ex); - } - protected AbstractOmniscientTopLevelDataSetRegistrator<T> getRegistrator() { return registrator; diff --git a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java index b4cc428fa57..9f1422fb2d2 100644 --- a/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java +++ b/datastore_server/source/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetHandler.java @@ -40,12 +40,6 @@ import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends AbstractOmniscientTopLevelDataSetRegistrator<T> { - /** - * The name of the function to define to hook into the data set registration rollback mechanism. - */ - private static final String ROLLBACK_DATA_SET_REGISTRATION_FUNCTION_NAME = - "rollback_data_set_registration"; - /** * The name of the function to define to hook into the service rollback mechanism. */ @@ -165,22 +159,6 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends return service; } - @Override - public void rollback(DataSetRegistrationService<T> service, - DataSetRegistrationAlgorithm registrationAlgorithm, Throwable throwable) - { - PythonInterpreter interpreter = getInterpreterFromService(service); - PyFunction function = - tryJythonFunction(interpreter, ROLLBACK_DATA_SET_REGISTRATION_FUNCTION_NAME); - if (null != function) - { - invokeRollbackDataSetRegistrationFunction(function, service, registrationAlgorithm, - throwable); - } - - super.rollback(service, registrationAlgorithm, throwable); - } - @Override protected void rollback(DataSetRegistrationService<T> service, Throwable throwable) { @@ -212,6 +190,15 @@ public class JythonTopLevelDataSetHandler<T extends DataSetInformation> extends if (null != function) { invokeRollbackTransactionFunction(function, service, transaction, algorithmRunner, ex); + } else + { + // No Rollback transaction function was called, see if the rollback service function was + // defined, and call it. + function = tryJythonFunction(interpreter, ROLLBACK_SERVICE_FUNCTION_NAME); + if (null != function) + { + invokeRollbackServiceFunction(function, service, ex); + } } } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java index 44a020b530a..758cc12161e 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/etlserver/registrator/JythonTopLevelDataSetRegistratorTest.java @@ -986,14 +986,6 @@ public class JythonTopLevelDataSetRegistratorTest extends AbstractFileSystemTest } } - @Override - public void rollback(DataSetRegistrationService<DataSetInformation> service, - DataSetRegistrationAlgorithm registrationAlgorithm, Throwable throwable) - { - super.rollback(service, registrationAlgorithm, throwable); - didDataSetRollbackHappen = true; - } - @Override public void rollback(DataSetRegistrationService<DataSetInformation> service, Throwable throwable) -- GitLab