Refactor ChangeHookRunner as an interface
This enables deciding at startup time if hooks will be supported, and if not stub in a dummy implementation that does nothing. This is mainly useful for my gerrit-review.googlesource.com environment where the standard hook system of spawning an external program is not supportable. The factoring is a simple step towards a more pluggable event system. Someone could implement a new version of ChangeHooks that uses a Guice multibinding to dispatch these events to multiple instances of the ChangeHooks API. Change-Id: I6e9fba78f87d6e9ba8aaf80d386230334a492ea2
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.account;
|
package com.google.gerrit.httpd.rpc.account;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.AccountSecurity;
|
import com.google.gerrit.common.data.AccountSecurity;
|
||||||
import com.google.gerrit.common.data.GroupDetail;
|
import com.google.gerrit.common.data.GroupDetail;
|
||||||
import com.google.gerrit.common.errors.ContactInformationStoreException;
|
import com.google.gerrit.common.errors.ContactInformationStoreException;
|
||||||
@@ -84,7 +84,7 @@ class AccountSecurityImpl extends BaseServiceImplementation implements
|
|||||||
private final ExternalIdDetailFactory.Factory externalIdDetailFactory;
|
private final ExternalIdDetailFactory.Factory externalIdDetailFactory;
|
||||||
private final MyGroupsFactory.Factory myGroupsFactory;
|
private final MyGroupsFactory.Factory myGroupsFactory;
|
||||||
|
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
AccountSecurityImpl(final Provider<ReviewDb> schema,
|
AccountSecurityImpl(final Provider<ReviewDb> schema,
|
||||||
@@ -100,7 +100,7 @@ class AccountSecurityImpl extends BaseServiceImplementation implements
|
|||||||
final DeleteExternalIds.Factory deleteExternalIdsFactory,
|
final DeleteExternalIds.Factory deleteExternalIdsFactory,
|
||||||
final ExternalIdDetailFactory.Factory externalIdDetailFactory,
|
final ExternalIdDetailFactory.Factory externalIdDetailFactory,
|
||||||
final MyGroupsFactory.Factory myGroupsFactory,
|
final MyGroupsFactory.Factory myGroupsFactory,
|
||||||
final ChangeHookRunner hooks) {
|
final ChangeHooks hooks) {
|
||||||
super(schema, currentUser);
|
super(schema, currentUser);
|
||||||
contactStore = cs;
|
contactStore = cs;
|
||||||
authConfig = ac;
|
authConfig = ac;
|
||||||
|
@@ -14,14 +14,11 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.changedetail;
|
package com.google.gerrit.httpd.rpc.changedetail;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
|
||||||
import com.google.gerrit.common.data.ChangeDetail;
|
import com.google.gerrit.common.data.ChangeDetail;
|
||||||
import com.google.gerrit.common.data.ReviewResult;
|
import com.google.gerrit.common.data.ReviewResult;
|
||||||
import com.google.gerrit.common.errors.NoSuchEntityException;
|
import com.google.gerrit.common.errors.NoSuchEntityException;
|
||||||
import com.google.gerrit.httpd.rpc.Handler;
|
import com.google.gerrit.httpd.rpc.Handler;
|
||||||
import com.google.gerrit.reviewdb.Change;
|
|
||||||
import com.google.gerrit.reviewdb.PatchSet;
|
import com.google.gerrit.reviewdb.PatchSet;
|
||||||
import com.google.gerrit.server.ChangeUtil;
|
|
||||||
import com.google.gerrit.server.changedetail.AbandonChange;
|
import com.google.gerrit.server.changedetail.AbandonChange;
|
||||||
import com.google.gerrit.server.mail.EmailException;
|
import com.google.gerrit.server.mail.EmailException;
|
||||||
import com.google.gerrit.server.patch.PatchSetInfoNotAvailableException;
|
import com.google.gerrit.server.patch.PatchSetInfoNotAvailableException;
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.changedetail;
|
package com.google.gerrit.httpd.rpc.changedetail;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ChangeDetail;
|
import com.google.gerrit.common.data.ChangeDetail;
|
||||||
import com.google.gerrit.common.errors.NoSuchEntityException;
|
import com.google.gerrit.common.errors.NoSuchEntityException;
|
||||||
import com.google.gerrit.httpd.rpc.Handler;
|
import com.google.gerrit.httpd.rpc.Handler;
|
||||||
@@ -50,7 +50,7 @@ class RestoreChange extends Handler<ChangeDetail> {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RestoreChange(final ChangeControl.Factory changeControlFactory,
|
RestoreChange(final ChangeControl.Factory changeControlFactory,
|
||||||
@@ -58,7 +58,7 @@ class RestoreChange extends Handler<ChangeDetail> {
|
|||||||
final RestoredSender.Factory senderFactory,
|
final RestoredSender.Factory senderFactory,
|
||||||
final ChangeDetailFactory.Factory changeDetailFactory,
|
final ChangeDetailFactory.Factory changeDetailFactory,
|
||||||
@Assisted final PatchSet.Id patchSetId,
|
@Assisted final PatchSet.Id patchSetId,
|
||||||
@Assisted @Nullable final String message, final ChangeHookRunner hooks) {
|
@Assisted @Nullable final String message, final ChangeHooks hooks) {
|
||||||
this.changeControlFactory = changeControlFactory;
|
this.changeControlFactory = changeControlFactory;
|
||||||
this.db = db;
|
this.db = db;
|
||||||
this.currentUser = currentUser;
|
this.currentUser = currentUser;
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.changedetail;
|
package com.google.gerrit.httpd.rpc.changedetail;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ChangeDetail;
|
import com.google.gerrit.common.data.ChangeDetail;
|
||||||
import com.google.gerrit.common.errors.NoSuchEntityException;
|
import com.google.gerrit.common.errors.NoSuchEntityException;
|
||||||
import com.google.gerrit.httpd.rpc.Handler;
|
import com.google.gerrit.httpd.rpc.Handler;
|
||||||
@@ -60,7 +60,7 @@ class RevertChange extends Handler<ChangeDetail> {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
private final GitRepositoryManager gitManager;
|
private final GitRepositoryManager gitManager;
|
||||||
private final PatchSetInfoFactory patchSetInfoFactory;
|
private final PatchSetInfoFactory patchSetInfoFactory;
|
||||||
@@ -73,7 +73,7 @@ class RevertChange extends Handler<ChangeDetail> {
|
|||||||
final RevertedSender.Factory revertedSenderFactory,
|
final RevertedSender.Factory revertedSenderFactory,
|
||||||
final ChangeDetailFactory.Factory changeDetailFactory,
|
final ChangeDetailFactory.Factory changeDetailFactory,
|
||||||
@Assisted final PatchSet.Id patchSetId,
|
@Assisted final PatchSet.Id patchSetId,
|
||||||
@Assisted @Nullable final String message, final ChangeHookRunner hooks,
|
@Assisted @Nullable final String message, final ChangeHooks hooks,
|
||||||
final GitRepositoryManager gitManager,
|
final GitRepositoryManager gitManager,
|
||||||
final PatchSetInfoFactory patchSetInfoFactory,
|
final PatchSetInfoFactory patchSetInfoFactory,
|
||||||
final ReplicationQueue replication,
|
final ReplicationQueue replication,
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.project;
|
package com.google.gerrit.httpd.rpc.project;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ListBranchesResult;
|
import com.google.gerrit.common.data.ListBranchesResult;
|
||||||
import com.google.gerrit.common.errors.InvalidNameException;
|
import com.google.gerrit.common.errors.InvalidNameException;
|
||||||
import com.google.gerrit.common.errors.InvalidRevisionException;
|
import com.google.gerrit.common.errors.InvalidRevisionException;
|
||||||
@@ -60,7 +60,7 @@ class AddBranch extends Handler<ListBranchesResult> {
|
|||||||
private final IdentifiedUser identifiedUser;
|
private final IdentifiedUser identifiedUser;
|
||||||
private final GitRepositoryManager repoManager;
|
private final GitRepositoryManager repoManager;
|
||||||
private final ReplicationQueue replication;
|
private final ReplicationQueue replication;
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
private final Project.NameKey projectName;
|
private final Project.NameKey projectName;
|
||||||
private final String branchName;
|
private final String branchName;
|
||||||
@@ -72,7 +72,7 @@ class AddBranch extends Handler<ListBranchesResult> {
|
|||||||
final IdentifiedUser identifiedUser,
|
final IdentifiedUser identifiedUser,
|
||||||
final GitRepositoryManager repoManager,
|
final GitRepositoryManager repoManager,
|
||||||
final ReplicationQueue replication,
|
final ReplicationQueue replication,
|
||||||
final ChangeHookRunner hooks,
|
final ChangeHooks hooks,
|
||||||
|
|
||||||
@Assisted Project.NameKey projectName,
|
@Assisted Project.NameKey projectName,
|
||||||
@Assisted("branchName") String branchName,
|
@Assisted("branchName") String branchName,
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.httpd.rpc.project;
|
package com.google.gerrit.httpd.rpc.project;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.httpd.rpc.Handler;
|
import com.google.gerrit.httpd.rpc.Handler;
|
||||||
import com.google.gerrit.reviewdb.Branch;
|
import com.google.gerrit.reviewdb.Branch;
|
||||||
import com.google.gerrit.reviewdb.Project;
|
import com.google.gerrit.reviewdb.Project;
|
||||||
@@ -49,7 +49,7 @@ class DeleteBranches extends Handler<Set<Branch.NameKey>> {
|
|||||||
private final GitRepositoryManager repoManager;
|
private final GitRepositoryManager repoManager;
|
||||||
private final ReplicationQueue replication;
|
private final ReplicationQueue replication;
|
||||||
private final IdentifiedUser identifiedUser;
|
private final IdentifiedUser identifiedUser;
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
private final Project.NameKey projectName;
|
private final Project.NameKey projectName;
|
||||||
private final Set<Branch.NameKey> toRemove;
|
private final Set<Branch.NameKey> toRemove;
|
||||||
@@ -59,7 +59,7 @@ class DeleteBranches extends Handler<Set<Branch.NameKey>> {
|
|||||||
final GitRepositoryManager repoManager,
|
final GitRepositoryManager repoManager,
|
||||||
final ReplicationQueue replication,
|
final ReplicationQueue replication,
|
||||||
final IdentifiedUser identifiedUser,
|
final IdentifiedUser identifiedUser,
|
||||||
final ChangeHookRunner hooks,
|
final ChangeHooks hooks,
|
||||||
|
|
||||||
@Assisted Project.NameKey name, @Assisted Set<Branch.NameKey> toRemove) {
|
@Assisted Project.NameKey name, @Assisted Set<Branch.NameKey> toRemove) {
|
||||||
this.projectControlFactory = projectControlFactory;
|
this.projectControlFactory = projectControlFactory;
|
||||||
|
@@ -16,6 +16,7 @@ package com.google.gerrit.pgm;
|
|||||||
|
|
||||||
import static com.google.gerrit.server.schema.DataSourceProvider.Context.MULTI_USER;
|
import static com.google.gerrit.server.schema.DataSourceProvider.Context.MULTI_USER;
|
||||||
|
|
||||||
|
import com.google.gerrit.common.ChangeHookRunner;
|
||||||
import com.google.gerrit.httpd.CacheBasedWebSession;
|
import com.google.gerrit.httpd.CacheBasedWebSession;
|
||||||
import com.google.gerrit.httpd.GitOverHttpModule;
|
import com.google.gerrit.httpd.GitOverHttpModule;
|
||||||
import com.google.gerrit.httpd.HttpCanonicalWebUrlProvider;
|
import com.google.gerrit.httpd.HttpCanonicalWebUrlProvider;
|
||||||
@@ -194,6 +195,7 @@ public class Daemon extends SiteProgram {
|
|||||||
modules.add(SchemaVersionCheck.module());
|
modules.add(SchemaVersionCheck.module());
|
||||||
modules.add(new LogFileCompressor.Module());
|
modules.add(new LogFileCompressor.Module());
|
||||||
modules.add(new WorkQueue.Module());
|
modules.add(new WorkQueue.Module());
|
||||||
|
modules.add(new ChangeHookRunner.Module());
|
||||||
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
||||||
modules.add(new SmtpEmailSender.Module());
|
modules.add(new SmtpEmailSender.Module());
|
||||||
modules.add(new SignedTokenEmailTokenVerifier.Module());
|
modules.add(new SignedTokenEmailTokenVerifier.Module());
|
||||||
|
@@ -46,6 +46,7 @@ import com.google.gerrit.server.project.ProjectCache;
|
|||||||
import com.google.gerrit.server.project.ProjectControl;
|
import com.google.gerrit.server.project.ProjectControl;
|
||||||
import com.google.gerrit.server.project.ProjectState;
|
import com.google.gerrit.server.project.ProjectState;
|
||||||
import com.google.gwtorm.client.OrmException;
|
import com.google.gwtorm.client.OrmException;
|
||||||
|
import com.google.inject.AbstractModule;
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.Singleton;
|
import com.google.inject.Singleton;
|
||||||
|
|
||||||
@@ -67,14 +68,20 @@ import java.util.Map;
|
|||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
/**
|
/** Spawns local executables when a hook action occurs. */
|
||||||
* This class implements hooks for certain gerrit events.
|
|
||||||
*/
|
|
||||||
@Singleton
|
@Singleton
|
||||||
public class ChangeHookRunner {
|
public class ChangeHookRunner implements ChangeHooks {
|
||||||
/** A logger for this class. */
|
/** A logger for this class. */
|
||||||
private static final Logger log = LoggerFactory.getLogger(ChangeHookRunner.class);
|
private static final Logger log = LoggerFactory.getLogger(ChangeHookRunner.class);
|
||||||
|
|
||||||
|
public static class Module extends AbstractModule {
|
||||||
|
@Override
|
||||||
|
protected void configure() {
|
||||||
|
bind(ChangeHookRunner.class);
|
||||||
|
bind(ChangeHooks.class).to(ChangeHookRunner.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class ChangeListenerHolder {
|
private static class ChangeListenerHolder {
|
||||||
final ChangeListener listener;
|
final ChangeListener listener;
|
||||||
final IdentifiedUser user;
|
final IdentifiedUser user;
|
||||||
@@ -216,13 +223,6 @@ public class ChangeHookRunner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Patchset Created Hook.
|
|
||||||
*
|
|
||||||
* @param change The change itself.
|
|
||||||
* @param patchSet The Patchset that was created.
|
|
||||||
* @throws OrmException
|
|
||||||
*/
|
|
||||||
public void doPatchsetCreatedHook(final Change change, final PatchSet patchSet,
|
public void doPatchsetCreatedHook(final Change change, final PatchSet patchSet,
|
||||||
final ReviewDb db) throws OrmException {
|
final ReviewDb db) throws OrmException {
|
||||||
final PatchSetCreatedEvent event = new PatchSetCreatedEvent();
|
final PatchSetCreatedEvent event = new PatchSetCreatedEvent();
|
||||||
@@ -245,16 +245,6 @@ public class ChangeHookRunner {
|
|||||||
runHook(openRepository(change), patchsetCreatedHook, args);
|
runHook(openRepository(change), patchsetCreatedHook, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Comment Added Hook.
|
|
||||||
*
|
|
||||||
* @param change The change itself.
|
|
||||||
* @param patchSet The patchset this comment is related to.
|
|
||||||
* @param account The gerrit user who commited the change.
|
|
||||||
* @param comment The comment given.
|
|
||||||
* @param approvals Map of Approval Categories and Scores
|
|
||||||
* @throws OrmException
|
|
||||||
*/
|
|
||||||
public void doCommentAddedHook(final Change change, final Account account,
|
public void doCommentAddedHook(final Change change, final Account account,
|
||||||
final PatchSet patchSet, final String comment, final Map<ApprovalCategory.Id,
|
final PatchSet patchSet, final String comment, final Map<ApprovalCategory.Id,
|
||||||
ApprovalCategoryValue.Id> approvals, final ReviewDb db) throws OrmException {
|
ApprovalCategoryValue.Id> approvals, final ReviewDb db) throws OrmException {
|
||||||
@@ -290,14 +280,6 @@ public class ChangeHookRunner {
|
|||||||
runHook(openRepository(change), commentAddedHook, args);
|
runHook(openRepository(change), commentAddedHook, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Change Merged Hook.
|
|
||||||
*
|
|
||||||
* @param change The change itself.
|
|
||||||
* @param account The gerrit user who commited the change.
|
|
||||||
* @param patchSet The patchset that was merged.
|
|
||||||
* @throws OrmException
|
|
||||||
*/
|
|
||||||
public void doChangeMergedHook(final Change change, final Account account,
|
public void doChangeMergedHook(final Change change, final Account account,
|
||||||
final PatchSet patchSet, final ReviewDb db) throws OrmException {
|
final PatchSet patchSet, final ReviewDb db) throws OrmException {
|
||||||
final ChangeMergedEvent event = new ChangeMergedEvent();
|
final ChangeMergedEvent event = new ChangeMergedEvent();
|
||||||
@@ -318,14 +300,6 @@ public class ChangeHookRunner {
|
|||||||
runHook(openRepository(change), changeMergedHook, args);
|
runHook(openRepository(change), changeMergedHook, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Change Abandoned Hook.
|
|
||||||
*
|
|
||||||
* @param change The change itself.
|
|
||||||
* @param account The gerrit user who abandoned the change.
|
|
||||||
* @param reason Reason for abandoning the change.
|
|
||||||
* @throws OrmException
|
|
||||||
*/
|
|
||||||
public void doChangeAbandonedHook(final Change change, final Account account,
|
public void doChangeAbandonedHook(final Change change, final Account account,
|
||||||
final String reason, final ReviewDb db) throws OrmException {
|
final String reason, final ReviewDb db) throws OrmException {
|
||||||
final ChangeAbandonedEvent event = new ChangeAbandonedEvent();
|
final ChangeAbandonedEvent event = new ChangeAbandonedEvent();
|
||||||
@@ -346,14 +320,6 @@ public class ChangeHookRunner {
|
|||||||
runHook(openRepository(change), changeAbandonedHook, args);
|
runHook(openRepository(change), changeAbandonedHook, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Change Restored Hook.
|
|
||||||
*
|
|
||||||
* @param change The change itself.
|
|
||||||
* @param account The gerrit user who restored the change.
|
|
||||||
* @param reason Reason for restoring the change.
|
|
||||||
* @throws OrmException
|
|
||||||
*/
|
|
||||||
public void doChangeRestoreHook(final Change change, final Account account,
|
public void doChangeRestoreHook(final Change change, final Account account,
|
||||||
final String reason, final ReviewDb db) throws OrmException {
|
final String reason, final ReviewDb db) throws OrmException {
|
||||||
final ChangeRestoreEvent event = new ChangeRestoreEvent();
|
final ChangeRestoreEvent event = new ChangeRestoreEvent();
|
||||||
@@ -374,23 +340,10 @@ public class ChangeHookRunner {
|
|||||||
runHook(openRepository(change), changeRestoredHook, args);
|
runHook(openRepository(change), changeRestoredHook, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Ref Updated Hook
|
|
||||||
* @param project The project the ref update occured on
|
|
||||||
* @param refUpdate An actual RefUpdate object
|
|
||||||
* @param account The gerrit user who moved the ref
|
|
||||||
*/
|
|
||||||
public void doRefUpdatedHook(final Branch.NameKey refName, final RefUpdate refUpdate, final Account account) {
|
public void doRefUpdatedHook(final Branch.NameKey refName, final RefUpdate refUpdate, final Account account) {
|
||||||
doRefUpdatedHook(refName, refUpdate.getOldObjectId(), refUpdate.getNewObjectId(), account);
|
doRefUpdatedHook(refName, refUpdate.getOldObjectId(), refUpdate.getNewObjectId(), account);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Fire the Ref Updated Hook
|
|
||||||
* @param refName The Branch.NameKey of the ref that was updated
|
|
||||||
* @param oldId The ref's old id
|
|
||||||
* @param newId The ref's new id
|
|
||||||
* @param account The gerrit user who moved the ref
|
|
||||||
*/
|
|
||||||
public void doRefUpdatedHook(final Branch.NameKey refName, final ObjectId oldId, final ObjectId newId, final Account account) {
|
public void doRefUpdatedHook(final Branch.NameKey refName, final ObjectId oldId, final ObjectId newId, final Account account) {
|
||||||
final RefUpdatedEvent event = new RefUpdatedEvent();
|
final RefUpdatedEvent event = new RefUpdatedEvent();
|
||||||
|
|
||||||
|
@@ -0,0 +1,119 @@
|
|||||||
|
// Copyright (C) 2012 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.common;
|
||||||
|
|
||||||
|
import com.google.gerrit.reviewdb.Account;
|
||||||
|
import com.google.gerrit.reviewdb.ApprovalCategory;
|
||||||
|
import com.google.gerrit.reviewdb.ApprovalCategoryValue;
|
||||||
|
import com.google.gerrit.reviewdb.Branch;
|
||||||
|
import com.google.gerrit.reviewdb.Change;
|
||||||
|
import com.google.gerrit.reviewdb.ContributorAgreement;
|
||||||
|
import com.google.gerrit.reviewdb.PatchSet;
|
||||||
|
import com.google.gerrit.reviewdb.ReviewDb;
|
||||||
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
|
import com.google.gwtorm.client.OrmException;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
|
import org.eclipse.jgit.lib.RefUpdate;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/** Invokes hooks on server actions. */
|
||||||
|
public interface ChangeHooks {
|
||||||
|
public void addChangeListener(ChangeListener listener, IdentifiedUser user);
|
||||||
|
|
||||||
|
public void removeChangeListener(ChangeListener listener);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Patchset Created Hook.
|
||||||
|
*
|
||||||
|
* @param change The change itself.
|
||||||
|
* @param patchSet The Patchset that was created.
|
||||||
|
* @throws OrmException
|
||||||
|
*/
|
||||||
|
public void doPatchsetCreatedHook(Change change, PatchSet patchSet,
|
||||||
|
ReviewDb db) throws OrmException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Comment Added Hook.
|
||||||
|
*
|
||||||
|
* @param change The change itself.
|
||||||
|
* @param patchSet The patchset this comment is related to.
|
||||||
|
* @param account The gerrit user who commited the change.
|
||||||
|
* @param comment The comment given.
|
||||||
|
* @param approvals Map of Approval Categories and Scores
|
||||||
|
* @throws OrmException
|
||||||
|
*/
|
||||||
|
public void doCommentAddedHook(Change change, Account account,
|
||||||
|
PatchSet patchSet, String comment,
|
||||||
|
Map<ApprovalCategory.Id, ApprovalCategoryValue.Id> approvals, ReviewDb db)
|
||||||
|
throws OrmException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Change Merged Hook.
|
||||||
|
*
|
||||||
|
* @param change The change itself.
|
||||||
|
* @param account The gerrit user who commited the change.
|
||||||
|
* @param patchSet The patchset that was merged.
|
||||||
|
* @throws OrmException
|
||||||
|
*/
|
||||||
|
public void doChangeMergedHook(Change change, Account account,
|
||||||
|
PatchSet patchSet, ReviewDb db) throws OrmException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Change Abandoned Hook.
|
||||||
|
*
|
||||||
|
* @param change The change itself.
|
||||||
|
* @param account The gerrit user who abandoned the change.
|
||||||
|
* @param reason Reason for abandoning the change.
|
||||||
|
* @throws OrmException
|
||||||
|
*/
|
||||||
|
public void doChangeAbandonedHook(Change change, Account account,
|
||||||
|
String reason, ReviewDb db) throws OrmException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Change Restored Hook.
|
||||||
|
*
|
||||||
|
* @param change The change itself.
|
||||||
|
* @param account The gerrit user who restored the change.
|
||||||
|
* @param reason Reason for restoring the change.
|
||||||
|
* @throws OrmException
|
||||||
|
*/
|
||||||
|
public void doChangeRestoreHook(Change change, Account account,
|
||||||
|
String reason, ReviewDb db) throws OrmException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Ref Updated Hook
|
||||||
|
*
|
||||||
|
* @param refName The updated project and branch.
|
||||||
|
* @param refUpdate An actual RefUpdate object
|
||||||
|
* @param account The gerrit user who moved the ref
|
||||||
|
*/
|
||||||
|
public void doRefUpdatedHook(Branch.NameKey refName, RefUpdate refUpdate,
|
||||||
|
Account account);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fire the Ref Updated Hook
|
||||||
|
*
|
||||||
|
* @param refName The Branch.NameKey of the ref that was updated
|
||||||
|
* @param oldId The ref's old id
|
||||||
|
* @param newId The ref's new id
|
||||||
|
* @param account The gerrit user who moved the ref
|
||||||
|
*/
|
||||||
|
public void doRefUpdatedHook(Branch.NameKey refName, ObjectId oldId,
|
||||||
|
ObjectId newId, Account account);
|
||||||
|
|
||||||
|
public void doClaSignupHook(Account account, ContributorAgreement cla);
|
||||||
|
}
|
@@ -0,0 +1,81 @@
|
|||||||
|
// Copyright (C) 2012 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.common;
|
||||||
|
|
||||||
|
import com.google.gerrit.reviewdb.Account;
|
||||||
|
import com.google.gerrit.reviewdb.ApprovalCategory;
|
||||||
|
import com.google.gerrit.reviewdb.ApprovalCategoryValue;
|
||||||
|
import com.google.gerrit.reviewdb.Change;
|
||||||
|
import com.google.gerrit.reviewdb.ContributorAgreement;
|
||||||
|
import com.google.gerrit.reviewdb.PatchSet;
|
||||||
|
import com.google.gerrit.reviewdb.ReviewDb;
|
||||||
|
import com.google.gerrit.reviewdb.Branch.NameKey;
|
||||||
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
|
import org.eclipse.jgit.lib.RefUpdate;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/** Does not invoke hooks. */
|
||||||
|
public final class DisabledChangeHooks implements ChangeHooks {
|
||||||
|
@Override
|
||||||
|
public void addChangeListener(ChangeListener listener, IdentifiedUser user) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doChangeAbandonedHook(Change change, Account account,
|
||||||
|
String reason, ReviewDb db) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doChangeMergedHook(Change change, Account account,
|
||||||
|
PatchSet patchSet, ReviewDb db) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doChangeRestoreHook(Change change, Account account,
|
||||||
|
String reason, ReviewDb db) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doClaSignupHook(Account account, ContributorAgreement cla) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doCommentAddedHook(Change change, Account account,
|
||||||
|
PatchSet patchSet, String comment,
|
||||||
|
Map<ApprovalCategory.Id, ApprovalCategoryValue.Id> approvals, ReviewDb db) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doPatchsetCreatedHook(Change change, PatchSet patchSet,
|
||||||
|
ReviewDb db) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doRefUpdatedHook(NameKey refName, RefUpdate refUpdate,
|
||||||
|
Account account) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doRefUpdatedHook(NameKey refName, ObjectId oldId, ObjectId newId,
|
||||||
|
Account account) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeChangeListener(ChangeListener listener) {
|
||||||
|
}
|
||||||
|
}
|
@@ -16,7 +16,7 @@ package com.google.gerrit.server;
|
|||||||
|
|
||||||
import static com.google.gerrit.reviewdb.ApprovalCategory.SUBMIT;
|
import static com.google.gerrit.reviewdb.ApprovalCategory.SUBMIT;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.reviewdb.Change;
|
import com.google.gerrit.reviewdb.Change;
|
||||||
import com.google.gerrit.reviewdb.ChangeMessage;
|
import com.google.gerrit.reviewdb.ChangeMessage;
|
||||||
import com.google.gerrit.reviewdb.PatchSet;
|
import com.google.gerrit.reviewdb.PatchSet;
|
||||||
@@ -216,7 +216,7 @@ public class ChangeUtil {
|
|||||||
public static Change.Id revert(final PatchSet.Id patchSetId,
|
public static Change.Id revert(final PatchSet.Id patchSetId,
|
||||||
final IdentifiedUser user, final String message, final ReviewDb db,
|
final IdentifiedUser user, final String message, final ReviewDb db,
|
||||||
final RevertedSender.Factory revertedSenderFactory,
|
final RevertedSender.Factory revertedSenderFactory,
|
||||||
final ChangeHookRunner hooks, GitRepositoryManager gitManager,
|
final ChangeHooks hooks, GitRepositoryManager gitManager,
|
||||||
final PatchSetInfoFactory patchSetInfoFactory,
|
final PatchSetInfoFactory patchSetInfoFactory,
|
||||||
final ReplicationQueue replication, PersonIdent myIdent)
|
final ReplicationQueue replication, PersonIdent myIdent)
|
||||||
throws NoSuchChangeException, EmailException, OrmException,
|
throws NoSuchChangeException, EmailException, OrmException,
|
||||||
@@ -320,7 +320,7 @@ public class ChangeUtil {
|
|||||||
public static void restore(final PatchSet.Id patchSetId,
|
public static void restore(final PatchSet.Id patchSetId,
|
||||||
final IdentifiedUser user, final String message, final ReviewDb db,
|
final IdentifiedUser user, final String message, final ReviewDb db,
|
||||||
final RestoredSender.Factory senderFactory,
|
final RestoredSender.Factory senderFactory,
|
||||||
final ChangeHookRunner hooks) throws NoSuchChangeException,
|
final ChangeHooks hooks) throws NoSuchChangeException,
|
||||||
InvalidChangeOperationException, EmailException, OrmException {
|
InvalidChangeOperationException, EmailException, OrmException {
|
||||||
final Change.Id changeId = patchSetId.getParentKey();
|
final Change.Id changeId = patchSetId.getParentKey();
|
||||||
final PatchSet patch = db.patchSets().get(patchSetId);
|
final PatchSet patch = db.patchSets().get(patchSetId);
|
||||||
|
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.changedetail;
|
package com.google.gerrit.server.changedetail;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ReviewResult;
|
import com.google.gerrit.common.data.ReviewResult;
|
||||||
import com.google.gerrit.reviewdb.Change;
|
import com.google.gerrit.reviewdb.Change;
|
||||||
import com.google.gerrit.reviewdb.ChangeMessage;
|
import com.google.gerrit.reviewdb.ChangeMessage;
|
||||||
@@ -45,7 +45,7 @@ public class AbandonChange implements Callable<ReviewResult> {
|
|||||||
private final ChangeControl.Factory changeControlFactory;
|
private final ChangeControl.Factory changeControlFactory;
|
||||||
private final ReviewDb db;
|
private final ReviewDb db;
|
||||||
private final IdentifiedUser currentUser;
|
private final IdentifiedUser currentUser;
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
private final PatchSet.Id patchSetId;
|
private final PatchSet.Id patchSetId;
|
||||||
private final String changeComment;
|
private final String changeComment;
|
||||||
@@ -53,7 +53,7 @@ public class AbandonChange implements Callable<ReviewResult> {
|
|||||||
@Inject
|
@Inject
|
||||||
AbandonChange(final AbandonedSender.Factory abandonedSenderFactory,
|
AbandonChange(final AbandonedSender.Factory abandonedSenderFactory,
|
||||||
final ChangeControl.Factory changeControlFactory, final ReviewDb db,
|
final ChangeControl.Factory changeControlFactory, final ReviewDb db,
|
||||||
final IdentifiedUser currentUser, final ChangeHookRunner hooks,
|
final IdentifiedUser currentUser, final ChangeHooks hooks,
|
||||||
@Assisted final PatchSet.Id patchSetId,
|
@Assisted final PatchSet.Id patchSetId,
|
||||||
@Assisted final String changeComment) {
|
@Assisted final String changeComment) {
|
||||||
this.abandonedSenderFactory = abandonedSenderFactory;
|
this.abandonedSenderFactory = abandonedSenderFactory;
|
||||||
|
@@ -17,7 +17,7 @@ package com.google.gerrit.server.git;
|
|||||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
import static java.util.concurrent.TimeUnit.MINUTES;
|
import static java.util.concurrent.TimeUnit.MINUTES;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ApprovalType;
|
import com.google.gerrit.common.data.ApprovalType;
|
||||||
import com.google.gerrit.common.data.ApprovalTypes;
|
import com.google.gerrit.common.data.ApprovalTypes;
|
||||||
import com.google.gerrit.common.data.Capable;
|
import com.google.gerrit.common.data.Capable;
|
||||||
@@ -159,7 +159,7 @@ public class MergeOp {
|
|||||||
private Set<RevCommit> alreadyAccepted;
|
private Set<RevCommit> alreadyAccepted;
|
||||||
private RefUpdate branchUpdate;
|
private RefUpdate branchUpdate;
|
||||||
|
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
private final AccountCache accountCache;
|
private final AccountCache accountCache;
|
||||||
private final TagCache tagCache;
|
private final TagCache tagCache;
|
||||||
private final CreateCodeReviewNotes.Factory codeReviewNotesFactory;
|
private final CreateCodeReviewNotes.Factory codeReviewNotesFactory;
|
||||||
@@ -176,7 +176,7 @@ public class MergeOp {
|
|||||||
final ChangeControl.GenericFactory changeControlFactory,
|
final ChangeControl.GenericFactory changeControlFactory,
|
||||||
@GerritPersonIdent final PersonIdent myIdent,
|
@GerritPersonIdent final PersonIdent myIdent,
|
||||||
final MergeQueue mergeQueue, @Assisted final Branch.NameKey branch,
|
final MergeQueue mergeQueue, @Assisted final Branch.NameKey branch,
|
||||||
final ChangeHookRunner hooks, final AccountCache accountCache,
|
final ChangeHooks hooks, final AccountCache accountCache,
|
||||||
final TagCache tagCache, final CreateCodeReviewNotes.Factory crnf,
|
final TagCache tagCache, final CreateCodeReviewNotes.Factory crnf,
|
||||||
final SubmoduleOp.Factory subOpFactory) {
|
final SubmoduleOp.Factory subOpFactory) {
|
||||||
repoManager = grm;
|
repoManager = grm;
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.git;
|
package com.google.gerrit.server.git;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.PageLinks;
|
import com.google.gerrit.common.PageLinks;
|
||||||
import com.google.gerrit.common.data.ApprovalType;
|
import com.google.gerrit.common.data.ApprovalType;
|
||||||
import com.google.gerrit.common.data.ApprovalTypes;
|
import com.google.gerrit.common.data.ApprovalTypes;
|
||||||
@@ -124,7 +124,7 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
|
|||||||
private final ReplacePatchSetSender.Factory replacePatchSetFactory;
|
private final ReplacePatchSetSender.Factory replacePatchSetFactory;
|
||||||
private final ReplicationQueue replication;
|
private final ReplicationQueue replication;
|
||||||
private final PatchSetInfoFactory patchSetInfoFactory;
|
private final PatchSetInfoFactory patchSetInfoFactory;
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
private final GitRepositoryManager repoManager;
|
private final GitRepositoryManager repoManager;
|
||||||
private final ProjectCache projectCache;
|
private final ProjectCache projectCache;
|
||||||
private final String canonicalWebUrl;
|
private final String canonicalWebUrl;
|
||||||
@@ -163,7 +163,7 @@ public class ReceiveCommits implements PreReceiveHook, PostReceiveHook {
|
|||||||
final ReplacePatchSetSender.Factory replacePatchSetFactory,
|
final ReplacePatchSetSender.Factory replacePatchSetFactory,
|
||||||
final ReplicationQueue replication,
|
final ReplicationQueue replication,
|
||||||
final PatchSetInfoFactory patchSetInfoFactory,
|
final PatchSetInfoFactory patchSetInfoFactory,
|
||||||
final ChangeHookRunner hooks,
|
final ChangeHooks hooks,
|
||||||
final ProjectCache projectCache,
|
final ProjectCache projectCache,
|
||||||
final GitRepositoryManager repoManager,
|
final GitRepositoryManager repoManager,
|
||||||
final TagCache tagCache,
|
final TagCache tagCache,
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.patch;
|
package com.google.gerrit.server.patch;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ApprovalType;
|
import com.google.gerrit.common.data.ApprovalType;
|
||||||
import com.google.gerrit.common.data.ApprovalTypes;
|
import com.google.gerrit.common.data.ApprovalTypes;
|
||||||
import com.google.gerrit.reviewdb.ApprovalCategory;
|
import com.google.gerrit.reviewdb.ApprovalCategory;
|
||||||
@@ -67,7 +67,7 @@ public class PublishComments implements Callable<VoidResult> {
|
|||||||
private final PatchSetInfoFactory patchSetInfoFactory;
|
private final PatchSetInfoFactory patchSetInfoFactory;
|
||||||
private final ChangeControl.Factory changeControlFactory;
|
private final ChangeControl.Factory changeControlFactory;
|
||||||
private final FunctionState.Factory functionStateFactory;
|
private final FunctionState.Factory functionStateFactory;
|
||||||
private final ChangeHookRunner hooks;
|
private final ChangeHooks hooks;
|
||||||
|
|
||||||
private final PatchSet.Id patchSetId;
|
private final PatchSet.Id patchSetId;
|
||||||
private final String messageText;
|
private final String messageText;
|
||||||
@@ -86,7 +86,7 @@ public class PublishComments implements Callable<VoidResult> {
|
|||||||
final PatchSetInfoFactory patchSetInfoFactory,
|
final PatchSetInfoFactory patchSetInfoFactory,
|
||||||
final ChangeControl.Factory changeControlFactory,
|
final ChangeControl.Factory changeControlFactory,
|
||||||
final FunctionState.Factory functionStateFactory,
|
final FunctionState.Factory functionStateFactory,
|
||||||
final ChangeHookRunner hooks,
|
final ChangeHooks hooks,
|
||||||
|
|
||||||
@Assisted final PatchSet.Id patchSetId,
|
@Assisted final PatchSet.Id patchSetId,
|
||||||
@Assisted final String messageText,
|
@Assisted final String messageText,
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.sshd.commands;
|
package com.google.gerrit.sshd.commands;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.data.ApprovalType;
|
import com.google.gerrit.common.data.ApprovalType;
|
||||||
import com.google.gerrit.common.data.ApprovalTypes;
|
import com.google.gerrit.common.data.ApprovalTypes;
|
||||||
import com.google.gerrit.common.data.ReviewResult;
|
import com.google.gerrit.common.data.ReviewResult;
|
||||||
@@ -150,7 +150,7 @@ public class ReviewCommand extends BaseCommand {
|
|||||||
private RestoredSender.Factory restoredSenderFactory;
|
private RestoredSender.Factory restoredSenderFactory;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ChangeHookRunner hooks;
|
private ChangeHooks hooks;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private GitRepositoryManager gitManager;
|
private GitRepositoryManager gitManager;
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
package com.google.gerrit.sshd.commands;
|
package com.google.gerrit.sshd.commands;
|
||||||
|
|
||||||
import com.google.gerrit.common.ChangeHookRunner;
|
import com.google.gerrit.common.ChangeHooks;
|
||||||
import com.google.gerrit.common.ChangeListener;
|
import com.google.gerrit.common.ChangeListener;
|
||||||
import com.google.gerrit.server.IdentifiedUser;
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
import com.google.gerrit.server.events.ChangeEvent;
|
import com.google.gerrit.server.events.ChangeEvent;
|
||||||
@@ -43,7 +43,7 @@ final class StreamEvents extends BaseCommand {
|
|||||||
private IdentifiedUser currentUser;
|
private IdentifiedUser currentUser;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ChangeHookRunner hooks;
|
private ChangeHooks hooks;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@StreamCommandExecutor
|
@StreamCommandExecutor
|
||||||
|
@@ -17,6 +17,7 @@ package com.google.gerrit.httpd;
|
|||||||
import static com.google.inject.Scopes.SINGLETON;
|
import static com.google.inject.Scopes.SINGLETON;
|
||||||
import static com.google.inject.Stage.PRODUCTION;
|
import static com.google.inject.Stage.PRODUCTION;
|
||||||
|
|
||||||
|
import com.google.gerrit.common.ChangeHookRunner;
|
||||||
import com.google.gerrit.lifecycle.LifecycleManager;
|
import com.google.gerrit.lifecycle.LifecycleManager;
|
||||||
import com.google.gerrit.lifecycle.LifecycleModule;
|
import com.google.gerrit.lifecycle.LifecycleModule;
|
||||||
import com.google.gerrit.server.config.AuthConfigModule;
|
import com.google.gerrit.server.config.AuthConfigModule;
|
||||||
@@ -184,6 +185,7 @@ public class WebAppInitializer extends GuiceServletContextListener {
|
|||||||
private Injector createSysInjector() {
|
private Injector createSysInjector() {
|
||||||
final List<Module> modules = new ArrayList<Module>();
|
final List<Module> modules = new ArrayList<Module>();
|
||||||
modules.add(new WorkQueue.Module());
|
modules.add(new WorkQueue.Module());
|
||||||
|
modules.add(new ChangeHookRunner.Module());
|
||||||
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
modules.add(cfgInjector.getInstance(GerritGlobalModule.class));
|
||||||
modules.add(new SmtpEmailSender.Module());
|
modules.add(new SmtpEmailSender.Module());
|
||||||
modules.add(new SignedTokenEmailTokenVerifier.Module());
|
modules.add(new SignedTokenEmailTokenVerifier.Module());
|
||||||
|
Reference in New Issue
Block a user