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]