Author: manolo
Date: Fri May 4 08:25:12 2012
New Revision: 1333810
URL: http://svn.apache.org/viewvc?rev=1333810&view=rev
Log:
Avoid empty names in contacts
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
---
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
(original)
+++
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
Fri May 4 08:25:12 2012
@@ -127,14 +127,12 @@ public abstract class AbstractFetchMessa
String from = null;
if (m.getFrom() != null && m.getFrom().length >0 ) {
from = decodeText(m.getFrom()[0].toString());
- userPreferences.addContact(from);
}
msg.setFrom(from);
String replyto = null;
if (m.getReplyTo() != null && m.getReplyTo().length >0 ) {
replyto = decodeText(m.getReplyTo()[0].toString());
- userPreferences.addContact(replyto);
}
msg.setReplyto(replyto);
@@ -144,11 +142,11 @@ public abstract class AbstractFetchMessa
if (toArray != null) {
for (Address addr : toArray) {
String mailTo = decodeText(addr.toString());
- userPreferences.addContact(mailTo);
to.add(mailTo);
}
}
msg.setTo(to);
+
// Check if a subject exist and if so decode it
String subject = m.getSubject();
@@ -163,12 +161,16 @@ public abstract class AbstractFetchMessa
if (ccArray != null) {
for (Address addr : ccArray) {
String mailCc = decodeText(addr.toString());
- userPreferences.addContact(mailCc);
cc.add(mailCc);
}
}
msg.setCc(cc);
+ userPreferences.addContact(from);
+ userPreferences.addContact(to);
+ userPreferences.addContact(replyto);
+ userPreferences.addContact(cc);
+
// Using sentDate since received date is not useful in the view
when using fetchmail
msg.setReceivedDate(m.getSentDate());
Modified:
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
---
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
(original)
+++
james/hupa/trunk/server/src/main/java/org/apache/hupa/server/preferences/UserPreferencesStorage.java
Fri May 4 08:25:12 2012
@@ -23,7 +23,6 @@ import org.apache.hupa.shared.rpc.Contac
import java.util.Arrays;
import java.util.List;
-import java.util.regex.Pattern;
/**
*
@@ -60,7 +59,7 @@ public abstract class UserPreferencesSto
final public void addContact(List<String> mails) {
if (mails != null) {
for (String mail: mails) {
- if (!mail.matches(REGEX_OMITTED_EMAILS)) {
+ if (mail != null && !mail.matches(REGEX_OMITTED_EMAILS)) {
Contact contact = new Contact(mail);
addContact(contact);
}
Modified:
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
---
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
(original)
+++
james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/ContactsHandlerTest.java
Fri May 4 08:25:12 2012
@@ -23,14 +23,24 @@ import junit.framework.Assert;
import org.apache.hupa.server.HupaGuiceTestCase;
import org.apache.hupa.shared.rpc.Contacts;
+import org.apache.hupa.shared.rpc.ContactsResult.Contact;
public class ContactsHandlerTest extends HupaGuiceTestCase {
+
+ private Contact[] getContacts() throws Exception {
+ return contactsHandler.execute(new Contacts(),
null).getContacts();
+ }
public void testContactsHandler() throws Exception {
- Assert.assertEquals(0, contactsHandler.execute(new Contacts(),
null).getContacts().length);
+ Assert.assertEquals(0, getContacts().length);
userPreferences.addContact("Somebody <[email protected]>");
userPreferences.addContact(" Some.body <[email protected]> ");
- Assert.assertEquals(1, contactsHandler.execute(new Contacts(),
null).getContacts().length);
+ userPreferences.addContact("\"somebody\" <[email protected]>");
+ Assert.assertEquals(1, getContacts().length);
+ userPreferences.addContact("<[email protected]>");
+ userPreferences.addContact("[email protected]");
+ userPreferences.addContact("\"[email protected]\" <[email protected]>");
+ Assert.assertEquals(2, getContacts().length);
}
}
Modified:
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
URL:
http://svn.apache.org/viewvc/james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java?rev=1333810&r1=1333809&r2=1333810&view=diff
==============================================================================
---
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
(original)
+++
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
Fri May 4 08:25:12 2012
@@ -25,53 +25,57 @@ import net.customware.gwt.dispatch.share
public class ContactsResult implements Result, Serializable {
- public static class Contact implements Result, Serializable {
- private static final long serialVersionUID = -8632580327693416473L;
- public String mail;
- public String realname;
-
- public Contact() {
- }
-
- public Contact(String mail){
- this.realname = !mail.contains("<") ? "" :
- mail.replaceAll("<.+$", "")
- .replaceAll("^[\\s\"']+","")
- .replaceAll("[\\s\"']+$", "");
- this.mail = mail.replaceAll("^.*<([^>]+)>","$1");
- }
-
- public Contact(String realname, String mail) {
- this.realname = realname;
- this.mail = mail;
- }
-
- public String toString() {
- return (realname != null ? realname : "") + "<" + mail + ">";
- }
-
- public String toKey() {
- return toString().replaceAll("[^\\w\\d<@>]+", "").toLowerCase();
- }
-
- }
-
- private static final long serialVersionUID = -8740775403377441876L;
- private Contact[] contacts;
-
- public ContactsResult() {
- }
-
- public ContactsResult(Contact... contacts) {
- this.contacts = contacts;
- }
-
- public Contact[] getContacts() {
- return contacts;
- }
-
- public void setContacts(Contact[] contacts) {
- this.contacts = contacts;
- }
+ public static class Contact implements Result, Serializable {
+ private static final long serialVersionUID =
-8632580327693416473L;
+ public String mail;
+ public String realname;
+
+ public Contact() {
+ }
+
+ public Contact(String address) {
+ mail = address.replaceAll("^.*<([^>]+)>", "$1");
+
+ realname = mail.equals(address) ? mail : address
+ .replaceAll("<.+$", "")
+ .replaceAll("^[\\s\"']+", "")
+ .replaceAll("[\\s\"']+$", "");
+
+ if (realname.isEmpty())
+ realname = mail;
+ }
+
+ public Contact(String realname, String mail) {
+ this.realname = realname;
+ this.mail = mail;
+ }
+
+ public String toString() {
+ return (realname != null ? realname : "") + "<" + mail
+ ">";
+ }
+
+ public String toKey() {
+ return toString().replaceAll("[^\\w\\d<@>]+",
"").toLowerCase();
+ }
+
+ }
+
+ private static final long serialVersionUID = -8740775403377441876L;
+ private Contact[] contacts;
+
+ public ContactsResult() {
+ }
+
+ public ContactsResult(Contact... contacts) {
+ this.contacts = contacts;
+ }
+
+ public Contact[] getContacts() {
+ return contacts;
+ }
+
+ public void setContacts(Contact[] contacts) {
+ this.contacts = contacts;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]