package org.jboss.resteasy.test.providers.custom.resource; import org.jboss.logging.Logger; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.GenericEntity; import javax.ws.rs.core.Response; import java.lang.reflect.Method; import java.util.LinkedList; @Path("resource") public class CollectionProviderResource { private static Logger logger = Logger.getLogger(CollectionProviderResource.class); @Path("linkedlist") @GET public LinkedList<String> checkDirect() { LinkedList<String> list = new LinkedList<String>(); list.add("linked"); list.add("list"); return list; } @Path("response/linkedlist") @GET public Response checkResponseDirect() { LinkedList<String> list = new LinkedList<String>(); list.add("linked"); list.add("list"); return Response.ok(list).build(); } @Path("response/genericentity/linkedlist") @GET public Response checkResponseGeneric() { GenericEntity<LinkedList<String>> gells = checkGeneric(); return Response.ok(gells).build(); } @Path("genericentity/linkedlist") @GET public GenericEntity<LinkedList<String>> checkGeneric() { LinkedList<String> list = new LinkedList<String>(); list.add("linked"); list.add("list"); GenericEntity<LinkedList<String>> gells = null; Method method = getMethodByName("checkDirect"); if (method == null) { throw new WebApplicationException("No method in the Resource to bind the request", 500); } gells = new GenericEntity<LinkedList<String>>(list, method.getGenericReturnType()); return gells; } private Method getMethodByName(String name) { try { return getClass().getMethod(name); } catch (NoSuchMethodException e) { logger.error("No method in the Resource to bind the request", e); return null; } } }