diff options
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java')
-rw-r--r-- | gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java | 45 |
1 files changed, 4 insertions, 41 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java index b21bee227b..d58c8d2a5b 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/change/GetRevisionActions.java @@ -14,59 +14,22 @@ package com.google.gerrit.server.change; -import com.google.common.base.Strings; -import com.google.common.hash.Hasher; -import com.google.common.hash.Hashing; -import com.google.gerrit.extensions.restapi.ETagView; import com.google.gerrit.extensions.restapi.Response; -import com.google.gerrit.server.CurrentUser; -import com.google.gerrit.server.config.GerritServerConfig; -import com.google.gerrit.server.query.change.ChangeData; -import com.google.gerrit.server.query.change.InternalChangeQuery; -import com.google.gwtorm.server.OrmException; -import com.google.gwtorm.server.OrmRuntimeException; +import com.google.gerrit.extensions.restapi.RestReadView; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.Singleton; -import org.eclipse.jgit.lib.Config; - @Singleton -public class GetRevisionActions implements ETagView<RevisionResource> { +public class GetRevisionActions implements RestReadView<RevisionResource> { private final ActionJson delegate; - private final Provider<InternalChangeQuery> queryProvider; - private final Config config; + @Inject - GetRevisionActions( - ActionJson delegate, - Provider<InternalChangeQuery> queryProvider, - @GerritServerConfig Config config) { + GetRevisionActions(ActionJson delegate) { this.delegate = delegate; - this.queryProvider = queryProvider; - this.config = config; } @Override public Object apply(RevisionResource rsrc) { return Response.withMustRevalidate(delegate.format(rsrc)); } - - @Override - public String getETag(RevisionResource rsrc) { - String topic = rsrc.getChange().getTopic(); - if (!Submit.wholeTopicEnabled(config) - || Strings.isNullOrEmpty(topic)) { - return rsrc.getETag(); - } - Hasher h = Hashing.md5().newHasher(); - CurrentUser user = rsrc.getControl().getCurrentUser(); - try { - for (ChangeData c : queryProvider.get().byTopicOpen(topic)) { - new ChangeResource(c.changeControl()).prepareETag(h, user); - } - } catch (OrmException e){ - throw new OrmRuntimeException(e); - } - return h.hash().toString(); - } } |