You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by lh...@apache.org on 2008/11/26 10:17:58 UTC
svn commit: r720771 -
/servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java
Author: lhein
Date: Wed Nov 26 01:17:57 2008
New Revision: 720771
URL: http://svn.apache.org/viewvc?rev=720771&view=rev
Log:
removed dependency to SUN's JavaMail implementation class POP3Folder
the retrieval of the message's UID is now done via reflection api
Modified:
servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java
Modified: servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java
URL: http://svn.apache.org/viewvc/servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java?rev=720771&r1=720770&r2=720771&view=diff
==============================================================================
--- servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java (original)
+++ servicemix/components/bindings/servicemix-mail/trunk/src/main/java/org/apache/servicemix/mail/MailPollerEndpoint.java Wed Nov 26 01:17:57 2008
@@ -16,8 +16,6 @@
*/
package org.apache.servicemix.mail;
-import com.sun.mail.pop3.POP3Folder;
-
import java.io.IOException;
import java.util.Collections;
import java.util.LinkedList;
@@ -213,34 +211,37 @@
messages = folder.getMessages();
}
- String uid = null;
-
int fetchSize = getMaxFetchSize() == -1 ? messages.length : Math.min(getMaxFetchSize(),
messages.length);
int fetchedMessages = 0;
-
+ String uid = null;
+
for (int cnt = 0; cnt < messages.length; cnt++) {
+ uid = null;
+
// get the message
MimeMessage mailMsg = (MimeMessage)messages[cnt];
if (isProcessOnlyUnseenMessages() && isPopProtocol) {
// POP3 doesn't support flags, so we need to check manually
// if message is new or not
- if (folder instanceof POP3Folder) {
- POP3Folder pf = (POP3Folder)folder;
- uid = pf.getUID(mailMsg);
-
+ try {
+ Object o_uid = folder.getClass().getMethod("getUID", new Class[] { Message.class }).invoke(folder, new Object[] { mailMsg });
+
// remember each found message
- if (uid != null) {
+ if (o_uid != null) {
+ uid = (String)o_uid;
foundMessagesInFolder.add(uid);
}
// check if we already processed the message
if (uid != null && this.seenMessages.contains(uid)) {
// this message was already processed
- uid = null;
continue;
}
+ } catch (Exception ex) {
+ // this folder doesn't provide UIDs for messages
+ logger.warn(getEndpoint() + ": Unable to determine unique id of mail.", ex);
}
}