diff --git a/eu_basysbio/source/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandler.java b/eu_basysbio/source/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandler.java index dcfb3f17ad9ce08eec4c3264002d6b95ae1e9f9d..7075dc61d24611b6aa5e56fed93bb08037e43905 100644 --- a/eu_basysbio/source/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandler.java +++ b/eu_basysbio/source/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandler.java @@ -35,7 +35,6 @@ import ch.systemsx.cisd.common.mail.MailClient; import ch.systemsx.cisd.common.utilities.ITimeProvider; import ch.systemsx.cisd.common.utilities.SystemTimeProvider; import ch.systemsx.cisd.etlserver.IDataSetHandler; -import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; @@ -51,7 +50,6 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler @Private static final String HELPDESK_EMAIL = "helpdesk.openbis.basysbio@bsse.ethz.ch"; - private static enum TypeOfDerivedDataSet { TIME_POINT("time point"), LCA_MIC_TIME_SERIES("LCA MIC time series"); @@ -153,17 +151,17 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler } - private static final Logger operationLog = - LogFactory.getLogger(LogCategory.OPERATION, TimeSeriesAndTimePointDataSetHandler.class); + private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, + TimeSeriesAndTimePointDataSetHandler.class); private static final FilenameFilter LCA_MIC_TIME_SERIES_FILE_FILTER = new FilenameFilter() - { - - public boolean accept(File dir, String name) { - return name.startsWith(DataSetHandler.LCA_MIC_TIME_SERIES); - } - }; + + public boolean accept(File dir, String name) + { + return name.startsWith(DataSetHandler.LCA_MIC_TIME_SERIES); + } + }; private final IDataSetHandler delegator; @@ -171,24 +169,19 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler private final ITimeProvider timeProvider; - private final IEncapsulatedOpenBISService service; - public TimeSeriesAndTimePointDataSetHandler(Properties parentProperties, - IDataSetHandler delegator, IEncapsulatedOpenBISService openbisService) + IDataSetHandler delegator) { this.delegator = delegator; - this.service = openbisService; this.mailClient = new MailClient(parentProperties); timeProvider = SystemTimeProvider.SYSTEM_TIME_PROVIDER; } @Private - TimeSeriesAndTimePointDataSetHandler(IDataSetHandler delegator, - IEncapsulatedOpenBISService openbisService, IMailClient mailClient, + TimeSeriesAndTimePointDataSetHandler(IDataSetHandler delegator, IMailClient mailClient, ITimeProvider timeProvider) { this.delegator = delegator; - service = openbisService; this.mailClient = mailClient; this.timeProvider = timeProvider; } @@ -205,28 +198,21 @@ public class TimeSeriesAndTimePointDataSetHandler implements IDataSetHandler { DataSetInformation dataSetInformation = result.get(0); MessageBuilder builder = - new MessageBuilder(dataSetInformation.tryGetUploadingUserEmail(), timeProvider); + new MessageBuilder(dataSetInformation.tryGetUploadingUserEmail(), + timeProvider); builder.setDataSetFileName(dataSet); File[] files = dataSet.getParentFile().listFiles(LCA_MIC_TIME_SERIES_FILE_FILTER); handleDerivedDataSets(files, TypeOfDerivedDataSet.LCA_MIC_TIME_SERIES, delegator, - dataSetInfos, builder); + dataSetInfos, builder); DataSetType dataSetType = dataSetInformation.getDataSetType(); boolean lcaMicTimeSeries = - dataSetType.getCode().equals(DataSetHandler.LCA_MIC_TIME_SERIES); - builder.logSendEMailAndHandlerError(operationLog, mailClient, lcaMicTimeSeries == false); + dataSetType.getCode().equals(DataSetHandler.LCA_MIC_TIME_SERIES); + builder.logSendEMailAndHandlerError(operationLog, mailClient, + lcaMicTimeSeries == false); } catch (RuntimeException ex) { - // Data sets are deleted in reverse order because of possible parent-child relationships. - for (int i = dataSetInfos.size() - 1; i >= 0; i--) - { - String dataSetCode = dataSetInfos.get(i).getDataSetCode(); - if (operationLog.isInfoEnabled()) - { - operationLog.info("Delete data set " + dataSetCode); - } - service.deleteDataSet(dataSetCode, "Rollback registration"); - } - throw ex; + // NOTE: the code to delete data sets is not supported any more + throw new RuntimeException("Exception can't be handled properly any more.", ex); } } return dataSetInfos; diff --git a/eu_basysbio/sourceTest/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandlerTest.java b/eu_basysbio/sourceTest/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandlerTest.java index 3547d08c0aa641e0883f7959766d24a7535acaea..9ac66133a0337585263591e475d8b21ba793167c 100644 --- a/eu_basysbio/sourceTest/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandlerTest.java +++ b/eu_basysbio/sourceTest/java/eu/basysbio/cisd/dss/TimeSeriesAndTimePointDataSetHandlerTest.java @@ -40,16 +40,13 @@ import ch.systemsx.cisd.common.mail.From; import ch.systemsx.cisd.common.mail.IMailClient; import ch.systemsx.cisd.common.utilities.ITimeProvider; import ch.systemsx.cisd.etlserver.IDataSetHandler; -import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; /** - * - * * @author Franz-Josef Elmer */ -@Friend(toClasses=TimeSeriesAndTimePointDataSetHandler.class) +@Friend(toClasses = TimeSeriesAndTimePointDataSetHandler.class) public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystemTestCase { private static final class StringMatcher extends BaseMatcher<String> @@ -77,15 +74,20 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem description.appendText(expectedString); } } - + private Mockery context; + private IDataSetHandler delegator; + private IMailClient mailClient; + private IDataSetHandler handler; + private File dropBox; + private File timePointFolder; + private ITimeProvider timeProvider; - private IEncapsulatedOpenBISService service; @BeforeMethod public void beforeMethod() throws Exception @@ -94,15 +96,12 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem LogInitializer.init(); context = new Mockery(); delegator = context.mock(IDataSetHandler.class, "delegator"); - service = context.mock(IEncapsulatedOpenBISService.class); mailClient = context.mock(IMailClient.class); timeProvider = context.mock(ITimeProvider.class); dropBox = new File(workingDirectory, "drop-box"); timePointFolder = new File(workingDirectory, "time-point-folder"); timePointFolder.mkdirs(); - handler = - new TimeSeriesAndTimePointDataSetHandler(delegator, service, mailClient, - timeProvider); + handler = new TimeSeriesAndTimePointDataSetHandler(delegator, mailClient, timeProvider); } @AfterMethod @@ -112,7 +111,7 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem // Otherwise one does not known which test failed. context.assertIsSatisfied(); } - + @Test public void testFailingTimeSeriesRegistration() { @@ -123,9 +122,9 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem will(returnValue(Arrays.asList())); } }); - + List<DataSetInformation> dataSets = handler.handleDataSet(dropBox); - + assertEquals(0, dataSets.size()); context.assertIsSatisfied(); } @@ -185,7 +184,7 @@ public class TimeSeriesAndTimePointDataSetHandlerTest extends AbstractFileSystem assertSame(dataSetInformation, dataSets.get(0)); context.assertIsSatisfied(); } - + private void prepareSendingEMail(final String expectedSubject, final String expectedMessage, final DataSetInformation dataSetInformation, final boolean alsoToHelpDesk) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java index f2cc86e2880c491335a8771c6a40ba330f1f6fa2..cdf4599db4b373bc0922a39218b8e4866605e1e6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/ETLService.java @@ -58,7 +58,6 @@ import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataStoreDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IEntityTypeDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IPersonDAO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.ISampleTypeDAO; -import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin; import ch.systemsx.cisd.openbis.generic.shared.IDataStoreService; import ch.systemsx.cisd.openbis.generic.shared.IETLLIMSService; import ch.systemsx.cisd.openbis.generic.shared.IServer; @@ -73,7 +72,6 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseInstance; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletedDataSet; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DeletionType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailedSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; @@ -154,13 +152,13 @@ import ch.systemsx.cisd.openbis.generic.shared.translator.EntityPropertyTranslat import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator.LoadableFields; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTypeTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.PersonTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ProjectTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTypeTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SimpleDataSetHelper; +import ch.systemsx.cisd.openbis.generic.shared.translator.SpaceTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.VocabularyTermTranslator; import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils; @@ -694,21 +692,6 @@ public class ETLService extends AbstractCommonServer<IETLLIMSService> implements registerDataSetInternal(session, experimentIdentifier, externalData); } - public void deleteDataSet(String sessionToken, String dataSetCode, String reason) - throws UserFailureException - { - Session session = getSession(sessionToken); - IDataDAO dataSetDAO = getDAOFactory().getDataDAO(); - DataPE dataSet = dataSetDAO.tryToFindFullDataSetByCode(dataSetCode, false, false); - if (dataSet != null && dataSet.isExternalData()) - { - DataSetTypePE dataSetType = dataSet.getDataSetType(); - IDataSetTypeSlaveServerPlugin plugin = getDataSetTypeSlaveServerPlugin(dataSetType); - plugin.deleteDataSets(session, Collections.singletonList(dataSet), reason, - DeletionType.PERMANENT); - } - } - public void addPropertiesToDataSet(String sessionToken, List<NewProperty> properties, String dataSetCode, SpaceIdentifier space) throws UserFailureException { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java index a170e6a0cc2a6f49bdd1b86d08ddf0306088aff1..1624225b8eabb5886630e8be109818117d80ecbd 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/IETLLIMSService.java @@ -341,21 +341,6 @@ public interface IETLLIMSService extends IServer, ISessionProvider @AuthorizationGuard(guardClass = SpaceIdentifierPredicate.class) final ExperimentIdentifier experimentIdentifier, final NewExternalData externalData) throws UserFailureException; - /** - * Deletes the specified data set if it exists. - * - * @param sessionToken The user authentication token. Must not be <code>null</code>. - * @param dataSetCode Data set code. - * @param reason Reason for deleting. - * @throws UserFailureException if given data set code could not be deleted. - */ - @Transactional - @RolesAllowed(RoleWithHierarchy.SPACE_ETL_SERVER) - @DatabaseCreateOrDeleteModification(value = ObjectKind.DATA_SET) - public void deleteDataSet(String sessionToken, - @AuthorizationGuard(guardClass = DataSetCodePredicate.class) String dataSetCode, - String reason) throws UserFailureException; - /** * Checks that the user of specified session has INSTANCE_ADMIN access rights. */