From 384a260af7d42b7c66bd502e37eedfbb3131abee Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 9 Sep 2009 10:03:59 +0000 Subject: [PATCH] SE-137 Do data set uploading to result database in StorageProcessorWithResultDataSetUpLoader SVN: 12529 --- .../phosphonetx/AbundanceHandler.java | 2 +- ...taSetHandler.java => ProtXMLUploader.java} | 43 +++---------------- ...ageProcessorWithResultDataSetUploader.java | 43 +++++++++++++++++++ 3 files changed, 50 insertions(+), 38 deletions(-) rename rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/{ResultDataSetHandler.java => ProtXMLUploader.java} (67%) create mode 100644 rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/StorageProcessorWithResultDataSetUploader.java diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/AbundanceHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/AbundanceHandler.java index 095ea00d214..a6390d17268 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/AbundanceHandler.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/AbundanceHandler.java @@ -66,7 +66,7 @@ class AbundanceHandler extends AbstractHandler void addAbundancesToDatabase(Parameter parameter, long proteinID, String proteinName) { - Sample sample = getOrCreateSample(parameter.getName().toUpperCase(), proteinName); + Sample sample = getOrCreateSample(parameter.getName(), proteinName); try { dao diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetHandler.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java similarity index 67% rename from rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetHandler.java rename to rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java index 94e6802c8dc..559aeb63029 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ResultDataSetHandler.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/ProtXMLUploader.java @@ -19,7 +19,6 @@ package ch.systemsx.cisd.openbis.etlserver.phosphonetx; import java.io.File; import java.sql.Connection; import java.sql.SQLException; -import java.util.List; import java.util.Properties; import javax.sql.DataSource; @@ -27,13 +26,11 @@ import javax.sql.DataSource; import org.apache.log4j.Logger; import ch.systemsx.cisd.base.exceptions.CheckedExceptionTunnel; -import ch.systemsx.cisd.common.exceptions.ConfigurationFailureException; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; -import ch.systemsx.cisd.common.utilities.ExtendedProperties; import ch.systemsx.cisd.common.utilities.PropertyUtils; import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; -import ch.systemsx.cisd.etlserver.IDataSetHandler; +import ch.systemsx.cisd.etlserver.IDataSetUploader; import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; import ch.systemsx.cisd.openbis.dss.generic.shared.dto.DataSetInformation; import ch.systemsx.cisd.openbis.etlserver.phosphonetx.dto.ProteinSummary; @@ -41,7 +38,7 @@ import ch.systemsx.cisd.openbis.etlserver.phosphonetx.dto.ProteinSummary; /** * @author Franz-Josef Elmer */ -public class ResultDataSetHandler implements IDataSetHandler +public class ProtXMLUploader implements IDataSetUploader { private static final String DATABASE_ENGINE = "database.engine"; @@ -56,7 +53,7 @@ public class ResultDataSetHandler implements IDataSetHandler private static final String DATABASE_PASSWORD = "database.password"; private static final Logger operationLog = - LogFactory.getLogger(LogCategory.OPERATION, ResultDataSetHandler.class); + LogFactory.getLogger(LogCategory.OPERATION, ProtXMLUploader.class); private static DataSource createDataSource(Properties properties) { @@ -70,26 +67,20 @@ public class ResultDataSetHandler implements IDataSetHandler return context.getDataSource(); } - private final IDataSetHandler delegator; - private final ProtXMLLoader loader; private final IEncapsulatedOpenBISService openbisService; private final DataSource dataSource; - public ResultDataSetHandler(Properties properties, IDataSetHandler delegator, - IEncapsulatedOpenBISService openbisService) + public ProtXMLUploader(Properties properties, IEncapsulatedOpenBISService openbisService) { - dataSource = - createDataSource(ExtendedProperties.getSubset(properties, - IDataSetHandler.DATASET_HANDLER_KEY + '.', true)); - this.delegator = delegator; + dataSource = createDataSource(properties); this.openbisService = openbisService; loader = new ProtXMLLoader(); } - public List<DataSetInformation> handleDataSet(File dataSet) + public void upload(File dataSet, DataSetInformation dataSetInformation) { long time = System.currentTimeMillis(); ProteinSummary summary = loader.readProtXML(dataSet); @@ -100,25 +91,6 @@ public class ResultDataSetHandler implements IDataSetHandler + (System.currentTimeMillis() - time) + " msec"); } time = System.currentTimeMillis(); - List<DataSetInformation> dataSets = delegator.handleDataSet(dataSet); - if (dataSets.isEmpty()) - { - throw new ConfigurationFailureException( - "Data set not registered due to some error. See error folder in data store."); - } - if (dataSets.size() != 1) - { - throw new ConfigurationFailureException(dataSets.size() + " data set registered: " - + "Only data set handlers (like the primary one) " - + "registering exactly one data set are allowed."); - } - DataSetInformation dataSetInformation = dataSets.get(0); - if (operationLog.isInfoEnabled()) - { - operationLog.info("Registration at openBIS took " + (System.currentTimeMillis() - time) - + " msec: " + dataSetInformation); - } - time = System.currentTimeMillis(); Connection connection; try { @@ -129,15 +101,12 @@ public class ResultDataSetHandler implements IDataSetHandler throw CheckedExceptionTunnel.wrapIfNecessary(ex); } ResultDataSetUploader upLoader = new ResultDataSetUploader(connection, openbisService); - // TODO 2009-08-11, Tomasz Pylak: if the uploader fails, the dataset handling by the - // delegator should be rollbacked (or maybe xml upload should be the first phase?) upLoader.upload(dataSetInformation, summary); if (operationLog.isInfoEnabled()) { operationLog.info("Feeding result database took " + (System.currentTimeMillis() - time) + " msec."); } - return dataSets; } } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/StorageProcessorWithResultDataSetUploader.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/StorageProcessorWithResultDataSetUploader.java new file mode 100644 index 00000000000..3d66c964caf --- /dev/null +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/phosphonetx/StorageProcessorWithResultDataSetUploader.java @@ -0,0 +1,43 @@ +/* + * Copyright 2009 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.etlserver.phosphonetx; + +import java.io.File; +import java.util.Properties; + +import ch.systemsx.cisd.etlserver.AbstractStrorageProcessorWithUploader; +import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; + +/** + * + * + * @author Franz-Josef Elmer + */ +public class StorageProcessorWithResultDataSetUploader extends AbstractStrorageProcessorWithUploader +{ + + public StorageProcessorWithResultDataSetUploader(Properties properties) + { + super(properties, new ProtXMLUploader(properties, ServiceProvider.getOpenBISService())); + } + + @Override + protected void logDataSetFileError(File incomingDataSetDirectory, Throwable exception) + { + } + +} -- GitLab