From 1b678cd3746aec8a9524fb0c1f4a79911ebc143f Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 10 Sep 2018 13:04:09 +0200
Subject: [PATCH] new implementation for resolving miriam resources fixed

---
 .../annotation/services/MiriamConnector.java  | 19 +++++--------------
 1 file changed, 5 insertions(+), 14 deletions(-)

diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
index 00b97432ce..af5982d3d0 100644
--- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
+++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/MiriamConnector.java
@@ -1,14 +1,11 @@
 package lcsb.mapviewer.annotation.services;
 
 import java.io.IOException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 import org.apache.log4j.Logger;
 import org.hibernate.AnnotationException;
-
-import com.google.gson.Gson;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 
 import lcsb.mapviewer.annotation.cache.CachableInterface;
 import lcsb.mapviewer.annotation.cache.GeneralCacheInterface;
@@ -219,19 +216,13 @@ public final class MiriamConnector extends CachableInterface implements IExterna
    */
   protected String getUrlString2(MiriamData md) throws AnnotationException {
     try {
-      String result = null;
       String queryUri = md.getDataType().getUris().get(0) + ":" + md.getResource();
       String query = "https://www.ebi.ac.uk/miriamws/main/rest/resolve/" + queryUri;
       String page = getWebPageContent(query);
-      Gson gson = new Gson();
-
-      Map<?, ?> gsonObject = new HashMap<String, Object>();
-      gsonObject = (Map<?, ?>) gson.fromJson(page, gsonObject.getClass());
-      Object uris = gsonObject.get("uri");
-      Map<?, ?> entry = (Map<?, ?>) ((List<?>) uris).get(0);
-      result = (String) entry.get("$");
+      Document document = getXmlDocumentFromString(page);
+      Node uri = getNode("uri", document.getChildNodes());
+      return getNodeValue(uri);
 
-      return result;
     } catch (Exception e) {
       throw new AnnotationException("Problem with accessing miriam REST API", e);
     }
-- 
GitLab