提交 d80fa23f 编写于 作者: K kohsuke

refactored


git-svn-id: https://hudson.dev.java.net/svn/hudson/trunk/hudson/main@7955 71c3de6d-444a-0410-be80-ed276b4c234a
上级 b413a92f
......@@ -12,6 +12,7 @@ import java.util.List;
import java.util.Map;
import java.util.HashMap;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.concurrent.CopyOnWriteArrayList;
/**
......@@ -63,9 +64,39 @@ public abstract class MailAddressResolver implements ExtensionPoint {
String email = r.findMailAddressFor(u);
if(email!=null) return email;
}
return null;
// fall back logic
String extractedAddress = extractAddressFromId(u.getId());
if (extractedAddress != null)
return extractedAddress;
if(u.getId().contains("@"))
// this already looks like an e-mail ID
return u.getId();
String ds = Mailer.DESCRIPTOR.getDefaultSuffix();
if(ds!=null)
return u.getId()+ds;
else
return null;
}
/**
* Tries to extract an email address from the user id, or returns null
*/
private static String extractAddressFromId(String id) {
Matcher m = EMAIL_ADDRESS_REGEXP.matcher(id);
if(m.matches())
return m.group(1);
return null;
}
/**
* Matches strings like "Kohsuke Kawaguchi <kohsuke.kawaguchi@sun.com>"
* @see #extractAddressFromId(String)
*/
private static final Pattern EMAIL_ADDRESS_REGEXP = Pattern.compile("^.*<([^>]+)>.*$");
/**
* All registered {@link MailAddressResolver} implementations.
......
......@@ -43,12 +43,6 @@ import java.util.logging.Logger;
public class Mailer extends Publisher {
protected static final Logger LOGGER = Logger.getLogger(Mailer.class.getName());
/**
* Matches strings like "Kohsuke Kawaguchi &lt;kohsuke.kawaguchi@sun.com>"
* @see #extractAddressFromId(String)
*/
public static final String EMAIL_ADDRESS_REGEXP = "^.*<([^>]+)>.*$";
/**
* Whitespace-separated list of e-mail addresses that represent recipients.
*/
......@@ -331,15 +325,6 @@ public class Mailer extends Publisher {
}
}
/**
* Tries to extract an email address from the user id, or returns null
*/
public static String extractAddressFromId(String id) {
if (id.matches(EMAIL_ADDRESS_REGEXP))
return id.replaceFirst(EMAIL_ADDRESS_REGEXP, "$1");
return null;
}
/**
* Per user property that is e-mail address.
*/
......@@ -361,24 +346,8 @@ public class Mailer extends Publisher {
if(emailAddress!=null)
return emailAddress;
String extractedAddress = extractAddressFromId(user.getId());
if (extractedAddress != null)
return extractedAddress;
// try the inference logic
String address = MailAddressResolver.resolve(user);
if(address!=null)
return address;
if(user.getId().contains("@"))
// this already looks like an e-mail ID
return user.getId();
String ds = Mailer.DESCRIPTOR.getDefaultSuffix();
if(ds!=null)
return user.getId()+ds;
else
return null;
return MailAddressResolver.resolve(user);
}
public DescriptorImpl getDescriptor() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册