You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by do...@apache.org on 2013/09/12 04:00:24 UTC
svn commit: r1522102 - in /james/hupa/trunk:
client/src/main/java/org/apache/hupa/client/mvp/
server/src/main/java/org/apache/hupa/server/handler/
server/src/main/java/org/apache/hupa/server/preferences/
server/src/test/java/org/apache/hupa/server/hand...
Author: dongxu
Date: Thu Sep 12 02:00:24 2013
New Revision: 1522102
URL: http://svn.apache.org/r1522102
Log:
constant changed by manolo
Modified:
james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
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/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java
james/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/ContactsResult.java
Modified: james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java?rev=1522102&r1=1522101&r2=1522102&view=diff
==============================================================================
--- james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java (original)
+++ james/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/MainView.java Thu Sep 12 02:00:24 2013
@@ -114,13 +114,15 @@ public class MainView extends Composite
dockPanel.setSpacing(10);
dockPanel.setWidth("100%");
- createNorth();
+ // Not used so far
+ // createNorth();
+ // dockPanel.add(north, DockPanel.NORTH);
+
createWest();
- createCenter();
-
- dockPanel.add(north, DockPanel.NORTH);
dockPanel.add(west, DockPanel.WEST);
dockPanel.setCellWidth(west, "160px");
+
+ createCenter();
dockPanel.add(center, DockPanel.CENTER);
dockPanel.setCellHorizontalAlignment(north, DockPanel.ALIGN_RIGHT);
dockPanel.setCellHorizontalAlignment(center, DockPanel.ALIGN_LEFT);
@@ -161,6 +163,7 @@ public class MainView extends Composite
west.add(panel);
}
+ @SuppressWarnings("unused")
private void createNorth() {
north = new VerticalPanel();
north.setWidth("100%");
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=1522102&r1=1522101&r2=1522102&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 Thu Sep 12 02:00:24 2013
@@ -126,25 +126,13 @@ public abstract class AbstractFetchMessa
Message m = messages[i];
String from = null;
if (m.getFrom() != null && m.getFrom().length >0 ) {
- from = m.getFrom()[0].toString().trim();
- try {
- from = MimeUtility.decodeText(from);
- userPreferences.addContact(from);
- } catch (UnsupportedEncodingException e) {
- logger.debug("Unable to decode from " + from + " " + e.getMessage());
- }
+ from = decodeText(m.getFrom()[0].toString());
}
msg.setFrom(from);
String replyto = null;
if (m.getReplyTo() != null && m.getReplyTo().length >0 ) {
- replyto = m.getReplyTo()[0].toString().trim();
- try {
- replyto = MimeUtility.decodeText(replyto);
- userPreferences.addContact(replyto);
- } catch (UnsupportedEncodingException e) {
- logger.debug("Unable to decode replyto " + replyto + " " + e.getMessage());
- }
+ replyto = decodeText(m.getReplyTo()[0].toString());
}
msg.setReplyto(replyto);
@@ -153,27 +141,17 @@ public abstract class AbstractFetchMessa
Address[] toArray = m.getRecipients(RecipientType.TO);
if (toArray != null) {
for (Address addr : toArray) {
- String mailTo = null;
- try {
- mailTo = MimeUtility.decodeText(addr.toString());
- userPreferences.addContact(mailTo);
- } catch (UnsupportedEncodingException e) {
- logger.debug("Unable to decode mailTo " + mailTo + " " + e.getMessage());
- }
- if (mailTo != null)
- to.add(mailTo);
+ String mailTo = decodeText(addr.toString());
+ to.add(mailTo);
}
}
msg.setTo(to);
+
// Check if a subject exist and if so decode it
String subject = m.getSubject();
if (subject != null) {
- try {
- subject = MimeUtility.decodeText(subject);
- } catch (UnsupportedEncodingException e) {
- logger.debug("Unable to decode subject " + subject + " " + e.getMessage());
- }
+ subject = decodeText(subject);
}
msg.setSubject(subject);
@@ -182,19 +160,17 @@ public abstract class AbstractFetchMessa
ArrayList<String> cc = new ArrayList<String>();
if (ccArray != null) {
for (Address addr : ccArray) {
- String mailCc = null;
- try {
- mailCc = MimeUtility.decodeText(addr.toString());
- userPreferences.addContact(mailCc);
- } catch (UnsupportedEncodingException e) {
- logger.debug("Unable to decode mailTo " + mailCc + " " + e.getMessage());
- }
- if (mailCc != null)
- cc.add(mailCc);
+ String mailCc = decodeText(addr.toString());
+ 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());
@@ -269,4 +245,21 @@ public abstract class AbstractFetchMessa
return messages;
}
}
+
+ /**
+ * Decode iso-xxxx strings present in subjects and emails like:
+ *
+ * =?ISO-8859-1?Q?No=20hay=20ma=F1ana?= <he...@hupa.org>
+ */
+ private String decodeText(String s) {
+ String ret = s;
+ try {
+ ret = MimeUtility.decodeText(s);
+ } catch (UnsupportedEncodingException e) {
+ logger.debug("Unable to decode text " + s + " " + e.getMessage());
+ }
+ // Remove quotes around names in email addresses
+ ret = ret.replaceFirst("^[\"' ]+(.*?)[\"' ]+<", "$1 <");
+ return ret;
+ }
}
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=1522102&r1=1522101&r2=1522102&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 Thu Sep 12 02:00:24 2013
@@ -24,9 +24,12 @@ import org.apache.hupa.shared.rpc.Contac
import java.util.Arrays;
import java.util.List;
<<<<<<< HEAD
+<<<<<<< HEAD
=======
import java.util.regex.Pattern;
>>>>>>> first commit
+=======
+>>>>>>> constant changed by manolo
/**
*
@@ -63,7 +66,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=1522102&r1=1522101&r2=1522102&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 Thu Sep 12 02:00:24 2013
@@ -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 <so...@foo.com>");
userPreferences.addContact(" Some.body <so...@foo.com> ");
- Assert.assertEquals(1, contactsHandler.execute(new Contacts(), null).getContacts().length);
+ userPreferences.addContact("\"somebody\" <so...@foo.com>");
+ Assert.assertEquals(1, getContacts().length);
+ userPreferences.addContact("<so...@foo.com>");
+ userPreferences.addContact("somebody@foo.com");
+ userPreferences.addContact("\"somebody@foo.com\" <so...@foo.com>");
+ Assert.assertEquals(2, getContacts().length);
}
}
Modified: james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java
URL: http://svn.apache.org/viewvc/james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java?rev=1522102&r1=1522101&r2=1522102&view=diff
==============================================================================
--- james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java (original)
+++ james/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/FetchMessagesHandlerTest.java Thu Sep 12 02:00:24 2013
@@ -40,9 +40,9 @@ public class FetchMessagesHandlerTest ex
MockIMAPFolder f = (MockIMAPFolder)store.getFolder("WHATEVER");
f.create(Folder.HOLDS_MESSAGES);
- ByteArrayInputStream is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: something\n\ndata".getBytes());
+ ByteArrayInputStream is = new ByteArrayInputStream("From: \"aa@foo.com\" <aa...@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes());
MimeMessage m1 = new MimeMessage(session, is);
- is = new ByteArrayInputStream("From: =?ISO-8859-1?Q?Manolo_Pe=F1a?= <pe...@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes());
+ is = new ByteArrayInputStream("From: \"=?ISO-8859-1?Q?Manolo_Pe=F1a?=\" <pe...@foo.com>\nTo: b@foo.com\nSubject: something\n\ndata".getBytes());
MimeMessage m2 = new MimeMessage(session, is);
is = new ByteArrayInputStream("From: a@foo.com\nTo: b@foo.com\nSubject: =?ISO-8859-1?Q?Monta=F1a?=\n\ndata".getBytes());
MimeMessage m3 = new MimeMessage(session, is);
@@ -52,6 +52,9 @@ public class FetchMessagesHandlerTest ex
msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1, m2, m3});
assertEquals(3, msgs.size());
+
+ msgs = fetchMessagesHandler.convert(10, f, new Message[]{m1});
+ assertEquals("aa@foo.com <aa...@foo.com>", msgs.get(0).getFrom());
msgs = fetchMessagesHandler.convert(10, f, new Message[]{m2});
assertEquals("Manolo Pe\u00F1a <pe...@foo.com>", msgs.get(0).getFrom());
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=1522102&r1=1522101&r2=1522102&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 Thu Sep 12 02:00:24 2013
@@ -88,6 +88,7 @@ import net.customware.gwt.dispatch.share
public class ContactsResult implements Result, Serializable {
+<<<<<<< HEAD
public static class Contact implements Result, Serializable {
private static final long serialVersionUID = -8632580327693416473L;
public String mail;
@@ -137,5 +138,59 @@ public class ContactsResult implements R
this.contacts = contacts;
}
>>>>>>> first commit
+=======
+ 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;
+ }
+>>>>>>> constant changed by manolo
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org