Add extension point to register JGit PostUploadHooks
Plugins may register PostUploadHook instances in order to get notified after JGit is done uploading a pack. Now that PostUploadHook can be registered using the DynamicSet, use that mechanism to register UploadPackMetricsHook. Change-Id: If848bddc85ca8923a5d55f7dd448ac218c910e1c
This commit is contained in:
@@ -21,7 +21,6 @@ import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||
import com.google.gerrit.server.git.SearchingChangeCacheImpl;
|
||||
import com.google.gerrit.server.git.TagCache;
|
||||
import com.google.gerrit.server.git.TransferConfig;
|
||||
import com.google.gerrit.server.git.UploadPackMetricsHook;
|
||||
import com.google.gerrit.server.git.VisibleRefFilter;
|
||||
import com.google.gerrit.server.git.validators.UploadValidationException;
|
||||
import com.google.gerrit.server.git.validators.UploadValidators;
|
||||
@@ -30,6 +29,8 @@ import com.google.gerrit.sshd.AbstractGitCommand;
|
||||
import com.google.gerrit.sshd.SshSession;
|
||||
import com.google.inject.Inject;
|
||||
|
||||
import org.eclipse.jgit.transport.PostUploadHook;
|
||||
import org.eclipse.jgit.transport.PostUploadHookChain;
|
||||
import org.eclipse.jgit.transport.PreUploadHook;
|
||||
import org.eclipse.jgit.transport.PreUploadHookChain;
|
||||
import org.eclipse.jgit.transport.UploadPack;
|
||||
@@ -58,15 +59,15 @@ final class Upload extends AbstractGitCommand {
|
||||
@Inject
|
||||
private DynamicSet<PreUploadHook> preUploadHooks;
|
||||
|
||||
@Inject
|
||||
private DynamicSet<PostUploadHook> postUploadHooks;
|
||||
|
||||
@Inject
|
||||
private UploadValidators.Factory uploadValidatorsFactory;
|
||||
|
||||
@Inject
|
||||
private SshSession session;
|
||||
|
||||
@Inject
|
||||
private UploadPackMetricsHook uploadMetrics;
|
||||
|
||||
@Override
|
||||
protected void runImpl() throws IOException, Failure {
|
||||
if (!projectControl.canRunUploadPack()) {
|
||||
@@ -80,7 +81,8 @@ final class Upload extends AbstractGitCommand {
|
||||
true));
|
||||
up.setPackConfig(config.getPackConfig());
|
||||
up.setTimeout(config.getTimeout());
|
||||
up.setPostUploadHook(uploadMetrics);
|
||||
up.setPostUploadHook(
|
||||
PostUploadHookChain.newChain(Lists.newArrayList(postUploadHooks)));
|
||||
|
||||
List<PreUploadHook> allPreUploadHooks = Lists.newArrayList(preUploadHooks);
|
||||
allPreUploadHooks.add(uploadValidatorsFactory.create(project, repo,
|
||||
|
||||
Reference in New Issue
Block a user