diff --git a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/plugins/jython/ScreeningJythonBasedDbModifyingAggregationServiceReportingPlugin.java b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/plugins/jython/ScreeningJythonBasedDbModifyingAggregationServiceReportingPlugin.java index 954909fb83338c0cb17d9589d5d099a6b9bcadeb..a62307a6859655616d76abf5945f62fafd62bd93 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/plugins/jython/ScreeningJythonBasedDbModifyingAggregationServiceReportingPlugin.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/dss/screening/server/plugins/jython/ScreeningJythonBasedDbModifyingAggregationServiceReportingPlugin.java @@ -19,8 +19,19 @@ package ch.systemsx.cisd.openbis.dss.screening.server.plugins.jython; import java.io.File; import java.util.Properties; +import ch.systemsx.cisd.common.utilities.IDelegatedActionWithResult; +import ch.systemsx.cisd.etlserver.registrator.AbstractOmniscientTopLevelDataSetRegistrator.NoOpDelegate; +import ch.systemsx.cisd.etlserver.registrator.api.v1.impl.DataSetRegistrationTransaction; +import ch.systemsx.cisd.etlserver.registrator.recovery.AutoRecoverySettings; +import ch.systemsx.cisd.etlserver.registrator.DataSetFile; +import ch.systemsx.cisd.etlserver.registrator.DataSetRegistrationService; +import ch.systemsx.cisd.etlserver.registrator.IDataSetRegistrationDetailsFactory; +import ch.systemsx.cisd.openbis.dss.etl.jython.ImagingDataSetRegistrationTransaction; +import ch.systemsx.cisd.openbis.dss.etl.jython.JythonPlateDataSetHandlerUtils; +import ch.systemsx.cisd.openbis.dss.etl.jython.JythonPlateDatasetFactory; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.IPluginScriptRunnerFactory; import ch.systemsx.cisd.openbis.dss.generic.server.plugins.jython.JythonBasedDbModifyingAggregationServiceReportingPlugin; +import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; /** * A version of the {@link JythonBasedDbModifyingAggregationServiceReportingPlugin} with extra @@ -52,4 +63,35 @@ public class ScreeningJythonBasedDbModifyingAggregationServiceReportingPlugin ex { super(properties, storeRoot, scriptRunnerFactory); } + + @Override + protected DataSetRegistrationService<DataSetInformation> createRegistrationService( + DataSetFile incoming, IDelegatedActionWithResult<Boolean> cleanUpAction, + NoOpDelegate delegate) + { + IDataSetRegistrationDetailsFactory<DataSetInformation> registrationDetailsFactory = + (IDataSetRegistrationDetailsFactory<DataSetInformation>) new JythonPlateDatasetFactory( + getRegistratorState(), null); + + DataSetRegistrationService<DataSetInformation> service = + new DataSetRegistrationService<DataSetInformation>(this, incoming, + registrationDetailsFactory, cleanUpAction, delegate) + { + @SuppressWarnings("unchecked") + @Override + protected DataSetRegistrationTransaction<DataSetInformation> createTransaction( + File rollBackStackParentFolder, + File workingDirectory, + File stagingDirectory, + IDataSetRegistrationDetailsFactory<DataSetInformation> factory) + { + return new ImagingDataSetRegistrationTransaction( + rollBackStackParentFolder, workingDirectory, stagingDirectory, + this, factory, + JythonPlateDataSetHandlerUtils.parseOriginalDir(properties), + AutoRecoverySettings.DO_NOT_USE_AUTO_RECOVERY); + } + }; + return service; + } }