This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-tracer.git
commit 79afa360907a8fa1a6178e30d186404f1b1bd682 Author: Karl Pauls <[email protected]> AuthorDate: Wed May 31 21:30:28 2017 +0000 SLING-6900: Remove commons.json from Log Tracer git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1797116 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 22 ++++++++---- .../sling/tracer/internal/JSONRecording.java | 20 +++++------ .../sling/tracer/internal/TracerLogServlet.java | 5 ++- .../sling/tracer/internal/JSONRecordingTest.java | 42 +++++++++++----------- .../sling/tracer/internal/LogTracerTest.java | 22 ++++++------ .../tracer/internal/TracerLogServletTest.java | 14 ++++---- 6 files changed, 68 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index d5a2fd6..ac754f2 100644 --- a/pom.xml +++ b/pom.xml @@ -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> diff --git a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java index 56c1804..b7355ca 100644 --- a/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java +++ b/src/main/java/org/apache/sling/tracer/internal/JSONRecording.java @@ -46,9 +46,8 @@ import javax.servlet.http.HttpServletRequest; 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, Comparable<JSONRecording> { 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, Comparable<JSONRecording> { } } - 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, Comparable<JSONRecording> { } 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, Comparable<JSONRecording> { 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, Comparable<JSONRecording> { 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, Comparable<JSONRecording> { } } - 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, Comparable<JSONRecording> { } 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, Comparable<JSONRecording> { } @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, Comparable<JSONRecording> { } @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); diff --git a/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java b/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java index b8081e5..da2feaa 100644 --- a/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java +++ b/src/main/java/org/apache/sling/tracer/internal/TracerLogServlet.java @@ -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 SimpleWebConsolePlugin implements TraceLogRecorde jw.key("error").value("Not found"); jw.endObject(); } - } catch (JSONException e) { + } catch (IOException e) { throw new ServletException(e); } } diff --git a/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java b/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java index 8daf2b4..81660aa 100644 --- a/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java +++ b/src/test/java/org/apache/sling/tracer/internal/JSONRecordingTest.java @@ -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){ diff --git a/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java b/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java index da7b200..6961509 100644 --- a/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java +++ b/src/test/java/org/apache/sling/tracer/internal/LogTracerTest.java @@ -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.ImmutableMap; 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()); } diff --git a/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java b/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java index 546a406..988c208 100644 --- a/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java +++ b/src/test/java/org/apache/sling/tracer/internal/TracerLogServletTest.java @@ -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"); } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
