package org.jboss.resteasy.test.providers.custom.resource; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.ext.Provider; import java.io.IOException; import java.lang.reflect.Type; @Provider public class ResponseFilter implements ContainerResponseFilter { @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (requestContext.getUriInfo().getPath().endsWith("getstatus")) { int status = responseContext.getStatus(); responseContext.setStatus(Response.Status.OK.getStatusCode()); responseContext.setEntity(String.valueOf(status), null, MediaType.TEXT_PLAIN_TYPE); } else if (requestContext.getUriInfo().getPath().endsWith("getentitytype")) { Type type = responseContext.getEntityType(); String name = "NULL"; if (type instanceof Class) { name = ((Class<?>) type).getName(); } else if (type != null) { name = type.getClass().getName(); } responseContext.setEntity(name, null, MediaType.TEXT_PLAIN_TYPE); } else if (requestContext.getUriInfo().getPath().endsWith("getstatusinfo")) { Response.StatusType type = responseContext.getStatusInfo(); if (type == null) { responseContext.setEntity("NULL", null, MediaType.TEXT_PLAIN_TYPE); responseContext.setStatus(Response.Status.OK.getStatusCode()); return; } int status = type.getStatusCode(); responseContext.setStatus(Response.Status.OK.getStatusCode()); responseContext.setEntity(String.valueOf(status), null, MediaType.TEXT_PLAIN_TYPE); } } }