diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/Response.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/Response.java index 385554c5ca..afe0e82dae 100644 --- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/Response.java +++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/restapi/Response.java @@ -14,6 +14,8 @@ package com.google.gerrit.extensions.restapi; +import java.util.concurrent.TimeUnit; + /** Special return value to mean specific HTTP status codes in a REST API. */ public abstract class Response { @SuppressWarnings({"rawtypes"}) @@ -24,6 +26,11 @@ public abstract class Response { return new Impl<>(200, value); } + public static Response withMustRevalidate(T value) { + return ok(value).caching( + CacheControl.PRIVATE(0, TimeUnit.SECONDS).setMustRevalidate()); + } + /** HTTP 201 Created: typically used when a new resource is made. */ public static Response created(T value) { return new Impl<>(201, value); diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/Check.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/Check.java index 210eeab7dd..514d6c88af 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/Check.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/Check.java @@ -37,7 +37,7 @@ public class Check implements RestReadView, @Override public Response apply(ChangeResource rsrc) throws OrmException { - return GetChange.cache(json.format(rsrc)); + return Response.withMustRevalidate(json.format(rsrc)); } @Override @@ -49,6 +49,6 @@ public class Check implements RestReadView, && !ctl.getCurrentUser().getCapabilities().canAdministrateServer()) { throw new AuthException("Not owner"); } - return GetChange.cache(json.fix(input).format(rsrc)); + return Response.withMustRevalidate(json.fix(input).format(rsrc)); } } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetChange.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetChange.java index f3673c9cc1..a5a1614e13 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetChange.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetChange.java @@ -16,7 +16,6 @@ package com.google.gerrit.server.change; import com.google.gerrit.extensions.common.ChangeInfo; import com.google.gerrit.extensions.common.ListChangesOption; -import com.google.gerrit.extensions.restapi.CacheControl; import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestReadView; import com.google.gwtorm.server.OrmException; @@ -24,8 +23,6 @@ import com.google.inject.Inject; import org.kohsuke.args4j.Option; -import java.util.concurrent.TimeUnit; - public class GetChange implements RestReadView { private final ChangeJson json; @@ -46,15 +43,10 @@ public class GetChange implements RestReadView { @Override public Response apply(ChangeResource rsrc) throws OrmException { - return cache(json.format(rsrc)); + return Response.withMustRevalidate(json.format(rsrc)); } Response apply(RevisionResource rsrc) throws OrmException { - return cache(json.format(rsrc)); - } - - static Response cache(ChangeInfo res) { - return Response.ok(res) - .caching(CacheControl.PRIVATE(0, TimeUnit.SECONDS).setMustRevalidate()); + return Response.withMustRevalidate(json.format(rsrc)); } }