Class JythonTopLevelDataSetHandlerV2<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
- java.lang.Object
-
- ch.systemsx.cisd.etlserver.AbstractTopLevelDataSetRegistrator
-
- ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator<T>
-
- ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T>
-
- ch.systemsx.cisd.etlserver.registrator.api.v2.JythonTopLevelDataSetHandlerV2<T>
-
- All Implemented Interfaces:
ch.systemsx.cisd.common.filesystem.FaultyPathDirectoryScanningHandler.IFaultyPathDirectoryScanningHandlerDelegate,ch.systemsx.cisd.common.filesystem.IPathHandler,ch.systemsx.cisd.common.filesystem.IStopSignaler,ch.systemsx.cisd.common.utilities.ISelfTestable,ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistrator,ch.systemsx.cisd.etlserver.registrator.v2.IOmniscientEntityRegistrator<T>
public class JythonTopLevelDataSetHandlerV2<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation> extends ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T>A top-level data set handler that runs a python (jython) script to register data sets.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJythonTopLevelDataSetHandlerV2.JythonDataSetRegistrationService<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>static classJythonTopLevelDataSetHandlerV2.JythonHookFunctionstatic classJythonTopLevelDataSetHandlerV2.ProgrammableDropboxObjectFactory<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>-
Nested classes/interfaces inherited from class ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler
ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler.RecoveryHookAdaptor
-
Nested classes/interfaces inherited from class ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator
ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator.DoNothingDelegatedAction, ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator.NoOpDelegate, ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator.OmniscientTopLevelDataSetRegistratorState, ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator.PostRegistrationCleanUpAction
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringFACTORY_VARIABLE_NAMEprotected static java.lang.StringINCOMING_DATA_SET_VARIABLE_NAMEThe name of the local variable under which the incoming directory is made available to the script.static java.lang.StringJYTHON_VERSIONprotected ch.systemsx.cisd.common.jython.IJythonInterpreterFactoryjythonInterpreterFactorystatic java.lang.StringSCRIPT_PATH_KEYprotected java.io.FilescriptFileprotected static java.lang.StringSERVICE_VARIABLE_NAMEThe name of the local variable under which the service is made available to the script.protected static java.lang.StringSTATE_VARIABLE_NAMEThe name of the local variable under which the global stateprotected static java.lang.StringTRANSACTION_VARIABLE_NAMEThe name of the local variable under which the transaction is made available to the script.
-
Constructor Summary
Constructors Constructor Description JythonTopLevelDataSetHandlerV2(ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState globalState)Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T>createDataSetRegistrationService(ch.systemsx.cisd.etlserver.registrator.DataSetFile incomingDataSetFile, ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation callerDataSetInformationOrNull, ch.systemsx.cisd.common.action.IDelegatedActionWithResult<java.lang.Boolean> cleanAfterwardsAction, ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate delegate)Create a registration service that includes a python interpreter (we need the interpreter in the service so we can use it in error handling).protected ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T>createJythonDataSetRegistrationServiceV2(ch.systemsx.cisd.etlserver.registrator.DataSetFile incomingDataSetFile, ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation userProvidedDataSetInformationOrNull, ch.systemsx.cisd.common.action.IDelegatedActionWithResult<java.lang.Boolean> cleanAfterwardsAction, ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate delegate, ch.systemsx.cisd.common.jython.IJythonInterpreter pythonInterpreter, ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState globalState)Create a Jython registration service that includes access to the interpreter.protected voidexecuteJythonScript(ch.systemsx.cisd.etlserver.registrator.DataSetFile dataSetFile, java.lang.String scriptString, JythonTopLevelDataSetHandlerV2.JythonDataSetRegistrationService<T> service)protected ch.systemsx.cisd.common.jython.IJythonInterpretergetInterpreterFromService(ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> service)protected ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler.RecoveryHookAdaptorgetRecoveryHookAdaptor(java.io.File incoming)protected IJavaDataSetRegistrationDropboxV2getV2DropboxProgram(ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> service)voidhandleDataSet(ch.systemsx.cisd.etlserver.registrator.DataSetFile dataSetFile, ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> genericService)protected booleanhasRecoveryMarkerFile(java.io.File incoming)booleanshouldNotAddToFaultyPathsOrNull(java.io.File file)V2 registration framework -- do not put files that are scheduled for recovery into the faulty paths.static ch.systemsx.cisd.common.jython.IJythonFunctiontryJythonFunction(ch.systemsx.cisd.common.jython.IJythonInterpreter interpreter, JythonTopLevelDataSetHandlerV2.JythonHookFunction functionDefinition)protected voidverifyEvaluatorHookFunctions(ch.systemsx.cisd.common.jython.IJythonInterpreter interpreter)-
Methods inherited from class ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler
asSerializableException, createJythonDataSetRegistrationService, createObjectFactory, didCommitTransaction, didPostRegistration, didPreRegistration, didRollbackTransaction, executeProcessFunctionWithRetries, handleRecovery, waitTheRetryPeriod, waitUntilApplicationIsReady, wrapTransaction
-
Methods inherited from class ch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator
check, didEncounterSecondaryTransactionErrors, getRegistrationLock, getRegistratorState, getRollBackStackParentFolder, handle, handle, handle, handleValidationErrors, isRemote, isStopped, registerDataSetInApplicationServer, rollback, updateStopped
-
Methods inherited from class ch.systemsx.cisd.etlserver.AbstractTopLevelDataSetRegistrator
getGlobalState, isUseIsFinishedMarkerFile
-
-
-
-
Field Detail
-
jythonInterpreterFactory
protected final ch.systemsx.cisd.common.jython.IJythonInterpreterFactory jythonInterpreterFactory
-
JYTHON_VERSION
public static final java.lang.String JYTHON_VERSION
- See Also:
- Constant Field Values
-
FACTORY_VARIABLE_NAME
protected static final java.lang.String FACTORY_VARIABLE_NAME
- See Also:
- Constant Field Values
-
SERVICE_VARIABLE_NAME
protected static final java.lang.String SERVICE_VARIABLE_NAME
The name of the local variable under which the service is made available to the script.- See Also:
- Constant Field Values
-
STATE_VARIABLE_NAME
protected static final java.lang.String STATE_VARIABLE_NAME
The name of the local variable under which the global state- See Also:
- Constant Field Values
-
INCOMING_DATA_SET_VARIABLE_NAME
protected static final java.lang.String INCOMING_DATA_SET_VARIABLE_NAME
The name of the local variable under which the incoming directory is made available to the script.- See Also:
- Constant Field Values
-
TRANSACTION_VARIABLE_NAME
protected static final java.lang.String TRANSACTION_VARIABLE_NAME
The name of the local variable under which the transaction is made available to the script.- See Also:
- Constant Field Values
-
SCRIPT_PATH_KEY
public static final java.lang.String SCRIPT_PATH_KEY
- See Also:
- Constant Field Values
-
scriptFile
protected final java.io.File scriptFile
-
-
Method Detail
-
createDataSetRegistrationService
protected ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> createDataSetRegistrationService(ch.systemsx.cisd.etlserver.registrator.DataSetFile incomingDataSetFile, ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation callerDataSetInformationOrNull, ch.systemsx.cisd.common.action.IDelegatedActionWithResult<java.lang.Boolean> cleanAfterwardsAction, ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate delegate)
Create a registration service that includes a python interpreter (we need the interpreter in the service so we can use it in error handling).- Overrides:
createDataSetRegistrationServicein classch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
-
createJythonDataSetRegistrationServiceV2
protected ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> createJythonDataSetRegistrationServiceV2(ch.systemsx.cisd.etlserver.registrator.DataSetFile incomingDataSetFile, ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation userProvidedDataSetInformationOrNull, ch.systemsx.cisd.common.action.IDelegatedActionWithResult<java.lang.Boolean> cleanAfterwardsAction, ch.systemsx.cisd.etlserver.ITopLevelDataSetRegistratorDelegate delegate, ch.systemsx.cisd.common.jython.IJythonInterpreter pythonInterpreter, ch.systemsx.cisd.etlserver.TopLevelDataSetRegistratorGlobalState globalState)
Create a Jython registration service that includes access to the interpreter.- Parameters:
pythonInterpreter-
-
executeJythonScript
protected void executeJythonScript(ch.systemsx.cisd.etlserver.registrator.DataSetFile dataSetFile, java.lang.String scriptString, JythonTopLevelDataSetHandlerV2.JythonDataSetRegistrationService<T> service)
-
shouldNotAddToFaultyPathsOrNull
public boolean shouldNotAddToFaultyPathsOrNull(java.io.File file)
V2 registration framework -- do not put files that are scheduled for recovery into the faulty paths.- Specified by:
shouldNotAddToFaultyPathsOrNullin interfacech.systemsx.cisd.common.filesystem.FaultyPathDirectoryScanningHandler.IFaultyPathDirectoryScanningHandlerDelegate- Specified by:
shouldNotAddToFaultyPathsOrNullin classch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
-
hasRecoveryMarkerFile
protected boolean hasRecoveryMarkerFile(java.io.File incoming)
- Overrides:
hasRecoveryMarkerFilein classch.systemsx.cisd.etlserver.registrator.v2.AbstractOmniscientTopLevelDataSetRegistrator<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
-
getV2DropboxProgram
protected IJavaDataSetRegistrationDropboxV2 getV2DropboxProgram(ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> service)
- Specified by:
getV2DropboxProgramin classch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
-
getRecoveryHookAdaptor
protected ch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler.RecoveryHookAdaptor getRecoveryHookAdaptor(java.io.File incoming)
- Specified by:
getRecoveryHookAdaptorin classch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>
-
handleDataSet
public void handleDataSet(ch.systemsx.cisd.etlserver.registrator.DataSetFile dataSetFile, ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> genericService) throws java.lang.Throwable- Specified by:
handleDataSetin classch.systemsx.cisd.etlserver.registrator.v2.AbstractProgrammableTopLevelDataSetHandler<T extends ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation>- Throws:
java.lang.Throwable
-
tryJythonFunction
public static ch.systemsx.cisd.common.jython.IJythonFunction tryJythonFunction(ch.systemsx.cisd.common.jython.IJythonInterpreter interpreter, JythonTopLevelDataSetHandlerV2.JythonHookFunction functionDefinition)
-
verifyEvaluatorHookFunctions
protected void verifyEvaluatorHookFunctions(ch.systemsx.cisd.common.jython.IJythonInterpreter interpreter)
-
getInterpreterFromService
protected ch.systemsx.cisd.common.jython.IJythonInterpreter getInterpreterFromService(ch.systemsx.cisd.etlserver.registrator.v2.DataSetRegistrationService<T> service)
-
-