From eb4c81021d4e5cd2d1c6872d2ea643c940f35a85 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 29 Oct 2019 15:15:19 +0100 Subject: [PATCH] list of converters is resolved based on spring components --- converter-CellDesigner/pom.xml | 7 +++++++ .../celldesigner/CellDesignerXmlParser.java | 2 ++ .../model/sbgnml/SbgnmlXmlConverter.java | 2 ++ .../converter/model/sbml/SbmlParser.java | 2 ++ .../lcsb/mapviewer/wikipathway/GpmlParser.java | 2 ++ .../java/lcsb/mapviewer/api/BaseRestImpl.java | 16 +++++----------- .../lcsb/mapviewer/api/SpringRestApiConfig.java | 2 +- .../lcsb/mapviewer/api/BaseRestImplTest.java | 14 +++++++++++++- 8 files changed, 34 insertions(+), 13 deletions(-) diff --git a/converter-CellDesigner/pom.xml b/converter-CellDesigner/pom.xml index 6c63f5a768..733ba83e10 100644 --- a/converter-CellDesigner/pom.xml +++ b/converter-CellDesigner/pom.xml @@ -67,6 +67,13 @@ <scope>compile</scope> </dependency> + <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>${springframework.version}</version> + </dependency> + </dependencies> </project> \ No newline at end of file diff --git a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java index c6386575d6..34aaa538dc 100644 --- a/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java +++ b/converter-CellDesigner/src/main/java/lcsb/mapviewer/converter/model/celldesigner/CellDesignerXmlParser.java @@ -11,6 +11,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LogEvent; import org.apache.xerces.parsers.DOMParser; +import org.springframework.stereotype.Component; import org.w3c.dom.*; import lcsb.mapviewer.common.*; @@ -55,6 +56,7 @@ import lcsb.mapviewer.model.map.species.Element; * @author Piotr Gawron * */ +@Component public class CellDesignerXmlParser extends Converter { /** diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java index 95ed20c123..892dab8549 100644 --- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java +++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlConverter.java @@ -9,12 +9,14 @@ import org.apache.commons.text.StringEscapeUtils; import org.apache.logging.log4j.core.LogEvent; import org.sbgn.SbgnUtil; import org.sbgn.bindings.Sbgn; +import org.springframework.stereotype.Component; import lcsb.mapviewer.common.MimeType; import lcsb.mapviewer.common.MinervaLoggerAppender; import lcsb.mapviewer.converter.*; import lcsb.mapviewer.model.map.model.Model; +@Component public class SbgnmlXmlConverter extends Converter { @Override diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java index 1e47dc8e3b..9e0bd55f28 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlParser.java @@ -13,6 +13,7 @@ import org.sbml.jsbml.ext.SBasePlugin; import org.sbml.jsbml.ext.layout.Layout; import org.sbml.jsbml.ext.layout.LayoutModelPlugin; import org.sbml.jsbml.ext.multi.MultiModelPlugin; +import org.springframework.stereotype.Component; import lcsb.mapviewer.commands.CommandExecutionException; import lcsb.mapviewer.commands.layout.ApplySimpleLayoutModelCommand; @@ -33,6 +34,7 @@ import lcsb.mapviewer.model.map.species.*; import lcsb.mapviewer.model.map.species.field.ModificationResidue; import lcsb.mapviewer.model.map.species.field.SpeciesWithModificationResidue; +@Component public class SbmlParser extends Converter { /** diff --git a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/GpmlParser.java b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/GpmlParser.java index 964b5e026f..796d4a006e 100644 --- a/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/GpmlParser.java +++ b/pathvisio/src/main/java/lcsb/mapviewer/wikipathway/GpmlParser.java @@ -5,6 +5,7 @@ import java.io.IOException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.springframework.stereotype.Component; import lcsb.mapviewer.common.MimeType; import lcsb.mapviewer.converter.*; @@ -13,6 +14,7 @@ import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.wikipathway.XML.GPMLToModel; import lcsb.mapviewer.wikipathway.XML.ModelToGPML; +@Component public class GpmlParser extends Converter { Logger logger = LogManager.getLogger(); diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java index ec0ab44c31..5ab4674620 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -23,9 +23,6 @@ import lcsb.mapviewer.annotation.services.*; import lcsb.mapviewer.common.comparator.StringComparator; import lcsb.mapviewer.common.exception.*; import lcsb.mapviewer.converter.Converter; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.converter.model.sbgnml.SbgnmlXmlConverter; -import lcsb.mapviewer.converter.model.sbml.SbmlParser; import lcsb.mapviewer.model.map.*; import lcsb.mapviewer.model.map.model.Model; import lcsb.mapviewer.model.map.reaction.Reaction; @@ -33,7 +30,6 @@ import lcsb.mapviewer.model.map.species.Element; import lcsb.mapviewer.model.user.annotator.*; import lcsb.mapviewer.services.interfaces.*; import lcsb.mapviewer.services.search.ElementMatcher; -import lcsb.mapviewer.wikipathway.GpmlParser; @Transactional public abstract class BaseRestImpl { @@ -61,6 +57,9 @@ public abstract class BaseRestImpl { @Autowired private PubmedParser pubmedParser; + @Autowired + private List<Converter> modelConverters; + private ElementMatcher elementMatcher = new ElementMatcher(); private Transformer mathMlTransformer; @@ -162,7 +161,7 @@ public abstract class BaseRestImpl { * @param modelId * list of model identifiers separated by "," or '*' when all models * should be returned - * @throws QueryException + * @throws QueryException */ protected List<Model> getModels(String projectId, String modelId) throws QueryException { Model model = modelService.getLastModelByProjectId(projectId); @@ -319,12 +318,7 @@ public abstract class BaseRestImpl { } protected List<Converter> getModelConverters() { - List<Converter> result = new ArrayList<>(); - result.add(new CellDesignerXmlParser()); - result.add(new SbgnmlXmlConverter()); - result.add(new SbmlParser()); - result.add(new GpmlParser()); - return result; + return modelConverters; } protected String getFirstValue(List<Object> list) { diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/SpringRestApiConfig.java b/rest-api/src/main/java/lcsb/mapviewer/api/SpringRestApiConfig.java index 2836562969..57b92597b0 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/SpringRestApiConfig.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/SpringRestApiConfig.java @@ -8,7 +8,7 @@ import lcsb.mapviewer.services.SpringServiceConfig; @Configuration @EnableWebMvc @Import({ SpringServiceConfig.class }) -@ComponentScan(basePackages = { "lcsb.mapviewer.api" }) +@ComponentScan(basePackages = { "lcsb.mapviewer" }) public class SpringRestApiConfig { } diff --git a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java index 77e415ea34..84d9f956a0 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java @@ -15,16 +15,21 @@ import org.springframework.beans.factory.annotation.Autowired; import lcsb.mapviewer.annotation.services.MiriamConnector; import lcsb.mapviewer.annotation.services.PubmedParser; import lcsb.mapviewer.annotation.services.annotators.ElementAnnotator; +import lcsb.mapviewer.api.projects.ProjectRestImpl; +import lcsb.mapviewer.converter.Converter; import lcsb.mapviewer.model.map.MiriamData; import lcsb.mapviewer.model.map.MiriamType; import lcsb.mapviewer.model.user.annotator.AnnotatorData; public class BaseRestImplTest extends RestTestFunctions { - Logger logger = LogManager.getLogger(BaseRestImplTest.class); + Logger logger = LogManager.getLogger(); @Autowired MiriamConnector mc; + @Autowired + ProjectRestImpl restImpl; + @Autowired PubmedParser pubmedParser; @@ -107,4 +112,11 @@ public class BaseRestImplTest extends RestTestFunctions { Integer x = controller.parseInteger(null); assertNull(x); } + + @Test + public void testGetConverters() throws Exception { + List<Converter> list = restImpl.getModelConverters(); + assertTrue(list.size() > 0); + } + } -- GitLab