From 966f0f6792a4cdc1534d45cfa2b4664e7b54ff95 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Wed, 16 Apr 2025 22:39:14 +0800 Subject: [PATCH 01/11] HDDS-11734. Specify namespace in @XmlElement annotations for correct XML deserialization --- .../endpoint/CompleteMultipartUploadRequest.java | 6 +++--- .../ozone/s3/endpoint/MultiDeleteRequest.java | 8 ++++---- .../hadoop/ozone/s3/endpoint/S3BucketAcl.java | 14 +++++++------- .../apache/hadoop/ozone/s3/endpoint/S3Tagging.java | 8 ++++---- pom.xml | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java index b1f92b582ada..bcd89f75642c 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java @@ -33,7 +33,7 @@ "http://s3.amazonaws.com/doc/2006-03-01/") public class CompleteMultipartUploadRequest { - @XmlElement(name = "Part") + @XmlElement(name = "Part", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List partList = new ArrayList<>(); public List getPartList() { @@ -51,10 +51,10 @@ public void setPartList(List partList) { @XmlRootElement(name = "Part") public static class Part { - @XmlElement(name = "PartNumber") + @XmlElement(name = "PartNumber", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private int partNumber; - @XmlElement(name = OzoneConsts.ETAG) + @XmlElement(name = OzoneConsts.ETAG, namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String eTag; public int getPartNumber() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java index 8be4ea71e0f5..f13d89827a82 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java @@ -33,10 +33,10 @@ + ".com/doc/2006-03-01/") public class MultiDeleteRequest { - @XmlElement(name = "Quiet") + @XmlElement(name = "Quiet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private Boolean quiet = Boolean.FALSE; - @XmlElement(name = "Object") + @XmlElement(name = "Object", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List objects = new ArrayList<>(); public boolean isQuiet() { @@ -64,10 +64,10 @@ public void setObjects( + ".com/doc/2006-03-01/") public static class DeleteObject { - @XmlElement(name = "Key") + @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String key; - @XmlElement(name = "VersionId") + @XmlElement(name = "VersionId", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String versionId; public DeleteObject() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java index a84694f15238..2acad1bc3055 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java @@ -34,10 +34,10 @@ namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3BucketAcl { - @XmlElement(name = "Owner") + @XmlElement(name = "Owner", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private S3Owner owner; - @XmlElement(name = "AccessControlList") + @XmlElement(name = "AccessControlList", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private AccessControlList aclList; public S3Owner getOwner() { @@ -71,7 +71,7 @@ public String toString() { @XmlRootElement(name = "AccessControlList") public static class AccessControlList { - @XmlElement(name = "Grant") + @XmlElement(name = "Grant", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List grantList = new ArrayList<>(); public void addGrant(Grant grant) { @@ -105,10 +105,10 @@ public String toString() { @XmlRootElement(name = "Grant") public static class Grant { - @XmlElement(name = "Grantee") + @XmlElement(name = "Grantee", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private Grantee grantee; - @XmlElement(name = "Permission") + @XmlElement(name = "Permission", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String permission; public String getPermission() { @@ -162,10 +162,10 @@ public int hashCode() { @XmlRootElement(name = "Grantee") public static class Grantee { - @XmlElement(name = "DisplayName") + @XmlElement(name = "DisplayName", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String displayName; - @XmlElement(name = "ID") + @XmlElement(name = "ID", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String id; @XmlAttribute(name = "xsi:type") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java index cf63f70e14f6..45cdb13b31b3 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java @@ -34,7 +34,7 @@ namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3Tagging { - @XmlElement(name = "TagSet") + @XmlElement(name = "TagSet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private TagSet tagSet; public S3Tagging() { @@ -59,7 +59,7 @@ public void setTagSet(TagSet tagSet) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "TagSet") public static class TagSet { - @XmlElement(name = "Tag") + @XmlElement(name = "Tag", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List tags = new ArrayList<>(); public TagSet() { @@ -84,10 +84,10 @@ public void setTags(List tags) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tag") public static class Tag { - @XmlElement(name = "Key") + @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String key; - @XmlElement(name = "Value") + @XmlElement(name = "Value", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String value; public Tag() { diff --git a/pom.xml b/pom.xml index bb86a9b8d391..2167834ef772 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ 3.7.1 3.6.0 3.4.0 - 3.9.0 + 3.10.0 3.8.1 3.1.3 3.5.0 From 0717f5a066d39d32cf1d6ba340b76a0f42742a6e Mon Sep 17 00:00:00 2001 From: "Doroszlai, Attila" <6454655+adoroszlai@users.noreply.github.com> Date: Thu, 17 Apr 2025 16:22:29 +0200 Subject: [PATCH 02/11] bump maven-compiler-plugin to 3.14.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2167834ef772..d4a44a70b79b 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ 3.7.1 3.6.0 3.4.0 - 3.10.0 + 3.14.0 3.8.1 3.1.3 3.5.0 From 87c5d656507c784b31b9cbe817eb8984463960f3 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Thu, 17 Apr 2025 23:34:49 +0800 Subject: [PATCH 03/11] HDDS-11734. Use Constants for S3 namespace URL --- .../org/apache/hadoop/ozone/OzoneConsts.java | 1 + .../CompleteMultipartUploadRequest.java | 8 ++++---- .../ozone/s3/endpoint/MultiDeleteRequest.java | 12 ++++++------ .../hadoop/ozone/s3/endpoint/S3BucketAcl.java | 17 +++++++++-------- .../hadoop/ozone/s3/endpoint/S3Tagging.java | 11 ++++++----- 5 files changed, 26 insertions(+), 23 deletions(-) diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java index cc48790d4383..05fdac8cfa59 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java @@ -277,6 +277,7 @@ public final class OzoneConsts { public static final String S3_GETSECRET_USER = "S3GetSecretUser"; public static final String S3_SETSECRET_USER = "S3SetSecretUser"; public static final String S3_REVOKESECRET_USER = "S3RevokeSecretUser"; + public static final String S3_NAMESPACE_URL = "http://s3.amazonaws.com/doc/2006-03-01/"; public static final String RENAMED_KEYS_MAP = "renamedKeysMap"; public static final String UNRENAMED_KEYS_MAP = "unRenamedKeysMap"; public static final String MULTIPART_UPLOAD_PART_NUMBER = "partNumber"; diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java index bcd89f75642c..3b944a364aca 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java @@ -30,10 +30,10 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUpload", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + OzoneConsts.S3_NAMESPACE_URL) public class CompleteMultipartUploadRequest { - @XmlElement(name = "Part", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Part", namespace = OzoneConsts.S3_NAMESPACE_URL) private List partList = new ArrayList<>(); public List getPartList() { @@ -51,10 +51,10 @@ public void setPartList(List partList) { @XmlRootElement(name = "Part") public static class Part { - @XmlElement(name = "PartNumber", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "PartNumber", namespace = OzoneConsts.S3_NAMESPACE_URL) private int partNumber; - @XmlElement(name = OzoneConsts.ETAG, namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = OzoneConsts.ETAG, namespace = OzoneConsts.S3_NAMESPACE_URL) private String eTag; public int getPartNumber() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java index f13d89827a82..045df9eea438 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java @@ -23,20 +23,20 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.OzoneConsts; /** * Request for multi object delete request. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "Delete", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") +@XmlRootElement(name = "Delete", namespace = OzoneConsts.S3_NAMESPACE_URL) public class MultiDeleteRequest { - @XmlElement(name = "Quiet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Quiet", namespace = OzoneConsts.S3_NAMESPACE_URL) private Boolean quiet = Boolean.FALSE; - @XmlElement(name = "Object", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Object", namespace = OzoneConsts.S3_NAMESPACE_URL) private List objects = new ArrayList<>(); public boolean isQuiet() { @@ -64,10 +64,10 @@ public void setObjects( + ".com/doc/2006-03-01/") public static class DeleteObject { - @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Key", namespace = OzoneConsts.S3_NAMESPACE_URL) private String key; - @XmlElement(name = "VersionId", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "VersionId", namespace = OzoneConsts.S3_NAMESPACE_URL) private String versionId; public DeleteObject() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java index 2acad1bc3055..2fb35b7c802d 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java @@ -25,19 +25,20 @@ import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.OzoneConsts; /** * Bucket ACL. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "AccessControlPolicy", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class S3BucketAcl { - @XmlElement(name = "Owner", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Owner", namespace = OzoneConsts.S3_NAMESPACE_URL) private S3Owner owner; - @XmlElement(name = "AccessControlList", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "AccessControlList", namespace = OzoneConsts.S3_NAMESPACE_URL) private AccessControlList aclList; public S3Owner getOwner() { @@ -71,7 +72,7 @@ public String toString() { @XmlRootElement(name = "AccessControlList") public static class AccessControlList { - @XmlElement(name = "Grant", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Grant", namespace = OzoneConsts.S3_NAMESPACE_URL) private List grantList = new ArrayList<>(); public void addGrant(Grant grant) { @@ -105,10 +106,10 @@ public String toString() { @XmlRootElement(name = "Grant") public static class Grant { - @XmlElement(name = "Grantee", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Grantee", namespace = OzoneConsts.S3_NAMESPACE_URL) private Grantee grantee; - @XmlElement(name = "Permission", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Permission", namespace = OzoneConsts.S3_NAMESPACE_URL) private String permission; public String getPermission() { @@ -162,10 +163,10 @@ public int hashCode() { @XmlRootElement(name = "Grantee") public static class Grantee { - @XmlElement(name = "DisplayName", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "DisplayName", namespace = OzoneConsts.S3_NAMESPACE_URL) private String displayName; - @XmlElement(name = "ID", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "ID", namespace = OzoneConsts.S3_NAMESPACE_URL) private String id; @XmlAttribute(name = "xsi:type") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java index 45cdb13b31b3..d36965277861 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java @@ -25,16 +25,17 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.OzoneConsts; /** * S3 tagging. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tagging", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class S3Tagging { - @XmlElement(name = "TagSet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "TagSet", namespace = OzoneConsts.S3_NAMESPACE_URL) private TagSet tagSet; public S3Tagging() { @@ -59,7 +60,7 @@ public void setTagSet(TagSet tagSet) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "TagSet") public static class TagSet { - @XmlElement(name = "Tag", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Tag", namespace = OzoneConsts.S3_NAMESPACE_URL) private List tags = new ArrayList<>(); public TagSet() { @@ -84,10 +85,10 @@ public void setTags(List tags) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tag") public static class Tag { - @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Key", namespace = OzoneConsts.S3_NAMESPACE_URL) private String key; - @XmlElement(name = "Value", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Value", namespace = OzoneConsts.S3_NAMESPACE_URL) private String value; public Tag() { From 9b81cb84ef094b7f503d82bb05389ffd5fdaea72 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Fri, 18 Apr 2025 01:23:16 +0800 Subject: [PATCH 04/11] HDDS-11734. Use Constants for other occurrences as well --- .../ozone/s3/endpoint/CompleteMultipartUploadResponse.java | 2 +- .../apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java | 2 +- .../org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java | 2 +- .../apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java | 3 ++- .../hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java | 3 ++- .../ozone/s3/endpoint/MultipartUploadInitiateResponse.java | 3 ++- 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java index 0b149005e266..789a1159e0d0 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java @@ -29,7 +29,7 @@ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUploadResult", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + OzoneConsts.S3_NAMESPACE_URL) public class CompleteMultipartUploadResponse { @XmlElement(name = "Location") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java index f128c75104c0..5460a8dfd661 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java @@ -31,7 +31,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyObjectResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class CopyObjectResponse { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java index fe6515e39716..fad96f5ff5ed 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java @@ -31,7 +31,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyPartResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class CopyPartResult { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java index 2e221639219d..3c62a8eb46ed 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java @@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.BucketMetadata; /** @@ -32,7 +33,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListAllMyBucketsResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class ListBucketResponse { @XmlElementWrapper(name = "Buckets") @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java index 98e9f98608b4..c16058fb6615 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java @@ -27,13 +27,14 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; import org.apache.hadoop.ozone.s3.util.S3StorageType; +import org.apache.hadoop.ozone.OzoneConsts; /** * AWS compatible REST response for list multipart upload. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListMultipartUploadsResult", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + OzoneConsts.S3_NAMESPACE_URL) public class ListMultipartUploadsResult { @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java index 8a4dc28139ec..ed614e161f53 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java @@ -21,13 +21,14 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.OzoneConsts; /** * Response for Initiate Multipart Upload request. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "InitiateMultipartUploadResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = OzoneConsts.S3_NAMESPACE_URL) public class MultipartUploadInitiateResponse { @XmlElement(name = "Bucket") From d3efb245344657dec5031b8c65be2478fdd90aec Mon Sep 17 00:00:00 2001 From: "Doroszlai, Attila" <6454655+adoroszlai@users.noreply.github.com> Date: Thu, 17 Apr 2025 19:38:02 +0200 Subject: [PATCH 05/11] Fix checkstyle --- .../hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java index c16058fb6615..23606d573c3d 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java @@ -25,9 +25,9 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; +import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; import org.apache.hadoop.ozone.s3.util.S3StorageType; -import org.apache.hadoop.ozone.OzoneConsts; /** * AWS compatible REST response for list multipart upload. From 1d88e0a0470d2238802f602efd87041c6016cef7 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 13:44:30 +0800 Subject: [PATCH 06/11] Revert "Fix checkstyle" This reverts commit d3efb245344657dec5031b8c65be2478fdd90aec. --- .../hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java index 23606d573c3d..c16058fb6615 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java @@ -25,9 +25,9 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; -import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; import org.apache.hadoop.ozone.s3.util.S3StorageType; +import org.apache.hadoop.ozone.OzoneConsts; /** * AWS compatible REST response for list multipart upload. From 4a48bc82ea5aa64ba989836b56137a0f7e76d062 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 13:44:30 +0800 Subject: [PATCH 07/11] Revert "HDDS-11734. Use Constants for other occurrences as well" This reverts commit 9b81cb84ef094b7f503d82bb05389ffd5fdaea72. --- .../ozone/s3/endpoint/CompleteMultipartUploadResponse.java | 2 +- .../apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java | 2 +- .../org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java | 2 +- .../apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java | 3 +-- .../hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java | 3 +-- .../ozone/s3/endpoint/MultipartUploadInitiateResponse.java | 3 +-- 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java index 789a1159e0d0..0b149005e266 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java @@ -29,7 +29,7 @@ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUploadResult", namespace = - OzoneConsts.S3_NAMESPACE_URL) + "http://s3.amazonaws.com/doc/2006-03-01/") public class CompleteMultipartUploadResponse { @XmlElement(name = "Location") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java index 5460a8dfd661..f128c75104c0 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java @@ -31,7 +31,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyObjectResult", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class CopyObjectResponse { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java index fad96f5ff5ed..fe6515e39716 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java @@ -31,7 +31,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyPartResult", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class CopyPartResult { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java index 3c62a8eb46ed..2e221639219d 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java @@ -25,7 +25,6 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.BucketMetadata; /** @@ -33,7 +32,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListAllMyBucketsResult", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class ListBucketResponse { @XmlElementWrapper(name = "Buckets") @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java index c16058fb6615..98e9f98608b4 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java @@ -27,14 +27,13 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; import org.apache.hadoop.ozone.s3.util.S3StorageType; -import org.apache.hadoop.ozone.OzoneConsts; /** * AWS compatible REST response for list multipart upload. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListMultipartUploadsResult", namespace = - OzoneConsts.S3_NAMESPACE_URL) + "http://s3.amazonaws.com/doc/2006-03-01/") public class ListMultipartUploadsResult { @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java index ed614e161f53..8a4dc28139ec 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java @@ -21,14 +21,13 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.ozone.OzoneConsts; /** * Response for Initiate Multipart Upload request. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "InitiateMultipartUploadResult", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class MultipartUploadInitiateResponse { @XmlElement(name = "Bucket") From 2ce2cdac7ef948dcc6bdba7174969e62995452ea Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 13:44:30 +0800 Subject: [PATCH 08/11] Revert "HDDS-11734. Use Constants for S3 namespace URL" This reverts commit 87c5d656507c784b31b9cbe817eb8984463960f3. --- .../org/apache/hadoop/ozone/OzoneConsts.java | 1 - .../CompleteMultipartUploadRequest.java | 8 ++++---- .../ozone/s3/endpoint/MultiDeleteRequest.java | 12 ++++++------ .../hadoop/ozone/s3/endpoint/S3BucketAcl.java | 17 ++++++++--------- .../hadoop/ozone/s3/endpoint/S3Tagging.java | 11 +++++------ 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java index 05fdac8cfa59..cc48790d4383 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java @@ -277,7 +277,6 @@ public final class OzoneConsts { public static final String S3_GETSECRET_USER = "S3GetSecretUser"; public static final String S3_SETSECRET_USER = "S3SetSecretUser"; public static final String S3_REVOKESECRET_USER = "S3RevokeSecretUser"; - public static final String S3_NAMESPACE_URL = "http://s3.amazonaws.com/doc/2006-03-01/"; public static final String RENAMED_KEYS_MAP = "renamedKeysMap"; public static final String UNRENAMED_KEYS_MAP = "unRenamedKeysMap"; public static final String MULTIPART_UPLOAD_PART_NUMBER = "partNumber"; diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java index 3b944a364aca..bcd89f75642c 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java @@ -30,10 +30,10 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUpload", namespace = - OzoneConsts.S3_NAMESPACE_URL) + "http://s3.amazonaws.com/doc/2006-03-01/") public class CompleteMultipartUploadRequest { - @XmlElement(name = "Part", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Part", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List partList = new ArrayList<>(); public List getPartList() { @@ -51,10 +51,10 @@ public void setPartList(List partList) { @XmlRootElement(name = "Part") public static class Part { - @XmlElement(name = "PartNumber", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "PartNumber", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private int partNumber; - @XmlElement(name = OzoneConsts.ETAG, namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = OzoneConsts.ETAG, namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String eTag; public int getPartNumber() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java index 045df9eea438..f13d89827a82 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java @@ -23,20 +23,20 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.ozone.OzoneConsts; /** * Request for multi object delete request. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "Delete", namespace = OzoneConsts.S3_NAMESPACE_URL) +@XmlRootElement(name = "Delete", namespace = "http://s3.amazonaws" + + ".com/doc/2006-03-01/") public class MultiDeleteRequest { - @XmlElement(name = "Quiet", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Quiet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private Boolean quiet = Boolean.FALSE; - @XmlElement(name = "Object", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Object", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List objects = new ArrayList<>(); public boolean isQuiet() { @@ -64,10 +64,10 @@ public void setObjects( + ".com/doc/2006-03-01/") public static class DeleteObject { - @XmlElement(name = "Key", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String key; - @XmlElement(name = "VersionId", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "VersionId", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String versionId; public DeleteObject() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java index 2fb35b7c802d..2acad1bc3055 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java @@ -25,20 +25,19 @@ import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.ozone.OzoneConsts; /** * Bucket ACL. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "AccessControlPolicy", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3BucketAcl { - @XmlElement(name = "Owner", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Owner", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private S3Owner owner; - @XmlElement(name = "AccessControlList", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "AccessControlList", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private AccessControlList aclList; public S3Owner getOwner() { @@ -72,7 +71,7 @@ public String toString() { @XmlRootElement(name = "AccessControlList") public static class AccessControlList { - @XmlElement(name = "Grant", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Grant", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List grantList = new ArrayList<>(); public void addGrant(Grant grant) { @@ -106,10 +105,10 @@ public String toString() { @XmlRootElement(name = "Grant") public static class Grant { - @XmlElement(name = "Grantee", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Grantee", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private Grantee grantee; - @XmlElement(name = "Permission", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Permission", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String permission; public String getPermission() { @@ -163,10 +162,10 @@ public int hashCode() { @XmlRootElement(name = "Grantee") public static class Grantee { - @XmlElement(name = "DisplayName", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "DisplayName", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String displayName; - @XmlElement(name = "ID", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "ID", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String id; @XmlAttribute(name = "xsi:type") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java index d36965277861..45cdb13b31b3 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java @@ -25,17 +25,16 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; -import org.apache.hadoop.ozone.OzoneConsts; /** * S3 tagging. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tagging", - namespace = OzoneConsts.S3_NAMESPACE_URL) + namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3Tagging { - @XmlElement(name = "TagSet", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "TagSet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private TagSet tagSet; public S3Tagging() { @@ -60,7 +59,7 @@ public void setTagSet(TagSet tagSet) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "TagSet") public static class TagSet { - @XmlElement(name = "Tag", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Tag", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private List tags = new ArrayList<>(); public TagSet() { @@ -85,10 +84,10 @@ public void setTags(List tags) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tag") public static class Tag { - @XmlElement(name = "Key", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String key; - @XmlElement(name = "Value", namespace = OzoneConsts.S3_NAMESPACE_URL) + @XmlElement(name = "Value", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") private String value; public Tag() { From aa8f1372585b9413ba69329627ef7a97bc67984b Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 13:45:08 +0800 Subject: [PATCH 09/11] Revert "bump maven-compiler-plugin to 3.14.0" This reverts commit 0717f5a066d39d32cf1d6ba340b76a0f42742a6e. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d4a44a70b79b..2167834ef772 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ 3.7.1 3.6.0 3.4.0 - 3.14.0 + 3.10.0 3.8.1 3.1.3 3.5.0 From 676168e867db9779852827ad1ac320e17e9dfbed Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 13:45:08 +0800 Subject: [PATCH 10/11] Revert "HDDS-11734. Specify namespace in @XmlElement annotations for correct XML deserialization" This reverts commit 966f0f6792a4cdc1534d45cfa2b4664e7b54ff95. --- .../endpoint/CompleteMultipartUploadRequest.java | 6 +++--- .../ozone/s3/endpoint/MultiDeleteRequest.java | 8 ++++---- .../hadoop/ozone/s3/endpoint/S3BucketAcl.java | 14 +++++++------- .../apache/hadoop/ozone/s3/endpoint/S3Tagging.java | 8 ++++---- pom.xml | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java index bcd89f75642c..b1f92b582ada 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java @@ -33,7 +33,7 @@ "http://s3.amazonaws.com/doc/2006-03-01/") public class CompleteMultipartUploadRequest { - @XmlElement(name = "Part", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Part") private List partList = new ArrayList<>(); public List getPartList() { @@ -51,10 +51,10 @@ public void setPartList(List partList) { @XmlRootElement(name = "Part") public static class Part { - @XmlElement(name = "PartNumber", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "PartNumber") private int partNumber; - @XmlElement(name = OzoneConsts.ETAG, namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = OzoneConsts.ETAG) private String eTag; public int getPartNumber() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java index f13d89827a82..8be4ea71e0f5 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java @@ -33,10 +33,10 @@ + ".com/doc/2006-03-01/") public class MultiDeleteRequest { - @XmlElement(name = "Quiet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Quiet") private Boolean quiet = Boolean.FALSE; - @XmlElement(name = "Object", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Object") private List objects = new ArrayList<>(); public boolean isQuiet() { @@ -64,10 +64,10 @@ public void setObjects( + ".com/doc/2006-03-01/") public static class DeleteObject { - @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Key") private String key; - @XmlElement(name = "VersionId", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "VersionId") private String versionId; public DeleteObject() { diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java index 2acad1bc3055..a84694f15238 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java @@ -34,10 +34,10 @@ namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3BucketAcl { - @XmlElement(name = "Owner", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Owner") private S3Owner owner; - @XmlElement(name = "AccessControlList", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "AccessControlList") private AccessControlList aclList; public S3Owner getOwner() { @@ -71,7 +71,7 @@ public String toString() { @XmlRootElement(name = "AccessControlList") public static class AccessControlList { - @XmlElement(name = "Grant", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Grant") private List grantList = new ArrayList<>(); public void addGrant(Grant grant) { @@ -105,10 +105,10 @@ public String toString() { @XmlRootElement(name = "Grant") public static class Grant { - @XmlElement(name = "Grantee", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Grantee") private Grantee grantee; - @XmlElement(name = "Permission", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Permission") private String permission; public String getPermission() { @@ -162,10 +162,10 @@ public int hashCode() { @XmlRootElement(name = "Grantee") public static class Grantee { - @XmlElement(name = "DisplayName", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "DisplayName") private String displayName; - @XmlElement(name = "ID", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "ID") private String id; @XmlAttribute(name = "xsi:type") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java index 45cdb13b31b3..cf63f70e14f6 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java @@ -34,7 +34,7 @@ namespace = "http://s3.amazonaws.com/doc/2006-03-01/") public class S3Tagging { - @XmlElement(name = "TagSet", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "TagSet") private TagSet tagSet; public S3Tagging() { @@ -59,7 +59,7 @@ public void setTagSet(TagSet tagSet) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "TagSet") public static class TagSet { - @XmlElement(name = "Tag", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Tag") private List tags = new ArrayList<>(); public TagSet() { @@ -84,10 +84,10 @@ public void setTags(List tags) { @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tag") public static class Tag { - @XmlElement(name = "Key", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Key") private String key; - @XmlElement(name = "Value", namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + @XmlElement(name = "Value") private String value; public Tag() { diff --git a/pom.xml b/pom.xml index 2167834ef772..bb86a9b8d391 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ 3.7.1 3.6.0 3.4.0 - 3.10.0 + 3.9.0 3.8.1 3.1.3 3.5.0 From c84694e80d35e113003f3e0dbcfcf94439d12a04 Mon Sep 17 00:00:00 2001 From: Jimmy Weng Date: Sat, 19 Apr 2025 14:26:35 +0800 Subject: [PATCH 11/11] HDDS-12867. Replace hard-coded namespace URL with constant S3_XML_NAMESPACE --- .../hadoop/ozone/s3/commontypes/package-info.java | 8 ++++---- .../s3/endpoint/CompleteMultipartUploadRequest.java | 3 ++- .../endpoint/CompleteMultipartUploadResponse.java | 3 ++- .../ozone/s3/endpoint/CopyObjectResponse.java | 3 ++- .../hadoop/ozone/s3/endpoint/CopyPartResult.java | 3 ++- .../ozone/s3/endpoint/ListBucketResponse.java | 3 ++- .../s3/endpoint/ListMultipartUploadsResult.java | 3 ++- .../ozone/s3/endpoint/ListObjectResponse.java | 4 ++-- .../hadoop/ozone/s3/endpoint/ListPartsResponse.java | 4 ++-- .../ozone/s3/endpoint/MultiDeleteRequest.java | 7 +++---- .../ozone/s3/endpoint/MultiDeleteResponse.java | 10 ++++------ .../endpoint/MultipartUploadInitiateResponse.java | 3 ++- .../hadoop/ozone/s3/endpoint/S3BucketAcl.java | 3 ++- .../apache/hadoop/ozone/s3/endpoint/S3Tagging.java | 3 ++- .../hadoop/ozone/s3/endpoint/package-info.java | 8 ++++---- .../org/apache/hadoop/ozone/s3/util/S3Consts.java | 3 +-- ...tCompleteMultipartUploadRequestUnmarshaller.java | 4 ++-- .../TestMultiDeleteRequestUnmarshaller.java | 4 ++-- .../ozone/s3/endpoint/TestObjectTaggingPut.java | 13 +++++++------ .../ozone/s3/endpoint/TestPermissionCheck.java | 3 ++- .../ozone/s3/metrics/TestS3GatewayMetrics.java | 3 ++- 21 files changed, 53 insertions(+), 45 deletions(-) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/commontypes/package-info.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/commontypes/package-info.java index 804330ed54a6..52d7cdc74bec 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/commontypes/package-info.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/commontypes/package-info.java @@ -19,10 +19,10 @@ * Common classes required for S3 rest API's. */ @javax.xml.bind.annotation.XmlSchema( - namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/", elementFormDefault = + namespace = S3Consts.S3_XML_NAMESPACE, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { - @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://s3.amazonaws" - + ".com/doc/2006-03-01/", prefix = "")}) + @javax.xml.bind.annotation.XmlNs(namespaceURI = S3Consts.S3_XML_NAMESPACE, prefix = "")}) package org.apache.hadoop.ozone.s3.commontypes; + +import org.apache.hadoop.ozone.s3.util.S3Consts; diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java index b1f92b582ada..f015431ce976 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadRequest.java @@ -24,13 +24,14 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.apache.hadoop.ozone.OzoneConsts; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Request for Complete Multipart Upload request. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUpload", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + S3Consts.S3_XML_NAMESPACE) public class CompleteMultipartUploadRequest { @XmlElement(name = "Part") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java index 0b149005e266..b566ce2c3469 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CompleteMultipartUploadResponse.java @@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import org.apache.hadoop.ozone.OzoneConsts; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Complete Multipart Upload request response. @@ -29,7 +30,7 @@ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CompleteMultipartUploadResult", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + S3Consts.S3_XML_NAMESPACE) public class CompleteMultipartUploadResponse { @XmlElement(name = "Location") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java index f128c75104c0..b5aa8bea6d37 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyObjectResponse.java @@ -25,13 +25,14 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Copy object Response. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyObjectResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class CopyObjectResponse { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java index fe6515e39716..f3b8b6e60e60 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/CopyPartResult.java @@ -25,13 +25,14 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Copy object Response. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "CopyPartResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class CopyPartResult { @XmlJavaTypeAdapter(IsoDateAdapter.class) diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java index 2e221639219d..fbb8d58f3fe1 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListBucketResponse.java @@ -26,13 +26,14 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; import org.apache.hadoop.ozone.s3.commontypes.BucketMetadata; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Response from the ListBucket RPC Call. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListAllMyBucketsResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class ListBucketResponse { @XmlElementWrapper(name = "Buckets") @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java index 98e9f98608b4..5b2fabe0e147 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListMultipartUploadsResult.java @@ -26,6 +26,7 @@ import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.apache.hadoop.ozone.s3.util.S3StorageType; /** @@ -33,7 +34,7 @@ */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "ListMultipartUploadsResult", namespace = - "http://s3.amazonaws.com/doc/2006-03-01/") + S3Consts.S3_XML_NAMESPACE) public class ListMultipartUploadsResult { @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListObjectResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListObjectResponse.java index 6160e2dccf33..027ac75bc4c2 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListObjectResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListObjectResponse.java @@ -28,13 +28,13 @@ import org.apache.hadoop.ozone.s3.commontypes.EncodingTypeObject; import org.apache.hadoop.ozone.s3.commontypes.KeyMetadata; import org.apache.hadoop.ozone.s3.commontypes.ObjectKeyNameAdapter; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Response from the ListObject RPC Call. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "ListBucketResult", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") +@XmlRootElement(name = "ListBucketResult", namespace = S3Consts.S3_XML_NAMESPACE) public class ListObjectResponse { @XmlElement(name = "Name") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListPartsResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListPartsResponse.java index defe24c698a3..7396dbdaaf48 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListPartsResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/ListPartsResponse.java @@ -27,13 +27,13 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.apache.hadoop.ozone.OzoneConsts; import org.apache.hadoop.ozone.s3.commontypes.IsoDateAdapter; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Request for list parts of a multipart upload request. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "ListPartsResult", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") +@XmlRootElement(name = "ListPartsResult", namespace = S3Consts.S3_XML_NAMESPACE) public class ListPartsResponse { @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java index 8be4ea71e0f5..10ba02456a9a 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteRequest.java @@ -23,14 +23,14 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Request for multi object delete request. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "Delete", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") +@XmlRootElement(name = "Delete", namespace = S3Consts.S3_XML_NAMESPACE) public class MultiDeleteRequest { @XmlElement(name = "Quiet") @@ -60,8 +60,7 @@ public void setObjects( * JAXB entity for child element. */ @XmlAccessorType(XmlAccessType.FIELD) - @XmlRootElement(name = "Object", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") + @XmlRootElement(name = "Object", namespace = S3Consts.S3_XML_NAMESPACE) public static class DeleteObject { @XmlElement(name = "Key") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteResponse.java index 66e83d19e7e2..222a56239346 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultiDeleteResponse.java @@ -23,13 +23,13 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Response for multi object delete request. */ @XmlAccessorType(XmlAccessType.FIELD) -@XmlRootElement(name = "DeleteResult", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") +@XmlRootElement(name = "DeleteResult", namespace = S3Consts.S3_XML_NAMESPACE) public class MultiDeleteResponse { @XmlElement(name = "Deleted") @@ -68,8 +68,7 @@ public void setErrors( * JAXB entity for child element. */ @XmlAccessorType(XmlAccessType.FIELD) - @XmlRootElement(name = "Deleted", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") + @XmlRootElement(name = "Deleted", namespace = S3Consts.S3_XML_NAMESPACE) public static class DeletedObject { @XmlElement(name = "Key") @@ -105,8 +104,7 @@ public void setVersionId(String versionId) { * JAXB entity for child element. */ @XmlAccessorType(XmlAccessType.FIELD) - @XmlRootElement(name = "Error", namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/") + @XmlRootElement(name = "Error", namespace = S3Consts.S3_XML_NAMESPACE) public static class Error { @XmlElement(name = "Key") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java index 8a4dc28139ec..ea8b50307921 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/MultipartUploadInitiateResponse.java @@ -21,13 +21,14 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Response for Initiate Multipart Upload request. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "InitiateMultipartUploadResult", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class MultipartUploadInitiateResponse { @XmlElement(name = "Bucket") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java index a84694f15238..6a1e6b802e89 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3BucketAcl.java @@ -25,13 +25,14 @@ import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * Bucket ACL. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "AccessControlPolicy", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class S3BucketAcl { @XmlElement(name = "Owner") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java index cf63f70e14f6..91910787017d 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/S3Tagging.java @@ -25,13 +25,14 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; +import org.apache.hadoop.ozone.s3.util.S3Consts; /** * S3 tagging. */ @XmlAccessorType(XmlAccessType.FIELD) @XmlRootElement(name = "Tagging", - namespace = "http://s3.amazonaws.com/doc/2006-03-01/") + namespace = S3Consts.S3_XML_NAMESPACE) public class S3Tagging { @XmlElement(name = "TagSet") diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/package-info.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/package-info.java index 16df49ec2198..4bc2b820a655 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/package-info.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/endpoint/package-info.java @@ -19,11 +19,11 @@ * Rest endpoint implementation for the s3 gateway. */ @javax.xml.bind.annotation.XmlSchema( - namespace = "http://s3.amazonaws" - + ".com/doc/2006-03-01/", elementFormDefault = + namespace = S3Consts.S3_XML_NAMESPACE, elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { - @javax.xml.bind.annotation.XmlNs(namespaceURI = "http://s3.amazonaws" - + ".com/doc/2006-03-01/", prefix = "")}) + @javax.xml.bind.annotation.XmlNs(namespaceURI = S3Consts.S3_XML_NAMESPACE, prefix = "")}) package org.apache.hadoop.ozone.s3.endpoint; + +import org.apache.hadoop.ozone.s3.util.S3Consts; diff --git a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/util/S3Consts.java b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/util/S3Consts.java index 70d88b04ea64..f137fa7f5d7f 100644 --- a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/util/S3Consts.java +++ b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/util/S3Consts.java @@ -71,8 +71,7 @@ private S3Consts() { //Error code 416 is Range Not Satisfiable public static final int RANGE_NOT_SATISFIABLE = 416; - public static final String S3_XML_NAMESPACE = "http://s3.amazonaws" + - ".com/doc/2006-03-01/"; + public static final String S3_XML_NAMESPACE = "http://s3.amazonaws.com/doc/2006-03-01/"; // Constants related to custom metadata public static final String CUSTOM_METADATA_HEADER_PREFIX = "x-amz-meta-"; diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestCompleteMultipartUploadRequestUnmarshaller.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestCompleteMultipartUploadRequestUnmarshaller.java index 5c4e59834bb5..f88f4f2ed470 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestCompleteMultipartUploadRequestUnmarshaller.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestCompleteMultipartUploadRequestUnmarshaller.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.junit.jupiter.api.Test; /** @@ -41,8 +42,7 @@ public void fromStreamWithNamespace() throws IOException { //GIVEN ByteArrayInputStream inputBody = new ByteArrayInputStream( - ("" + + ("" + "" + part1 + "1" + "" + part2 + "2" + diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultiDeleteRequestUnmarshaller.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultiDeleteRequestUnmarshaller.java index 3219da862a91..73179afc8960 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultiDeleteRequestUnmarshaller.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultiDeleteRequestUnmarshaller.java @@ -22,6 +22,7 @@ import java.io.ByteArrayInputStream; import java.io.IOException; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.junit.jupiter.api.Test; /** @@ -34,8 +35,7 @@ public void fromStreamWithNamespace() throws IOException { //GIVEN ByteArrayInputStream inputBody = new ByteArrayInputStream( - ("key1key2" + ("key1key2" + "key3" + "") .getBytes(UTF_8)); diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java index a51726c6b74f..de698116f531 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingPut.java @@ -49,6 +49,7 @@ import org.apache.hadoop.ozone.om.exceptions.OMException; import org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes; import org.apache.hadoop.ozone.s3.exception.OS3Exception; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -196,7 +197,7 @@ private InputStream emptyBody() { private InputStream invalidXmlStructure() { String xml = - "" + + "" + " " + " "; @@ -206,7 +207,7 @@ private InputStream invalidXmlStructure() { private InputStream twoTags() { String xml = - "" + + "" + " " + " " + " tag1" + @@ -224,14 +225,14 @@ private InputStream twoTags() { private InputStream noTagSet() { String xml = - "" + + "" + ""; return new ByteArrayInputStream(xml.getBytes(UTF_8)); } private InputStream emptyTags() { String xml = - "" + + "" + " " + " " + ""; @@ -241,7 +242,7 @@ private InputStream emptyTags() { public InputStream tagKeyNotSpecified() { String xml = - "" + + "" + " " + " " + " val1" + @@ -254,7 +255,7 @@ public InputStream tagKeyNotSpecified() { public InputStream tagValueNotSpecified() { String xml = - "" + + "" + " " + " " + " tag1" + diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java index 3804e412fe59..443686551d76 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPermissionCheck.java @@ -53,6 +53,7 @@ import org.apache.hadoop.ozone.om.helpers.ErrorInfo; import org.apache.hadoop.ozone.s3.exception.OS3Exception; import org.apache.hadoop.ozone.s3.metrics.S3GatewayMetrics; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -318,7 +319,7 @@ public void testObjectTagging() throws Exception { .setClient(client) .build(); String xml = - "" + + "" + " " + " " + " tag1" + diff --git a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java index 0081d0d5abc0..5abc3ea77c60 100644 --- a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java +++ b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/metrics/TestS3GatewayMetrics.java @@ -54,6 +54,7 @@ import org.apache.hadoop.ozone.s3.endpoint.TestBucketAcl; import org.apache.hadoop.ozone.s3.exception.OS3Exception; import org.apache.hadoop.ozone.s3.exception.S3ErrorTable; +import org.apache.hadoop.ozone.s3.util.S3Consts; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -669,7 +670,7 @@ private String initiateMultipartUpload(String bktName, String key) private static InputStream getPutTaggingBody() { String xml = - "" + + "" + " " + " " + " tag1" +