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]

Reply via email to