diff --git a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java
index 889f7f3b2f25..a453e1326386 100644
--- a/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java
+++ b/jetty-servlet/src/main/java/org/eclipse/jetty/servlet/StatisticsServlet.java
@@ -54,6 +54,19 @@
import static java.nio.charset.StandardCharsets.UTF_8;
+/**
+ * Collect and report statistics about requests / responses / connections and more.
+ *
+ * You can use normal HTTP content negotiation to ask for the statistics.
+ * Specify a request Accept
header for one of the following formats:
+ *
+ * application/json
+ * text/xml
+ * text/html
+ * text/plain
- default if no Accept
header specified
+ *
+ *
+ */
public class StatisticsServlet extends HttpServlet
{
private static final Logger LOG = Log.getLogger(StatisticsServlet.class);
diff --git a/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/StatisticsServletTest.java b/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/StatisticsServletTest.java
index 5590d9bd2850..576b961f631a 100644
--- a/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/StatisticsServletTest.java
+++ b/jetty-servlet/src/test/java/org/eclipse/jetty/servlet/StatisticsServletTest.java
@@ -90,7 +90,7 @@ private void addStatisticsHandler()
}
@Test
- public void getStats()
+ public void testGetStats()
throws Exception
{
addStatisticsHandler();
@@ -103,7 +103,7 @@ public void getStats()
assertEquals(response.getStatus(), 200);
// Look for 200 response that was tracked
- response = getResponse("/stats?xml=true");
+ response = getResponse("/stats");
assertEquals(response.getStatus(), 200);
Stats stats = parseStats(response.getContent());
@@ -114,7 +114,7 @@ public void getStats()
assertEquals(response.getStatus(), 200);
// Request stats again
- response = getResponse("/stats?xml=true");
+ response = getResponse("/stats");
assertEquals(response.getStatus(), 200);
stats = parseStats(response.getContent());
@@ -128,7 +128,7 @@ public void getStats()
assertEquals(response.getStatus(), 404);
// Request stats again
- response = getResponse("/stats?xml=true");
+ response = getResponse("/stats");
assertEquals(response.getStatus(), 200);
stats = parseStats(response.getContent());
@@ -142,7 +142,7 @@ public void getStats()
}
@Test
- public void getXmlResponse()
+ public void testGetXmlResponse()
throws Exception
{
addStatisticsHandler();
@@ -166,6 +166,7 @@ public void getXmlResponse()
// Parse it, make sure it's well formed.
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
+ docBuilderFactory.setValidating(false);
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
try (ByteArrayInputStream input = new ByteArrayInputStream(response.getContentBytes()))
{
@@ -176,7 +177,7 @@ public void getXmlResponse()
}
@Test
- public void getJsonResponse()
+ public void testGetJsonResponse()
throws Exception
{
addStatisticsHandler();
@@ -213,7 +214,7 @@ public void getJsonResponse()
}
@Test
- public void getTextResponse()
+ public void testGetTextResponse()
throws Exception
{
addStatisticsHandler();
@@ -243,7 +244,7 @@ public void getTextResponse()
}
@Test
- public void getHtmlResponse()
+ public void testGetHtmlResponse()
throws Exception
{
addStatisticsHandler();
@@ -263,7 +264,7 @@ public void getHtmlResponse()
assertThat("Response.contentType", response.get(HttpHeader.CONTENT_TYPE), containsString("text/html"));
- System.out.println(response.getContent());
+ // System.out.println(response.getContent());
// Look for things that indicate it's a well formed HTML output
assertThat(response.getContent(), containsString(""));
@@ -281,6 +282,7 @@ public HttpTester.Response getResponse(String path)
{
HttpTester.Request request = new HttpTester.Request();
request.setMethod("GET");
+ request.setHeader("Accept", "text/xml");
request.setURI(path);
request.setVersion(HttpVersion.HTTP_1_1);
request.setHeader("Host", "test");