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 ro...@apache.org on 2019/03/13 16:12:46 UTC
[james-project] 03/03: JAMES-2676 refactor zip header string id to
little endian short
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 1a607e7e6833fedd4c0c8f7f05f59cfea1ab4bba
Author: Rémi Kowalski <rk...@linagora.com>
AuthorDate: Wed Mar 6 15:55:26 2019 +0100
JAMES-2676 refactor zip header string id to little endian short
---
.../james/mailbox/backup/FlagsExtraField.java | 4 ++--
.../mailbox/backup/InternalDateExtraField.java | 4 ++--
.../james/mailbox/backup/MailboxIdExtraField.java | 4 ++--
.../james/mailbox/backup/MessageIdExtraField.java | 4 ++--
.../james/mailbox/backup/SizeExtraField.java | 5 ++--
.../apache/james/mailbox/backup/UidExtraField.java | 4 ++--
.../mailbox/backup/UidValidityExtraField.java | 5 ++--
.../{UidExtraField.java => WithZipHeader.java} | 28 ++++++----------------
.../james/mailbox/backup/WithZipHeaderTest.java} | 28 +++++++++-------------
9 files changed, 34 insertions(+), 52 deletions(-)
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/FlagsExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/FlagsExtraField.java
index d290472..3d7f7b3 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/FlagsExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/FlagsExtraField.java
@@ -28,9 +28,9 @@ import javax.mail.Flags;
import org.apache.commons.compress.archivers.zip.ZipShort;
import org.apache.james.util.StreamUtils;
-public class FlagsExtraField extends StringExtraField {
+public class FlagsExtraField extends StringExtraField implements WithZipHeader {
- public static final ZipShort ID_AP = new ZipShort(0x7061); // "ap" in little-endian
+ public static final ZipShort ID_AP = new ZipShort(WithZipHeader.toLittleEndian('a', 'p'));
private static String serializeFlags(Flags flags) {
return Stream.concat(
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/InternalDateExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/InternalDateExtraField.java
index 8d57370..0774647 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/InternalDateExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/InternalDateExtraField.java
@@ -24,9 +24,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
-public class InternalDateExtraField extends LongExtraField {
+public class InternalDateExtraField extends LongExtraField implements WithZipHeader {
- public static final ZipShort ID_AO = new ZipShort(0x6F61); // "ao" in little-endian
+ public static final ZipShort ID_AO = new ZipShort(WithZipHeader.toLittleEndian('a', 'o'));
public InternalDateExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxIdExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxIdExtraField.java
index c5bbaf1..5ca19db 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxIdExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MailboxIdExtraField.java
@@ -24,9 +24,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
import org.apache.james.mailbox.model.MailboxId;
-public class MailboxIdExtraField extends StringExtraField {
+public class MailboxIdExtraField extends StringExtraField implements WithZipHeader {
- public static final ZipShort ID_AM = new ZipShort(0x6D61); // "am" in little-endian
+ public static final ZipShort ID_AM = new ZipShort(WithZipHeader.toLittleEndian('a', 'm'));
public MailboxIdExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MessageIdExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MessageIdExtraField.java
index 1cbb1e2..46a971b 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MessageIdExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/MessageIdExtraField.java
@@ -24,9 +24,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
import org.apache.james.mailbox.model.MessageId;
-public class MessageIdExtraField extends StringExtraField {
+public class MessageIdExtraField extends StringExtraField implements WithZipHeader {
- public static final ZipShort ID_AL = new ZipShort(0x6C61); // "al" in little-endian
+ public static final ZipShort ID_AL = new ZipShort(WithZipHeader.toLittleEndian('a', 'l'));
public MessageIdExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java
index f932879..4ff486b 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java
@@ -22,8 +22,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
-public class SizeExtraField extends LongExtraField {
- public static final ZipShort ID_AJ = new ZipShort(0x6A61); // "aj" in little-endian
+public class SizeExtraField extends LongExtraField implements WithZipHeader {
+
+ public static final ZipShort ID_AJ = new ZipShort(WithZipHeader.toLittleEndian('a', 'j'));
public SizeExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java
index f70585c..6d2ad35 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java
@@ -23,9 +23,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
-public class UidExtraField extends LongExtraField {
+public class UidExtraField extends LongExtraField implements WithZipHeader {
- public static final ZipShort ID_AK = new ZipShort(0x6B61); // "ak" in little-endian
+ public static final ZipShort ID_AK = new ZipShort(WithZipHeader.toLittleEndian('a', 'k'));
public UidExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidValidityExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidValidityExtraField.java
index 28b4730..0fb9d23 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidValidityExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidValidityExtraField.java
@@ -22,8 +22,9 @@ import java.util.Optional;
import org.apache.commons.compress.archivers.zip.ZipShort;
-public class UidValidityExtraField extends LongExtraField {
- public static final ZipShort ID_AN = new ZipShort(0x6E61); // "an" in little-endian
+public class UidValidityExtraField extends LongExtraField implements WithZipHeader {
+
+ public static final ZipShort ID_AN = new ZipShort(WithZipHeader.toLittleEndian('a', 'n'));
public UidValidityExtraField() {
super();
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/WithZipHeader.java
similarity index 71%
copy from mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java
copy to mailbox/backup/src/main/java/org/apache/james/mailbox/backup/WithZipHeader.java
index f70585c..873142f 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/UidExtraField.java
+++ b/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/WithZipHeader.java
@@ -16,31 +16,17 @@
* specific language governing permissions and limitations *
* under the License. *
****************************************************************/
-
package org.apache.james.mailbox.backup;
-import java.util.Optional;
-
-import org.apache.commons.compress.archivers.zip.ZipShort;
-
-public class UidExtraField extends LongExtraField {
-
- public static final ZipShort ID_AK = new ZipShort(0x6B61); // "ak" in little-endian
+import java.nio.ByteOrder;
+import java.nio.CharBuffer;
- public UidExtraField() {
- super();
- }
-
- public UidExtraField(long value) {
- super(value);
- }
+import org.apache.james.mime4j.Charsets;
- public UidExtraField(Optional<Long> value) {
- super(value);
- }
+public interface WithZipHeader {
- @Override
- public ZipShort getHeaderId() {
- return ID_AK;
+ static int toLittleEndian(char lowByte, char highByte) {
+ char[] chars = new char[]{lowByte, highByte};
+ return Charsets.US_ASCII.encode(CharBuffer.wrap(chars)).order(ByteOrder.LITTLE_ENDIAN).getShort();
}
}
diff --git a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/WithZipHeaderTest.java
similarity index 70%
copy from mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java
copy to mailbox/backup/src/test/java/org/apache/james/mailbox/backup/WithZipHeaderTest.java
index f932879..9a9552c 100644
--- a/mailbox/backup/src/main/java/org/apache/james/mailbox/backup/SizeExtraField.java
+++ b/mailbox/backup/src/test/java/org/apache/james/mailbox/backup/WithZipHeaderTest.java
@@ -18,27 +18,21 @@
****************************************************************/
package org.apache.james.mailbox.backup;
-import java.util.Optional;
+import static org.assertj.core.api.Assertions.assertThat;
-import org.apache.commons.compress.archivers.zip.ZipShort;
+import org.junit.jupiter.api.Test;
-public class SizeExtraField extends LongExtraField {
- public static final ZipShort ID_AJ = new ZipShort(0x6A61); // "aj" in little-endian
+class WithZipHeaderTest {
+ private static final short al = 0x6C61;
+ private static final short aq = 0x7161;
- public SizeExtraField() {
- super();
+ @Test
+ void toLittleEndianShouldReturnLittleEndianRepresentationOfStringAl() {
+ assertThat(WithZipHeader.toLittleEndian('a', 'l')).isEqualTo(al);
}
- public SizeExtraField(long value) {
- super(value);
- }
-
- public SizeExtraField(Optional<Long> value) {
- super(value);
- }
-
- @Override
- public ZipShort getHeaderId() {
- return ID_AJ;
+ @Test
+ void toLittleEndianShouldReturnLittleEndianRepresentationOfStringAq() {
+ assertThat(WithZipHeader.toLittleEndian('a', 'q')).isEqualTo(aq);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org