You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ma...@apache.org on 2019/11/12 21:37:28 UTC
[james-project] 06/15: [Refactoring] CharsetUtils now only handle
utf7, change it accordingly
This is an automated email from the ASF dual-hosted git repository.
matthieu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 853b846e1687306ccf95c99f4b89e307d28543a9
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Thu Nov 7 22:15:18 2019 +0100
[Refactoring] CharsetUtils now only handle utf7, change it accordingly
---
.../{CharsetUtil.java => ModifiedUtf7.java} | 31 +++++++++-------------
.../james/imap/decode/ImapRequestLineReader.java | 6 ++---
.../james/imap/encode/ImapResponseComposer.java | 4 +--
.../imap/encode/base/ImapResponseComposerImpl.java | 4 +--
.../apache/james/imap/processor/LSubProcessor.java | 6 ++---
.../apache/james/imap/processor/ListProcessor.java | 8 +++---
6 files changed, 27 insertions(+), 32 deletions(-)
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/display/CharsetUtil.java b/protocols/imap/src/main/java/org/apache/james/imap/api/display/ModifiedUtf7.java
similarity index 71%
rename from protocols/imap/src/main/java/org/apache/james/imap/api/display/CharsetUtil.java
rename to protocols/imap/src/main/java/org/apache/james/imap/api/display/ModifiedUtf7.java
index 915716c..f132e87 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/display/CharsetUtil.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/display/ModifiedUtf7.java
@@ -24,36 +24,31 @@ import java.nio.charset.Charset;
import com.beetstra.jutf7.CharsetProvider;
/**
- * Utility class which can be used to get a list of supported {@link Charset}'s
- *
- * Beside this it has some methods included which helps to encode/decode modified UTF7
+ * This class has some methods included which helps to encode/decode modified UTF7
*/
-public class CharsetUtil {
+public class ModifiedUtf7 {
- private static final String X_MODIFIED_UTF_7 = "X-MODIFIED-UTF-7";
- private static final Charset X_MODIFIED_UTF_7_CHARSET = new CharsetProvider().charsetForName(X_MODIFIED_UTF_7);
+ private static final Charset X_MODIFIED_UTF_7_CHARSET = new CharsetProvider().charsetForName("X-MODIFIED-UTF-7");
/**
* Decode the given UTF7 encoded <code>String</code>
- *
- * @return decoded
+ *
+ * @param input utf7-encoded value
+ * @return decoded value
*/
- public static String decodeModifiedUTF7(String string) {
- return X_MODIFIED_UTF_7_CHARSET.decode(ByteBuffer.wrap(string.getBytes())).toString();
-
+ public static String decodeModifiedUTF7(String input) {
+ return X_MODIFIED_UTF_7_CHARSET.decode(ByteBuffer.wrap(input.getBytes())).toString();
}
-
/**
* Encode the given <code>String</code> to modified UTF7.
* See RFC3501 for more details
- *
- * @return encoded
+ *
+ * @param input
+ * @return utf7-encoded value
*/
-
- public static String encodeModifiedUTF7(String string) {
- ByteBuffer encode = X_MODIFIED_UTF_7_CHARSET.encode(string);
+ public static String encodeModifiedUTF7(String input) {
+ ByteBuffer encode = X_MODIFIED_UTF_7_CHARSET.encode(input);
return new String(encode.array(), 0, encode.remaining());
-
}
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
index 233d450..0981fa0 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/decode/ImapRequestLineReader.java
@@ -35,8 +35,8 @@ import java.util.List;
import javax.mail.Flags;
import org.apache.james.imap.api.ImapConstants;
-import org.apache.james.imap.api.display.CharsetUtil;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.api.display.ModifiedUtf7;
import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.UidRange;
import org.apache.james.imap.api.message.request.DayMonthYear;
@@ -240,7 +240,7 @@ public abstract class ImapRequestLineReader {
/**
*
- * Reads the mailbox name via {@link #mailboxUTF7()} but also decode it via {@link CharsetUtil#decodeModifiedUTF7(String)}
+ * Reads the mailbox name via {@link #mailboxUTF7()} but also decode it via {@link ModifiedUtf7#decodeModifiedUTF7(String)}
*
* If you really want to get the modified UTF7 version you should use {@link #mailboxUTF7()}
*
@@ -248,7 +248,7 @@ public abstract class ImapRequestLineReader {
*
*/
public String mailbox() throws DecodingException {
- return CharsetUtil.decodeModifiedUTF7(mailboxUTF7());
+ return ModifiedUtf7.decodeModifiedUTF7(mailboxUTF7());
}
/**
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
index 6df18b2..3018d2b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
@@ -24,7 +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.display.ModifiedUtf7;
import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.UidRange;
import org.apache.james.imap.message.response.Literal;
@@ -112,7 +112,7 @@ public interface ImapResponseComposer {
/**
* First encodes the given {@code mailboxName} using
- * {@link CharsetUtil#encodeModifiedUTF7(String)} and then quotes the result
+ * {@link ModifiedUtf7#encodeModifiedUTF7(String)} and then quotes the result
* with {@link #quote(String)}.
*
* @param mailboxName
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
index ce7e575..b3a1e5d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
@@ -26,7 +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.display.ModifiedUtf7;
import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.UidRange;
import org.apache.james.imap.encode.ImapResponseComposer;
@@ -237,7 +237,7 @@ public class ImapResponseComposerImpl implements ImapConstants, ImapResponseComp
@Override
public ImapResponseComposer mailbox(String mailboxName) throws IOException {
- quote(CharsetUtil.encodeModifiedUTF7(mailboxName));
+ quote(ModifiedUtf7.encodeModifiedUTF7(mailboxName));
return this;
}
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 3befe65..a7a6115 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -25,8 +25,8 @@ import java.util.Collection;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.display.CharsetUtil;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.api.display.ModifiedUtf7;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
@@ -71,11 +71,11 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
Collection<String> mailboxes = getSubscriptionManager().subscriptions(mailboxSession);
- String decodedMailName = CharsetUtil.decodeModifiedUTF7(referenceName);
+ String decodedMailName = ModifiedUtf7.decodeModifiedUTF7(referenceName);
MailboxNameExpression expression = new PrefixedRegex(
decodedMailName,
- CharsetUtil.decodeModifiedUTF7(mailboxName),
+ ModifiedUtf7.decodeModifiedUTF7(mailboxName),
mailboxSession.getPathDelimiter());
Collection<String> mailboxResponses = new ArrayList<>();
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
index f1972bd..7170415 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
@@ -26,8 +26,8 @@ import java.util.List;
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.api.ImapSessionUtils;
-import org.apache.james.imap.api.display.CharsetUtil;
import org.apache.james.imap.api.display.HumanReadableText;
+import org.apache.james.imap.api.display.ModifiedUtf7;
import org.apache.james.imap.api.message.response.ImapResponseMessage;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
@@ -104,7 +104,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
} else {
referenceRoot = referenceName.substring(0, firstDelimiter);
}
- referenceRoot = CharsetUtil.decodeModifiedUTF7(referenceRoot);
+ referenceRoot = ModifiedUtf7.decodeModifiedUTF7(referenceRoot);
} else {
// A relative reference name, return "" to indicate it is
// non-rooted
@@ -127,7 +127,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
// Is the interpreted (combined) pattern relative?
isRelative = ((finalReferencename + mailboxName).charAt(0) != MailboxConstants.NAMESPACE_PREFIX_CHAR);
- finalReferencename = CharsetUtil.decodeModifiedUTF7(finalReferencename);
+ finalReferencename = ModifiedUtf7.decodeModifiedUTF7(finalReferencename);
MailboxPath basePath = null;
if (isRelative) {
@@ -141,7 +141,7 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
.userAndNamespaceFrom(basePath)
.expression(new PrefixedRegex(
basePath.getName(),
- CharsetUtil.decodeModifiedUTF7(mailboxName),
+ ModifiedUtf7.decodeModifiedUTF7(mailboxName),
mailboxSession.getPathDelimiter()))
.build(), mailboxSession);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org