diff --git a/converter-CellDesigner/pom.xml b/converter-CellDesigner/pom.xml index 6c63f5a7683f4c19af8f8fb9acfa4e26babc9de4..733ba83e10bec191fdc6cf03a7ec210759d02976 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 c6386575d66324c51057c8837de764cddd3d11d8..34aaa538dc4da97460c25497de82897e2efa8379 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 95ed20c1231cbc99cecb006e58f324b4cc3c8d0d..892dab8549a8c6bb5900b0b5ef8a12a2bf776702 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 1e47dc8e3b0763adfa23f41bf262a4d664eece88..9e0bd55f28c1da9496b0669925471697d91c29ea 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 964b5e026f8f15c35b2501cb2b6436ecddb753e6..796d4a006eb3dff90a82508037b8d1b981ca0143 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 ec0ab44c31ef70f6aae9592fc7a2df97475cc2da..5ab4674620e75aa3225032ac375ad9e410ba9b4f 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 28365629698bf7a2625b0cefd7899d2d3cde31cb..57b92597b0c411165ef847f29e13de0a0f0856fa 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 77e415ea34e49fd29215be138e0ad97e0e2fc4ba..84d9f956a0b7e8aa72e65fbc4de242593ce407b0 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); + } + }