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.GerritServerConfigProvider;
import com.google.gerrit.server.config.SitePath; import com.google.gerrit.server.config.SitePath;
import com.google.gerrit.server.config.SitePathProvider; 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.EmailSender;
import com.google.gerrit.server.mail.RegisterNewEmailSender; import com.google.gerrit.server.mail.RegisterNewEmailSender;
import com.google.gerrit.server.mail.SmtpEmailSender; import com.google.gerrit.server.mail.SmtpEmailSender;
@@ -78,5 +79,8 @@ public class GerritServerModule extends AbstractModule {
bind(RegisterNewEmailSender.Factory.class).toProvider( bind(RegisterNewEmailSender.Factory.class).toProvider(
FactoryProvider.newFactory(RegisterNewEmailSender.Factory.class, FactoryProvider.newFactory(RegisterNewEmailSender.Factory.class,
RegisterNewEmailSender.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.client.reviewdb.Change;
import com.google.gerrit.server.GerritServer; import com.google.gerrit.server.GerritServer;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
/** Asks a user to review a change. */ /** Asks a user to review a change. */
public class AddReviewerSender extends NewChangeSender { 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); super(gs, sf, c);
} }

View File

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