Author: pauls Date: Tue Mar 28 13:03:21 2017 New Revision: 1789121 URL: http://svn.apache.org/viewvc?rev=1789121&view=rev Log: SLING-6693: Replace commons.json usage in org.apache.sling.hc.core
Modified: sling/trunk/bundles/extensions/healthcheck/core/pom.xml sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/ResultJsonSerializer.java sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/U.java Modified: sling/trunk/bundles/extensions/healthcheck/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/pom.xml?rev=1789121&r1=1789120&r2=1789121&view=diff ============================================================================== --- sling/trunk/bundles/extensions/healthcheck/core/pom.xml (original) +++ sling/trunk/bundles/extensions/healthcheck/core/pom.xml Tue Mar 28 13:03:21 2017 @@ -218,6 +218,13 @@ <scope>provided</scope> </dependency> + <dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.commons.johnzon</artifactId> + <version>0.1.0-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.commons.scheduler</artifactId> @@ -238,12 +245,6 @@ <scope>provided</scope> </dependency> - <dependency> - <groupId>org.apache.sling</groupId> - <artifactId>org.apache.sling.commons.json</artifactId> - <version>2.0.6</version> - <scope>provided</scope> - </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/ResultJsonSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/ResultJsonSerializer.java?rev=1789121&r1=1789120&r2=1789121&view=diff ============================================================================== --- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/ResultJsonSerializer.java (original) +++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/servlet/ResultJsonSerializer.java Tue Mar 28 13:03:21 2017 @@ -21,12 +21,15 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.List; +import javax.json.Json; +import javax.json.JsonArrayBuilder; +import javax.json.JsonException; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; + import org.apache.commons.lang.StringUtils; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Service; -import org.apache.sling.commons.json.JSONArray; -import org.apache.sling.commons.json.JSONException; -import org.apache.sling.commons.json.JSONObject; import org.apache.sling.hc.api.Result; import org.apache.sling.hc.api.ResultLog; import org.apache.sling.hc.api.execution.HealthCheckExecutionResult; @@ -47,60 +50,65 @@ public class ResultJsonSerializer { LOG.debug("Sending json response... "); - JSONObject result = new JSONObject(); + JsonObjectBuilder result = Json.createObjectBuilder(); try { - result.put("overallResult", overallResult.getStatus()); - JSONArray resultsJsonArr = new JSONArray(); - result.put("results", resultsJsonArr); - + result.add("overallResult", overallResult.getStatus().toString()); + JsonArrayBuilder resultsJsonArr = Json.createArrayBuilder(); + for (HealthCheckExecutionResult healthCheckResult : executionResults) { - resultsJsonArr.put(getJsonForSimpleResult(healthCheckResult, includeDebug)); + resultsJsonArr.add(getJsonForSimpleResult(healthCheckResult, includeDebug)); } - - } catch (JSONException e) { + + result.add("results", resultsJsonArr); + } catch (JsonException e) { LOG.info("Could not serialize health check result: " + e, e); } - String resultStr; + StringWriter writer = new StringWriter(); + Json.createGenerator(writer).write(result.build()).close(); + + String resultStr = writer.toString(); + if (StringUtils.isNotBlank(jsonpCallback)) { - resultStr = jsonpCallback + "(" + result.toString() + ");"; - } else { - resultStr = result.toString(); + resultStr = jsonpCallback + "(" + resultStr + ");"; } return resultStr; } - private JSONObject getJsonForSimpleResult(final HealthCheckExecutionResult healthCheckResult, boolean includeDebug) throws JSONException { + private JsonObject getJsonForSimpleResult(final HealthCheckExecutionResult healthCheckResult, boolean includeDebug) { - JSONObject result = new JSONObject(); + JsonObjectBuilder result = Json.createObjectBuilder(); - result.put("name", healthCheckResult.getHealthCheckMetadata().getName()); - result.put("status", healthCheckResult.getHealthCheckResult().getStatus()); - result.put("timeInMs", healthCheckResult.getElapsedTimeInMs()); - result.put("finishedAt", healthCheckResult.getFinishedAt()); + result.add("name", healthCheckResult.getHealthCheckMetadata().getName()); + result.add("status", healthCheckResult.getHealthCheckResult().getStatus().toString()); + result.add("timeInMs", healthCheckResult.getElapsedTimeInMs()); + result.add("finishedAt", healthCheckResult.getFinishedAt().toString()); - JSONArray messagesArr = new JSONArray(); - result.put("messages", messagesArr); + JsonArrayBuilder messagesArr = Json.createArrayBuilder(); + for (ResultLog.Entry entry : healthCheckResult.getHealthCheckResult()) { if (!includeDebug && entry.getStatus() == Result.Status.DEBUG) { continue; } - JSONObject jsonEntry = new JSONObject(); - jsonEntry.put("status", entry.getStatus()); - jsonEntry.put("message", entry.getMessage()); + JsonObjectBuilder jsonEntry = Json.createObjectBuilder(); + jsonEntry.add("status", entry.getStatus().toString()); + jsonEntry.add("message", entry.getMessage()); Exception exception = entry.getException(); if (exception != null) { StringWriter stringWriter = new StringWriter(); exception.printStackTrace(new PrintWriter(stringWriter)); - jsonEntry.put("exception", stringWriter.toString()); + jsonEntry.add("exception", stringWriter.toString()); } - messagesArr.put(jsonEntry); + messagesArr.add(jsonEntry); } + + result.add("messages", messagesArr); + - return result; + return result.build(); } } Modified: sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/U.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/U.java?rev=1789121&r1=1789120&r2=1789121&view=diff ============================================================================== --- sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/U.java (original) +++ sling/trunk/bundles/extensions/healthcheck/core/src/test/java/org/apache/sling/hc/core/it/U.java Tue Mar 28 13:03:21 2017 @@ -103,7 +103,7 @@ public class U { mavenBundle("org.apache.felix", "org.apache.felix.scr", "1.6.2"), mavenBundle("org.apache.felix", "org.apache.felix.configadmin", "1.8.8"), mavenBundle("org.apache.sling", "org.apache.sling.commons.osgi", "2.2.0"), - mavenBundle("org.apache.sling", "org.apache.sling.commons.json", "2.0.10"), + mavenBundle("org.apache.sling", "org.apache.sling.commons.johnzon").versionAsInProject(), mavenBundle("org.apache.sling", "org.apache.sling.jcr.jcr-wrapper", "2.0.0"), mavenBundle("org.apache.sling", "org.apache.sling.api", "2.4.2"), mavenBundle("org.apache.sling", "org.apache.sling.jcr.api", "2.1.0"),