CreateChangeSender class is managed by Guice through AssistedInject.

Signed-off-by: Grzegorz Kossakowski <grek@google.com>
This commit is contained in:
Grzegorz Kossakowski
2009-07-29 16:52:16 -07:00
parent 6aa16e89bc
commit de835ac826
3 changed files with 17 additions and 2 deletions

View File

@@ -29,6 +29,7 @@ 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.CreateChangeSender;
import com.google.gerrit.server.mail.EmailSender;
import com.google.gerrit.server.mail.RegisterNewEmailSender;
import com.google.gerrit.server.mail.SmtpEmailSender;
@@ -82,5 +83,8 @@ public class GerritServerModule extends AbstractModule {
bind(AddReviewerSender.Factory.class).toProvider(
FactoryProvider.newFactory(AddReviewerSender.Factory.class,
AddReviewerSender.class));
bind(CreateChangeSender.Factory.class).toProvider(
FactoryProvider.newFactory(CreateChangeSender.Factory.class,
CreateChangeSender.class));
}
}

View File

@@ -22,13 +22,21 @@ import com.google.gerrit.client.reviewdb.Change;
import com.google.gerrit.client.reviewdb.Project;
import com.google.gerrit.server.GerritServer;
import com.google.gwtorm.client.OrmException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import java.util.HashSet;
import java.util.Set;
/** Notify interested parties of a brand new change. */
public class CreateChangeSender extends NewChangeSender {
public CreateChangeSender(GerritServer gs, EmailSender sf, Change c) {
public static interface Factory {
public CreateChangeSender create(Change change);
}
@Inject
public CreateChangeSender(GerritServer gs, EmailSender sf, @Assisted Change c) {
super(gs, sf, c);
}

View File

@@ -132,6 +132,9 @@ class Receive extends AbstractGitCommand {
@Inject
private EmailSender emailSender;
@Inject
private CreateChangeSender.Factory createChangeSenderFactory;
@Inject
private ReplicationQueue replication;
@@ -769,7 +772,7 @@ class Receive extends AbstractGitCommand {
try {
final CreateChangeSender cm;
cm = new CreateChangeSender(server, emailSender, change);
cm = createChangeSenderFactory.create(change);
cm.setFrom(me);
cm.setPatchSet(ps, imp.getPatchSetInfo());
cm.setReviewDb(db);