Author: norman
Date: Fri Aug 7 18:02:01 2009
New Revision: 802110
URL: http://svn.apache.org/viewvc?rev=802110&view=rev
Log:
Correctly support searching messages
Modified:
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
Modified:
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
URL:
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java?rev=802110&r1=802109&r2=802110&view=diff
==============================================================================
---
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
(original)
+++
labs/hupa/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
Fri Aug 7 18:02:01 2009
@@ -33,7 +33,10 @@
import javax.mail.internet.MimeUtility;
import javax.mail.internet.MimeMessage.RecipientType;
import javax.mail.search.BodyTerm;
+import javax.mail.search.FromStringTerm;
+import javax.mail.search.OrTerm;
import javax.mail.search.SearchTerm;
+import javax.mail.search.SubjectTerm;
import javax.servlet.http.HttpSession;
import net.customware.gwt.dispatch.server.ExecutionContext;
@@ -104,8 +107,15 @@
if (searchString == null) {
messages = f.getMessages(exists - end, exists -
start);
} else {
- SearchTerm term = new BodyTerm(searchString);
- messages = f.search(term);
+ SearchTerm subjectTerm = new
SubjectTerm(searchString);
+ SearchTerm fromTerm = new
FromStringTerm(searchString);
+ SearchTerm bodyTerm = new
BodyTerm(searchString);
+ SearchTerm orTerm = new OrTerm(new
SearchTerm[]{subjectTerm,fromTerm,bodyTerm});
+ messages = f.search(orTerm);
+ if (end > messages.length) {
+ end = messages.length -1;
+ }
+ exists = messages.length;
}
// Setup fetchprofile to limit the stuff which is
fetched
@@ -181,6 +191,9 @@
content.setAttachments(hasAttachment(m.getContent()));
msg.setMessageContent(content);
mList.add(0, msg);
+ if (i > action.getOffset()) {
+ break;
+ }
}
f.close(false);
@@ -193,6 +206,23 @@
}
}
+ private List<Message> copy(Message[] messages) {
+ List<Message> mList = new ArrayList<Message>();
+ if (messages != null) {
+ for (int i = 0; i <messages.length; i++) {
+ mList.add(messages[i]);
+ }
+ }
+ return mList;
+ }
+ private Message[] copy(List<Message> mList) {
+ Message[] mArray = new Message[mList.size()];
+ for (int i = 0; i < mList.size(); i++) {
+ mArray[i] = mList.get(i);
+ }
+ return mArray;
+ }
+
private boolean hasAttachment(Object content) throws MessagingException
{
if (content instanceof Multipart) {
Multipart mp = (Multipart) content;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]