From 0a1b7b0898d1b0659046746325444ffa83adc713 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 28 Jan 2019 15:45:22 +0100 Subject: [PATCH] sometimes there are issues with pubmed annotations (they have whitespaces) --- .../annotation/services/PubmedParser.java | 7 ++++++ .../java/lcsb/mapviewer/api/BaseRestImpl.java | 20 ++++++++++++++-- .../lcsb/mapviewer/api/BaseRestImplTest.java | 23 +++++++++++++++++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java index 1bf449dae0..16dde0eeff 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/PubmedParser.java @@ -205,6 +205,13 @@ public class PubmedParser extends CachableInterface implements IExternalService return result; } + public Article getPubmedArticleById(String id) throws PubmedSearchException { + if (id==null) { + return null; + } + return getPubmedArticleById(Integer.valueOf(id.trim())); + } + /** * This method return html \< a\ > tag with link for pubmed id (with some * additional information). 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 7cf58274ce..55407803d0 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/BaseRestImpl.java @@ -58,7 +58,7 @@ public abstract class BaseRestImpl { /** * Default class logger. */ - private Logger logger = Logger.getLogger(BaseRestImpl.class); + private static Logger logger = Logger.getLogger(BaseRestImpl.class); @Autowired private IModelService modelService; @@ -118,7 +118,7 @@ public abstract class BaseRestImpl { } if (MiriamType.PUBMED.equals(annotation.getDataType())) { try { - Article article = pubmedParser.getPubmedArticleById(Integer.valueOf(annotation.getResource())); + Article article = pubmedParser.getPubmedArticleById(annotation.getResource()); result.put("article", article); } catch (PubmedSearchException e) { logger.error("Problem with accessing info about pubmed", e); @@ -387,4 +387,20 @@ public abstract class BaseRestImpl { this.configurationService = configurationService; } + public MiriamConnector getMiriamConnector() { + return miriamConnector; + } + + public void setMiriamConnector(MiriamConnector miriamConnector) { + this.miriamConnector = miriamConnector; + } + + public PubmedParser getPubmedParser() { + return pubmedParser; + } + + public void setPubmedParser(PubmedParser pubmedParser) { + this.pubmedParser = pubmedParser; + } + } 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 f5802d6101..5fde7baa71 100644 --- a/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java +++ b/rest-api/src/test/java/lcsb/mapviewer/api/BaseRestImplTest.java @@ -6,12 +6,26 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.CALLS_REAL_METHODS; +import java.util.Map; + import org.apache.log4j.Logger; import org.junit.Test; import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; + +import lcsb.mapviewer.annotation.services.MiriamConnector; +import lcsb.mapviewer.annotation.services.PubmedParser; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamType; public class BaseRestImplTest extends RestTestFunctions { Logger logger = Logger.getLogger(BaseRestImplTest.class); + + @Autowired + MiriamConnector mc; + + @Autowired + PubmedParser pubmedParser; @Test public void testMathMLToPresentationML() throws Exception { @@ -39,6 +53,15 @@ public class BaseRestImplTest extends RestTestFunctions { assertFalse(presentationXml.startsWith("<?xml")); } + @Test + public void testCreateAnnotationWithWhitespace() throws Exception { + BaseRestImpl controller = Mockito.mock(BaseRestImpl.class, CALLS_REAL_METHODS); + controller.setMiriamConnector(mc); + controller.setPubmedParser(pubmedParser); + Map<String, Object> response = controller.createAnnotation(new MiriamData(MiriamType.PUBMED,"28255955 ")); + assertNotNull(response); + } + } -- GitLab