diff --git a/api/pom.xml b/api/pom.xml
index 027e7ffe..8e3d6492 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -35,11 +35,6 @@
fluent-hc
4.5.3
-
- com.google.code.gson
- gson
- 2.8.2
-
com.itextpdf
itextpdf
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
index 1aa8f67b..cf56ac93 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/AjaxVisualizationController.java
@@ -10,6 +10,7 @@ import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -140,7 +141,7 @@ public class AjaxVisualizationController extends FreemarkerHttpServlet {
return visRequestHandler.generateAjaxVisualization(vitroRequest,
log,
dataset);
- } catch (MalformedQueryParametersException e) {
+ } catch (JsonProcessingException|MalformedQueryParametersException e) {
return UtilityFunctions.handleMalformedParameters(
"Ajax Visualization Query Error - Individual Publication Count",
e.getMessage(),
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
index 864da198..bd5d4d03 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/controller/visualization/DataVisualizationController.java
@@ -10,6 +10,7 @@ import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -126,18 +127,18 @@ public class DataVisualizationController extends VitroHttpServlet {
Dataset dataset = setupJENADataSource(vitroRequest);
if (dataset != null && visRequestHandler != null) {
- return visRequestHandler.generateDataVisualization(vitroRequest,
- log,
- dataset);
-
- } else {
-
- String errorMessage = "Data Model Empty &/or Inappropriate "
- + "query parameters were submitted. ";
-
- throw new MalformedQueryParametersException(errorMessage);
-
+ try {
+ return visRequestHandler.generateDataVisualization(vitroRequest,
+ log,
+ dataset);
+ } catch (JsonProcessingException e) {
+ }
}
+
+ String errorMessage = "Data Model Empty &/or Inappropriate "
+ + "query parameters were submitted. ";
+
+ throw new MalformedQueryParametersException(errorMessage);
}
private VisualizationRequestHandler getVisualizationRequestHandler(
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapRequestHandler.java
index 0e4cfbcf..07a96f29 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapRequestHandler.java
@@ -2,7 +2,11 @@
package edu.cornell.mannlib.vitro.webapp.visualization.capabilitymap;
-import com.google.gson.Gson;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.QueryExecution;
@@ -49,7 +53,7 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
}
@Override
- public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException {
+ public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log, Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
ConceptLabelMap conceptLabelMap = VisualizationCaches.conceptToLabel.getNoWait(vitroRequest.getRDFService());
ConceptPeopleMap conceptPeopleMap = VisualizationCaches.conceptToPeopleMap.getNoWait(vitroRequest.getRDFService());
OrganizationPeopleMap organizationPeopleMap = VisualizationCaches.organisationToPeopleMap.getNoWait(vitroRequest.getRDFService());
@@ -67,8 +71,8 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
}
}
- Gson gson = new Gson();
- return gson.toJson(concepts);
+ ObjectMapper mapper = new ObjectMapper();
+ return mapper.writeValueAsString(concepts);
}
return "";
}
@@ -96,13 +100,13 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
}
response.results.add(result);
- Gson gson = new Gson();
+ ObjectMapper mapper = new ObjectMapper();
String callback = vitroRequest.getParameter("callback");
if (!StringUtils.isEmpty(callback)) {
- return callback + "(" + gson.toJson(response) + ");";
+ return callback + "(" + mapper.writeValueAsString(response) + ");";
}
- return gson.toJson(response);
+ return mapper.writeValueAsString(response);
}
String query = vitroRequest.getParameter("query");
@@ -150,13 +154,12 @@ public class CapabilityMapRequestHandler implements VisualizationRequestHandler
response.results.add(result);
}
- Gson gson = new Gson();
-
+ ObjectMapper mapper = new ObjectMapper();
String callback = vitroRequest.getParameter("callback");
if (!StringUtils.isEmpty(callback)) {
- return callback + "(" + gson.toJson(response) + ");";
+ return callback + "(" + mapper.writeValueAsString(response) + ");";
}
- return gson.toJson(response);
+ return mapper.writeValueAsString(response);
}
return "";
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResponse.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResponse.java
index aebd6614..d6a002a4 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResponse.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResponse.java
@@ -2,9 +2,14 @@
package edu.cornell.mannlib.vitro.webapp.visualization.capabilitymap;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.ArrayList;
import java.util.List;
+@JsonInclude(JsonInclude.Include.NON_NULL)
class CapabilityMapResponse {
+ @JsonProperty
List results = new ArrayList();
}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResult.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResult.java
index c9231ff4..acf53f3a 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResult.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/capabilitymap/CapabilityMapResult.java
@@ -2,67 +2,71 @@
package edu.cornell.mannlib.vitro.webapp.visualization.capabilitymap;
-import com.google.gson.annotations.SerializedName;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+@JsonInclude(JsonInclude.Include.NON_NULL)
class CapabilityMapResult {
+ @JsonProperty
String[] clusters;
- @SerializedName("md_1")
+ @JsonProperty("md_1")
String profileId;
- @SerializedName("md_2")
+ @JsonProperty("md_2")
String description;
- @SerializedName("md_3")
+ @JsonProperty("md_3")
String thumbNail;
- @SerializedName("md_4")
+ @JsonProperty("md_4")
String department;
- @SerializedName("md_5")
+ @JsonProperty("md_5")
String overview;
- @SerializedName("md_6")
+ @JsonProperty("md_6")
String geographicFocus;
- @SerializedName("md_7")
+ @JsonProperty("md_7")
String geographicLocation;
- @SerializedName("md_8")
+ @JsonProperty("md_8")
String[] grants;
- @SerializedName("md_A")
+ @JsonProperty("md_A")
String firstName;
- @SerializedName("md_B")
+ @JsonProperty("md_B")
String lastName;
- @SerializedName("md_F")
+ @JsonProperty("md_F")
String fax;
- @SerializedName("md_G")
+ @JsonProperty("md_G")
String email;
- @SerializedName("md_H")
+ @JsonProperty("md_H")
String availableForSupervision;
- @SerializedName("md_I")
+ @JsonProperty("md_I")
String homepage;
- @SerializedName("md_L")
+ @JsonProperty("md_L")
String phoneNumber;
- @SerializedName("md_U")
+ @JsonProperty("md_U")
String[] publications;
- @SerializedName("md_X")
+ @JsonProperty("md_X")
String[] researchOverview;
- @SerializedName("md_Y")
+ @JsonProperty("md_Y")
String[] subjectArea;
- @SerializedName("md_Z")
+ @JsonProperty("md_Z")
String preferredTitle;
+ @JsonProperty
String query;
}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
index 23b46557..cdf8992b 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/mapofscience/MapOfScienceVisualizationRequestHandler.java
@@ -9,6 +9,11 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.jena.query.QuerySolution;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.config.ConfigurationProperties;
@@ -26,7 +31,6 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
-import com.google.gson.Gson;
import org.apache.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.AuthorizationRequest;
@@ -164,7 +168,7 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
private Map getSubjectPersonEntityAndGenerateDataResponse(
VitroRequest vitroRequest, String subjectEntityURI, String entityLabel, VisConstants.DataVisMode dataOuputFormat)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
long startTime = System.currentTimeMillis();
try {
@@ -191,7 +195,6 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
Map fileData = new HashMap();
if (VisConstants.DataVisMode.JSON.equals(dataOuputFormat)) {
- Gson json = new Gson();
Set jsonContent = new HashSet();
MapOfScience entityJson = new MapOfScience(subjectEntityURI);
@@ -203,8 +206,10 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
jsonContent.add(entityJson);
+ ObjectMapper mapper = new ObjectMapper();
+
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY, "application/octet-stream");
- fileData.put(DataVisualizationController.FILE_CONTENT_KEY, json.toJson(jsonContent));
+ fileData.put(DataVisualizationController.FILE_CONTENT_KEY, mapper.writeValueAsString(jsonContent));
} else {
if (StringUtils.isBlank(entityLabel)) {
entityLabel = "no-name";
@@ -239,7 +244,7 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
private Map getSubjectEntityAndGenerateDataResponse(
VitroRequest vitroRequest, String subjectEntityURI, String entityLabel, VisConstants.DataVisMode dataOuputFormat)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
RDFService rdfService = vitroRequest.getRDFService();
@@ -290,7 +295,6 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
Map fileData = new HashMap();
if (VisConstants.DataVisMode.JSON.equals(dataOuputFormat)) {
- Gson json = new Gson();
Set jsonContent = new HashSet();
MapOfScience entityJson = new MapOfScience(subjectEntityURI);
@@ -312,8 +316,10 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
jsonContent.add(entityJson);
+ ObjectMapper mapper = new ObjectMapper();
+
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY, "application/octet-stream");
- fileData.put(DataVisualizationController.FILE_CONTENT_KEY, json.toJson(jsonContent));
+ fileData.put(DataVisualizationController.FILE_CONTENT_KEY, mapper.writeValueAsString(jsonContent));
} else {
if (StringUtils.isBlank(entityLabel)) {
entityLabel = "no-organization";
@@ -356,26 +362,25 @@ public class MapOfScienceVisualizationRequestHandler implements VisualizationReq
return fileData;
}
- private Map prepareStandaloneDataErrorResponse() {
+ private Map prepareStandaloneDataErrorResponse() throws JsonProcessingException {
GenericQueryMap errorDataResponse = new GenericQueryMap();
errorDataResponse.addEntry("error", "No Publications for this Entity found in VIVO.");
- Gson jsonErrorResponse = new Gson();
-
Map fileData = new HashMap();
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
"application/octet-stream");
-
- fileData.put(DataVisualizationController.FILE_CONTENT_KEY, jsonErrorResponse.toJson(errorDataResponse));
+
+ ObjectMapper mapper = new ObjectMapper();
+ fileData.put(DataVisualizationController.FILE_CONTENT_KEY, mapper.writeValueAsString(errorDataResponse));
return fileData;
}
@Override
public Map generateDataVisualization(VitroRequest vitroRequest, Log log, Dataset dataset)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
String entityURI = vitroRequest.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/ModelConstructorRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/ModelConstructorRequestHandler.java
index 2337e0d5..1cd82b18 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/ModelConstructorRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/modelconstructor/ModelConstructorRequestHandler.java
@@ -9,10 +9,11 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cornell.mannlib.vitro.webapp.visualization.utilities.VisualizationCaches;
import org.apache.commons.logging.Log;
-import com.google.gson.Gson;
import org.apache.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
@@ -35,7 +36,7 @@ public class ModelConstructorRequestHandler implements
@Override
public Object generateAjaxVisualization(VitroRequest vitroRequest, Log log,
- Dataset dataSource) throws MalformedQueryParametersException {
+ Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException {
return regenerateConstructedModels(vitroRequest, dataSource);
}
@@ -82,7 +83,7 @@ public class ModelConstructorRequestHandler implements
}
private Map regenerateConstructedModels(VitroRequest vitroRequest,
- Dataset dataSource) {
+ Dataset dataSource) throws JsonProcessingException {
VisualizationCaches.rebuildAll(vitroRequest.getRDFService());
@@ -112,11 +113,10 @@ public class ModelConstructorRequestHandler implements
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY,
"application/octet-stream");
-
- Gson json = new Gson();
-
+
+ ObjectMapper mapper = new ObjectMapper();
fileData.put(DataVisualizationController.FILE_CONTENT_KEY,
- json.toJson(refreshedModels));
+ mapper.writeValueAsString(refreshedModels));
return fileData;
}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalGrantVisualizationRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalGrantVisualizationRequestHandler.java
index eec48eff..10986918 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalGrantVisualizationRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalGrantVisualizationRequestHandler.java
@@ -10,6 +10,11 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.visualization.model.OrganizationPeopleMap;
import edu.cornell.mannlib.vitro.webapp.visualization.utilities.CounterUtils;
@@ -19,7 +24,6 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
-import com.google.gson.Gson;
import org.apache.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.AuthorizationRequest;
@@ -77,7 +81,7 @@ public class TemporalGrantVisualizationRequestHandler implements
@Override
public Map generateDataVisualization(VitroRequest vitroRequest, Log log, Dataset dataset)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
String entityURI = vitroRequest.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
@@ -137,7 +141,7 @@ public class TemporalGrantVisualizationRequestHandler implements
private Map getSubjectEntityAndGenerateDataResponse(
VitroRequest vitroRequest, Log log, Dataset dataset,
String subjectEntityURI, VisConstants.DataVisMode visMode)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
RDFService rdfService = vitroRequest.getRDFService();
@@ -184,7 +188,6 @@ public class TemporalGrantVisualizationRequestHandler implements
Map fileData = new HashMap();
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
- Gson json = new Gson();
Set subEntitiesJson = new HashSet();
// For each suborganisation
@@ -234,8 +237,10 @@ public class TemporalGrantVisualizationRequestHandler implements
subEntitiesJson.add(subjectEntityJSON);
+ ObjectMapper mapper = new ObjectMapper();
+
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY, "application/octet-stream");
- fileData.put(DataVisualizationController.FILE_CONTENT_KEY, json.toJson(subEntitiesJson));
+ fileData.put(DataVisualizationController.FILE_CONTENT_KEY, mapper.writeValueAsString(subEntitiesJson));
} else {
String entityLabel = orgLabelMap.get(subjectEntityURI);
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalPublicationVisualizationRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalPublicationVisualizationRequestHandler.java
index 724272ff..02b0a576 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalPublicationVisualizationRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/temporalgraph/TemporalPublicationVisualizationRequestHandler.java
@@ -10,6 +10,11 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cornell.mannlib.vitro.webapp.rdfservice.RDFService;
import edu.cornell.mannlib.vitro.webapp.visualization.model.OrganizationPeopleMap;
import edu.cornell.mannlib.vitro.webapp.visualization.utilities.CounterUtils;
@@ -19,7 +24,6 @@ import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
-import com.google.gson.Gson;
import org.apache.jena.query.Dataset;
import edu.cornell.mannlib.vitro.webapp.auth.requestedAction.AuthorizationRequest;
@@ -74,7 +78,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
private Map getSubjectEntityAndGenerateDataResponse(
VitroRequest vitroRequest, Log log, Dataset dataset,
String subjectEntityURI, VisConstants.DataVisMode visMode)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
RDFService rdfService = vitroRequest.getRDFService();
@@ -121,7 +125,6 @@ public class TemporalPublicationVisualizationRequestHandler implements
Map fileData = new HashMap();
if (VisConstants.DataVisMode.JSON.equals(visMode)) {
- Gson json = new Gson();
Set subEntitiesJson = new HashSet();
// For each suborganisation
@@ -171,8 +174,10 @@ public class TemporalPublicationVisualizationRequestHandler implements
subEntitiesJson.add(subjectEntityJSON);
+ ObjectMapper mapper = new ObjectMapper();
+
fileData.put(DataVisualizationController.FILE_CONTENT_TYPE_KEY, "application/octet-stream");
- fileData.put(DataVisualizationController.FILE_CONTENT_KEY, json.toJson(subEntitiesJson));
+ fileData.put(DataVisualizationController.FILE_CONTENT_KEY, mapper.writeValueAsString(subEntitiesJson));
} else {
String entityLabel = orgLabelMap.get(subjectEntityURI);
@@ -240,7 +245,7 @@ public class TemporalPublicationVisualizationRequestHandler implements
@Override
public Map generateDataVisualization(VitroRequest vitroRequest, Log log, Dataset dataset)
- throws MalformedQueryParametersException {
+ throws MalformedQueryParametersException, JsonProcessingException {
String entityURI = vitroRequest.getParameter(VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
@@ -308,4 +313,4 @@ public class TemporalPublicationVisualizationRequestHandler implements
// TODO Auto-generated method stub
return null;
}
-}
+}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
index 75df4be6..1496132e 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/utilities/UtilitiesRequestHandler.java
@@ -5,6 +5,11 @@ package edu.cornell.mannlib.vitro.webapp.visualization.utilities;
import java.util.HashMap;
import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cornell.mannlib.vitro.webapp.rdfservice.ResultSetConsumer;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
@@ -13,7 +18,6 @@ import org.apache.jena.iri.IRIFactory;
import org.apache.jena.iri.Violation;
import org.vivoweb.webapp.util.ModelUtils;
-import com.google.gson.Gson;
import org.apache.jena.query.Dataset;
import org.apache.jena.query.QuerySolution;
import org.apache.jena.query.ResultSet;
@@ -50,8 +54,8 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
public Object generateAjaxVisualization(VitroRequest vitroRequest,
Log log,
- Dataset dataset)
- throws MalformedQueryParametersException {
+ Dataset dataset)
+ throws MalformedQueryParametersException, JsonProcessingException {
String individualURI = vitroRequest.getParameter(
VisualizationFrameworkConstants.INDIVIDUAL_URI_KEY);
@@ -79,11 +83,11 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
GenericQueryMap profilePropertiesToValues =
profileQueryHandler.getQueryResult();
-
- Gson profileInformation = new Gson();
-
- return profileInformation.toJson(profilePropertiesToValues);
-
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ return mapper.writeValueAsString(profilePropertiesToValues);
+
} else if (VisualizationFrameworkConstants.IMAGE_UTILS_VIS_MODE
.equalsIgnoreCase(visMode)) {
@@ -137,13 +141,14 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
whereClause,
groupOrderClause,
dataset);
-
- Gson publicationsInformation = new Gson();
NumPubsForIndividualConsumer consumer = new NumPubsForIndividualConsumer();
numberOfPublicationsQueryHandler.sparqlSelectQuery(vitroRequest.getRDFService(), consumer);
- return publicationsInformation.toJson(consumer.getMap());
-
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ return mapper.writeValueAsString(consumer.getMap());
+
} else if (VisualizationFrameworkConstants.ARE_GRANTS_AVAILABLE_UTILS_VIS_MODE
.equalsIgnoreCase(visMode)) {
@@ -179,12 +184,11 @@ public class UtilitiesRequestHandler implements VisualizationRequestHandler {
"",
dataset);
- Gson grantsInformation = new Gson();
-
NumGrantsForIndividualConsumer consumer = new NumGrantsForIndividualConsumer();
numberOfGrantsQueryHandler.sparqlSelectQuery(vitroRequest.getRDFService(), consumer);
- return grantsInformation.toJson(consumer.getMap());
+ ObjectMapper mapper = new ObjectMapper();
+ return mapper.writeValueAsString(consumer.getMap());
} else if (VisualizationFrameworkConstants.COAUTHOR_UTILS_VIS_MODE
.equalsIgnoreCase(visMode)) {
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
index 30018254..0ae885bf 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/JsonObject.java
@@ -1,6 +1,9 @@
/* $This file is distributed under the terms of the license in LICENSE$ */
package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -11,13 +14,24 @@ import java.util.Set;
* @author bkoniden
* Deepak Konidena
*/
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class JsonObject {
-
+ @JsonProperty
private String label;
+
+ @JsonProperty
private String lastCachedAtDateTime;
+
+ @JsonProperty
private List> data = new ArrayList>();
+
+ @JsonProperty
private String entityURI;
+
+ @JsonProperty
private String visMode;
+
+ @JsonProperty
private List organizationType = new ArrayList();
public List getOrganizationTypes() {
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java
index edac28e1..4904e19b 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/MapOfScience.java
@@ -1,21 +1,41 @@
/* $This file is distributed under the terms of the license in LICENSE$ */
package edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.json;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class MapOfScience {
-
+ @JsonProperty
private String uri;
+
+ @JsonProperty
private String label;
+
+ @JsonProperty
private String type;
+
+ @JsonProperty
private int pubsMapped;
+
+ @JsonProperty
private int pubsWithNoJournals;
+
+ @JsonProperty
private int pubsWithInvalidJournals;
+
+ @JsonProperty
private String lastCachedAtDateTime;
+
+ @JsonProperty
private Map subdisciplineActivity = new HashMap();
+
+ @JsonProperty
private Set subEntities = new HashSet();
public MapOfScience(String uri) {
@@ -84,11 +104,18 @@ public class MapOfScience {
return subEntities;
}
+ @JsonInclude(JsonInclude.Include.NON_NULL)
private class SubEntityInfo {
-
+ @JsonProperty
private String uri;
+
+ @JsonProperty
private String label;
+
+ @JsonProperty
private String type;
+
+ @JsonProperty
private int pubs;
public SubEntityInfo(String uri, String label, String type, int pubs) {
@@ -129,7 +156,5 @@ public class MapOfScience {
public void setPubs(int pubs) {
this.pubs = pubs;
}
-
-
}
}
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
index dd7a1f97..84ef1aee 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/valueobjects/json/SubjectEntityJSON.java
@@ -5,12 +5,19 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Set;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
import edu.cornell.mannlib.vitro.webapp.visualization.valueobjects.Individual;
+@JsonInclude(JsonInclude.Include.NON_NULL)
public class SubjectEntityJSON {
-
+ @JsonProperty
private String subjectEntityLabel;
+
+ @JsonProperty
private String subjectEntityURI;
+
+ @JsonProperty
private Map parentURIToLabel = new HashMap();
public SubjectEntityJSON(String subjectEntityURI, String label,
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
index b269197a..7afa6110 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/UtilityFunctions.java
@@ -12,13 +12,15 @@ import java.util.TreeMap;
import javax.servlet.http.HttpServletResponse;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormatter;
-import com.google.gson.Gson;
-
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
@@ -151,10 +153,10 @@ public class UtilityFunctions {
GenericQueryMap errorDataResponse = new GenericQueryMap();
errorDataResponse.addEntry("error", errorMessage);
- Gson jsonErrorResponse = new Gson();
-
+ ObjectMapper mapper = new ObjectMapper();
+
response.setContentType("application/octet-stream");
- response.getWriter().write(jsonErrorResponse.toJson(errorDataResponse));
+ mapper.writeValue(response.getWriter(), errorDataResponse);
}
public static DateTime getValidParsedDateTimeObject(String unparsedDateTime) {
diff --git a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java
index 7afd1237..fc95f991 100644
--- a/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java
+++ b/api/src/main/java/edu/cornell/mannlib/vitro/webapp/visualization/visutils/VisualizationRequestHandler.java
@@ -3,6 +3,7 @@ package edu.cornell.mannlib.vitro.webapp.visualization.visutils;
import java.util.Map;
+import com.fasterxml.jackson.core.JsonProcessingException;
import org.apache.commons.logging.Log;
import org.apache.jena.query.Dataset;
@@ -38,10 +39,10 @@ public interface VisualizationRequestHandler {
Object generateAjaxVisualization(VitroRequest vitroRequest,
Log log,
- Dataset dataSource) throws MalformedQueryParametersException;
+ Dataset dataSource) throws MalformedQueryParametersException, JsonProcessingException;
Map generateDataVisualization(VitroRequest vitroRequest,
Log log,
- Dataset dataset) throws MalformedQueryParametersException;
+ Dataset dataset) throws MalformedQueryParametersException, JsonProcessingException;
}