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"),


Reply via email to