Nilesh has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/76640


Change subject: JSON output is now done with GSON library. Fixed tests to work 
properly with changed WebClientRecommender.
......................................................................

JSON output is now done with GSON library. Fixed tests to work properly with 
changed WebClientRecommender.

Change-Id: If49272fd8ad3b7fcae23dcb505c3bcfcb1870e3b
---
M client/pom.xml
M 
client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServlet.java
M 
client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommenderTest.java
M 
client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServletTest.java
4 files changed, 20 insertions(+), 17 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikidataEntitySuggester 
refs/changes/40/76640/1

diff --git a/client/pom.xml b/client/pom.xml
index ce6dc08..3c62566 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -12,6 +12,11 @@
     <version>0.0.2</version>
     <dependencies>
         <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.2.4</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.hadoop</groupId>
             <artifactId>hadoop-core</artifactId>
             <version>0.20.2-cdh3u6</version>
diff --git 
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServlet.java
 
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServlet.java
index 3d55bcf..1df53f4 100644
--- 
a/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServlet.java
+++ 
b/client/src/main/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServlet.java
@@ -1,10 +1,15 @@
 package org.wikimedia.wikibase.entitysuggester.client.servlets;
 
 import com.google.common.base.Splitter;
+import com.google.gson.FieldNamingPolicy;
+import com.google.gson.FieldNamingStrategy;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.net.URISyntaxException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.List;
 import javax.naming.Context;
 import javax.naming.InitialContext;
@@ -61,21 +66,12 @@
 
         PrintWriter writer = response.getWriter();
         // Always print JSON
-        writer.write('[');
-        boolean first = true;
+        List suggestedProperties = new ArrayList();
         for (TranslatedRecommendedItem item : items) {
-            if (first) {
-                first = false;
-            } else {
-                writer.write(',');
-            }
-            writer.write("[\"");
-            writer.write(item.getItemID());
-            writer.write("\",");
-            writer.write(Float.toString(item.getValue()));
-            writer.write(']');
+            suggestedProperties.add(new Object[]{item.getItemID(), 
item.getValue()});
         }
-        writer.write(']');
+        String json = new Gson().toJson(suggestedProperties);
+        writer.write(json);
         writer.flush();
     }
 }
diff --git 
a/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommenderTest.java
 
b/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommenderTest.java
index 5541293..7964843 100644
--- 
a/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommenderTest.java
+++ 
b/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/recommender/WebClientRecommenderTest.java
@@ -55,7 +55,8 @@
         ArrayList<String> propertyIDList = new ArrayList<String>();
         propertyIDList.add("P67");
         propertyIDList.add("P192");
-        AbstractClientRecommender webClientRecommender = new 
WebClientRecommender(propertyIDList, translatingRecommender);
+        translatingRecommender.addItemIDs(propertyIDList);
+        AbstractClientRecommender webClientRecommender = new 
WebClientRecommender(translatingRecommender);
 
         // Test with a wikibaseItem that is in the Myrrix model
         List<TranslatedRecommendedItem> suggestions = 
webClientRecommender.recommend("Q87", 10);
@@ -72,7 +73,8 @@
         ArrayList<String> propertyIDList = new ArrayList<String>();
         propertyIDList.add("P67");
         propertyIDList.add("P192");
-        AbstractClientRecommender webClientRecommender = new 
WebClientRecommender(propertyIDList, translatingRecommender);
+        translatingRecommender.addItemIDs(propertyIDList);
+        AbstractClientRecommender webClientRecommender = new 
WebClientRecommender(translatingRecommender);
 
         List<TranslatedRecommendedItem> suggestions = 
webClientRecommender.recommendAnonymous(new String[]{"P67", "P78"}, 2);
         assertEquals("P67", suggestions.get(0).getItemID());
diff --git 
a/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServletTest.java
 
b/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServletTest.java
index 34916b6..ae195e2 100644
--- 
a/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServletTest.java
+++ 
b/client/src/test/java/org/wikimedia/wikibase/entitysuggester/client/servlets/AbstractEntitySuggesterServletTest.java
@@ -65,11 +65,11 @@
         ArrayList<String> propertyIDList = new ArrayList<String>();
         propertyIDList.add("P67");
         propertyIDList.add("P192");
-        WebClientRecommender webClientRecommender = new 
WebClientRecommender(propertyIDList, translatingRecommender);
+        translatingRecommender.addItemIDs(propertyIDList);
+        WebClientRecommender webClientRecommender = new 
WebClientRecommender(translatingRecommender);
 
         
servlet.getServletConfig().getServletContext().setAttribute("recommender", 
webClientRecommender);;
         MockHttpServletRequest mockHttpServletRequest = new 
MockHttpServletRequest();
-        servlet.initializeClientRecommender(mockHttpServletRequest);
 
         WebClientRecommender fromServlet = servlet.getClientRecommender();
         List<TranslatedRecommendedItem> suggestions = 
webClientRecommender.recommend("Q87", 10);

-- 
To view, visit https://gerrit.wikimedia.org/r/76640
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If49272fd8ad3b7fcae23dcb505c3bcfcb1870e3b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikidataEntitySuggester
Gerrit-Branch: master
Gerrit-Owner: Nilesh <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to