package org.jboss.resteasy.test.core.interceptors.resource; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.core.Context; import javax.ws.rs.core.GenericEntity; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.ArrayList; import java.util.List; @Path("resource") public class ReaderContextResource { public static final String HEADERNAME = "FILTER_HEADER"; public static final String getName() { // make this long enough to let entity provider getSize() // be enough to let our interceptor name fit in return "<resource>" + ReaderContextResource.class.getName() + "</resource>"; } @POST @Path("postlist") public String postList(List<String> list) { return list.iterator().next(); } @GET @Path("getlist") public Response getList() { ArrayList<String> list = new ArrayList<String>(); list.add(getName()); GenericEntity<ArrayList<String>> entity = new GenericEntity<ArrayList<String>>( list) { }; return buildResponse(entity); } @POST @Path("poststring") public Response postString(String string) { return buildResponse(string); } // /////////////////////////////////////////////////////////////////////////// // Send header that would have the power to enable filter / interceptor // The header is passed from client request @Context private HttpHeaders headers; private Response buildResponse(Object content) { return buildResponse(content, MediaType.WILDCARD_TYPE); } private Response buildResponse(Object content, MediaType type) { List<String> list = headers.getRequestHeader(HEADERNAME); String name = null; if (list != null && list.size() != 0) { name = list.iterator().next(); } Response.ResponseBuilder builder = Response.ok(content, type).type(type); if (name != null) { builder.header(HEADERNAME, name); } return builder.build(); } }