Author: eric Date: Wed Feb 8 10:41:18 2012 New Revision: 1241857 URL: http://svn.apache.org/viewvc?rev=1241857&view=rev Log: Move all CharsetUtil.encodeModifiedUTF7 invocations to ImapResponseComposer, contributed by Jochen Gazda (IMAP-354)
Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/ACLResponse.java james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java Wed Feb 8 10:41:18 2012 @@ -57,7 +57,7 @@ public class ACLResponseEncoder extends composer.commandName(ImapConstants.ACL_RESPONSE_NAME); String mailboxName = aclResponse.getMailboxName(); - composer.quote(mailboxName == null ? "" : mailboxName); + composer.mailbox(mailboxName == null ? "" : mailboxName); if (entries != null) { for (Entry<MailboxACLEntryKey, MailboxACLRights> entry : entries.entrySet()) { Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java Wed Feb 8 10:41:18 2012 @@ -24,6 +24,7 @@ import java.io.IOException; import javax.mail.Flags; import org.apache.james.imap.api.ImapCommand; +import org.apache.james.imap.api.display.CharsetUtil; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.message.response.Literal; @@ -48,7 +49,6 @@ public interface ImapResponseComposer { */ public ImapResponseComposer flags(Flags flags) throws IOException; - /** * Composes a <code>NIL</code>. * @@ -57,7 +57,8 @@ public interface ImapResponseComposer { public ImapResponseComposer nil() throws IOException; /** - * Compose a response which contains the {@link ImapCommand} to which the response belongs + * Compose a response which contains the {@link ImapCommand} to which the + * response belongs * * @param command * @param message @@ -66,7 +67,6 @@ public interface ImapResponseComposer { */ public ImapResponseComposer commandResponse(ImapCommand command, String message) throws IOException; - /** * Writes the message provided to the client, prepended with the request * tag. @@ -85,9 +85,8 @@ public interface ImapResponseComposer { */ public ImapResponseComposer untaggedResponse(String message) throws IOException; - /** - * Write a '*' + * Write a '*' * * @return composer * @throws IOException @@ -121,6 +120,17 @@ public interface ImapResponseComposer { public ImapResponseComposer message(final long number) throws IOException; /** + * First encodes the given {@code mailboxName} using + * {@link CharsetUtil#encodeModifiedUTF7(String)} and then quotes the result + * with {@link #quote(String)}. + * + * @param mailboxName + * @return + * @throws IOException + */ + public ImapResponseComposer mailbox(final String mailboxName) throws IOException; + + /** * Write the given sequence-set * * @param ranges @@ -130,7 +140,8 @@ public interface ImapResponseComposer { public ImapResponseComposer sequenceSet(final IdRange[] ranges) throws IOException; /** - * Write a CRLF and flush the composer which will write the content of it to the socket + * Write a CRLF and flush the composer which will write the content of it to + * the socket * * @return composer * @throws IOException @@ -156,8 +167,8 @@ public interface ImapResponseComposer { public ImapResponseComposer quote(String message) throws IOException; /** - * Compose a {@link Literal} and write it to the socket. Everything which was buffered before will - * get written too + * Compose a {@link Literal} and write it to the socket. Everything which + * was buffered before will get written too * * @param literal * @return self @@ -165,7 +176,6 @@ public interface ImapResponseComposer { */ public ImapResponseComposer literal(Literal literal) throws IOException; - /** * Write a '(' * @@ -206,7 +216,6 @@ public interface ImapResponseComposer { */ public ImapResponseComposer quoteUpperCaseAscii(final String message) throws IOException; - /** * Tell the {@link ImapResponseComposer} to skip the next written space * @@ -215,7 +224,6 @@ public interface ImapResponseComposer { */ public ImapResponseComposer skipNextSpace() throws IOException; - /** * Writes a continuation response. * @@ -223,7 +231,6 @@ public interface ImapResponseComposer { * message for display, not null */ public ImapResponseComposer continuationResponse(String message) throws IOException; - /** * Write a '}' Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java Wed Feb 8 10:41:18 2012 @@ -55,7 +55,7 @@ public class ListingEncodingUtils { } else { composer.quote(Character.toString(hierarchyDelimiter)); } - composer.quote(name); + composer.mailbox(name); composer.end(); } Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java Wed Feb 8 10:41:18 2012 @@ -26,6 +26,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.display.CharsetUtil; import org.apache.james.imap.api.message.IdRange; import org.apache.james.imap.encode.ImapResponseComposer; import org.apache.james.imap.encode.ImapResponseWriter; @@ -278,6 +279,14 @@ public class ImapResponseComposerImpl im writeASCII(Long.toString(number)); return this; } + + /** + * @see org.apache.james.imap.encode.ImapResponseComposer#mailbox(java.lang.String) + */ + public ImapResponseComposer mailbox(final String mailboxName) throws IOException { + quote(CharsetUtil.encodeModifiedUTF7(mailboxName)); + return this; + } /** * @see Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/ACLResponse.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/ACLResponse.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/ACLResponse.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/ACLResponse.java Wed Feb 8 10:41:18 2012 @@ -22,7 +22,6 @@ package org.apache.james.imap.message.re import java.util.Map.Entry; import org.apache.james.imap.api.ImapConstants; -import org.apache.james.imap.api.display.CharsetUtil; import org.apache.james.imap.api.message.response.ImapResponseMessage; import org.apache.james.mailbox.MailboxACL; import org.apache.james.mailbox.MailboxACL.MailboxACLEntryKey; @@ -39,8 +38,7 @@ public final class ACLResponse implement public ACLResponse(String mailboxName, MailboxACL acl) { super(); - //FIXME encodeModifiedUTF7 invocations should probably be moved to org.apache.james.imap.encode.ImapResponseComposer analogically to org.apache.james.imap.decode.ImapRequestLineReader.mailbox() - this.mailboxName = CharsetUtil.encodeModifiedUTF7(mailboxName); + this.mailboxName = mailboxName; this.acl = acl; } Modified: james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java URL: http://svn.apache.org/viewvc/james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java?rev=1241857&r1=1241856&r2=1241857&view=diff ============================================================================== --- james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java (original) +++ james/imap/trunk/message/src/main/java/org/apache/james/imap/message/response/AbstractListingResponse.java Wed Feb 8 10:41:18 2012 @@ -19,7 +19,6 @@ package org.apache.james.imap.message.response; -import org.apache.james.imap.api.display.CharsetUtil; import org.apache.james.imap.api.process.MailboxType; /** @@ -53,7 +52,7 @@ public abstract class AbstractListingRes this.unmarked = unmarked; this.children = hasChildren; this.noChildren = hasNoChildren; - this.name = CharsetUtil.encodeModifiedUTF7(name); + this.name = name; this.hierarchyDelimiter = hierarchyDelimiter; this.type = type; } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org