diff --git a/src/main/java/com/google/gerrit/server/GerritServerModule.java b/src/main/java/com/google/gerrit/server/GerritServerModule.java index 58a0079155..d025ad6cca 100644 --- a/src/main/java/com/google/gerrit/server/GerritServerModule.java +++ b/src/main/java/com/google/gerrit/server/GerritServerModule.java @@ -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.AbandonedSender; import com.google.gerrit.server.mail.AddReviewerSender; import com.google.gerrit.server.mail.CreateChangeSender; import com.google.gerrit.server.mail.EmailSender; @@ -86,5 +87,8 @@ public class GerritServerModule extends AbstractModule { bind(CreateChangeSender.Factory.class).toProvider( FactoryProvider.newFactory(CreateChangeSender.Factory.class, CreateChangeSender.class)); + bind(AbandonedSender.Factory.class).toProvider( + FactoryProvider.newFactory(AbandonedSender.Factory.class, + AbandonedSender.class)); } } diff --git a/src/main/java/com/google/gerrit/server/mail/AbandonedSender.java b/src/main/java/com/google/gerrit/server/mail/AbandonedSender.java index b18e74d727..16bb666ca6 100644 --- a/src/main/java/com/google/gerrit/server/mail/AbandonedSender.java +++ b/src/main/java/com/google/gerrit/server/mail/AbandonedSender.java @@ -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; /** Send notice about a change being abandoned by its owner. */ public class AbandonedSender extends ReplyToChangeSender { - public AbandonedSender(GerritServer gs, EmailSender sf, Change c) { + + public static interface Factory { + AbandonedSender create(Change change); + } + + @Inject + public AbandonedSender(GerritServer gs, EmailSender sf, @Assisted Change c) { super(gs, sf, c, "abandon"); } diff --git a/src/main/java/com/google/gerrit/server/patch/PatchDetailServiceImpl.java b/src/main/java/com/google/gerrit/server/patch/PatchDetailServiceImpl.java index 05a3180032..5db2181f2c 100644 --- a/src/main/java/com/google/gerrit/server/patch/PatchDetailServiceImpl.java +++ b/src/main/java/com/google/gerrit/server/patch/PatchDetailServiceImpl.java @@ -73,16 +73,19 @@ public class PatchDetailServiceImpl extends BaseServiceImplementation implements private final FileTypeRegistry registry; private final EmailSender emailSender; private final AddReviewerSender.Factory addReviewerSenderFactory; + private final AbandonedSender.Factory abandonedSenderFactory; @Inject PatchDetailServiceImpl(final SchemaFactory sf, final GerritServer gs, final FileTypeRegistry ftr, final EmailSender es, - final AddReviewerSender.Factory arsf) { + final AddReviewerSender.Factory arsf, + final AbandonedSender.Factory asf) { super(sf); server = gs; registry = ftr; emailSender = es; addReviewerSenderFactory = arsf; + abandonedSenderFactory = asf; } public void patchScript(final Patch.Key patchKey, final PatchSet.Id psa, @@ -448,7 +451,7 @@ public class PatchDetailServiceImpl extends BaseServiceImplementation implements // Email the reviewers try { final AbandonedSender cm; - cm = new AbandonedSender(server, emailSender, change); + cm = abandonedSenderFactory.create(change); cm.setFrom(me); cm.setReviewDb(db); cm.setChangeMessage(cmsg);