diff --git a/rtd_phosphonetx/build/build.xml b/rtd_phosphonetx/build/build.xml index 934cd0a46f0665fd91df9a4a1fef23db31c826ae..55eb3d6f6523678b5000bff8158039daa9848aae 100644 --- a/rtd_phosphonetx/build/build.xml +++ b/rtd_phosphonetx/build/build.xml @@ -33,6 +33,9 @@ <include name="ch/systemsx/cisd/openbis/plugin/proteomics/shared/**/*.class" /> <include name="${proteomics-build.info.filename}" /> </fileset> + <fileset dir="../rtd_phosphonetx/source"> + <include name="**/*.sql" /> + </fileset> <manifest> <attribute name="Version" value="${version.number}" /> <attribute name="Build-Number" diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java new file mode 100644 index 0000000000000000000000000000000000000000..34de34da5f90afbce8ff1a544392c1aff998379a --- /dev/null +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/etlserver/proteomics/DatabaseVersionHolder.java @@ -0,0 +1,33 @@ +/* + * Copyright 2012 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.proteomics; + +import ch.systemsx.cisd.openbis.dss.generic.shared.IDatabaseVersionHolder; + +/** + * Holds the version of the proteomics database. + * + * @author Franz-Josef Elmer + */ +public class DatabaseVersionHolder implements IDatabaseVersionHolder +{ + public String getDatabaseVersion() + { + return "005"; // changed in S124 + } +} + diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java index 070bc0682ddd334294611f2dceac53cead3ce483..cca90bf4c7bb01b7903caec4e75e6bd2fdec695f 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinSequenceGrid.java @@ -29,6 +29,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.IPhosphoNetXClientServiceAsync; import ch.systemsx.cisd.openbis.plugin.proteomics.client.web.client.dto.ListProteinSequenceCriteria; @@ -46,9 +47,9 @@ public class ProteinSequenceGrid extends TypedTableGrid<ProteinSequence> public static final String GRID_ID = PREFIX + TypedTableGrid.GRID_POSTFIX; static IDisposableComponent create(IViewContext<IPhosphoNetXClientServiceAsync> viewContext, - TechId proteinReferenceID) + Experiment experimentOrNull, TechId proteinReferenceID) { - return new ProteinSequenceGrid(viewContext, proteinReferenceID) + return new ProteinSequenceGrid(viewContext, experimentOrNull, proteinReferenceID) .asDisposableWithoutToolbar(); } @@ -57,12 +58,16 @@ public class ProteinSequenceGrid extends TypedTableGrid<ProteinSequence> private ListProteinSequenceCriteria criteria; private ProteinSequenceGrid(IViewContext<IPhosphoNetXClientServiceAsync> viewContext, - TechId proteinReferenceID) + Experiment experimentOrNull, TechId proteinReferenceID) { super(viewContext.getCommonViewContext(), BROWSER_ID + proteinReferenceID, true, PhosphoNetXDisplayTypeIDGenerator.PROTEIN_SEQUENCE_BROWSER_GRID); specificViewContext = viewContext; criteria = new ListProteinSequenceCriteria(); + if (experimentOrNull != null) + { + criteria.setExperimentID(new TechId(experimentOrNull.getId())); + } criteria.setProteinReferenceID(proteinReferenceID); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java index 92fb27a5eff2ef927df3c55a86df8d9f4004af80..f16523ef81d9a67b62a973d3d84ac345014aadb4 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/application/ProteinViewer.java @@ -260,7 +260,7 @@ public class ProteinViewer extends AbstractViewerWithVerticalSplit<IEntityInform protected IDisposableComponent createDisposableContent() { return ProteinSequenceGrid.create(ProteinViewer.this.getViewContext(), - proteinReferenceID); + experimentOrNull, proteinReferenceID); } }; add(sequencesSection, createRightBorderLayoutData()); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java index 62bf4d4de048eb5ea540f288434cde8ca037502d..a06dea8c7821b0061d12bd613e63656ed11c17de 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/client/dto/ListProteinSequenceCriteria.java @@ -33,6 +33,7 @@ public class ListProteinSequenceCriteria extends IsSerializable { private TechId proteinReferenceID; + private TechId experimentID; public final TechId getProteinReferenceID() { @@ -43,4 +44,15 @@ public class ListProteinSequenceCriteria extends { this.proteinReferenceID = proteinReferenceID; } + + public void setExperimentID(TechId experimentID) + { + this.experimentID = experimentID; + } + + public TechId getExperimentID() + { + return experimentID; + } + } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java index b0ceedfcaccefab3aa29e413106ff0b4fbb92ca2..0a4dca52a9446723c80df91fdb90ec879ea62486 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/PhosphoNetXClientService.java @@ -310,7 +310,7 @@ public class PhosphoNetXClientService extends AbstractClientService implements { final String sessionToken = getSessionToken(); return listEntities( - new ProteinSequenceProvider(server, sessionToken, criteria.getProteinReferenceID()), + new ProteinSequenceProvider(server, sessionToken, criteria.getExperimentID(), criteria.getProteinReferenceID()), criteria); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java index 03390de6b095abb246f3c96c1b98dea3b4817400..1192d15682a9255761d58eb039893d4de4634396 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProvider.java @@ -38,13 +38,15 @@ public class ProteinSequenceProvider extends AbstractTableModelProvider<ProteinS { private final IPhosphoNetXServer server; private final String sessionToken; + private final TechId experimentID; private final TechId proteinReferenceID; public ProteinSequenceProvider(IPhosphoNetXServer server, String sessionToken, - TechId proteinReferenceID) + TechId experimentID, TechId proteinReferenceID) { this.server = server; this.sessionToken = sessionToken; + this.experimentID = experimentID; this.proteinReferenceID = proteinReferenceID; } @@ -52,7 +54,7 @@ public class ProteinSequenceProvider extends AbstractTableModelProvider<ProteinS protected TypedTableModel<ProteinSequence> createTableModel() { List<ProteinSequence> sequences = - server.listProteinSequencesByProteinReference(sessionToken, proteinReferenceID); + server.listProteinSequencesByProteinReference(sessionToken, experimentID, proteinReferenceID); TypedTableModelBuilder<ProteinSequence> builder = new TypedTableModelBuilder<ProteinSequence>(); builder.addColumn(SEQUENCE_SHORT_NAME).withDefaultWidth(20); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java index ae1701df3052313a5e684540c3b37ca940d0089a..843c343143b3e6222d8474ce92b60ab169de63a0 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServer.java @@ -123,7 +123,7 @@ public class PhosphoNetXServer extends AbstractServer<IPhosphoNetXServer> implem ISampleProvider sampleProvider, TechId experimentID, String treatmentTypeOrNull) { String experimentPermID = getExperimentPermIDFor(experimentID); - IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(); + IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(experimentID); DataSet<String> samplePermIDs = dao.listAbundanceRelatedSamplePermIDsByExperiment(experimentPermID); try @@ -169,7 +169,7 @@ public class PhosphoNetXServer extends AbstractServer<IPhosphoNetXServer> implem TechId proteinReferenceID) throws UserFailureException { Session session = getSession(sessionToken); - IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(); + IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(experimentID); ProteinByExperiment proteinByExperiment = new ProteinByExperiment(); ProteinReference proteinReference = proteinQueryDAO.tryToGetProteinReference(proteinReferenceID.getId()); @@ -190,11 +190,11 @@ public class PhosphoNetXServer extends AbstractServer<IPhosphoNetXServer> implem } public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken, - TechId proteinReferenceID) throws UserFailureException + TechId experimentID, TechId proteinReferenceID) throws UserFailureException { final Session session = getSession(sessionToken); IProteinSequenceTable sequenceTable = specificBOFactory.createProteinSequenceTable(session); - sequenceTable.loadByReference(proteinReferenceID); + sequenceTable.loadByReference(experimentID, proteinReferenceID); return sequenceTable.getSequences(); } @@ -203,7 +203,7 @@ public class PhosphoNetXServer extends AbstractServer<IPhosphoNetXServer> implem { final Session session = getSession(sessionToken); IProteinSequenceTable sequenceTable = specificBOFactory.createProteinSequenceTable(session); - sequenceTable.loadByReference(proteinReferenceID); + sequenceTable.loadByReference(experimentId, proteinReferenceID); IDataSetProteinTable dataSetProteinTable = specificBOFactory.createDataSetProteinTable(session); dataSetProteinTable.load(getExperimentPermIDFor(experimentId), proteinReferenceID, sequenceTable); return dataSetProteinTable.getDataSetProteins(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java index ccf44388000c4d397eb584051a331d073690b843..f710f694f02d5650cfa00f11caf6a0e423115d38 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerLogger.java @@ -90,10 +90,10 @@ public class PhosphoNetXServerLogger extends AbstractServerLogger implements IPh } public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken, - TechId proteinReferenceID) throws UserFailureException + TechId experimentID, TechId proteinReferenceID) throws UserFailureException { logAccess(sessionToken, "list_protein_sequences_by_reference", - "PROTEIN_REFERENCE_ID(%s)", proteinReferenceID); + "EXPERIMENT_ID(%s) PROTEIN_REFERENCE_ID(%s)", experimentID, proteinReferenceID); return null; } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java index 8a6643aaa14b486f07a337ec07bfa5f8b4b3bdf9..c11bc4522c90ad3dc9aad239daf1377d5a82fd2a 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/DataSetProteinTable.java @@ -50,8 +50,8 @@ class DataSetProteinTable extends AbstractBusinessObject implements IDataSetProt public void load(String experimentPermID, TechId proteinReferenceID, IProteinSequenceTable sequenceTable) { - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); - ErrorModel errorModel = new ErrorModel(getSpecificDAOFactory()); + IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentPermID); + ErrorModel errorModel = new ErrorModel(proteinQueryDAO); DataSet<IdentifiedProtein> proteins = proteinQueryDAO.listProteinsByProteinReferenceAndExperiment(experimentPermID, proteinReferenceID.getId()); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java index 80e8f3986a5a97dc49f50ff9ee6475081bee51e2..dcf16b6e031976c65b6793e2c603bbd2a62b6c30 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModel.java @@ -21,7 +21,6 @@ import java.util.Map; import net.lemnik.eodsql.DataSet; -import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory; import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO; import ch.systemsx.cisd.openbis.plugin.proteomics.shared.ProbabilityToFDRCalculator; import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein; @@ -35,12 +34,11 @@ class ErrorModel { private final Map<Long, ProbabilityToFDRCalculator> calculators = new HashMap<Long, ProbabilityToFDRCalculator>(); + private final IProteinQueryDAO dao; - private final IPhosphoNetXDAOFactory specificDAOFactory; - - ErrorModel(IPhosphoNetXDAOFactory specificDAOFactory) + ErrorModel(IProteinQueryDAO dao) { - this.specificDAOFactory = specificDAOFactory; + this.dao = dao; } boolean passProtein(ProteinReferenceWithProtein protein, double falseDiscoveryRate) @@ -69,7 +67,6 @@ class ErrorModel if (calculator == null) { calculator = new ProbabilityToFDRCalculator(); - IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(); DataSet<ProbabilityFDRMapping> mappings = dao.getProbabilityFDRMapping(dataSetID); for (ProbabilityFDRMapping probabilityFDRMapping : mappings) { diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java index 45ab1915a503f72c891e3b22bb2c1f591a3cd484..f0bd8e7fd00d956d79b4fe0b6b04e94892c6f30b 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/IProteinSequenceTable.java @@ -29,7 +29,7 @@ import ch.systemsx.cisd.openbis.plugin.proteomics.shared.basic.dto.ProteinSequen public interface IProteinSequenceTable { - public void loadByReference(TechId proteinReferenceID); + public void loadByReference(TechId experimentID, TechId proteinReferenceID); public List<ProteinSequence> getSequences(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java index 57a67ff776ae59e0486fcb5405b41eb29aae3435..004b2d70f1c42e97dddd730314afc92791088654 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinDetailsBO.java @@ -61,7 +61,7 @@ class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetails public void loadByExperimentAndReference(TechId experimentID, TechId proteinReferenceID) { String experimentPermID = getExperimentPermIDFor(experimentID); - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); + IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID); DataSet<IdentifiedProtein> proteins = proteinQueryDAO.listProteinsByProteinReferenceAndExperiment(experimentPermID, proteinReferenceID.getId()); @@ -69,7 +69,7 @@ class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetails { if (proteins.size() == 1) { - ErrorModel errorModel = new ErrorModel(getSpecificDAOFactory()); + ErrorModel errorModel = new ErrorModel(proteinQueryDAO); IdentifiedProtein protein = proteins.get(0); errorModel.setFalseDiscoveryRateFor(protein); details = new ProteinDetails(); @@ -86,10 +86,10 @@ class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetails details.setDataSetTechID(ds.getId()); details.setDataSetTypeCode(ds.getDataSetType().getCode()); } - details.setPeptides(loadPeptides(protein)); + details.setPeptides(loadPeptides(proteinQueryDAO, protein)); long proteinID = protein.getProteinID(); details.setProteinID(new TechId(proteinID)); - details.setIndistinguishableProteinInfos(loadIndistinguishableProteinInfos(proteinID)); + details.setIndistinguishableProteinInfos(loadIndistinguishableProteinInfos(proteinQueryDAO, proteinID)); } } finally { @@ -97,9 +97,8 @@ class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetails } } - private List<IndistinguishableProteinInfo> loadIndistinguishableProteinInfos(long proteinID) + private List<IndistinguishableProteinInfo> loadIndistinguishableProteinInfos(IProteinQueryDAO proteinQueryDAO, long proteinID) { - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); DataSet<IndistinguishableProtein> proteins = proteinQueryDAO.listIndistinguishableProteinsByProteinID(proteinID); try @@ -125,9 +124,8 @@ class ProteinDetailsBO extends AbstractBusinessObject implements IProteinDetails } } - private List<Peptide> loadPeptides(IdentifiedProtein protein) + private List<Peptide> loadPeptides(IProteinQueryDAO proteinQueryDAO, IdentifiedProtein protein) { - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); DataSet<PeptideWithModification> identifiedPeptides = proteinQueryDAO.listIdentifiedPeptidesByProtein(protein.getProteinID()); try diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java index d2d620583e65380c0aeefca2f035c61823141aed..c5c08fbeb245dd5fd784d456b6641c7695c5c97a 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTable.java @@ -131,7 +131,7 @@ class ProteinInfoTable extends AbstractBusinessObject implements IProteinInfoTab { AbundanceManager abundanceManager = new AbundanceManager(sampleProvider); IPhosphoNetXDAOFactory specificDAOFactory = getSpecificDAOFactory(); - IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(); + IProteinQueryDAO dao = specificDAOFactory.getProteinQueryDAO(experimentPermID); long time = System.currentTimeMillis(); DataSet<ProteinReferenceWithProtein> dataSet = dao.listProteinReferencesByExperiment(experimentPermID); @@ -149,8 +149,8 @@ class ProteinInfoTable extends AbstractBusinessObject implements IProteinInfoTab dataSet.close(); } operationLog.info("(" + (System.currentTimeMillis() - time) + "ms) for listProteinReferencesByExperiment"); - Map<Long, List<ProteinAbundance>> abundancesPerProtein = getAbudancesPerProtein(proteinIDs); - ErrorModel errorModel = new ErrorModel(specificDAOFactory); + Map<Long, List<ProteinAbundance>> abundancesPerProtein = getAbudancesPerProtein(dao, proteinIDs); + ErrorModel errorModel = new ErrorModel(dao); for (ProteinReferenceWithProtein protein : proteins) { if (errorModel.passProtein(protein, falseDiscoveryRate)) @@ -162,9 +162,8 @@ class ProteinInfoTable extends AbstractBusinessObject implements IProteinInfoTab return abundanceManager; } - private Map<Long, List<ProteinAbundance>> getAbudancesPerProtein(LongOpenHashSet proteinIDs) + private Map<Long, List<ProteinAbundance>> getAbudancesPerProtein(IProteinQueryDAO dao, LongOpenHashSet proteinIDs) { - IProteinQueryDAO dao = getSpecificDAOFactory().getProteinQueryDAO(); long time = System.currentTimeMillis(); DataSet<ProteinAbundance> dataSet = dao.listProteinWithAbundanceByExperiment(proteinIDs); List<ProteinAbundance> proteinAbundances = new ArrayList<ProteinAbundance>(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java index 946ad65d4009a1ef642014072973cced0ddc0731..1b10940300a7b1c2eeaa19d70dbf181186806ecd 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTable.java @@ -69,7 +69,7 @@ class ProteinRelatedSampleTable implements IProteinRelatedSampleTable { String experimentPermID = daoFactory.getExperimentDAO().getByTechId(experimentID).getPermId(); - IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(); + IProteinQueryDAO proteinQueryDAO = specificDAOFactory.getProteinQueryDAO(experimentID); Map<String, List<SampleAbundance>> sampleAbundanceMap = createSampleMap(proteinQueryDAO.listSampleAbundanceByProtein(experimentPermID, proteinReferenceID.getId())); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java index 3fa864fc93ff5b633bcd548431fefca63fe7e18d..2ab3e6d555686508a841a39befa26ab384265934 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSequenceTable.java @@ -70,9 +70,9 @@ class ProteinSequenceTable extends AbstractBusinessObject implements IProteinSeq return shortName; } - public void loadByReference(TechId proteinReferenceID) + public void loadByReference(TechId experimentID, TechId proteinReferenceID) { - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); + IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID); DataSet<Sequence> sequences = proteinQueryDAO.listProteinSequencesByProteinReference(proteinReferenceID.getId()); proteinSequences = new ArrayList<ProteinSequence>(sequences.size()); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java index c8bd95e4610b70c8bfeee0175a1efbaaf017a8ba..ac8528e517cfcd02c10e8790fbb1e551d9c4f498 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTable.java @@ -107,8 +107,8 @@ class ProteinSummaryTable extends AbstractBusinessObject implements IProteinSumm { IExperimentDAO experimentDAO = getDaoFactory().getExperimentDAO(); String permID = experimentDAO.getByTechId(experimentID).getPermId(); - IProteinQueryDAO dao = getSpecificDAOFactory().getProteinQueryDAO(); - ErrorModel errorModel = new ErrorModel(getSpecificDAOFactory()); + IProteinQueryDAO dao = getSpecificDAOFactory().getProteinQueryDAO(experimentID); + ErrorModel errorModel = new ErrorModel(dao); DataSet<ProteinReferenceWithProbabilityAndPeptide> resultSet = dao.listProteinsWithProbabilityAndPeptidesByExperiment(permID); List<Counter> counters = new ArrayList<Counter>(FDR_LEVELS.length); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java index 2d92850ca72e6ecb8c6cc4dc53c6a164e30f8c58..b2cc41cc2c8baaed6e4b9c9f4030795b227b2f55 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/SampleTable.java @@ -61,7 +61,7 @@ class SampleTable extends AbstractBusinessObject implements ISampleTable public void loadSamplesWithAbundance(TechId experimentID, TechId proteinReferenceID) { samples = new ArrayList<SampleWithPropertiesAndAbundance>(); - IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(); + IProteinQueryDAO proteinQueryDAO = getSpecificDAOFactory().getProteinQueryDAO(experimentID); IDAOFactory daoFactory = getDaoFactory(); String experimentPermID = daoFactory.getExperimentDAO().getByTechId(experimentID).getPermId(); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java index f5629915e7d22c8066892bda1699652936bccda4..c063b1bb1224c2bd0927ab1a64b6225862c8e1df 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/IPhosphoNetXDAOFactory.java @@ -16,6 +16,8 @@ package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; + /** * A factory for PhosphoNetX specific DAOs. @@ -24,5 +26,7 @@ package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess; */ public interface IPhosphoNetXDAOFactory { - public IProteinQueryDAO getProteinQueryDAO(); + public IProteinQueryDAO getProteinQueryDAO(TechId experimentID); + + public IProteinQueryDAO getProteinQueryDAO(String experimentPermID); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java index dd45f366288c352cb303db797298699b2d101938..ed1cc9c4f2683260981f518639ac58d3535b3387 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/dataaccess/db/PhosphoNetXDAOFactory.java @@ -16,14 +16,27 @@ package ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.db; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; + import net.lemnik.eodsql.QueryTool; import org.apache.log4j.Logger; +import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.common.logging.LogCategory; import ch.systemsx.cisd.common.logging.LogFactory; -import ch.systemsx.cisd.dbmigration.DBMigrationEngine; -import ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataDAO; +import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDataSourceProvider; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE; +import ch.systemsx.cisd.openbis.generic.shared.dto.ExperimentPE; import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory; import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO; @@ -32,26 +45,84 @@ import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQuer */ public class PhosphoNetXDAOFactory implements IPhosphoNetXDAOFactory { - /** Current version of the database. */ - public static final String DATABASE_VERSION = "005"; - private static final Logger operationLog = LogFactory.getLogger(LogCategory.OPERATION, PhosphoNetXDAOFactory.class); + + private final Map<DataSource, IProteinQueryDAO> daos = new HashMap<DataSource, IProteinQueryDAO>(); - private final IProteinQueryDAO proteinQueryDAO; + private final IDAOFactory daoFactory; - public PhosphoNetXDAOFactory(DatabaseConfigurationContext context) + private final IDataSourceProvider dataSourceProvider; + + public PhosphoNetXDAOFactory(IDataSourceProvider dataSourceProvider, IDAOFactory daoFactory) { - DBMigrationEngine.createOrMigrateDatabaseAndGetScriptProvider(context, DATABASE_VERSION); - proteinQueryDAO = QueryTool.getQuery(context.getDataSource(), IProteinQueryDAO.class); + this.dataSourceProvider = dataSourceProvider; + this.daoFactory = daoFactory; if (operationLog.isInfoEnabled()) { operationLog.info("DAO factory for proteomics created."); } } - public IProteinQueryDAO getProteinQueryDAO() + public IProteinQueryDAO getProteinQueryDAO(String experimentPermID) + { + ExperimentPE experiment = daoFactory.getExperimentDAO().tryGetByPermID(experimentPermID); + if (experiment == null) + { + throw new UserFailureException("No experiment with following perm ID found: " + + experimentPermID); + } + return getProteinQueryDAO(experiment); + } + + public IProteinQueryDAO getProteinQueryDAO(TechId experimentID) { - return proteinQueryDAO; + ExperimentPE experiment = daoFactory.getExperimentDAO().tryGetByTechId(experimentID); + if (experiment == null) + { + throw new UserFailureException("No experiment with following technical ID found: " + + experimentID); + } + return getProteinQueryDAO(experiment); } + + public IProteinQueryDAO getProteinQueryDAO(ExperimentPE experiment) + { + DataSource dataSource = getDataSource(experiment); + IProteinQueryDAO dao = daos.get(dataSource); + if (dao == null) + { + dao = QueryTool.getQuery(dataSource, IProteinQueryDAO.class); + daos.put(dataSource, dao); + } + return dao; + } + + private DataSource getDataSource(ExperimentPE experiment) + { + IDataDAO dataDAO = daoFactory.getDataDAO(); + + List<DataPE> dataSets = dataDAO.listDataSets(experiment); + Set<String> dataStores = new HashSet<String>(); + for (DataPE data : dataSets) + { + dataStores.add(data.getDataStore().getCode()); + } + if (dataStores.isEmpty()) + { + throw new UserFailureException("Experiment with " + experiment.getIdentifier() + + " has no data sets."); + } + if (dataStores.size() > 1) + { + throw new UserFailureException("Experiment with " + experiment.getIdentifier() + + " has data sets from more than one store. The stores are the following: " + + dataStores); + } + DataSource dataSource = + dataSourceProvider.getDataSourceByDataStoreServerCode(dataStores.iterator() + .next(), "proteomics"); + return dataSource; + } + } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java index 3fc47cfda959d61720a33ff2cf5268f444dde8e0..283ca2b1b07655f6446b469d125aca7b7986a014 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/proteomics/shared/IPhosphoNetXServer.java @@ -81,7 +81,7 @@ public interface IPhosphoNetXServer extends IServer @Transactional @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) public List<ProteinSequence> listProteinSequencesByProteinReference(String sessionToken, - TechId proteinReferenceID) throws UserFailureException; + TechId experimentID, TechId proteinReferenceID) throws UserFailureException; @Transactional @RolesAllowed(RoleWithHierarchy.SPACE_OBSERVER) diff --git a/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml b/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml index 6834762327ba0cd0238c980d3b90be324a2a3cf1..59a6dcaf5320bc073c9eb81ddcc17d5e059d485e 100644 --- a/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml +++ b/rtd_phosphonetx/source/java/proteomics-plugin-applicationContext.xml @@ -7,29 +7,15 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> - <bean id="proteomics-db-configuration-context" - class="ch.systemsx.cisd.dbmigration.DatabaseConfigurationContext"> - <property name="basicDatabaseName" value="${proteomics.database.basic-name}" /> - <property name="createFromScratch" value="${proteomics.database.create-from-scratch}" /> - <property name="scriptSingleStepMode" value="${proteomics.database.script-single-step-mode}" /> - <property name="sequenceNameMapper"> - <bean class="ch.systemsx.cisd.openbis.generic.server.dataaccess.db.SequenceNameMapper" /> - </property> - <property name="urlHostPart" value="${proteomics.database.url-host-part}" /> - <property name="adminUser" value="${proteomics.database.admin-user}" /> - <property name="owner" value="${proteomics.database.owner}" /> - <property name="readOnlyGroup" value="phosphonetx_readonly" /> - <property name="password" value="${proteomics.database.owner-password}" /> - <property name="adminPassword" value="${proteomics.database.admin-password}" /> - <property name="databaseKind" value="${proteomics.database.kind}" /> - <property name="databaseEngineCode" value="${proteomics.database.engine}" /> - <property name="scriptFolder" value="${proteomics.script-folder}" /> - <property name="databaseInstance" value="${proteomics.database-instance}" /> + <bean id="dss-based-data-source-provider" class="ch.systemsx.cisd.openbis.generic.server.dataaccess.DataStoreServerBasedDataSourceProvider"> + <constructor-arg ref="dao-factory"/> </bean> + <bean id="proteomics-dao-factory" class="ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.db.PhosphoNetXDAOFactory"> - <constructor-arg ref="proteomics-db-configuration-context"/> + <constructor-arg ref="dss-based-data-source-provider"/> + <constructor-arg ref="dao-factory"/> </bean> <bean id="proteomics-bo-factory" diff --git a/rtd_phosphonetx/source/java/service.properties b/rtd_phosphonetx/source/java/service.properties index e465bbd10f2d0e2ab438c5cf50ba021fc3326b5e..5eeac2a677bbf7461e58e53d814f8d9ceb24c4b2 100644 --- a/rtd_phosphonetx/source/java/service.properties +++ b/rtd_phosphonetx/source/java/service.properties @@ -25,18 +25,6 @@ database.owner-password = database.admin-user = database.admin-password = -proteomics.database.engine = postgresql -proteomics.database.create-from-scratch = false -proteomics.database.script-single-step-mode = false -proteomics.database.url-host-part = -proteomics.database.basic-name = phosphonetx -proteomics.database.kind = dev -proteomics.database.owner = -proteomics.database.owner-password = -proteomics.database.admin-user = -proteomics.database.admin-password = -proteomics.script-folder = source/sql/proteomics - crowd.service.host = crowd.systemsx.ch crowd.service.port = 8443 crowd.application.name = lims @@ -64,6 +52,11 @@ hibernate.search.maxResults = 100000 web-client-configuration-file = etc/web-client.properties +dss-based-data-source-provider.data-store-servers = DSS1 +dss-based-data-source-provider.DSS1.database-driver = org.postgresql.Driver +dss-based-data-source-provider.DSS1.database-url = jdbc:postgresql://localhost/proteomics_dev + + # Database Configurations for Query module query-databases = 1, 2 @@ -77,4 +70,4 @@ query-databases = 1, 2 2.label = Protein Data 2.creator-minimal-role = SPACE_USER 2.database-driver = org.postgresql.Driver -2.database-url = jdbc:postgresql://localhost/phosphonetx_${proteomics.database.kind} +2.database-url = ${dss-based-data-source-provider.DSS1.database-url} diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java index 32bce8d1949989dea12aa0473b9ac2aeff7c095f..a08b7602edd125f207fd5dd093a697076ff77b9a 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/client/web/server/resultset/ProteinSequenceProviderTest.java @@ -46,12 +46,12 @@ public class ProteinSequenceProviderTest extends AbstractProviderTest context.checking(new Expectations() { { - one(phosphonetxServer).listProteinSequencesByProteinReference(SESSION_TOKEN, new TechId(42)); + one(phosphonetxServer).listProteinSequencesByProteinReference(SESSION_TOKEN, new TechId(42), new TechId(43)); will(returnValue(Arrays.asList(ps))); } }); ProteinSequenceProvider provider = - new ProteinSequenceProvider(phosphonetxServer, SESSION_TOKEN, new TechId(42)); + new ProteinSequenceProvider(phosphonetxServer, SESSION_TOKEN, new TechId(42), new TechId(43)); TypedTableModel<ProteinSequence> model = provider.createTableModel(); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java index db8c6772e1251054112ea74108a2f618db86dd23..05d74ca9b1307b7e7a5a5337e964dfb91fad5723 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/PhosphoNetXServerTest.java @@ -85,9 +85,6 @@ public class PhosphoNetXServerTest extends AbstractServerTestCase context.checking(new Expectations() { { - allowing(phosphoNetXDAOFactory).getProteinQueryDAO(); - will(returnValue(proteinDAO)); - allowing(boFactory).createProteinDetailsBO(SESSION); will(returnValue(proteinDetailsBO)); @@ -112,6 +109,9 @@ public class PhosphoNetXServerTest extends AbstractServerTestCase experimentPE.setPermId(EXPERIMENT_PERM_ID); will(returnValue(experimentPE)); + allowing(phosphoNetXDAOFactory).getProteinQueryDAO(EXPERIMENT_ID); + will(returnValue(proteinDAO)); + one(proteinDAO).listAbundanceRelatedSamplePermIDsByExperiment(EXPERIMENT_PERM_ID); will(returnValue(mockDataSet)); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java index 20771d7999e3d94c22c5cba8ac251585c5de58f4..3f8c5e9d52a9a9cd5bcd97a9eeef92df38962954 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/AbstractBOTestCase.java @@ -16,7 +16,6 @@ package ch.systemsx.cisd.openbis.plugin.proteomics.server.business; -import org.jmock.Expectations; import org.testng.annotations.BeforeMethod; import ch.systemsx.cisd.openbis.generic.shared.AbstractServerTestCase; @@ -40,13 +39,6 @@ public abstract class AbstractBOTestCase extends AbstractServerTestCase super.setUp(); specificDAOFactory = context.mock(IPhosphoNetXDAOFactory.class); proteinDAO = context.mock(IProteinQueryDAO.class); - context.checking(new Expectations() - { - { - allowing(specificDAOFactory).getProteinQueryDAO(); - will(returnValue(proteinDAO)); - } - }); } } diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java index 1e6ae7ebb69e969218e50cdb552cc96bf43b4d35..fdde68882d8cbd1e81e2ddb608b75b6c5a66392e 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ErrorModelTest.java @@ -24,8 +24,6 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import ch.systemsx.cisd.common.eodsql.MockDataSet; -import ch.systemsx.cisd.openbis.plugin.proteomics.server.business.ErrorModel; -import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IPhosphoNetXDAOFactory; import ch.systemsx.cisd.openbis.plugin.proteomics.server.dataaccess.IProteinQueryDAO; import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.IdentifiedProtein; import ch.systemsx.cisd.openbis.plugin.proteomics.shared.dto.ProbabilityFDRMapping; @@ -44,7 +42,6 @@ public class ErrorModelTest extends AssertJUnit private static final long DATA_SET3_ID = 44; private Mockery context; - private IPhosphoNetXDAOFactory specificDAOFactory; private IProteinQueryDAO proteinQueryDAO; private ErrorModel errorModel; @@ -52,14 +49,11 @@ public class ErrorModelTest extends AssertJUnit public void beforeMethod() { context = new Mockery(); - specificDAOFactory = context.mock(IPhosphoNetXDAOFactory.class); proteinQueryDAO = context.mock(IProteinQueryDAO.class); - errorModel = new ErrorModel(specificDAOFactory); + errorModel = new ErrorModel(proteinQueryDAO); context.checking(new Expectations() { { - allowing(specificDAOFactory).getProteinQueryDAO(); - will(returnValue(proteinQueryDAO)); atMost(1).of(proteinQueryDAO).getProbabilityFDRMapping(DATA_SET1_ID); MockDataSet<ProbabilityFDRMapping> dataSet1 = new MockDataSet<ProbabilityFDRMapping>(); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java index c9d1d92a2f983c63639ba001c6a6aa62d19900c5..00702afb6343b18c4c624bce8aab20b2fc212e57 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinInfoTableTest.java @@ -95,6 +95,7 @@ public class ProteinInfoTableTest extends AbstractBOTestCase @Test public void testLoadLeadingToAnEmptyTable() { + prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID); MockDataSet<ProteinReferenceWithProtein> proteinReferences = new MockDataSet<ProteinReferenceWithProtein>(); MockDataSet<ProteinAbundance> proteinAbundances = new MockDataSet<ProteinAbundance>(); prepareLoadDataSet(proteinReferences, proteinAbundances); @@ -112,6 +113,7 @@ public class ProteinInfoTableTest extends AbstractBOTestCase @Test public void testSimpleLoad() { + prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID); MockDataSet<ProteinReferenceWithProtein> proteinReferences = new MockDataSet<ProteinReferenceWithProtein>(); MockDataSet<ProteinAbundance> abundances = new MockDataSet<ProteinAbundance>(); @@ -182,6 +184,7 @@ public class ProteinInfoTableTest extends AbstractBOTestCase private void checkAggregationType(double expectedAbundance, boolean aggregateOriginal) { + prepareGetProteinQueryDAO(EXPERIMENT_PERM_ID); final MockDataSet<ProteinReferenceWithProtein> proteinReferences = new MockDataSet<ProteinReferenceWithProtein>(); ProteinReferenceWithProtein proteinReference = new ProteinReferenceWithProtein(); @@ -238,6 +241,17 @@ public class ProteinInfoTableTest extends AbstractBOTestCase context.assertIsSatisfied(); } + private void prepareGetProteinQueryDAO(final String experimentPermID) + { + context.checking(new Expectations() + { + { + one(specificDAOFactory).getProteinQueryDAO(experimentPermID); + will(returnValue(proteinDAO)); + } + }); + } + private void prepareLoadDataSet( final MockDataSet<ProteinReferenceWithProtein> proteinReferences, final DataSet<ProteinAbundance> proteinAbundances) diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java index f257e456f7f297491bee005b2318b36fa633765c..e32ad6a91cd9f8682c8d2abb0dd531cc157b8d64 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinRelatedSampleTableTest.java @@ -92,6 +92,9 @@ public class ProteinRelatedSampleTableTest extends AbstractBOTestCase context.checking(new Expectations() { { + one(specificDAOFactory).getProteinQueryDAO(experimentID); + will(returnValue(proteinDAO)); + one(experimentDAO).getByTechId(experimentID); ExperimentPE experiment = new ExperimentPE(); experiment.setPermId("exp-1"); diff --git a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java index 96a8e791d62bc18f443eefc1e32ecc00f1cd4b98..8bba9b0753f2aed1a87e7289c423a209fdb4fe5d 100644 --- a/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java +++ b/rtd_phosphonetx/sourceTest/java/ch/systemsx/cisd/openbis/plugin/proteomics/server/business/ProteinSummaryTableTest.java @@ -60,13 +60,6 @@ public class ProteinSummaryTableTest extends AbstractServerTestCase super.setUp(); specificDAOFactory = context.mock(IPhosphoNetXDAOFactory.class); proteinDAO = context.mock(IProteinQueryDAO.class); - context.checking(new Expectations() - { - { - allowing(specificDAOFactory).getProteinQueryDAO(); - will(returnValue(proteinDAO)); - } - }); table = new ProteinSummaryTable(daoFactory, specificDAOFactory, SESSION); } @@ -180,6 +173,9 @@ public class ProteinSummaryTableTest extends AbstractServerTestCase context.checking(new Expectations() { { + allowing(specificDAOFactory).getProteinQueryDAO(EXPERIMENT_ID); + will(returnValue(proteinDAO)); + one(experimentDAO).getByTechId(EXPERIMENT_ID); ExperimentPE experimentPE = new ExperimentPE(); experimentPE.setPermId(EXPERIMENT_PERM_ID);