Merge change 10856

* changes:
  RegisterNewEmailSender is managed by Guice through AssistedInject.
This commit is contained in:
Android Code Review
2009-07-29 16:35:40 -07:00
4 changed files with 24 additions and 6 deletions

View File

@@ -30,7 +30,6 @@ import com.google.gerrit.client.rpc.InvalidSshKeyException;
import com.google.gerrit.client.rpc.NoSuchEntityException;
import com.google.gerrit.server.mail.EmailException;
import com.google.gerrit.server.mail.RegisterNewEmailSender;
import com.google.gerrit.server.mail.EmailSender;
import com.google.gerrit.server.ssh.SshUtil;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwtjsonrpc.client.VoidResult;
@@ -65,15 +64,15 @@ class AccountSecurityImpl extends BaseServiceImplementation implements
private final Logger log = LoggerFactory.getLogger(getClass());
private final GerritServer server;
private final ContactStore contactStore;
private final EmailSender emailSender;
private final RegisterNewEmailSender.Factory registerNewEmailFactory;
@Inject
AccountSecurityImpl(final SchemaFactory<ReviewDb> sf, final GerritServer gs,
final ContactStore cs, final EmailSender es) {
final ContactStore cs, final RegisterNewEmailSender.Factory esf) {
super(sf);
server = gs;
contactStore = cs;
emailSender = es;
registerNewEmailFactory = esf;
}
public void mySshKeys(final AsyncCallback<List<AccountSshKey>> callback) {
@@ -289,7 +288,7 @@ class AccountSecurityImpl extends BaseServiceImplementation implements
GerritJsonServlet.getCurrentCall().getHttpServletRequest();
try {
final RegisterNewEmailSender sender;
sender = new RegisterNewEmailSender(server, emailSender, address, req);
sender = registerNewEmailFactory.create(address);
sender.send();
cb.onSuccess(VoidResult.INSTANCE);
} catch (EmailException e) {

View File

@@ -29,12 +29,14 @@ 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.EmailSender;
import com.google.gerrit.server.mail.RegisterNewEmailSender;
import com.google.gerrit.server.mail.SmtpEmailSender;
import com.google.gwtorm.client.SchemaFactory;
import com.google.gwtorm.jdbc.Database;
import com.google.inject.AbstractModule;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.google.inject.assistedinject.FactoryProvider;
import com.google.inject.name.Names;
import org.spearce.jgit.lib.Config;
@@ -72,5 +74,9 @@ public class GerritServerModule extends AbstractModule {
bind(GerritConfig.class).toProvider(GerritConfigProvider.class).in(
SINGLETON);
bind(PatchSetInfoFactory.class);
bind(RegisterNewEmailSender.Factory.class).toProvider(
FactoryProvider.newFactory(RegisterNewEmailSender.Factory.class,
RegisterNewEmailSender.class));
}
}

View File

@@ -16,6 +16,8 @@ package com.google.gerrit.server.mail;
import com.google.gerrit.server.GerritServer;
import com.google.gwtjsonrpc.server.XsrfException;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import org.spearce.jgit.util.Base64;
@@ -24,11 +26,17 @@ import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
public class RegisterNewEmailSender extends OutgoingEmail {
public static interface Factory {
public RegisterNewEmailSender create(String address);
}
private final HttpServletRequest req;
private final String addr;
@Inject
public RegisterNewEmailSender(final GerritServer gs, final EmailSender sf,
final String address, final HttpServletRequest request) {
@Assisted final String address, final HttpServletRequest request) {
super(gs, sf, null, "registernewemail");
addr = address;
req = request;