From de835ac8269990136b5068f5adf479a7e8d6f0e8 Mon Sep 17 00:00:00 2001 From: Grzegorz Kossakowski Date: Wed, 29 Jul 2009 16:52:16 -0700 Subject: [PATCH] CreateChangeSender class is managed by Guice through AssistedInject. Signed-off-by: Grzegorz Kossakowski --- .../com/google/gerrit/server/GerritServerModule.java | 4 ++++ .../google/gerrit/server/mail/CreateChangeSender.java | 10 +++++++++- .../java/com/google/gerrit/server/ssh/Receive.java | 5 ++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/google/gerrit/server/GerritServerModule.java b/src/main/java/com/google/gerrit/server/GerritServerModule.java index 59ec5bf500..58a0079155 100644 --- a/src/main/java/com/google/gerrit/server/GerritServerModule.java +++ b/src/main/java/com/google/gerrit/server/GerritServerModule.java @@ -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)); } } diff --git a/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java b/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java index fb6c3795f8..2f8fc227b6 100644 --- a/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java +++ b/src/main/java/com/google/gerrit/server/mail/CreateChangeSender.java @@ -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); } diff --git a/src/main/java/com/google/gerrit/server/ssh/Receive.java b/src/main/java/com/google/gerrit/server/ssh/Receive.java index d99708e165..368658fa26 100644 --- a/src/main/java/com/google/gerrit/server/ssh/Receive.java +++ b/src/main/java/com/google/gerrit/server/ssh/Receive.java @@ -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);