You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ch...@apache.org on 2016/02/09 11:39:13 UTC
svn commit: r1729352 - in /sling/trunk/contrib/extensions/tracer/src:
main/java/org/apache/sling/tracer/internal/
test/java/org/apache/sling/tracer/internal/
Author: chetanm
Date: Tue Feb 9 10:39:12 2016
New Revision: 1729352
URL: http://svn.apache.org/viewvc?rev=1729352&view=rev
Log:
SLING-5459 - Recording of tracer logs
Move JSON rendering logic to recording
Modified:
sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java
sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java
Modified: sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java?rev=1729352&r1=1729351&r2=1729352&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java Tue Feb 9 10:39:12 2016
@@ -19,6 +19,7 @@
package org.apache.sling.tracer.internal;
+import java.io.Writer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -38,14 +39,18 @@ class JSONRecording implements Recording
this.method = r.getMethod();
}
- public void render(JSONWriter jw) throws JSONException {
+ public void render(Writer pw) throws JSONException {
+ JSONWriter jw = new JSONWriter(pw);
+ jw.setTidy(true);
+ jw.object();
jw.key("method").value(method);
if (tracker != null) {
jw.key("logs");
jw.array();
Iterator<String> it = tracker.getMessages();
- while (it.hasNext()) {
+ //Per docs iterator can be null
+ while (it != null && it.hasNext()) {
jw.value(it.next());
}
jw.endArray();
@@ -57,6 +62,7 @@ class JSONRecording implements Recording
jw.value(q);
}
jw.endArray();
+ jw.endObject();
}
//~---------------------------------------< Recording >
Modified: sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java?rev=1729352&r1=1729351&r2=1729352&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java Tue Feb 9 10:39:12 2016
@@ -74,14 +74,22 @@ class TracerLogServlet extends SimpleWeb
} else {
String requestId = getRequestId(request);
prepareJSONResponse(response);
- JSONWriter jw = new JSONWriter(pw);
try {
- jw.setTidy(true);
- jw.object();
+ boolean responseDone = false;
if (requestId != null) {
- renderRequestData(requestId, jw);
+ JSONRecording recording = cache.getIfPresent(requestId);
+ if (recording != null){
+ recording.render(pw);
+ responseDone = true;
+ }
+ }
+
+ if (!responseDone) {
+ JSONWriter jw = new JSONWriter(pw);
+ jw.object();
+ jw.key("error").value("Not found");
+ jw.endObject();
}
- jw.endObject();
} catch (JSONException e) {
throw new ServletException(e);
}
@@ -107,15 +115,6 @@ class TracerLogServlet extends SimpleWeb
response.setCharacterEncoding("UTF-8");
}
- private void renderRequestData(String requestId, JSONWriter jw) throws JSONException {
- JSONRecording recording = cache.getIfPresent(requestId);
- if (recording == null){
- jw.key("error").value("Not found");
- return;
- }
- recording.render(jw);
- }
-
private void renderStatus(PrintWriter pw) {
pw.printf("<p class='statline'>Log Tracer Recordings: %d recordings</p>%n", cache.size());
Modified: sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java?rev=1729352&r1=1729351&r2=1729352&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java Tue Feb 9 10:39:12 2016
@@ -24,7 +24,6 @@ import java.io.StringWriter;
import javax.servlet.http.HttpServletRequest;
import org.apache.sling.commons.json.JSONObject;
-import org.apache.sling.commons.json.io.JSONWriter;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -44,9 +43,7 @@ public class JSONRecordingTest {
r.log(TracerContext.QUERY_LOGGER, "foo bar", new Object[]{"x" , "y"});
r.log(TracerContext.QUERY_LOGGER, "foo bar", new Object[]{"x" , "z"});
- JSONWriter jw = new JSONWriter(sw).object();
- r.render(jw);
- jw.endObject();
+ r.render(sw);
JSONObject json = new JSONObject(sw.toString());
assertEquals("GET", json.get("method"));
@@ -60,9 +57,7 @@ public class JSONRecordingTest {
r.registerTracker(TestUtil.createTracker("x", "y"));
- JSONWriter jw = new JSONWriter(sw).object();
- r.render(jw);
- jw.endObject();
+ r.render(sw);
JSONObject json = new JSONObject(sw.toString());
assertEquals(2, json.getJSONArray("logs").length());