Merge change 10858

* changes:
  AddReviewerSender class is managed by Guice through AssistedInject.
This commit is contained in:
Android Code Review
2009-07-29 16:36:42 -07:00
3 changed files with 18 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.config.GerritServerConfigProvider;
import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.config.SitePathProvider;
import com.google.gerrit.server.mail.AddReviewerSender;
import com.google.gerrit.server.mail.EmailSender;
import com.google.gerrit.server.mail.RegisterNewEmailSender;
import com.google.gerrit.server.mail.SmtpEmailSender;
@@ -78,5 +79,8 @@ public class GerritServerModule extends AbstractModule {
bind(RegisterNewEmailSender.Factory.class).toProvider(
FactoryProvider.newFactory(RegisterNewEmailSender.Factory.class,
RegisterNewEmailSender.class));
bind(AddReviewerSender.Factory.class).toProvider(
FactoryProvider.newFactory(AddReviewerSender.Factory.class,
AddReviewerSender.class));
}
}

View File

@@ -16,10 +16,18 @@ package com.google.gerrit.server.mail;
import com.google.gerrit.client.reviewdb.Change;
import com.google.gerrit.server.GerritServer;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
/** Asks a user to review a change. */
public class AddReviewerSender extends NewChangeSender {
public AddReviewerSender(GerritServer gs, EmailSender sf, Change c) {
public static interface Factory {
AddReviewerSender create(Change change);
}
@Inject
public AddReviewerSender(GerritServer gs, EmailSender sf, @Assisted Change c) {
super(gs, sf, c);
}

View File

@@ -72,14 +72,17 @@ public class PatchDetailServiceImpl extends BaseServiceImplementation implements
private final GerritServer server;
private final FileTypeRegistry registry;
private final EmailSender emailSender;
private final AddReviewerSender.Factory addReviewerSenderFactory;
@Inject
PatchDetailServiceImpl(final SchemaFactory<ReviewDb> sf,
final GerritServer gs, final FileTypeRegistry ftr, final EmailSender es) {
final GerritServer gs, final FileTypeRegistry ftr, final EmailSender es,
final AddReviewerSender.Factory arsf) {
super(sf);
server = gs;
registry = ftr;
emailSender = es;
addReviewerSenderFactory = arsf;
}
public void patchScript(final Patch.Key patchKey, final PatchSet.Id psa,
@@ -362,7 +365,7 @@ public class PatchDetailServiceImpl extends BaseServiceImplementation implements
// Email the reviewer
try {
final AddReviewerSender cm;
cm = new AddReviewerSender(server, emailSender, change);
cm = addReviewerSenderFactory.create(change);
cm.setFrom(Common.getAccountId());
cm.setReviewDb(db);
cm.addReviewers(reviewerIds);