You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2017/05/31 21:30:29 UTC
svn commit: r1797116 - in /sling/trunk/contrib/extensions/tracer: ./
src/main/java/org/apache/sling/tracer/internal/
src/test/java/org/apache/sling/tracer/internal/
Author: pauls
Date: Wed May 31 21:30:28 2017
New Revision: 1797116
URL: http://svn.apache.org/viewvc?rev=1797116&view=rev
Log:
SLING-6900: Remove commons.json from Log Tracer
Modified:
sling/trunk/contrib/extensions/tracer/pom.xml
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
sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java
sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java
Modified: sling/trunk/contrib/extensions/tracer/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/pom.xml?rev=1797116&r1=1797115&r2=1797116&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/pom.xml (original)
+++ sling/trunk/contrib/extensions/tracer/pom.xml Wed May 31 21:30:28 2017
@@ -59,6 +59,9 @@
<Bundle-DocURL>
https://sling.apache.org/documentation/bundles/log-tracers.html
</Bundle-DocURL>
+ <Embed-Dependency>
+ org.apache.felix.utils;inline=org/apache/felix/utils/json/JSONWriter.class
+ </Embed-Dependency>
</instructions>
</configuration>
</plugin>
@@ -109,6 +112,12 @@
<version>4.3.1</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.utils</artifactId>
+ <version>1.9.0</version>
+ <scope>provided</scope>
+ </dependency>
<!-- TODO Inline just the cache related classes -->
<dependency>
<groupId>com.google.guava</groupId>
@@ -127,11 +136,6 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.json</artifactId>
- <version>2.0.6</version>
- </dependency>
- <dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.0</version>
@@ -157,7 +161,7 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.sling-mock</artifactId>
- <version>1.3.0</version>
+ <version>2.2.11-SNAPSHOT</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -166,6 +170,12 @@
<version>1.10.19</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.commons.johnzon</artifactId>
+ <version>1.0.0</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
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=1797116&r1=1797115&r2=1797116&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 Wed May 31 21:30:28 2017
@@ -46,9 +46,8 @@ import javax.servlet.http.HttpServletReq
import ch.qos.logback.classic.Level;
import com.google.common.primitives.Longs;
import org.apache.commons.io.IOUtils;
+import org.apache.felix.utils.json.JSONWriter;
import org.apache.sling.api.request.RequestProgressTracker;
-import org.apache.sling.commons.json.JSONException;
-import org.apache.sling.commons.json.io.JSONWriter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.helpers.FormattingTuple;
@@ -158,8 +157,6 @@ class JSONRecording implements Recording
queries.clear();
logs.clear();
}
- } catch (JSONException e) {
- log.warn("Error occurred while converting the log data for request {} to JSON", requestId, e);
} catch (UnsupportedEncodingException e) {
log.warn("Error occurred while converting the log data for request {} to JSON", requestId, e);
} catch (IOException e) {
@@ -167,7 +164,7 @@ class JSONRecording implements Recording
}
}
- private byte[] toJSON() throws JSONException, IOException {
+ private byte[] toJSON() throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream os = baos;
if (compress) {
@@ -175,7 +172,6 @@ class JSONRecording implements Recording
}
OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8");
JSONWriter jw = new JSONWriter(osw);
- jw.setTidy(true);
jw.object();
jw.key("method").value(method);
@@ -196,7 +192,7 @@ class JSONRecording implements Recording
return baos.toByteArray();
}
- private void addLoggerNames(JSONWriter jw) throws JSONException {
+ private void addLoggerNames(JSONWriter jw) throws IOException {
List<String> sortedNames = new ArrayList<String>(loggerNames);
Collections.sort(sortedNames);
jw.key("loggerNames");
@@ -207,7 +203,7 @@ class JSONRecording implements Recording
jw.endArray();
}
- private void addRequestProgressLogs(JSONWriter jw) throws JSONException {
+ private void addRequestProgressLogs(JSONWriter jw) throws IOException {
if (tracker != null) {
jw.key("requestProgressLogs");
jw.array();
@@ -223,7 +219,7 @@ class JSONRecording implements Recording
}
}
- private void addJson(JSONWriter jw, String name, List<? extends JsonEntry> entries) throws JSONException {
+ private void addJson(JSONWriter jw, String name, List<? extends JsonEntry> entries) throws IOException {
jw.key(name);
jw.array();
for (JsonEntry je : entries) {
@@ -254,7 +250,7 @@ class JSONRecording implements Recording
}
private interface JsonEntry {
- void toJson(JSONWriter jw) throws JSONException;
+ void toJson(JSONWriter jw) throws IOException;
}
private static class LogEntry implements JsonEntry {
@@ -306,7 +302,7 @@ class JSONRecording implements Recording
}
@Override
- public void toJson(JSONWriter jw) throws JSONException {
+ public void toJson(JSONWriter jw) throws IOException {
jw.key("timestamp").value(timestamp);
jw.key("level").value(level.levelStr);
jw.key("logger").value(logger);
@@ -351,7 +347,7 @@ class JSONRecording implements Recording
}
@Override
- public void toJson(JSONWriter jw) throws JSONException {
+ public void toJson(JSONWriter jw) throws IOException {
jw.key("query").value(query);
jw.key("plan").value(plan);
jw.key("caller").value(caller);
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=1797116&r1=1797115&r2=1797116&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 Wed May 31 21:30:28 2017
@@ -38,9 +38,8 @@ import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.Weigher;
import org.apache.commons.io.FileUtils;
+import org.apache.felix.utils.json.JSONWriter;
import org.apache.felix.webconsole.SimpleWebConsolePlugin;
-import org.apache.sling.commons.json.JSONException;
-import org.apache.sling.commons.json.io.JSONWriter;
import org.osgi.framework.BundleContext;
class TracerLogServlet extends SimpleWebConsolePlugin implements TraceLogRecorder {
@@ -142,7 +141,7 @@ class TracerLogServlet extends SimpleWeb
jw.key("error").value("Not found");
jw.endObject();
}
- } catch (JSONException e) {
+ } catch (IOException e) {
throw new ServletException(e);
}
}
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=1797116&r1=1797115&r2=1797116&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 Wed May 31 21:30:28 2017
@@ -19,12 +19,14 @@
package org.apache.sling.tracer.internal;
+import java.io.StringReader;
import java.io.StringWriter;
+import javax.json.Json;
+import javax.json.JsonObject;
import javax.servlet.http.HttpServletRequest;
import ch.qos.logback.classic.Level;
-import org.apache.sling.commons.json.JSONObject;
import org.junit.Test;
import org.slf4j.MDC;
import org.slf4j.helpers.FormattingTuple;
@@ -59,11 +61,11 @@ public class JSONRecordingTest {
r.done();
r.render(sw);
- JSONObject json = new JSONObject(sw.toString());
- assertEquals("GET", json.get("method"));
- assertTrue(json.has("time"));
- assertTrue(json.has("timestamp"));
- assertEquals(1, json.getJSONArray("queries").length());
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+ assertEquals("GET", json.getString("method"));
+ assertTrue(json.containsKey("time"));
+ assertTrue(json.containsKey("timestamp"));
+ assertEquals(1, json.getJsonArray("queries").size());
}
@Test
@@ -76,8 +78,8 @@ public class JSONRecordingTest {
r.done();
r.render(sw);
- JSONObject json = new JSONObject(sw.toString());
- assertEquals(2, json.getJSONArray("requestProgressLogs").length());
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+ assertEquals(2, json.getJsonArray("requestProgressLogs").size());
}
@Test
@@ -94,19 +96,19 @@ public class JSONRecordingTest {
r.done();
r.render(sw);
- JSONObject json = new JSONObject(sw.toString());
- assertEquals(3, json.getJSONArray("logs").length());
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+ assertEquals(3, json.getJsonArray("logs").size());
- JSONObject l1 = json.getJSONArray("logs").getJSONObject(0);
+ JsonObject l1 = json.getJsonArray("logs").getJsonObject(0);
assertEquals("INFO", l1.getString("level"));
assertEquals("foo", l1.getString("logger"));
assertEquals(tp1.getMessage(), l1.getString("message"));
- assertEquals(1, l1.getJSONArray("params").length());
- assertFalse(l1.has("exception"));
- assertFalse(l1.has("caller"));
- assertTrue(l1.has("timestamp"));
+ assertEquals(1, l1.getJsonArray("params").size());
+ assertFalse(l1.containsKey("exception"));
+ assertFalse(l1.containsKey("caller"));
+ assertTrue(l1.containsKey("timestamp"));
- JSONObject l3 = json.getJSONArray("logs").getJSONObject(2);
+ JsonObject l3 = json.getJsonArray("logs").getJsonObject(2);
assertNotNull(l3.get("exception"));
}
@@ -122,10 +124,10 @@ public class JSONRecordingTest {
r.done();
r.render(sw);
- JSONObject json = new JSONObject(sw.toString());
- JSONObject l1 = json.getJSONArray("logs").getJSONObject(0);
- assertTrue(l1.has("caller"));
- assertTrue(l1.getJSONArray("caller").length() > 0);
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+ JsonObject l1 = json.getJsonArray("logs").getJsonObject(0);
+ assertTrue(l1.containsKey("caller"));
+ assertTrue(l1.getJsonArray("caller").size() > 0);
}
private static FormattingTuple tuple(String msg){
Modified: sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java?rev=1797116&r1=1797115&r2=1797116&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java Wed May 31 21:30:28 2017
@@ -20,10 +20,13 @@
package org.apache.sling.tracer.internal;
import java.io.IOException;
+import java.io.StringReader;
import java.io.StringWriter;
import java.util.Collection;
import java.util.List;
+import javax.json.Json;
+import javax.json.JsonObject;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.Servlet;
@@ -42,7 +45,6 @@ import com.google.common.collect.Immutab
import com.google.common.collect.Lists;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.request.RequestProgressTracker;
-import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.testing.mock.osgi.MockOsgi;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
import org.apache.sling.testing.mock.osgi.junit.OsgiContextCallback;
@@ -276,7 +278,7 @@ public class LogTracerTest {
@Test
public void recordingWithoutTracing() throws Exception{
activateTracerAndServlet();
- MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(){
+ MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(context.bundleContext()){
@Override
public RequestProgressTracker getRequestProgressTracker() {
return createTracker("x", "y");
@@ -310,15 +312,15 @@ public class LogTracerTest {
StringWriter sw = new StringWriter();
jr.render(sw);
- JSONObject json = new JSONObject(sw.toString());
-
- assertEquals(2, json.getJSONArray("requestProgressLogs").length());
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+
+ assertEquals(2, json.getJsonArray("requestProgressLogs").size());
}
@Test
public void recordingWithTracing() throws Exception{
activateTracerAndServlet();
- MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(){
+ MockSlingHttpServletRequest request = new MockSlingHttpServletRequest(context.bundleContext()){
@Override
public RequestProgressTracker getRequestProgressTracker() {
return createTracker("x", "y");
@@ -354,10 +356,10 @@ public class LogTracerTest {
StringWriter sw = new StringWriter();
jr.render(sw);
- JSONObject json = new JSONObject(sw.toString());
-
- assertEquals(2, json.getJSONArray("requestProgressLogs").length());
- assertEquals(1, json.getJSONArray("logs").length());
+ JsonObject json = Json.createReader(new StringReader(sw.toString())).readObject();
+
+ assertEquals(2, json.getJsonArray("requestProgressLogs").size());
+ assertEquals(1, json.getJsonArray("logs").size());
}
Modified: sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java?rev=1797116&r1=1797115&r2=1797116&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java (original)
+++ sling/trunk/contrib/extensions/tracer/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java Wed May 31 21:30:28 2017
@@ -23,16 +23,18 @@ import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
+import java.io.StringReader;
import java.io.StringWriter;
import java.util.zip.GZIPInputStream;
import javax.annotation.Nonnull;
+import javax.json.Json;
+import javax.json.JsonObject;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
-import org.apache.sling.commons.json.JSONObject;
import org.apache.sling.testing.mock.osgi.junit.OsgiContext;
import org.apache.sling.testing.mock.sling.servlet.MockSlingHttpServletRequest;
import org.junit.Rule;
@@ -74,7 +76,7 @@ public class TracerLogServletTest {
@Test
public void recordingWhenRequested() throws Exception{
TracerLogServlet logServlet = new TracerLogServlet(context.bundleContext());
- request = new MockSlingHttpServletRequest();
+ request = new MockSlingHttpServletRequest(context.bundleContext());
Recording recording = logServlet.startRecording(request, response);
assertNotNull(recording);
@@ -114,9 +116,9 @@ public class TracerLogServletTest {
when(request.getRequestURI()).thenReturn("/system/console/" + requestIdCaptor.getValue() + ".json" );
logServlet.renderContent(request, response);
- JSONObject json = new JSONObject(sos.baos.toString("UTF-8"));
+ JsonObject json = Json.createReader(new StringReader(sos.baos.toString("UTF-8"))).readObject();
assertEquals("GET", json.getString("method"));
- assertEquals(2, json.getJSONArray("requestProgressLogs").length());
+ assertEquals(2, json.getJsonArray("requestProgressLogs").size());
}
@Test
@@ -141,9 +143,9 @@ public class TracerLogServletTest {
logServlet.renderContent(request, response);
byte[] data = IOUtils.toByteArray(new GZIPInputStream(new ByteArrayInputStream(sos.baos.toByteArray())));
- JSONObject json = new JSONObject(new String(data, "UTF-8"));
+ JsonObject json = Json.createReader(new StringReader(new String(data, "UTF-8"))).readObject();
assertEquals("GET", json.getString("method"));
- assertEquals(2, json.getJSONArray("requestProgressLogs").length());
+ assertEquals(2, json.getJsonArray("requestProgressLogs").size());
verify(response).setHeader("Content-Encoding" , "gzip");
}