JBoss.orgCommunity Documentation
Client and server side caching facilities are Resteasy specific extensions of JAX-RS, and they each work differently in Resteasy 2 and Resteasy 3.
Resteasy 3 offers the same client side cache facility as Resteasy 2, but it is enabled differently,
by way of org.jboss.resteasy.client.jaxrs.cache.BrowserCacheFeature, which
implements the JAX-RS 2.0 class javax.ws.rs.core.Feature:
Client client = ClientBuilder.newClient();
String url = "http://localhost:8081/orders/{id}";
ResteasyWebTarget target = (ResteasyWebTarget) client.target(url);
BrowserCacheFeature cacheFeature = new BrowserCacheFeature();
target.register(cacheFeature);
String rtn = target.resolveTemplate("id", "1").request().get(String.class);
Client side caching also works for proxies:
@Path("/orders")
public interface OrderServiceClient
{
@Path("{id}")
@GET
@Produces("application/xml")
public Order getOrder(@PathParam("id") String id);
}
...
Client client = ClientBuilder.newClient();
String "http://localhost:8081";
ResteasyWebTarget target = (ResteasyWebTarget) client.target(url);
BrowserCacheFeature cacheFeature = new BrowserCacheFeature();
target.register(cacheFeature);
OrderServiceClient orderService = target.proxy(OrderServiceClient.class);
As in Resteasy 2, a server side caching facility that sits in front of JAX-RS resources is made available in Resteasy 3, but the default underlying cache in Resteasy 3 is Infinispan, which supercedes the JBoss Cache project. It is highly configurable, and the documentation should be consulted for additional information: http://infinispan.org/documentation/.
Server side caching is also enabled differently. Resteasy 3 uses the JAX-RS 2.0
javax.ws.rs.core.Feature facility, in the form of
org.jboss.resteasy.plugins.cache.server.ServerCacheFeature, which should be
registered via the javax.ws.rs.core.Application.