Author: norman
Date: Tue Jul 21 10:08:22 2009
New Revision: 796230

URL: http://svn.apache.org/viewvc?rev=796230&view=rev
Log:
Replace ristretto usage with javamail

Added:
    labs/hupa/src/main/java/org/apache/hupa/server/IMAPStoreCache.java
      - copied, changed from r795712, 
labs/hupa/src/main/java/org/apache/hupa/server/IMAPProtocolCache.java
Removed:
    labs/hupa/lib/org.columba/
    labs/hupa/src/main/java/org/apache/hupa/server/IMAPProtocolCache.java
    labs/hupa/src/main/java/org/apache/hupa/server/IMAPServiceImpl.java
Modified:
    labs/hupa/pom.xml
    
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
    labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    labs/hupa/src/main/java/org/apache/hupa/server/DeleteMessageHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/ExposeMessageHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/FetchFoldersHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/LoginUserHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/NoopHandler.java
    labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java
    labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java
    
labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessageAttachment.java
    labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
    labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java

Modified: labs/hupa/pom.xml
URL: 
http://svn.apache.org/viewvc/labs/hupa/pom.xml?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/pom.xml (original)
+++ labs/hupa/pom.xml Tue Jul 21 10:08:22 2009
@@ -79,6 +79,11 @@
                                <checksumPolicy>ignore</checksumPolicy>
                        </releases>
                </repository>
+        <repository>
+          <id>maven2-repository.dev.java.net</id>
+          <name>Java.net Repository for Maven</name>
+          <url>http://download.java.net/maven/2/</url>
+        </repository>
                
        </repositories>
 
@@ -267,21 +272,10 @@
                        <artifactId>commons-lang</artifactId>
                        <version>2.4</version>
                </dependency>
-
-               <dependency>
-                       <groupId>org.columba</groupId>
-                       <artifactId>ristretto-common</artifactId>
-                       <version>1.0</version>
-               </dependency>
-               <dependency>
-                       <groupId>org.columba</groupId>
-                       <artifactId>ristretto-imap</artifactId>
-                       <version>1.0</version>
-               </dependency>
                <dependency>
-                       <groupId>org.columba</groupId>
-                       <artifactId>ristretto-smtp</artifactId>
-                       <version>1.0</version>
+                       <groupId>javax.mail</groupId>
+                       <artifactId>mail</artifactId>
+                       <version>1.4.1</version>
                </dependency>
                <dependency>
                        <groupId>org.cobogw.gwt</groupId>

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 (original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 Tue Jul 21 10:08:22 2009
@@ -55,10 +55,10 @@
                public HasRowSelectionHandlers getDataTableSelection();
                public HasPageLoadHandlers getDataTableLoad();
                public HasClickHandlers getDataTableClick();
-               public ArrayList<Integer> getSelectedMessagesUids();
+               public ArrayList<Long> getSelectedMessagesUids();
                public com.google.gwt.event.dom.client.HasClickHandlers 
getDeleteClick();
                public void reloadData(IMAPUser user, IMAPFolder folder,String 
searchValue);
-               public void removeMessages(ArrayList<Integer> uids);
+               public void removeMessages(ArrayList<Long> uids);
                public void reset();
        }
 

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java 
Tue Jul 21 10:08:22 2009
@@ -97,7 +97,7 @@
        private PagingScrollToolTipTable<IMAPMessage> mailTable;
        private EventBus bus;
        private MyFixedWidthGrid<IMAPMessage> dataTable = createDataTable();
-       private ArrayList<Integer> selectedUids = new ArrayList<Integer>();
+       private ArrayList<Long> selectedUids = new ArrayList<Long>();
        private Button deleteMailButton = new 
Button(constants.deleteMailButton());
        private ListBox pageBox = new ListBox();
 
@@ -208,13 +208,13 @@
                                }
                                Iterator<Row> rowIt = 
event.getSelectedRows().iterator();
                                while(rowIt.hasNext()) {
-                                       int uid = 
mailTable.getRowValue(rowIt.next().getRowIndex()).getUid();
-                                       selectedUids.add(new Integer(uid));
+                                       long uid = 
mailTable.getRowValue(rowIt.next().getRowIndex()).getUid();
+                                       selectedUids.add(uid);
                                }
                                Iterator<Row> deselectedRowIt = 
event.getDeselectedRows().iterator();
                                while(deselectedRowIt.hasNext()) {
-                                       int uid = 
mailTable.getRowValue(deselectedRowIt.next().getRowIndex()).getUid();
-                                       selectedUids.remove(new Integer(uid));
+                                       long uid = 
mailTable.getRowValue(deselectedRowIt.next().getRowIndex()).getUid();
+                                       selectedUids.remove(uid);
                                }
                                
                        }
@@ -361,7 +361,7 @@
                                });
                        }
                        
-                       dispatcher.execute(new 
FetchMessages(user,folder,request.getStartRow(),request.getStartRow() + 
request.getNumRows(),searchValue), new AsyncCallback<FetchMessagesResult>() {
+                       dispatcher.execute(new 
FetchMessages(user,folder,request.getStartRow(),request.getNumRows(),searchValue),
 new AsyncCallback<FetchMessagesResult>() {
 
                                public void onFailure(Throwable caught) {
                                        setRowCount(0);
@@ -484,7 +484,7 @@
                
        }
 
-       public ArrayList<Integer> getSelectedMessagesUids() {
+       public ArrayList<Long> getSelectedMessagesUids() {
                return selectedUids;
        }
 
@@ -492,7 +492,7 @@
                return deleteMailButton;
        }
 
-       public void removeMessages(ArrayList<Integer> uids) {
+       public void removeMessages(ArrayList<Long> uids) {
                List<Integer> rows = new ArrayList<Integer>();
                for (int a = 0; a < dataTable.getRowCount(); a++) {
                        IMAPMessage msg = mailTable.getRowValue(a);

Modified: 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java 
Tue Jul 21 10:08:22 2009
@@ -20,7 +20,6 @@
 package org.apache.hupa.client.mvp;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 
 import net.customware.gwt.dispatch.client.DispatchAsync;
 import net.customware.gwt.presenter.client.EventBus;
@@ -35,7 +34,6 @@
 import org.apache.hupa.shared.events.LoadMessagesEvent;
 import org.apache.hupa.shared.rpc.DeleteMessage;
 import org.apache.hupa.shared.rpc.DeleteMessageResult;
-import org.apache.hupa.shared.rpc.FetchMessages;
 
 import com.google.gwt.event.dom.client.ClickEvent;
 import com.google.gwt.event.dom.client.ClickHandler;
@@ -99,7 +97,7 @@
                display.getDeleteButtonClick().addClickHandler(new 
ClickHandler() {
 
                        public void onClick(ClickEvent event) {
-                               ArrayList<Integer> uidList = new 
ArrayList<Integer>();
+                               ArrayList<Long> uidList = new ArrayList<Long>();
                                uidList.add(message.getUid());
                                dispatcher.execute(new 
DeleteMessage(user,folder,uidList), new AsyncCallback<DeleteMessageResult>() {
 

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/DeleteMessageHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/DeleteMessageHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/DeleteMessageHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/DeleteMessageHandler.java 
Tue Jul 21 10:08:22 2009
@@ -20,6 +20,10 @@
 package org.apache.hupa.server;
 
 import java.util.ArrayList;
+import java.util.List;
+
+import javax.mail.Flags;
+import javax.mail.Message;
 
 import net.customware.gwt.dispatch.server.ActionHandler;
 import net.customware.gwt.dispatch.server.ExecutionContext;
@@ -29,19 +33,17 @@
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.rpc.DeleteMessage;
 import org.apache.hupa.shared.rpc.DeleteMessageResult;
-import org.columba.ristretto.imap.IMAPFlags;
-import org.columba.ristretto.imap.IMAPProtocol;
-import org.columba.ristretto.imap.SequenceSet;
 
 import com.google.inject.Inject;
+import com.sun.mail.imap.IMAPStore;
 
 public class DeleteMessageHandler implements ActionHandler<DeleteMessage, 
DeleteMessageResult>{
 
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public DeleteMessageHandler(IMAPProtocolCache cache, Log logger) {
+       public DeleteMessageHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -53,21 +55,31 @@
        public DeleteMessageResult execute(DeleteMessage action, 
ExecutionContext context)
                        throws ActionException {
                IMAPFolder folder = action.getFolder();
-               ArrayList<Integer> uids = action.getMessageUids();
+               ArrayList<Long> uids = action.getMessageUids();
 
                logger.info("Deleting messages with uids "+ 
action.getMessageUids() + " for user " + action.getUser() + " in folder" + 
action.getFolder());
 
                try {
-                       IMAPProtocol protocol = 
cache.getProtocol(action.getUser());
-               
-                       protocol.select(folder.getFullName());
-                       
-                       SequenceSet set = new SequenceSet(uids);
+                       IMAPStore store = cache.get(action.getUser());
+                       com.sun.mail.imap.IMAPFolder f = 
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
+                       if (f.isOpen() == false) {
+                               f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+                       }
+                       List<Message> messages = new ArrayList<Message>();
+                       for (int i = 0; i < uids.size();i++) {
+                               messages.add(f.getMessageByUID(uids.get(i)));
+                       }
+                       Message[] mArray = messages.toArray(new 
Message[messages.size()]);
                        if 
(folder.getFullName().equalsIgnoreCase(IMAPFolder.DEFAULT_TRASH) == false) {
-                               protocol.uidCopy(set, IMAPFolder.DEFAULT_TRASH);
+                               com.sun.mail.imap.IMAPFolder trashFolder = 
(com.sun.mail.imap.IMAPFolder) store.getFolder(IMAPFolder.DEFAULT_TRASH);
+                               if (trashFolder.exists() == false) {
+                                       
trashFolder.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+                               }
+                               f.copyMessages(mArray,trashFolder);
                        } 
-                       protocol.uidStore(set, true, new 
IMAPFlags(IMAPFlags.DELETED));
-                       protocol.expunge();
+                       f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
+                       f.expunge(mArray);
+                       f.close(false);
                } catch (Exception e) {
                        logger.error("Error while deleting messages with uids 
"+ action.getMessageUids() + " for user " + action.getUser() + " in folder" + 
action.getFolder(),e);
                        throw new ActionException("Error while deleting 
messages",e);

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/ExposeMessageHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/ExposeMessageHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/ExposeMessageHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/ExposeMessageHandler.java 
Tue Jul 21 10:08:22 2009
@@ -19,10 +19,17 @@
 
 package org.apache.hupa.server;
 
-import java.io.InputStream;
-import java.nio.charset.Charset;
+import java.util.ArrayList;
 import java.util.List;
 
+import javax.mail.Flags;
+import javax.mail.Message;
+import javax.mail.Multipart;
+import javax.mail.Part;
+import javax.mail.Flags.Flag;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.MimeUtility;
+
 import net.customware.gwt.dispatch.server.ActionHandler;
 import net.customware.gwt.dispatch.server.ExecutionContext;
 import net.customware.gwt.dispatch.shared.ActionException;
@@ -31,31 +38,22 @@
 import org.apache.commons.logging.Log;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.IMAPMessage;
+import org.apache.hupa.shared.data.IMAPMessageAttachment;
 import org.apache.hupa.shared.data.IMAPMessageContent;
 import org.apache.hupa.shared.data.IMAPUser;
-import org.apache.hupa.shared.data.IMAPMessage.IMAPFlag;
 import org.apache.hupa.shared.rpc.ExposeMessage;
 import org.apache.hupa.shared.rpc.ExposeMessageResult;
-import org.columba.ristretto.coder.Base64DecoderInputStream;
-import org.columba.ristretto.coder.CharsetDecoderInputStream;
-import org.columba.ristretto.coder.QuotedPrintableDecoderInputStream;
-import org.columba.ristretto.imap.IMAPFlags;
-import org.columba.ristretto.imap.IMAPProtocol;
-import org.columba.ristretto.imap.SequenceSet;
-import org.columba.ristretto.io.StreamUtils;
-import org.columba.ristretto.message.MimeHeader;
-import org.columba.ristretto.message.MimePart;
-import org.columba.ristretto.message.MimeTree;
 
 import com.google.inject.Inject;
+import com.sun.mail.imap.IMAPStore;
 
 public class ExposeMessageHandler implements ActionHandler<ExposeMessage, 
ExposeMessageResult>{
 
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public ExposeMessageHandler(IMAPProtocolCache cache, Log logger) {
+       public ExposeMessageHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -79,76 +77,80 @@
                if (msg.isExposed()) {
                        return msg;
                }
-               IMAPProtocol proto = null;
+               IMAPStore store = null;
                try {
-                       proto = cache.getProtocol(user);
-
-
-                       proto.select(folder.getName());
-
-                       IMAPMessageContent content = new IMAPMessageContent();
+                       store = cache.get(user);
 
-                       MimeTree mTree = 
proto.uidFetchBodystructure(msg.getUid());
 
-                       MimePart textPart = mTree.getFirstTextPart("plain");
+                       com.sun.mail.imap.IMAPFolder f = 
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
 
-                       if (textPart != null) {
-                               InputStream body = 
proto.uidFetchBody(msg.getUid(), textPart
-                                               .getAddress());
-                               MimeHeader textHeader = textPart.getHeader();
-
-                               if (textHeader.getContentTransferEncoding() == 
MimeHeader.QUOTED_PRINTABLE) {
-                                       body = new 
QuotedPrintableDecoderInputStream(body);
-                               } else if 
(textHeader.getContentTransferEncoding() == MimeHeader.BASE64) {
-                                       body = new 
Base64DecoderInputStream(body);
-                               }
-
-                               String charsetName = 
textHeader.getContentParameter("charset");
-                               if (charsetName == null) {
-                                       charsetName = 
System.getProperty("file.encoding");
-                               }
-
-                               body = new CharsetDecoderInputStream(body, 
Charset
-                                               .forName(charsetName));
-
-                               if 
(textHeader.getMimeType().getType().equalsIgnoreCase("plain/text")) {
-                                       String plainContent = 
StreamUtils.readInString(body)
-                                                       .toString();
-                                       
content.setText(StringEscapeUtils.escapeHtml(plainContent)
-                                                       .replaceAll("\n", 
"<br>"));
-                               } else {
-                                       String plainContent = 
StreamUtils.readInString(body)
-                                                       .toString();
-                                       
content.setText(StringEscapeUtils.escapeHtml(plainContent)
-                                                       .replaceAll("\n", 
"<br>"));
-                               }
-                       }
-
-                       if (mTree.count() > 1 || textPart == null) {
-                               System.out.println("message has attachments");
-                               System.out.println("---");
+                       if (f.isOpen() == false) {
+                               f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
                        }
+                       MimeMessage message = (MimeMessage) 
f.getMessageByUID(msg.getUid());
+                       IMAPMessageContent content = new IMAPMessageContent();
 
-                       msg.setIMAPMessageContent(content);
-                       
+            boolean isHTML = false;
+            Object con = message.getContent();
 
-                       IMAPFlags flagsRistretto = new IMAPFlags();
-                       
-                       List<IMAPFlag> flags = msg.getIMAPFlags();
-               
-                       if (flags.contains(IMAPFlag.SEEN) == false) {
-                           flags.add(IMAPFlag.SEEN);
-                       
-                           
flagsRistretto.setAnswered(flags.contains(IMAPFlag.ANSWERED));
-                           
flagsRistretto.setDeleted(flags.contains(IMAPFlag.DELETED));
-                           
flagsRistretto.setJunk(flags.contains(IMAPFlag.JUNK));
-                           
flagsRistretto.setRecent(flags.contains(IMAPFlag.RECENT));
-                           
flagsRistretto.setSeen(flags.contains(IMAPFlag.SEEN));
-                       flagsRistretto.setDraft(flags.contains(IMAPFlag.DRAFT));
-                       
-                           proto.uidStore(new SequenceSet(msg.getUid()), true, 
flagsRistretto);
-                       }
+            if (con instanceof String) {
+                content.setText(StringEscapeUtils.escapeHtml((String) 
con).replaceAll("\n", "<br>"));
+                content.setIsHTML(isHTML);
+              
+                //fullModel.setAttachments(new ArrayList<Attachment>());
+
+            } else if (con instanceof Multipart) {
+                Multipart mp = (Multipart) con;
+                List<IMAPMessageAttachment> attachmentList = new 
ArrayList<IMAPMessageAttachment>();
+                boolean hasAttachment = false;
+                StringBuffer sbPlain = new StringBuffer();
+                StringBuffer sbHTML = new StringBuffer();
+                for (int i = 0; i < mp.getCount(); i++) {
+                    Part part = mp.getBodyPart(i);
+
+                    String contentType = part.getContentType().toLowerCase();
+                    System.out.println("c: " + contentType);
+
+                    if (contentType.startsWith("text/plain") && isHTML == 
false) {
+                        sbPlain.append(StringEscapeUtils.escapeHtml((String) 
part.getContent()).replaceAll("\n", "<br>"));
+
+                    } else if (contentType.startsWith("text/html")) {
+                        isHTML = true;
+                        if (sbHTML.length() > 0) {
+                            sbHTML.append("<HR/>");
+                        }
+
+                        sbHTML.append((String) part.getContent());
+
+                    } else {
+
+                        if (part.getFileName() != null) {
+                            hasAttachment = true;
+                            IMAPMessageAttachment attachment = new 
IMAPMessageAttachment();
+                            
attachment.setName(MimeUtility.decodeText(part.getFileName()));
+                            attachment.setContentType(part.getContentType());
+                            double size = part.getInputStream().available();
+                            attachment.setSize(new Double(size).intValue());
+
+                            attachmentList.add(attachment);
+                        }
+                    }
+
+                }
+                if (isHTML) {
+                    content.setText(sbHTML.toString());
+                } else {
+                       content.setText(sbPlain.toString());
+                }
+
+                content.setIsHTML(isHTML);
+                //.setHasAttachment(hasAttachment);
+                //fullModel.setAttachments(attachmentList);
+            }
+            f.setFlags(new Message[] {message}, new Flags(Flag.SEEN), true);
+            f.close(false);
 
+            msg.setIMAPMessageContent(content);
                        return msg;
                } catch (Exception e) {
                        logger.error("Unable to expose msg for user " + user + 
" in folder "+ folder + " with uid "+ msg.getUid(),e);

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/FetchFoldersHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/FetchFoldersHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/FetchFoldersHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/FetchFoldersHandler.java Tue 
Jul 21 10:08:22 2009
@@ -22,6 +22,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.mail.Folder;
+
 import net.customware.gwt.dispatch.server.ActionHandler;
 import net.customware.gwt.dispatch.server.ExecutionContext;
 import net.customware.gwt.dispatch.shared.ActionException;
@@ -31,20 +33,17 @@
 import org.apache.hupa.shared.data.IMAPUser;
 import org.apache.hupa.shared.rpc.FetchFolders;
 import org.apache.hupa.shared.rpc.FetchFoldersResult;
-import org.columba.ristretto.imap.IMAPProtocol;
-import org.columba.ristretto.imap.ListInfo;
-import org.columba.ristretto.imap.SearchKey;
-import org.columba.ristretto.message.MailboxInfo;
 
 import com.google.inject.Inject;
+import com.sun.mail.imap.IMAPStore;
 
 public class FetchFoldersHandler implements  ActionHandler<FetchFolders, 
FetchFoldersResult>{
        
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public FetchFoldersHandler(IMAPProtocolCache cache, Log logger) {
+       public FetchFoldersHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -68,27 +67,24 @@
        protected ArrayList<IMAPFolder> getFolders(IMAPUser user)
        throws ActionException {
                ArrayList<IMAPFolder> fList = new ArrayList<IMAPFolder>();
-               IMAPProtocol protocol = null;
+               IMAPStore store = null;
                try {
-                       protocol = cache.getProtocol(user);
-                       ListInfo[] infos = protocol.list("", "*");
-
-                       for (int i = 0; i < infos.length; i++) {
-                               ListInfo info = infos[i];
-
-                               String fullName = info.getName();
-                               String delimiter = info.getDelimiter();
-                               MailboxInfo mInfo= 
protocol.select(info.getName());
-
-                               // we are want to show the not seen flagged 
message count
-                               int unseen = protocol.search(new SearchKey[]{ 
new SearchKey(SearchKey.UNSEEN)}).length;
-                               IMAPFolder iFolder = new 
IMAPFolder(info.getName());
+                       store = cache.get(user);
+                       com.sun.mail.imap.IMAPFolder folder = 
(com.sun.mail.imap.IMAPFolder) store.getDefaultFolder();
+                       
+                       Folder[] folders = folder.list();
+                       for (int i = 0; i < folders.length; i++) {
+                               Folder f = folders[i];
+
+                               String fullName = f.getFullName();
+                               String delimiter = 
String.valueOf(f.getSeparator());
+                               
+                               IMAPFolder iFolder = new IMAPFolder(fullName);
                                iFolder.setDelimiter(delimiter);
-                               iFolder.setMessageCount(mInfo.getExists());
-
-                               iFolder.setUnseenMessageCount(unseen);
+                               iFolder.setMessageCount(f.getMessageCount());
 
-                               System.out.println(mInfo.toString() + " " + 
mInfo.getRecent());
+                               
iFolder.setUnseenMessageCount(f.getUnreadMessageCount());
+                               
                                int index = fullName.lastIndexOf(delimiter);
                                if (index > -1) {
                                        String parentFullName = 
fullName.substring(0, index);

Modified: 
labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/FetchMessagesHandler.java 
Tue Jul 21 10:08:22 2009
@@ -20,10 +20,18 @@
 package org.apache.hupa.server;
 
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
+import javax.mail.Address;
+import javax.mail.FetchProfile;
+import javax.mail.Flags;
+import javax.mail.Message;
+import javax.mail.Flags.Flag;
+import javax.mail.internet.MimeUtility;
+import javax.mail.internet.MimeMessage.RecipientType;
+import javax.mail.search.BodyTerm;
+import javax.mail.search.SearchTerm;
+
 import net.customware.gwt.dispatch.server.ActionHandler;
 import net.customware.gwt.dispatch.server.ExecutionContext;
 import net.customware.gwt.dispatch.shared.ActionException;
@@ -36,24 +44,18 @@
 import org.apache.hupa.shared.data.IMAPMessage.IMAPFlag;
 import org.apache.hupa.shared.rpc.FetchMessages;
 import org.apache.hupa.shared.rpc.FetchMessagesResult;
-import org.columba.ristretto.imap.IMAPFlags;
-import org.columba.ristretto.imap.IMAPProtocol;
-import org.columba.ristretto.imap.SearchKey;
-import org.columba.ristretto.imap.SequenceSet;
-import org.columba.ristretto.message.Address;
-import org.columba.ristretto.message.BasicHeader;
-import org.columba.ristretto.message.MailboxInfo;
 
 import com.google.inject.Inject;
+import com.sun.mail.imap.IMAPStore;
 
 public class FetchMessagesHandler implements ActionHandler<FetchMessages, 
FetchMessagesResult>{
 
        
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public FetchMessagesHandler(IMAPProtocolCache cache, Log logger) {
+       public FetchMessagesHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -76,12 +78,16 @@
        protected FetchMessagesResult getMessages(IMAPUser user,IMAPFolder 
folder, int start, int offset,String searchString) throws ActionException {
                ArrayList<IMAPMessage> mList = new ArrayList<IMAPMessage>();
                int end = start + offset;
-               IMAPProtocol proto = null;
+               IMAPStore store = null;
                try {
-                       proto = cache.getProtocol(user);
-                       MailboxInfo mInfo = proto.select(folder.getFullName());
+                       store = cache.get(user);
+                       com.sun.mail.imap.IMAPFolder f =  
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
+
+                        if (f.isOpen() == false) {
+                 f.open(com.sun.mail.imap.IMAPFolder.READ_ONLY);
+             }
 
-                       int exists = mInfo.getExists();
+                       int exists = f.getMessageCount();
 
                        
                        if (exists == 0) {
@@ -91,74 +97,82 @@
                        if (end > exists) {
                                end =  exists -1;
                        }
-                       SequenceSet sSet;
+       
+                       Message[] messages;
+                       
                        if (searchString == null) {
-                               sSet = new SequenceSet(exists - end, exists - 
start);
+                               messages = f.getMessages(exists - end, exists - 
start);
                        } else {
-                       
-                               List<Integer> matchedList = new 
ArrayList<Integer>();
-                               
matchedList.addAll(Arrays.asList(proto.search(new SearchKey[]{new 
SearchKey(SearchKey.FROM,searchString)})));
-                               
matchedList.addAll(Arrays.asList(proto.search(new SearchKey[]{new 
SearchKey(SearchKey.TEXT,searchString)})));
-                               Collections.sort(matchedList);
-                               
-                               if (matchedList.size() == 0) {
-                                       return new 
FetchMessagesResult(mList,start,offset,exists);
-                               }
-                               sSet = new SequenceSet(matchedList);
+                               SearchTerm term = new BodyTerm(searchString);
+                               messages = f.search(term);
                        }
-                       org.columba.ristretto.imap.IMAPHeader[] headers = proto
-                                       .fetchHeader(sSet);
-                       IMAPFlags[] flags = proto.fetchFlags(sSet);
-                       Integer[] uids = proto.fetchUid(sSet);
-                       for (int i = 0; i < headers.length; i++) {
-                               BasicHeader header = new 
BasicHeader(headers[i].getHeader());
+                       
+                   FetchProfile fp = new FetchProfile();
+            fp.add(FetchProfile.Item.ENVELOPE);
+            fp.add(FetchProfile.Item.FLAGS);
+            f.fetch(messages, fp);
+
+                       for (int i = 0; i < messages.length; i++) {
+                               Message m = messages[i];
 
                                IMAPHeader newHeader = new IMAPHeader();
-                               newHeader.setRawHeader(header.toString());
-                               
newHeader.setFrom(header.getFrom().toString().trim());
+                               
newHeader.setRawHeader(m.getAllHeaders().toString());
+                               
newHeader.setFrom(m.getFrom()[0].toString().trim());
                                
                                StringBuffer toBuf = new StringBuffer();
-                               Address[] toArray = header.getTo();
-                               for (int b =0; b < toArray.length;b++) {
-                                       
toBuf.append(toArray[b].toString().trim());
-                                       if (b != toArray.length -1) {
-                                               toBuf.append(", ");
+                               Address[] toArray = 
m.getRecipients(RecipientType.TO);
+                               if (toArray != null) {
+                                       for (int b =0; b < toArray.length;b++) {
+                                               
toBuf.append(toArray[b].toString().trim());
+                                               if (b != toArray.length -1) {
+                                                       toBuf.append(", ");
+                                               }
                                        }
                                }
                                newHeader.setTo(toBuf.toString());
                                
-                               newHeader.setSubject(header.getSubject());
+                               
newHeader.setSubject(MimeUtility.decodeText(m.getSubject()));
                                
                                StringBuffer ccBuf = new StringBuffer();
-                               Address[] ccArray = header.getCc();
-                               for (int b =0; b < ccArray.length;b++) {
-                                       
toBuf.append(ccArray[b].toString().trim());
-                                       if (b != ccArray.length -1) {
-                                               ccBuf.append(", ");
+                               Address[] ccArray = 
m.getRecipients(RecipientType.CC);
+                               if (ccArray != null) {
+                                       for (int b =0; b < ccArray.length;b++) {
+                                               
toBuf.append(ccArray[b].toString().trim());
+                                               if (b != ccArray.length -1) {
+                                                       ccBuf.append(", ");
+                                               }
                                        }
                                }
                                newHeader.setCc(ccBuf.toString());
        
-                               newHeader.setReceivedDate(header.getDate());
+                               newHeader.setReceivedDate(m.getReceivedDate());
                                
 
                                List<IMAPFlag> iFlags = new 
ArrayList<IMAPFlag>();
-                               IMAPFlags imapFlags = flags[i];
-                               if (imapFlags.getDeleted()) {
-                                       
iFlags.add(IMAPMessage.IMAPFlag.DELETED);
-                               }
-                               if (imapFlags.getSeen()) {
-                                       iFlags.add(IMAPFlag.SEEN);
-                               }
-                               if (imapFlags.getRecent()) {
-                                       iFlags.add(IMAPFlag.RECENT);
+                               Flags flags = m.getFlags();
+                               Flag[] systemFlags = flags.getSystemFlags();
+                               for (int a = 0; a < systemFlags.length;a++) {
+                                       Flag flag = systemFlags[a];
+                                       if (flag == Flag.DELETED) {
+                                               
iFlags.add(IMAPMessage.IMAPFlag.DELETED);
+                                       }
+                                       if (flag == Flag.SEEN) {
+                                               iFlags.add(IMAPFlag.SEEN);
+                                       }
+                                       if (flag == Flag.RECENT) {
+                                               iFlags.add(IMAPFlag.RECENT);
+
+                                       }
                                }
+                               
                                IMAPMessage msg = new IMAPMessage();
                                msg.setIMAPHeader(newHeader);
-                               msg.setUid(uids[i]);
+                               msg.setUid(f.getUID(m));
                                msg.setIMAPFlags(iFlags);
                                mList.add(0, msg);
                        }
+                       f.close(false);
+
                        return new 
FetchMessagesResult(mList,start,offset,exists);
                } catch (Exception e) {
                        logger.error("Error while fetching headers for user " + 
user.getName() + " in folder " + folder,e);

Copied: labs/hupa/src/main/java/org/apache/hupa/server/IMAPStoreCache.java 
(from r795712, 
labs/hupa/src/main/java/org/apache/hupa/server/IMAPProtocolCache.java)
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/IMAPStoreCache.java?p2=labs/hupa/src/main/java/org/apache/hupa/server/IMAPStoreCache.java&p1=labs/hupa/src/main/java/org/apache/hupa/server/IMAPProtocolCache.java&r1=795712&r2=796230&rev=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/IMAPProtocolCache.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/IMAPStoreCache.java Tue Jul 
21 10:08:22 2009
@@ -19,57 +19,56 @@
 
 package org.apache.hupa.server;
 
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
+
+import javax.mail.MessagingException;
+import javax.mail.Session;
 
 import org.apache.commons.logging.Log;
 import org.apache.hupa.shared.data.IMAPUser;
-import org.columba.ristretto.imap.IMAPException;
-import org.columba.ristretto.imap.IMAPProtocol;
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
+import com.sun.mail.imap.IMAPStore;
 
 @Singleton
-public class IMAPProtocolCache {
+public class IMAPStoreCache {
 
+       private Properties props = new Properties();
+       private Session session;
        protected Log logger;
-       private final Map<String,IMAPProtocol> pool = new HashMap<String 
,IMAPProtocol>();
+       private final Map<String,IMAPStore> pool = new HashMap<String 
,IMAPStore>();
        
        @Inject
-       public IMAPProtocolCache(Log logger) {
+       public IMAPStoreCache(Log logger) {
                this.logger = logger;
+               
+        props.setProperty("mail.mime.decodetext.strict", "false");
+        session = Session.getDefaultInstance(props, null);
+        System.setProperty("mail.mime.decodetext.strict", "false");
        }
        
-       public synchronized IMAPProtocol getProtocol(IMAPUser user) throws 
IOException,
-                       IMAPException {
-               IMAPProtocol protocol = pool.get(user.getName());
-               if (protocol == null) {
-                       logger.debug("No cached protocol found for user " 
+user);
-                       protocol = new IMAPProtocol("myblog.kicks-ass.org",
-                                       IMAPProtocol.DEFAULT_PORT);
-               } 
-               if (protocol.getState() == IMAPProtocol.NOT_CONNECTED) {
-                       logger.debug("Protocol is not connected for user " 
+user);
-                       protocol.openPort();    
-               }
-               if (protocol.getState() == IMAPProtocol.NON_AUTHENTICATED) {
-                       logger.debug("Authenticate user " +user);
-                       protocol.login(user.getName(), 
user.getPassword().toCharArray());
+       public synchronized IMAPStore get(IMAPUser user) throws 
MessagingException {
+               IMAPStore store = pool.get(user.getName());
+               if (store == null) {
+                       logger.debug("No cached store found for user " +user);
+                       store = (IMAPStore) session.getStore("imap"); 
+                       store.connect("myblog.kicks-ass.org", 143, 
user.getName(),user.getPassword());
                }
-               pool.put(user.getName(),protocol);
-               return protocol;
+               pool.put(user.getName(),store);
+               return store;
        }
        
-       public synchronized void deleteProcotol(IMAPUser user) {
-               IMAPProtocol protocol = pool.get(user.getName());
-               if (protocol.getState() == IMAPProtocol.AUTHENTICATED) {
+       public synchronized void delete(IMAPUser user) {
+               IMAPStore store = pool.get(user.getName());
+               if (store.isConnected()) {
                        try {
-                               protocol.logout();
-                       } catch (Exception e) {
-                               logger.error("Error while logout user "+ user);
-                       } 
+                               store.close();
+                       } catch (MessagingException e) {
+                               // Ignore on close
+                       }
                }
                pool.remove(user.getName());
        }

Modified: labs/hupa/src/main/java/org/apache/hupa/server/LoginUserHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/LoginUserHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/LoginUserHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/LoginUserHandler.java Tue 
Jul 21 10:08:22 2009
@@ -35,11 +35,11 @@
 public class LoginUserHandler implements
                ActionHandler<LoginUser, LoginUserResult> {
 
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public LoginUserHandler(IMAPProtocolCache cache, Log logger) {
+       public LoginUserHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -67,7 +67,7 @@
                        IMAPUser user = new IMAPUser();
                        user.setName(username);
                        user.setPassword(password);
-                       cache.getProtocol(user);
+                       cache.get(user);
                        
                        user.setLoginDate(new Date());
                        user.setAuthenticated(true);

Modified: labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/LogoutUserHandler.java Tue 
Jul 21 10:08:22 2009
@@ -33,11 +33,11 @@
 
 public class LogoutUserHandler implements ActionHandler<LogoutUser, 
LogoutUserResult> {
        
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public LogoutUserHandler(IMAPProtocolCache cache, Log logger) {
+       public LogoutUserHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
@@ -47,12 +47,8 @@
                        throws ActionException {
                IMAPUser user = action.getUser();
                user.setAuthenticated(false);
-               try {
-                       cache.getProtocol(user).expunge();
-               } catch (Exception e) {
-                       logger.error("Error while expunge for user " + user);
-               } 
-               cache.deleteProcotol(user);
+               
+               cache.delete(user);
                return new LogoutUserResult(user);
        }
 

Modified: labs/hupa/src/main/java/org/apache/hupa/server/NoopHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/NoopHandler.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/NoopHandler.java (original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/NoopHandler.java Tue Jul 21 
10:08:22 2009
@@ -32,18 +32,18 @@
 public class NoopHandler implements ActionHandler<Noop, NoopResult>{
 
        
-       private IMAPProtocolCache cache;
+       private IMAPStoreCache cache;
        private Log logger;
 
        @Inject
-       public NoopHandler(IMAPProtocolCache cache, Log logger) {
+       public NoopHandler(IMAPStoreCache cache, Log logger) {
                this.cache = cache;
                this.logger = logger;
        }
        public NoopResult execute(Noop action, ExecutionContext context)
                        throws ActionException {
                try {
-                       cache.getProtocol(action.getUser()).noop();
+                       cache.get(action.getUser()).idle();
                        return new NoopResult();
                } catch (Exception e) {
                        logger.error("Error while sending NOOP for user " + 
action.getUser(),e);

Modified: labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/server/guice/ServerModul.java Tue 
Jul 21 10:08:22 2009
@@ -26,7 +26,7 @@
 import org.apache.hupa.server.ExposeMessageHandler;
 import org.apache.hupa.server.FetchFoldersHandler;
 import org.apache.hupa.server.FetchMessagesHandler;
-import org.apache.hupa.server.IMAPProtocolCache;
+import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.server.LoginUserHandler;
 import org.apache.hupa.server.LogoutUserHandler;
 import org.apache.hupa.server.NoopHandler;
@@ -52,7 +52,7 @@
                bindHandler(DeleteMessageHandler.class);
                bindHandler(NoopHandler.class);
                
-               bind(IMAPProtocolCache.class).in(Singleton.class);
+               bind(IMAPStoreCache.class).in(Singleton.class);
                
bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
        }
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessage.java Tue 
Jul 21 10:08:22 2009
@@ -28,7 +28,7 @@
         */
        private static final long serialVersionUID = 7331361994526216161L;
        private IMAPHeader header;
-       private int uid;
+       private long uid;
        private IMAPMessageContent content;
        private List<IMAPFlag> flags;
 
@@ -52,11 +52,11 @@
                return header;
        }
 
-       public int getUid() {
+       public long getUid() {
                return uid;
        }
 
-       public void setUid(int uid) {
+       public void setUid(long uid) {
                this.uid = uid;
        }
 

Modified: 
labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessageAttachment.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessageAttachment.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- 
labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessageAttachment.java 
(original)
+++ 
labs/hupa/src/main/java/org/apache/hupa/shared/data/IMAPMessageAttachment.java 
Tue Jul 21 10:08:22 2009
@@ -27,6 +27,8 @@
         * 
         */
        private static final long serialVersionUID = -6896197131104882424L;
+       private String cType;
+       private int size;
        private String name;
 
        public void setName(String name) {
@@ -38,4 +40,19 @@
                return name;
        }
 
+       public void setContentType(String cType) {
+               this.cType = cType;
+       }
+       
+       public String getContentType() {
+               return cType;
+       }
+
+       public void setSize(int size) {
+               this.size = size;
+       }
+
+       public int getSize() {
+               return size;
+       }
 }

Modified: labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java Tue 
Jul 21 10:08:22 2009
@@ -34,13 +34,13 @@
        private static final long serialVersionUID = 801294103124082592L;
        private IMAPUser user;
        private IMAPFolder folder;
-       private ArrayList<Integer> messageUids;
+       private ArrayList<Long> messageUids;
 
        @SuppressWarnings("unused")
        private DeleteMessage() {
                
        }
-       public DeleteMessage(IMAPUser user,IMAPFolder folder, 
ArrayList<Integer> messageUids) {
+       public DeleteMessage(IMAPUser user,IMAPFolder folder, ArrayList<Long> 
messageUids) {
                this.user = user;
                this.folder = folder;
                this.messageUids = messageUids;
@@ -54,7 +54,7 @@
                return folder;
        }
        
-       public ArrayList<Integer> getMessageUids() {
+       public ArrayList<Long> getMessageUids() {
                return messageUids;
        }
 

Modified: 
labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java?rev=796230&r1=796229&r2=796230&view=diff
==============================================================================
--- labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java 
(original)
+++ labs/hupa/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java 
Tue Jul 21 10:08:22 2009
@@ -34,7 +34,7 @@
        private static final long serialVersionUID = -5149203502019947912L;
        private IMAPUser user;
        private IMAPFolder folder;
-       private ArrayList<Integer> messageUids;
+       private ArrayList<Long> messageUids;
 
 
        
@@ -43,7 +43,7 @@
                
        }
        
-       public DeleteMessageResult(IMAPUser user,IMAPFolder folder, 
ArrayList<Integer> messageUids) {
+       public DeleteMessageResult(IMAPUser user,IMAPFolder folder, 
ArrayList<Long> messageUids) {
                this.user = user;
                this.folder = folder;
                this.messageUids = messageUids;
@@ -57,7 +57,7 @@
                return folder;
        }
        
-       public ArrayList<Integer> getMessageUids() {
+       public ArrayList<Long> getMessageUids() {
                return messageUids;
        }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to