package org.jboss.resteasy.test.client.resource; import org.jboss.resteasy.annotations.cache.Cache; import org.jboss.resteasy.test.client.ClientCacheTest; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.CacheControl; import javax.ws.rs.core.Context; import javax.ws.rs.core.EntityTag; import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; @Path("/cache") public class ClientCacheService { @GET @Produces("text/plain") @Cache(maxAge = 2) public String get() { ClientCacheTest.count++; return "hello world" + ClientCacheTest.count; } @Path("/etag/always/good") @GET @Produces("text/plain") public Response getEtagged(@Context Request request) { ClientCacheTest.count++; Response.ResponseBuilder builder = request.evaluatePreconditions(new EntityTag("42")); CacheControl cc = new CacheControl(); cc.setMaxAge(2); if (builder != null) { return builder.cacheControl(cc).build(); } return Response.ok("hello" + ClientCacheTest.count).cacheControl(cc).tag("42").build(); } @Path("/etag/never/good") @GET @Produces("text/plain") public Response getEtaggedNeverGood(@Context Request request) { ClientCacheTest.count++; Response.ResponseBuilder builder = request.evaluatePreconditions(new EntityTag("42")); if (builder != null) { return Response.serverError().build(); } CacheControl cc = new CacheControl(); cc.setMaxAge(2); return Response.ok("hello" + ClientCacheTest.count).cacheControl(cc).tag("32").build(); } @Path("/etag/always/validate") @GET @Produces("text/plain") public Response getValidateEtagged(@Context Request request) { ClientCacheTest.count++; Response.ResponseBuilder builder = request.evaluatePreconditions(new EntityTag("42")); if (builder != null) { return builder.build(); } return Response.ok("hello" + ClientCacheTest.count).tag("42").build(); } @Path("/cacheit/{id}") @GET @Produces("text/plain") @Cache(maxAge = 3000) public String getCacheit(@PathParam("id") String id) { ClientCacheTest.count++; return "cachecache" + ClientCacheTest.count; } }