package org.jboss.resteasy.test.resource.basic.resource; import java.util.Arrays; import java.util.List; import javax.ws.rs.DefaultValue; import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.core.Variant; @Path("/") public class MediaTypeFromMessageBodyWriterResource { @GET @Path("{type}") public Object hello(@PathParam("type") final String type, @HeaderParam("Accept") final String accept) throws Exception { return Class.forName(type).newInstance(); } @GET @Path("fixed") public Object fixedResponse(@QueryParam("type") @DefaultValue(MediaType.TEXT_PLAIN) final MediaType type) { final List<Integer> body = Arrays.asList(1, 2, 3, 4, 5, 6); return Response.ok(body, type).build(); } @GET @Path("variants") public Response variantsResponse() { final List<Integer> body = Arrays.asList(1, 2, 3, 4, 5, 6); final List<Variant> variants = Variant .mediaTypes(MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML_TYPE, MediaType.TEXT_PLAIN_TYPE).build(); return Response.ok(body).variants(variants).build(); } @GET @Path("variantsObject") public Object variantsObjectResponse() { final List<Integer> body = Arrays.asList(1, 2, 3, 4, 5, 6); final List<Variant> variants = Variant .mediaTypes(MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML_TYPE, MediaType.TEXT_PLAIN_TYPE).build(); return Response.ok(body).variants(variants).build(); } }