package io.dropwizard.metrics.jersey2.resources;
import io.dropwizard.metrics.annotation.ExceptionMetered;
import io.dropwizard.metrics.annotation.Metered;
import io.dropwizard.metrics.annotation.Timed;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.io.IOException;
@Path("/")
@Produces(MediaType.TEXT_PLAIN)
public class InstrumentedResource {
@GET
@Timed
@Path("/timed")
public String timed() {
return "yay";
}
@GET
@Metered
@Path("/metered")
public String metered() {
return "woo";
}
@GET
@ExceptionMetered(cause = IOException.class)
@Path("/exception-metered")
public String exceptionMetered(@QueryParam("splode") @DefaultValue("false") boolean splode) throws IOException {
if (splode) {
throw new IOException("AUGH");
}
return "fuh";
}
@Path("/subresource")
public InstrumentedSubResource locateSubResource() {
return new InstrumentedSubResource();
}
}