This is an automated email from the ASF dual-hosted git repository.
quantranhong1999 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
The following commit(s) were added to refs/heads/master by this push:
new 6b45c01cd3 JAMES-4182 content-transfer-encoding -> content-encoding
header
6b45c01cd3 is described below
commit 6b45c01cd3d80a506b5f0c4eb7975dd8cef2893f
Author: Quan Tran <[email protected]>
AuthorDate: Tue Apr 28 09:55:07 2026 +0700
JAMES-4182 content-transfer-encoding -> content-encoding header
`content-encoding` is more a standard S3 header.
---
.../james/WithEncryptedAndZstdBlobStoreTest.java | 6 ++---
.../org/apache/james/WithZstdBlobStoreTest.java | 4 ++--
.../james/PostgresWithZstdBlobStoreTest.java | 4 ++--
.../org/apache/james/blob/api/BlobStoreDAO.java | 22 +++++++++---------
.../api/MetadataAwareBlobStoreDAOContract.java | 6 ++---
.../apache/james/blob/zstd/ZstdBlobStoreDAO.java | 8 +++----
.../james/blob/zstd/ZstdBlobStoreDAOTest.java | 26 +++++++++++-----------
7 files changed, 38 insertions(+), 38 deletions(-)
diff --git
a/server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedAndZstdBlobStoreTest.java
b/server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedAndZstdBlobStoreTest.java
index 908338da07..c7ce29c2f1 100644
---
a/server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedAndZstdBlobStoreTest.java
+++
b/server/apps/distributed-app/src/test/java/org/apache/james/WithEncryptedAndZstdBlobStoreTest.java
@@ -19,7 +19,7 @@
package org.apache.james;
-import static
org.apache.james.blob.api.BlobStoreDAO.ContentTransferEncoding.ZSTD;
+import static org.apache.james.blob.api.BlobStoreDAO.ContentEncoding.ZSTD;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
import java.nio.charset.StandardCharsets;
@@ -122,14 +122,14 @@ public class WithEncryptedAndZstdBlobStoreTest implements
MailsShouldBeWellRecei
// The intermediate encryption layer returns bytes that were
zstd-compressed:
// they differ from the original payload, keep zstd metadata, and
round-trip through zstd decompression back to the original payload.
softly.assertThat(blobSnapshot.encryptionLayerBlob().payload()).isNotEqualTo(blobSnapshot.originalPayload());
-
softly.assertThat(blobSnapshot.encryptionLayerBlob().metadata().contentTransferEncoding()).contains(ZSTD);
+
softly.assertThat(blobSnapshot.encryptionLayerBlob().metadata().contentEncoding()).contains(ZSTD);
softly.assertThat(Zstd.decompress(blobSnapshot.encryptionLayerBlob().payload(),
blobSnapshot.originalPayload().length))
.isEqualTo(blobSnapshot.originalPayload());
// Raw S3 storage must therefore be the encrypted form of those
compressed bytes.
softly.assertThat(blobSnapshot.rawS3StoredBlob().payload()).isNotEqualTo(blobSnapshot.originalPayload());
softly.assertThat(blobSnapshot.rawS3StoredBlob().payload()).isNotEqualTo(blobSnapshot.encryptionLayerBlob().payload());
-
softly.assertThat(blobSnapshot.rawS3StoredBlob().metadata().contentTransferEncoding()).contains(ZSTD);
+
softly.assertThat(blobSnapshot.rawS3StoredBlob().metadata().contentEncoding()).contains(ZSTD);
softly.assertThat(blobSnapshot.rawS3StoredBlob().metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(blobSnapshot.originalPayload().length)));
});
diff --git
a/server/apps/distributed-app/src/test/java/org/apache/james/WithZstdBlobStoreTest.java
b/server/apps/distributed-app/src/test/java/org/apache/james/WithZstdBlobStoreTest.java
index 1a98eac5da..b64f8ebbf0 100644
---
a/server/apps/distributed-app/src/test/java/org/apache/james/WithZstdBlobStoreTest.java
+++
b/server/apps/distributed-app/src/test/java/org/apache/james/WithZstdBlobStoreTest.java
@@ -19,7 +19,7 @@
package org.apache.james;
-import static
org.apache.james.blob.api.BlobStoreDAO.ContentTransferEncoding.ZSTD;
+import static org.apache.james.blob.api.BlobStoreDAO.ContentEncoding.ZSTD;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
import java.nio.charset.StandardCharsets;
@@ -107,7 +107,7 @@ public class WithZstdBlobStoreTest {
assertSoftly(softly -> {
softly.assertThat(blobSnapshot.readPayload()).isEqualTo(blobSnapshot.originalPayload());
softly.assertThat(blobSnapshot.storedBlob().payload().length).isLessThan(blobSnapshot.originalPayload().length);
-
softly.assertThat(blobSnapshot.storedBlob().metadata().contentTransferEncoding()).contains(ZSTD);
+
softly.assertThat(blobSnapshot.storedBlob().metadata().contentEncoding()).contains(ZSTD);
softly.assertThat(blobSnapshot.storedBlob().metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(blobSnapshot.originalPayload().length)));
});
diff --git
a/server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithZstdBlobStoreTest.java
b/server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithZstdBlobStoreTest.java
index ecdfce08e3..046a87b5eb 100644
---
a/server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithZstdBlobStoreTest.java
+++
b/server/apps/postgres-app/src/test/java/org/apache/james/PostgresWithZstdBlobStoreTest.java
@@ -19,7 +19,7 @@
package org.apache.james;
-import static
org.apache.james.blob.api.BlobStoreDAO.ContentTransferEncoding.ZSTD;
+import static org.apache.james.blob.api.BlobStoreDAO.ContentEncoding.ZSTD;
import static org.assertj.core.api.SoftAssertions.assertSoftly;
import java.nio.charset.StandardCharsets;
@@ -104,7 +104,7 @@ public class PostgresWithZstdBlobStoreTest {
assertSoftly(softly -> {
softly.assertThat(blobSnapshot.readPayload()).isEqualTo(blobSnapshot.originalPayload());
softly.assertThat(blobSnapshot.storedBlob().payload().length).isLessThan(blobSnapshot.originalPayload().length);
-
softly.assertThat(blobSnapshot.storedBlob().metadata().contentTransferEncoding()).contains(ZSTD);
+
softly.assertThat(blobSnapshot.storedBlob().metadata().contentEncoding()).contains(ZSTD);
softly.assertThat(blobSnapshot.storedBlob().metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(blobSnapshot.originalPayload().length)));
});
diff --git
a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java
b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java
index 29b0a6871e..ed0679bd51 100644
---
a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java
+++
b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/BlobStoreDAO.java
@@ -58,16 +58,16 @@ public interface BlobStoreDAO {
}
}
- record ContentTransferEncoding(String value) {
- public static BlobMetadataName NAME = new
BlobMetadataName("content-transfer-encoding");
- public static ContentTransferEncoding ZSTD = new
ContentTransferEncoding("zstd");
+ record ContentEncoding(String value) {
+ public static BlobMetadataName NAME = new
BlobMetadataName("content-encoding");
+ public static ContentEncoding ZSTD = new ContentEncoding("zstd");
- public static ContentTransferEncoding fromValue(BlobMetadataValue
value) {
- return new ContentTransferEncoding(value.value());
+ public static ContentEncoding fromValue(BlobMetadataValue value) {
+ return new ContentEncoding(value.value());
}
- public ContentTransferEncoding {
- Preconditions.checkArgument(value.length() < 128,
"ContentTransferEncoding value is too long. Size exceed 128 chars");
+ public ContentEncoding {
+ Preconditions.checkArgument(value.length() < 128, "ContentEncoding
value is too long. Size exceed 128 chars");
}
public BlobMetadataValue asValue() {
@@ -92,12 +92,12 @@ public interface BlobStoreDAO {
.build());
}
- public Optional<ContentTransferEncoding> contentTransferEncoding() {
- return
get(ContentTransferEncoding.NAME).map(ContentTransferEncoding::fromValue);
+ public Optional<ContentEncoding> contentEncoding() {
+ return get(ContentEncoding.NAME).map(ContentEncoding::fromValue);
}
- public BlobMetadata
withContentTransferEncoding(ContentTransferEncoding contentTransferEncoding) {
- return withMetadata(ContentTransferEncoding.NAME,
contentTransferEncoding.asValue());
+ public BlobMetadata withContentEncoding(ContentEncoding
contentEncoding) {
+ return withMetadata(ContentEncoding.NAME,
contentEncoding.asValue());
}
}
diff --git
a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetadataAwareBlobStoreDAOContract.java
b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetadataAwareBlobStoreDAOContract.java
index 81d76c6bd6..4c8ff2c560 100644
---
a/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetadataAwareBlobStoreDAOContract.java
+++
b/server/blob/blob-api/src/test/java/org/apache/james/blob/api/MetadataAwareBlobStoreDAOContract.java
@@ -96,12 +96,12 @@ public interface MetadataAwareBlobStoreDAOContract {
BlobStoreDAO.BytesBlob bytesBlob =
BlobStoreDAO.BytesBlob.of("payload".getBytes(),
BlobStoreDAO.BlobMetadata.empty()
-
.withContentTransferEncoding(BlobStoreDAO.ContentTransferEncoding.ZSTD));
+ .withContentEncoding(BlobStoreDAO.ContentEncoding.ZSTD));
Mono.from(testee.save(TEST_BUCKET_NAME, TEST_BLOB_ID,
bytesBlob)).block();
- assertThat(Mono.from(testee.readBytes(TEST_BUCKET_NAME,
TEST_BLOB_ID)).block().metadata().contentTransferEncoding())
- .contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+ assertThat(Mono.from(testee.readBytes(TEST_BUCKET_NAME,
TEST_BLOB_ID)).block().metadata().contentEncoding())
+ .contains(BlobStoreDAO.ContentEncoding.ZSTD);
}
@Test
diff --git
a/server/blob/blob-zstd/src/main/java/org/apache/james/blob/zstd/ZstdBlobStoreDAO.java
b/server/blob/blob-zstd/src/main/java/org/apache/james/blob/zstd/ZstdBlobStoreDAO.java
index 1425b5c3b5..e9e837fae4 100644
---
a/server/blob/blob-zstd/src/main/java/org/apache/james/blob/zstd/ZstdBlobStoreDAO.java
+++
b/server/blob/blob-zstd/src/main/java/org/apache/james/blob/zstd/ZstdBlobStoreDAO.java
@@ -113,7 +113,7 @@ public class ZstdBlobStoreDAO implements BlobStoreDAO {
public static final BlobMetadataName CONTENT_ORIGINAL_SIZE = new
BlobMetadataName("content-original-size");
private static final int FILE_THRESHOLD = 100 * 1024;
- private static final Set<BlobMetadataName> RESERVED_METADATA_NAMES =
Set.of(ContentTransferEncoding.NAME, CONTENT_ORIGINAL_SIZE);
+ private static final Set<BlobMetadataName> RESERVED_METADATA_NAMES =
Set.of(ContentEncoding.NAME, CONTENT_ORIGINAL_SIZE);
private final BlobStoreDAO underlying;
private final CompressionConfiguration compressionConfiguration;
@@ -412,8 +412,8 @@ public class ZstdBlobStoreDAO implements BlobStoreDAO {
}
private boolean isCompressed(BlobMetadata metadata) {
- return metadata.contentTransferEncoding()
- .filter(ContentTransferEncoding.ZSTD::equals)
+ return metadata.contentEncoding()
+ .filter(ContentEncoding.ZSTD::equals)
.isPresent();
}
@@ -439,7 +439,7 @@ public class ZstdBlobStoreDAO implements BlobStoreDAO {
private BlobMetadata withCompressionMetadata(BlobMetadata metadata, long
originalSize) {
return metadata
- .withContentTransferEncoding(ContentTransferEncoding.ZSTD)
+ .withContentEncoding(ContentEncoding.ZSTD)
.withMetadata(CONTENT_ORIGINAL_SIZE, new
BlobMetadataValue(String.valueOf(originalSize)));
}
diff --git
a/server/blob/blob-zstd/src/test/java/org/apache/james/blob/zstd/ZstdBlobStoreDAOTest.java
b/server/blob/blob-zstd/src/test/java/org/apache/james/blob/zstd/ZstdBlobStoreDAOTest.java
index 67fd2e20f7..99ddc51af2 100644
---
a/server/blob/blob-zstd/src/test/java/org/apache/james/blob/zstd/ZstdBlobStoreDAOTest.java
+++
b/server/blob/blob-zstd/src/test/java/org/apache/james/blob/zstd/ZstdBlobStoreDAOTest.java
@@ -140,8 +140,8 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
// should compress and append content-transfer-encoding metadata, when
threshold is met.
Mono.from(localTestee.save(TEST_BUCKET_NAME, TEST_BLOB_ID,
ELEVEN_KILOBYTES)).block();
- assertThat(Mono.from(localTestee.readBytes(TEST_BUCKET_NAME,
TEST_BLOB_ID)).block().metadata().contentTransferEncoding())
- .contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+ assertThat(Mono.from(localTestee.readBytes(TEST_BUCKET_NAME,
TEST_BLOB_ID)).block().metadata().contentEncoding())
+ .contains(BlobStoreDAO.ContentEncoding.ZSTD);
}
@Test
@@ -165,7 +165,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
softly.assertThat(readBlob.metadata().underlyingMap())
.containsEntry(new BlobStoreDAO.BlobMetadataName("name"), new
BlobStoreDAO.BlobMetadataValue("value"))
.containsEntry(new BlobStoreDAO.BlobMetadataName("type"), new
BlobStoreDAO.BlobMetadataValue("attachment"))
- .containsEntry(BlobStoreDAO.ContentTransferEncoding.NAME,
BlobStoreDAO.ContentTransferEncoding.ZSTD.asValue())
+ .containsEntry(BlobStoreDAO.ContentEncoding.NAME,
BlobStoreDAO.ContentEncoding.ZSTD.asValue())
.containsEntry(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE,
new
BlobStoreDAO.BlobMetadataValue(String.valueOf(ELEVEN_KILOBYTES.payload().length)));
});
@@ -194,7 +194,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(storedBlob.payload()).isEqualTo(SHORT_BYTEARRAY.payload());
-
softly.assertThat(storedBlob.metadata().contentTransferEncoding()).isEmpty();
+
softly.assertThat(storedBlob.metadata().contentEncoding()).isEmpty();
softly.assertThat(storedBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE)).isEmpty();
});
}
@@ -215,7 +215,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(payload).isEqualTo(ELEVEN_KILOBYTES.payload());
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(ELEVEN_KILOBYTES.payload().length)));
});
@@ -237,7 +237,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(payload).isEqualTo(ELEVEN_KILOBYTES.payload());
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(ELEVEN_KILOBYTES.payload().length)));
});
@@ -259,7 +259,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(storedBlob.payload()).isEqualTo(ELEVEN_KILOBYTES.payload());
-
softly.assertThat(storedBlob.metadata().contentTransferEncoding()).isEmpty();
+
softly.assertThat(storedBlob.metadata().contentEncoding()).isEmpty();
softly.assertThat(storedBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE)).isEmpty();
});
}
@@ -286,7 +286,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(readBlob.payload()).isEqualTo(ELEVEN_KILOBYTES.payload());
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(ELEVEN_KILOBYTES.payload().length)));
});
@@ -311,7 +311,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(storedBlob.payload()).isEqualTo(randomPayload);
-
softly.assertThat(storedBlob.metadata().contentTransferEncoding()).isEmpty();
+
softly.assertThat(storedBlob.metadata().contentEncoding()).isEmpty();
softly.assertThat(storedBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE)).isEmpty();
});
}
@@ -372,7 +372,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(readBlob.payload()).isEqualTo(resourceBytes);
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(resourceBytes.length)));
});
@@ -396,7 +396,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(payload).isEqualTo(resourceBytes);
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(resourceBytes.length)));
});
@@ -420,7 +420,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
assertSoftly(softly -> {
softly.assertThat(payload).isEqualTo(resourceBytes);
-
softly.assertThat(readBlob.metadata().contentTransferEncoding()).contains(BlobStoreDAO.ContentTransferEncoding.ZSTD);
+
softly.assertThat(readBlob.metadata().contentEncoding()).contains(BlobStoreDAO.ContentEncoding.ZSTD);
softly.assertThat(readBlob.metadata().get(ZstdBlobStoreDAO.CONTENT_ORIGINAL_SIZE))
.contains(new
BlobStoreDAO.BlobMetadataValue(String.valueOf(resourceBytes.length)));
});
@@ -436,7 +436,7 @@ class ZstdBlobStoreDAOTest implements BlobStoreDAOContract,
MetadataAwareBlobSto
private static Stream<Arguments> blobsWithReservedCompressionMetadata() {
BlobStoreDAO.BlobMetadata reservedMetadata =
BlobStoreDAO.BlobMetadata.empty()
- .withMetadata(BlobStoreDAO.ContentTransferEncoding.NAME,
BlobStoreDAO.ContentTransferEncoding.ZSTD.asValue());
+ .withMetadata(BlobStoreDAO.ContentEncoding.NAME,
BlobStoreDAO.ContentEncoding.ZSTD.asValue());
return Stream.of(
Arguments.of(BlobStoreDAO.BytesBlob.of(ELEVEN_KILOBYTES.payload(),
reservedMetadata)),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]