Using no-cache directive in most of the replies
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sat, 24 Oct 2009 08:42:37 +0200
changeset 129fd95f7873b96
parent 128 eba04a2569d0
child 130 38615a81d3c4
Using no-cache directive in most of the replies
freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java
     1.1 --- a/freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java	Sun Oct 18 21:33:27 2009 +0200
     1.2 +++ b/freemarkerdor/src/main/java/cz/xelfi/quoridor/freemarkerdor/UI.java	Sat Oct 24 08:42:37 2009 +0200
     1.3 @@ -36,7 +36,6 @@
     1.4  import com.sun.net.httpserver.HttpServer;
     1.5  import cz.xelfi.quoridor.Board;
     1.6  import cz.xelfi.quoridor.IllegalPositionException;
     1.7 -import java.awt.Image;
     1.8  import java.io.IOException;
     1.9  import java.io.InputStream;
    1.10  import java.net.URI;
    1.11 @@ -55,6 +54,7 @@
    1.12  import javax.ws.rs.PathParam;
    1.13  import javax.ws.rs.Produces;
    1.14  import javax.ws.rs.QueryParam;
    1.15 +import javax.ws.rs.core.CacheControl;
    1.16  import javax.ws.rs.core.Context;
    1.17  import javax.ws.rs.core.Cookie;
    1.18  import javax.ws.rs.core.HttpHeaders;
    1.19 @@ -135,18 +135,22 @@
    1.20  
    1.21      @GET
    1.22      @Produces(MediaType.TEXT_HTML)
    1.23 -    public Viewable welcome(@QueryParam("maxItems") @DefaultValue("10") int maxItems) {
    1.24 +    public Response welcome(@QueryParam("maxItems") @DefaultValue("10") int maxItems) {
    1.25          Viewable v = checkLogin();
    1.26 -        if (v != null) {
    1.27 -            return v;
    1.28 +        ResponseBuilder resp = Response.ok();
    1.29 +        if (v == null) {
    1.30 +            v = welcomeImpl("maxItems", maxItems);
    1.31          }
    1.32 -        return welcomeImpl("maxItems", maxItems);
    1.33 +        CacheControl cc = new CacheControl();
    1.34 +        cc.setNoCache(true);
    1.35 +        resp.cacheControl(cc);
    1.36 +        return resp.entity(v).build();
    1.37      }
    1.38  
    1.39      @GET
    1.40      @Path("games/{id}.png")
    1.41      @Produces("image/png")
    1.42 -    public Image getBoardImage(
    1.43 +    public Response getBoardImage(
    1.44          @PathParam("id") String id,
    1.45          @QueryParam("fieldSize") @DefaultValue("50") int fieldSize,
    1.46          @QueryParam("move") @DefaultValue("-1") int move
    1.47 @@ -157,7 +161,11 @@
    1.48          }
    1.49          String txt = wr.accept(MediaType.TEXT_PLAIN).get(String.class);
    1.50          Board b = Board.valueOf(txt);
    1.51 -        return BoardImage.draw(b, fieldSize);
    1.52 +        ResponseBuilder resp = Response.ok();
    1.53 +        CacheControl cc = new CacheControl();
    1.54 +        cc.setNoCache(true);
    1.55 +        resp.cacheControl(cc);
    1.56 +        return resp.entity(BoardImage.draw(b, fieldSize)).build();
    1.57      }
    1.58  
    1.59  
    1.60 @@ -190,6 +198,9 @@
    1.61              url = url.queryParam("move", "" + move);
    1.62          }
    1.63          ResponseBuilder resp = Response.ok();
    1.64 +        CacheControl cc = new CacheControl();
    1.65 +        cc.setNoCache(true);
    1.66 +        resp.cacheControl(cc);
    1.67          Cookie cFormat = headers.getCookies().get("format");
    1.68          if (format.length() == 0) {
    1.69              if (cFormat != null) {