@@ -0,0 +1,2734 @@
+/**%0A * Licensed to the Apache Software Foundation (ASF) under one%0A * or more contributor license agreements.  See the NOTICE file%0A * distributed with this work for additional information%0A * regarding copyright ownership.  The ASF licenses this file%0A * to you under the Apache License, Version 2.0 (the%0A * %22License%22); you may not use this file except in compliance%0A * with the License.  You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage org.apache.jena.fuseki;%0A%0Aimport java.io.IOException;%0Aimport org.apache.commons.io.IOUtils;%0Aimport org.apache.http.HttpResponse;%0Aimport org.apache.jena.riot.WebContent;%0Aimport org.apache.jena.riot.web.HttpOp;%0Aimport org.apache.jena.riot.web.HttpResponseHandler;%0Aimport org.apache.jena.web.HttpSC;%0Aimport org.junit.Test;%0A%0Aimport static org.apache.commons.lang3.StringUtils.substringAfter;%0Aimport static org.apache.commons.lang3.StringUtils.substringBefore;%0Aimport static org.hamcrest.CoreMatchers.containsString;%0Aimport static org.hamcrest.core.Is.is;%0A%0Apublic class TestMetrics extends AbstractFusekiTest %7B%0A%0A    @Test%0A    public void can_retrieve_metrics() %7B%0A        RecordingResponseHandler responseHandler = new RecordingResponseHandler();%0A%0A        HttpOp.execHttpGet( ServerCtl.urlRoot() + %22$/metrics%22 ,%0A                %22%22,%0A                responseHandler);%0A%0A        assertThat(responseHandler.statusCode, is(HttpSC.OK_200));%0A        assertThat(responseHandler.contentType, is(WebContent.contentTypeTextPlain));%0A        assertThat(responseHandler.encoding, is(WebContent.charsetUTF8));%0A        assertThat(responseHandler.content, containsString(%22fuseki_requests_good%22));%0A    %7D%0A%0A    static class RecordingResponseHandler implements HttpResponseHandler %7B%0A%0A        private int statusCode;%0A        private String contentType;%0A        private String encoding;%0A        private String content;%0A%0A        @Override%0A        public void handle(String baseIRI, HttpResponse response) throws IOException %7B%0A            statusCode = response.getStatusLine().getStatusCode();%0A            String rawContentType = response.getEntity().getContentType().toString();%0A            contentType = substringBefore( substringAfter(rawContentType, %22Content-Type: %22), %22;%22);%0A            encoding = substringAfter(rawContentType, %22charset=%22);%0A            content = IOUtils.toString( response.getEntity().getContent(), encoding);%0A        %7D%0A%0A    %7D%0A%0A%7D%0A

Add rudimentary test for metrics