Author: norman
Date: Fri Jan 14 21:17:29 2011
New Revision: 1059172

URL: http://svn.apache.org/viewvc?rev=1059172&view=rev
Log:
More tweaks..

Added:
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/response/ContinuationRequestResponse.java
    
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/ContinuationProcessor.java
Modified:
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/ContinuationRequestEncoder.java
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
    
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/request/ContinuationRequest.java
    
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java

Modified: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
 (original)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
 Fri Jan 14 21:17:29 2011
@@ -31,6 +31,7 @@ import javax.mail.Flags;
 import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.ImapMessage;
+import org.apache.james.imap.api.display.HumanReadableText;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.ImapRequestLineReader;
@@ -112,18 +113,21 @@ public class AppendCommandParser extends
                 public ImapMessage decode(ImapRequestLineReader request, 
ImapSession session) {
                     int bytes = (Integer)session.getAttribute(BYTES_WRITTEN);
                     try {
-                        while(bytes < size) {
+                        while(request.isConsumed() == false && bytes < size) {
                             out.write((byte)request.consume());
                             bytes++;
                         }
                         if (bytes == size) {
                             request.eol();
                             session.setAttribute(ImapConstants.NEXT_DECODER, 
null);
+                            session.setAttribute(BYTES_WRITTEN, null);
                             return new AppendRequest(command, mailboxName, f, 
dt, new DeleteOnCloseInputStream(new FileInputStream(file), file) , tag);
+                        } else {
+                            session.setAttribute(BYTES_WRITTEN, bytes);
                         }
                         
                     } catch (DecodingException e) {
-                       // expected on end of line
+                        e.printStackTrace();
                     } catch (IOException e) {
                         e.printStackTrace();
                     }
@@ -136,21 +140,11 @@ public class AppendCommandParser extends
             return new ContinuationRequest(command, tag, nextDecoder); 
             
         } catch (IOException e1) {
-            // TODO Auto-generated catch block
             e1.printStackTrace();
+            throw new 
DecodingException(HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING,e1.getMessage());
         }
 
        
-        /*
-        // Use a EolInputStream so it will call eol when the message was read
-        final EolInputStream message = new EolInputStream(request, 
consumeLiteral(request));
-        final ImapMessage result = new AppendRequest(command,
-                mailboxName, flags, datetime, message, tag);
-        return result;
-        */
-        
-        //TODO: fix me!
-        return null;
     }
     
     private class DeleteOnCloseInputStream extends FilterInputStream {

Modified: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/ContinuationRequestEncoder.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/ContinuationRequestEncoder.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/ContinuationRequestEncoder.java
 (original)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/ContinuationRequestEncoder.java
 Fri Jan 14 21:17:29 2011
@@ -24,7 +24,7 @@ import java.io.IOException;
 import org.apache.james.imap.api.ImapMessage;
 import org.apache.james.imap.api.process.ImapSession;
 import org.apache.james.imap.encode.base.AbstractChainedImapEncoder;
-import org.apache.james.imap.message.request.ContinuationRequest;
+import org.apache.james.imap.message.response.ContinuationRequestResponse;
 
 public class ContinuationRequestEncoder extends AbstractChainedImapEncoder {
     
@@ -39,7 +39,7 @@ public class ContinuationRequestEncoder 
 
 
     protected boolean isAcceptable(ImapMessage message) {
-        return (message instanceof ContinuationRequest);
+        return (message instanceof ContinuationRequestResponse);
     }
 
 }

Modified: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java
 (original)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/encode/main/DefaultImapEncoderFactory.java
 Fri Jan 14 21:17:29 2011
@@ -21,6 +21,7 @@ package org.apache.james.imap.encode.mai
 
 import org.apache.james.imap.api.display.Localizer;
 import org.apache.james.imap.encode.CapabilityResponseEncoder;
+import org.apache.james.imap.encode.ContinuationRequestEncoder;
 import org.apache.james.imap.encode.ContinuationResponseEncoder;
 import org.apache.james.imap.encode.ExistsResponseEncoder;
 import org.apache.james.imap.encode.ExpungeResponseEncoder;
@@ -51,7 +52,8 @@ public class DefaultImapEncoderFactory i
      */
     public static final ImapEncoder createDefaultEncoder(final Localizer 
localizer, final boolean neverAddBodyStructureExtensions) {
         final EndImapEncoder endImapEncoder = new EndImapEncoder();
-        final NamespaceResponseEncoder namespaceEncoder = new 
NamespaceResponseEncoder(endImapEncoder);
+        final ContinuationRequestEncoder contReqEncoder = new 
ContinuationRequestEncoder(endImapEncoder);
+        final NamespaceResponseEncoder namespaceEncoder = new 
NamespaceResponseEncoder(contReqEncoder);
         final StatusResponseEncoder statusResponseEncoder = new 
StatusResponseEncoder(
                 namespaceEncoder, localizer);
         final RecentResponseEncoder recentResponseEncoder = new 
RecentResponseEncoder(

Modified: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
 (original)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/main/AbstractImapRequestHandler.java
 Fri Jan 14 21:17:29 2011
@@ -31,7 +31,6 @@ import org.apache.james.imap.api.process
 import org.apache.james.imap.api.process.ImapProcessor.Responder;
 import org.apache.james.imap.decode.ImapDecoder;
 import org.apache.james.imap.decode.ImapRequestLineReader;
-import org.apache.james.imap.decode.parser.AppendCommandParser;
 import org.apache.james.imap.encode.ImapEncoder;
 import org.apache.james.imap.encode.ImapResponseComposer;
 

Modified: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/request/ContinuationRequest.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/request/ContinuationRequest.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/request/ContinuationRequest.java
 (original)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/request/ContinuationRequest.java
 Fri Jan 14 21:17:29 2011
@@ -1,3 +1,22 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
 package org.apache.james.imap.message.request;
 
 import org.apache.james.imap.api.ImapCommand;

Added: 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/response/ContinuationRequestResponse.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/response/ContinuationRequestResponse.java?rev=1059172&view=auto
==============================================================================
--- 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/response/ContinuationRequestResponse.java
 (added)
+++ 
james/imap/branches/nio-refactoring/message/src/main/java/org/apache/james/imap/message/response/ContinuationRequestResponse.java
 Fri Jan 14 21:17:29 2011
@@ -0,0 +1,7 @@
+package org.apache.james.imap.message.response;
+
+import org.apache.james.imap.api.message.response.ImapResponseMessage;
+
+public class ContinuationRequestResponse implements ImapResponseMessage{
+
+}

Added: 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/ContinuationProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/ContinuationProcessor.java?rev=1059172&view=auto
==============================================================================
--- 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/ContinuationProcessor.java
 (added)
+++ 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/ContinuationProcessor.java
 Fri Jan 14 21:17:29 2011
@@ -0,0 +1,44 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.imap.processor;
+
+import org.apache.james.imap.api.ImapMessage;
+import org.apache.james.imap.api.process.ImapProcessor;
+import org.apache.james.imap.api.process.ImapSession;
+import org.apache.james.imap.message.request.ContinuationRequest;
+import org.apache.james.imap.message.response.ContinuationRequestResponse;
+import org.apache.james.imap.processor.base.AbstractChainedProcessor;
+
+public class ContinuationProcessor extends AbstractChainedProcessor{
+
+    public ContinuationProcessor(ImapProcessor next) {
+        super(next);
+    }
+
+    @Override
+    protected boolean isAcceptable(ImapMessage message) {
+        return message instanceof ContinuationRequest;
+    }
+
+    @Override
+    protected void doProcess(ImapMessage acceptableMessage, Responder 
responder, ImapSession session) {
+        responder.respond(new ContinuationRequestResponse());       
+    }
+
+}

Modified: 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
URL: 
http://svn.apache.org/viewvc/james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java?rev=1059172&r1=1059171&r2=1059172&view=diff
==============================================================================
--- 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
 (original)
+++ 
james/imap/branches/nio-refactoring/processor/src/main/java/org/apache/james/imap/processor/DefaultProcessorChain.java
 Fri Jan 14 21:17:29 2011
@@ -106,6 +106,8 @@ public class DefaultProcessorChain {
         
         final UnselectProcessor unselectProcessor = new 
UnselectProcessor(startTLSProcessor, mailboxManager, statusResponseFactory);
         
+        final ContinuationProcessor contProcessor = new 
ContinuationProcessor(unselectProcessor);
+        
         capabilityProcessor.addProcessor(startTLSProcessor);
         capabilityProcessor.addProcessor(idleProcessor);
         capabilityProcessor.addProcessor(namespaceProcessor);
@@ -115,7 +117,7 @@ public class DefaultProcessorChain {
         // announce the UNSELECT extension. See RFC3691
         capabilityProcessor.addProcessor(unselectProcessor);
 
-        return unselectProcessor;
+        return contProcessor;
         
     }  
         



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

Reply via email to