This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new a5d44bebcbe HDDS-14203. Use EndpointBuilder in all S3G unit tests 
(#9522)
a5d44bebcbe is described below

commit a5d44bebcbe5cf70d320a951cb5670db8de85188
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Thu Dec 18 15:54:00 2025 +0100

    HDDS-14203. Use EndpointBuilder in all S3G unit tests (#9522)
---
 .../hadoop/ozone/client/ObjectStoreStub.java       |   3 +-
 .../hadoop/ozone/s3/endpoint/EndpointBuilder.java  |  10 +-
 .../hadoop/ozone/s3/endpoint/TestBucketList.java   | 158 +++++++--------------
 .../s3/endpoint/TestMultipartUploadWithCopy.java   |  43 +++---
 .../ozone/s3/endpoint/TestObjectTaggingDelete.java |   2 +
 .../ozone/s3/endpoint/TestObjectTaggingPut.java    |   2 +
 .../s3/endpoint/TestPartUploadWithStream.java      |   2 -
 .../ozone/s3/endpoint/TestPermissionCheck.java     |   1 +
 .../ozone/s3/endpoint/TestUploadWithStream.java    |   2 -
 .../ozone/s3/metrics/TestS3GatewayMetrics.java     |  10 +-
 10 files changed, 83 insertions(+), 150 deletions(-)

diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/client/ObjectStoreStub.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/client/ObjectStoreStub.java
index 42671e2c294..7dad6d600f0 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/client/ObjectStoreStub.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/client/ObjectStoreStub.java
@@ -21,6 +21,7 @@
 import static 
org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.BUCKET_NOT_EMPTY;
 import static 
org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.BUCKET_NOT_FOUND;
 import static 
org.apache.hadoop.ozone.om.exceptions.OMException.ResultCodes.VOLUME_NOT_FOUND;
+import static org.mockito.Mockito.mock;
 
 import java.io.IOException;
 import java.util.HashMap;
@@ -44,7 +45,7 @@ public class ObjectStoreStub extends ObjectStore {
   private Map<String, Boolean> bucketEmptyStatus = new HashMap<>();
 
   public ObjectStoreStub() {
-    super();
+    super(conf, mock(ClientProtocol.class));
   }
 
   public ObjectStoreStub(ConfigurationSource conf, ClientProtocol proxy) {
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
index 9c4cade6407..13db3962a89 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/EndpointBuilder.java
@@ -27,6 +27,7 @@
 import javax.ws.rs.core.UriInfo;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.client.OzoneClient;
+import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.signature.SignatureInfo;
 
@@ -97,8 +98,8 @@ public EndpointBuilder<T> setSignatureInfo(SignatureInfo 
newSignatureInfo) {
   public T build() {
     T endpoint = base != null ? base : constructor.get();
 
-    if (ozoneClient != null) {
-      endpoint.setClient(ozoneClient);
+    if (endpoint.getClient() == null) {
+      endpoint.setClient(getClient());
     }
 
     final OzoneConfiguration config = getConfig();
@@ -109,10 +110,15 @@ public T build() {
     endpoint.setRequestIdentifier(identifier);
     endpoint.setSignatureInfo(signatureInfo);
 
+    endpoint.initialization();
+
     return endpoint;
   }
 
   protected OzoneClient getClient() {
+    if (ozoneClient == null) {
+      ozoneClient = new OzoneClientStub();
+    }
     return ozoneClient;
   }
 
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
index f23f8f81b60..0d2f087a75b 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestBucketList.java
@@ -18,6 +18,7 @@
 package org.apache.hadoop.ozone.s3.endpoint;
 
 import static 
org.apache.hadoop.ozone.s3.S3GatewayConfigKeys.OZONE_S3G_LIST_MAX_KEYS_LIMIT;
+import static 
org.apache.hadoop.ozone.s3.endpoint.EndpointBuilder.newBucketEndpointBuilder;
 import static org.apache.hadoop.ozone.s3.util.S3Consts.ENCODING_TYPE;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -32,7 +33,6 @@
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
-import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.commontypes.EncodingTypeObject;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
@@ -48,15 +48,13 @@ public class TestBucketList {
 
   @Test
   public void listRoot() throws OS3Exception, IOException {
-
     OzoneClient client = createClientWithKeys("file1", "dir1/file2");
-
-    BucketEndpoint getBucket = EndpointBuilder.newBucketEndpointBuilder()
+    BucketEndpoint endpoint = newBucketEndpointBuilder()
         .setClient(client)
         .build();
 
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100, "",
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100, "",
                 null, null, null, null, null, null, 0)
             .getEntity();
 
@@ -67,21 +65,15 @@ public void listRoot() throws OS3Exception, IOException {
     assertEquals(1, getBucketResponse.getContents().size());
     assertEquals("file1",
         getBucketResponse.getContents().get(0).getKey().getName());
-
   }
 
   @Test
   public void listDir() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient client = createClientWithKeys("dir1/file2", "dir1/dir2/file2");
-
-    getBucket.setClient(client);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(client).build();
 
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100,
             "dir1", null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(1, getBucketResponse.getCommonPrefixes().size());
@@ -89,22 +81,18 @@ public void listDir() throws OS3Exception, IOException {
         getBucketResponse.getCommonPrefixes().get(0).getPrefix().getName());
 
     assertEquals(0, getBucketResponse.getContents().size());
-
   }
 
   @Test
   public void listSubDir() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
+
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket
+        (ListObjectResponse) endpoint
             .get("b1", "/", null, null, 100, "dir1/", null,
                 null, null, null, null, null, 0)
             .getEntity();
@@ -116,18 +104,15 @@ public void listSubDir() throws OS3Exception, IOException 
{
     assertEquals(1, getBucketResponse.getContents().size());
     assertEquals("dir1/file2",
         getBucketResponse.getContents().get(0).getKey().getName());
-
   }
 
   @Test
   public void listObjectOwner() throws OS3Exception, IOException {
-
     UserGroupInformation user1 = UserGroupInformation
         .createUserForTesting("user1", new String[] {"user1"});
     UserGroupInformation user2 = UserGroupInformation
         .createUserForTesting("user2", new String[] {"user2"});
 
-    BucketEndpoint getBucket = new BucketEndpoint();
     OzoneClient client = new OzoneClientStub();
     client.getObjectStore().createS3Bucket("b1");
     OzoneBucket bucket = client.getObjectStore().getS3Bucket("b1");
@@ -137,10 +122,10 @@ public void listObjectOwner() throws OS3Exception, 
IOException {
     UserGroupInformation.setLoginUser(user2);
     bucket.createKey("key2", 0).close();
 
-    getBucket.setClient(client);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(client).build();
+
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100,
             "key", null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(2, getBucketResponse.getContents().size());
@@ -148,84 +133,67 @@ public void listObjectOwner() throws OS3Exception, 
IOException {
         getBucketResponse.getContents().get(0).getOwner().getDisplayName());
     assertEquals(user2.getShortUserName(),
         getBucketResponse.getContents().get(1).getOwner().getDisplayName());
-
   }
 
   @Test
   public void listWithPrefixAndDelimiter() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2", "file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100,
             "dir1", null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(3, getBucketResponse.getCommonPrefixes().size());
-
   }
 
   @Test
   public void listWithPrefixAndDelimiter1() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2", "file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100,
             "", null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(3, getBucketResponse.getCommonPrefixes().size());
     assertEquals("file2", getBucketResponse.getContents().get(0)
         .getKey().getName());
-
   }
 
   @Test
   public void listWithPrefixAndDelimiter2() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2", "file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
+
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, 100, 
"dir1bh",
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, 100, "dir1bh",
             null, "dir1/dir2/file2", null, null, null, null, 0).getEntity();
 
     assertEquals(2, getBucketResponse.getCommonPrefixes().size());
-
   }
 
   @Test
   public void listWithPrefixAndEmptyStrDelimiter()
       throws OS3Exception, IOException {
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/", "dir1/dir2/", "dir1/dir2/file1",
           "dir1/dir2/file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
+
     // Should behave the same if delimiter is null
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "", null, null, 100, "dir1/",
+        (ListObjectResponse) endpoint.get("b1", "", null, null, 100, "dir1/",
           null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(0, getBucketResponse.getCommonPrefixes().size());
@@ -238,26 +206,22 @@ public void listWithPrefixAndEmptyStrDelimiter()
         getBucketResponse.getContents().get(2).getKey().getName());
     assertEquals("dir1/dir2/file2",
         getBucketResponse.getContents().get(3).getKey().getName());
-
   }
 
   @Test
   public void listWithContinuationToken() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2", "file2");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
+
     int maxKeys = 2;
     // As we have 5 keys, with max keys 2 we should call list 3 times.
 
     // First time
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", null, null, null, maxKeys,
             "", null, null, null, null, null, null, 0).getEntity();
 
     assertTrue(getBucketResponse.isTruncated());
@@ -266,7 +230,7 @@ public void listWithContinuationToken() throws 
OS3Exception, IOException {
     // 2nd time
     String continueToken = getBucketResponse.getNextToken();
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", null, null, null, maxKeys,
             "", continueToken, null, null, null, null, null, 0).getEntity();
     assertTrue(getBucketResponse.isTruncated());
     assertEquals(2, getBucketResponse.getContents().size());
@@ -276,20 +240,16 @@ public void listWithContinuationToken() throws 
OS3Exception, IOException {
 
     //3rd time
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", null, null, null, maxKeys,
             "", continueToken, null, null, null, null, null, 0).getEntity();
 
     assertFalse(getBucketResponse.isTruncated());
     assertEquals(1, getBucketResponse.getContents().size());
-
   }
 
   @Test
   public void listWithContinuationTokenDirBreak()
       throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys(
             "test/dir1/file1",
@@ -301,15 +261,14 @@ public void listWithContinuationTokenDirBreak()
             "test/dir3/file7",
             "test/file8");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     int maxKeys = 2;
 
     ListObjectResponse getBucketResponse;
 
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, maxKeys,
             "test/", null, null, null, null, null, null, 0).getEntity();
 
     assertEquals(0, getBucketResponse.getContents().size());
@@ -320,7 +279,7 @@ public void listWithContinuationTokenDirBreak()
         getBucketResponse.getCommonPrefixes().get(1).getPrefix().getName());
 
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, maxKeys,
             "test/", getBucketResponse.getNextToken(), null, null, null,
             null, null, 0).getEntity();
     assertEquals(1, getBucketResponse.getContents().size());
@@ -329,7 +288,6 @@ public void listWithContinuationTokenDirBreak()
         getBucketResponse.getCommonPrefixes().get(0).getPrefix().getName());
     assertEquals("test/file8",
         getBucketResponse.getContents().get(0).getKey().getName());
-
   }
 
   /**
@@ -338,22 +296,18 @@ public void listWithContinuationTokenDirBreak()
    */
   @Test
   public void listWithContinuationToken1() throws OS3Exception, IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file1", "dir1bh/file1",
             "dir1bha/file1", "dir0/file1", "dir2/file1");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     int maxKeys = 2;
     // As we have 5 keys, with max keys 2 we should call list 3 times.
 
     // First time
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, maxKeys,
             "dir", null, null, null, null, null, null, 0).getEntity();
 
     assertTrue(getBucketResponse.isTruncated());
@@ -362,7 +316,7 @@ public void listWithContinuationToken1() throws 
OS3Exception, IOException {
     // 2nd time
     String continueToken = getBucketResponse.getNextToken();
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, maxKeys,
             "dir", continueToken, null, null, null, null, null, 0).getEntity();
     assertTrue(getBucketResponse.isTruncated());
     assertEquals(2, getBucketResponse.getCommonPrefixes().size());
@@ -370,27 +324,22 @@ public void listWithContinuationToken1() throws 
OS3Exception, IOException {
     //3rd time
     continueToken = getBucketResponse.getNextToken();
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", "/", null, null, maxKeys,
+        (ListObjectResponse) endpoint.get("b1", "/", null, null, maxKeys,
             "dir", continueToken, null, null, null, null, null, 0).getEntity();
 
     assertFalse(getBucketResponse.isTruncated());
     assertEquals(1, getBucketResponse.getCommonPrefixes().size());
-
   }
 
   @Test
   public void listWithContinuationTokenFail() throws IOException {
-
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file2", "dir1/dir2/file2", "dir1bh/file",
             "dir1bha/file2", "dir1", "dir2", "dir3");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
-    OS3Exception e = assertThrows(OS3Exception.class, () -> getBucket.get("b1",
+    OS3Exception e = assertThrows(OS3Exception.class, () -> endpoint.get("b1",
             "/", null, null, 2, "dir", "random", null, null, null, null, null, 
1000)
         .getEntity(), "listWithContinuationTokenFail");
     assertEquals("random", e.getResource());
@@ -399,17 +348,14 @@ public void listWithContinuationTokenFail() throws 
IOException {
 
   @Test
   public void testStartAfter() throws IOException, OS3Exception {
-    BucketEndpoint getBucket = new BucketEndpoint();
-
     OzoneClient ozoneClient =
         createClientWithKeys("dir1/file1", "dir1bh/file1",
             "dir1bha/file1", "dir0/file1", "dir2/file1");
 
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     ListObjectResponse getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null, 1000,
+        (ListObjectResponse) endpoint.get("b1", null, null, null, 1000,
             null, null, null, null, null, null, null, 0).getEntity();
 
     assertFalse(getBucketResponse.isTruncated());
@@ -420,20 +366,18 @@ public void testStartAfter() throws IOException, 
OS3Exception {
     String startAfter = "dir0/file1";
 
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null,
+        (ListObjectResponse) endpoint.get("b1", null, null, null,
             1000, null, null, startAfter, null, null, null, null, 
0).getEntity();
 
     assertFalse(getBucketResponse.isTruncated());
     assertEquals(4, getBucketResponse.getContents().size());
 
     getBucketResponse =
-        (ListObjectResponse) getBucket.get("b1", null, null, null,
+        (ListObjectResponse) endpoint.get("b1", null, null, null,
             1000, null, null, "random", null, null, null, null, 0).getEntity();
 
     assertFalse(getBucketResponse.isTruncated());
     assertEquals(0, getBucketResponse.getContents().size());
-
-
   }
 
   @Test
@@ -462,18 +406,16 @@ public void testEncodingType() throws IOException, 
OS3Exception {
       if encodingType == null , the = will not be encoded to "%3D"
     * */
 
-    BucketEndpoint getBucket = new BucketEndpoint();
     OzoneClient ozoneClient =
         createClientWithKeys("data=1970", "data==1970");
-    getBucket.setClient(ozoneClient);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(ozoneClient).build();
 
     String delimiter = "=";
     String prefix = "data=";
     String startAfter = "data=";
     String encodingType = ENCODING_TYPE;
 
-    ListObjectResponse response = (ListObjectResponse) getBucket.get(
+    ListObjectResponse response = (ListObjectResponse) endpoint.get(
         "b1", delimiter, encodingType, null, 1000, prefix,
         null, startAfter, null, null, null, null, 0).getEntity();
 
@@ -491,7 +433,7 @@ public void testEncodingType() throws IOException, 
OS3Exception {
     assertEquals(encodingType,
         response.getContents().get(0).getKey().getEncodingType());
 
-    response = (ListObjectResponse) getBucket.get(
+    response = (ListObjectResponse) endpoint.get(
         "b1", delimiter, null, null, 1000, prefix,
         null, startAfter, null, null, null, null, 0).getEntity();
 
@@ -506,17 +448,14 @@ public void testEncodingType() throws IOException, 
OS3Exception {
     assertEncodingTypeObject(prefix + delimiter, null,
         response.getCommonPrefixes().get(0).getPrefix());
     assertNull(response.getContents().get(0).getKey().getEncodingType());
-
   }
 
   @Test
   public void testEncodingTypeException() throws IOException {
-    BucketEndpoint getBucket = new BucketEndpoint();
     OzoneClient client = new OzoneClientStub();
     client.getObjectStore().createS3Bucket("b1");
-    getBucket.setClient(client);
-    getBucket.setRequestIdentifier(new RequestIdentifier());
-    OS3Exception e = assertThrows(OS3Exception.class, () -> getBucket.get(
+    BucketEndpoint endpoint = 
newBucketEndpointBuilder().setClient(client).build();
+    OS3Exception e = assertThrows(OS3Exception.class, () -> endpoint.get(
         "b1", null, "unSupportType", null, 1000, null,
         null, null, null, null, null, null, 0).getEntity());
     assertEquals(S3ErrorTable.INVALID_ARGUMENT.getCode(), e.getCode());
@@ -526,7 +465,7 @@ public void testEncodingTypeException() throws IOException {
   public void testListObjectsWithNegativeMaxKeys() throws Exception {
     OzoneClient client = new OzoneClientStub();
     client.getObjectStore().createS3Bucket("bucket");
-    BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+    BucketEndpoint bucketEndpoint = newBucketEndpointBuilder()
         .setClient(client)
         .build();
 
@@ -542,7 +481,7 @@ public void testListObjectsWithNegativeMaxKeys() throws 
Exception {
   public void testListObjectsWithZeroMaxKeys() throws Exception {
     OzoneClient client = new OzoneClientStub();
     client.getObjectStore().createS3Bucket("bucket");
-    BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+    BucketEndpoint bucketEndpoint = newBucketEndpointBuilder()
         .setClient(client)
         .build();
 
@@ -558,7 +497,7 @@ public void testListObjectsWithZeroMaxKeys() throws 
Exception {
   @Test
   public void testListObjectsWithZeroMaxKeysInNonEmptyBucket() throws 
Exception {
     OzoneClient client = createClientWithKeys("file1", "file2", "file3", 
"file4", "file5");
-    BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+    BucketEndpoint bucketEndpoint = newBucketEndpointBuilder()
         .setClient(client)
         .build();
 
@@ -588,11 +527,10 @@ public void 
testListObjectsRespectsConfiguredMaxKeysLimit() throws Exception {
     config.set(OZONE_S3G_LIST_MAX_KEYS_LIMIT, configuredMaxKeysLimit);
 
     // Arrange: Build and initialize the BucketEndpoint with the config
-    BucketEndpoint bucketEndpoint = EndpointBuilder.newBucketEndpointBuilder()
+    BucketEndpoint bucketEndpoint = newBucketEndpointBuilder()
         .setClient(client)
         .setConfig(config)
         .build();
-    bucketEndpoint.init();
 
     // Assert: Ensure the config value is correctly set in the endpoint
     assertEquals(configuredMaxKeysLimit,
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
index fd83523214c..702c32d1aba 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestMultipartUploadWithCopy.java
@@ -45,17 +45,14 @@
 import org.apache.hadoop.hdds.client.ReplicationConfig;
 import org.apache.hadoop.hdds.client.ReplicationFactor;
 import org.apache.hadoop.hdds.client.ReplicationType;
-import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.ozone.OzoneConsts;
 import org.apache.hadoop.ozone.client.OzoneBucket;
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneMultipartUploadPartListParts;
-import org.apache.hadoop.ozone.s3.RequestIdentifier;
 import org.apache.hadoop.ozone.s3.endpoint.CompleteMultipartUploadRequest.Part;
 import org.apache.hadoop.ozone.s3.exception.OS3Exception;
 import org.apache.hadoop.ozone.s3.exception.S3ErrorTable;
-import org.apache.hadoop.ozone.s3.signature.SignatureInfo;
 import org.apache.hadoop.ozone.web.utils.OzoneUtils;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
@@ -66,12 +63,9 @@
 
 public class TestMultipartUploadWithCopy {
 
-  private static final ObjectEndpoint REST = new ObjectEndpoint();
-
   private static final String KEY = "key2";
   private static final String EXISTING_KEY = "key1";
   private static final String EXISTING_KEY_CONTENT = "testkey";
-  private static final OzoneClient CLIENT = new OzoneClientStub();
   private static final long DELAY_MS = 2000;
   private static String beforeSourceKeyModificationTimeStr;
   private static String afterSourceKeyModificationTimeStr;
@@ -80,12 +74,16 @@ public class TestMultipartUploadWithCopy {
   private static final String ERROR_CODE =
       S3ErrorTable.PRECOND_FAILED.getCode();
 
+  private static ObjectEndpoint endpoint;
+  private static OzoneClient client;
+
   @BeforeAll
   public static void setUp() throws Exception {
-    CLIENT.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
+    client = new OzoneClientStub();
+    client.getObjectStore().createS3Bucket(OzoneConsts.S3_BUCKET);
 
     OzoneBucket bucket =
-        CLIENT.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET);
+        client.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET);
 
     byte[] keyContent = EXISTING_KEY_CONTENT.getBytes(UTF_8);
     try (OutputStream stream = bucket
@@ -99,7 +97,7 @@ public static void setUp() throws Exception {
       stream.write(keyContent);
     }
 
-    long sourceKeyLastModificationTime = CLIENT.getObjectStore()
+    long sourceKeyLastModificationTime = client.getObjectStore()
                                              
.getS3Bucket(OzoneConsts.S3_BUCKET)
                                              .getKey(EXISTING_KEY)
                                              
.getModificationTime().toEpochMilli();
@@ -125,13 +123,10 @@ public static void setUp() throws Exception {
     when(headers.getHeaderString(X_AMZ_CONTENT_SHA256))
         .thenReturn("mockSignature");
 
-    REST.setHeaders(headers);
-    REST.setClient(CLIENT);
-    REST.setOzoneConfiguration(new OzoneConfiguration());
-    REST.setRequestIdentifier(new RequestIdentifier());
-    SignatureInfo signatureInfo = mock(SignatureInfo.class);
-    when(signatureInfo.isSignPayload()).thenReturn(true);
-    REST.setSignatureInfo(signatureInfo);
+    endpoint = EndpointBuilder.newObjectEndpointBuilder()
+        .setHeaders(headers)
+        .setClient(client)
+        .build();
   }
 
   @Test
@@ -174,7 +169,7 @@ public void testMultipart() throws Exception {
         uploadID);
 
     OzoneBucket bucket =
-        CLIENT.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET);
+        client.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET);
     try (InputStream is = bucket.readKey(KEY)) {
       String keyContent = new Scanner(is, UTF_8.name())
           .useDelimiter("\\A").next();
@@ -317,7 +312,7 @@ public void testMultipartTSHeaders() throws Exception {
   private String initiateMultipartUpload(String key) throws IOException,
       OS3Exception {
     setHeaders();
-    Response response = REST.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
+    Response response = 
endpoint.initializeMultipartUpload(OzoneConsts.S3_BUCKET,
         key);
     MultipartUploadInitiateResponse multipartUploadInitiateResponse =
         (MultipartUploadInitiateResponse) response.getEntity();
@@ -335,7 +330,7 @@ private Part uploadPart(String key, String uploadID, int 
partNumber, String
     setHeaders();
     ByteArrayInputStream body =
         new ByteArrayInputStream(content.getBytes(UTF_8));
-    Response response = REST.put(OzoneConsts.S3_BUCKET, key, content.length(),
+    Response response = endpoint.put(OzoneConsts.S3_BUCKET, key, 
content.length(),
         partNumber, uploadID, null, null, body);
     assertEquals(200, response.getStatus());
     assertNotNull(response.getHeaderString(OzoneConsts.ETAG));
@@ -380,7 +375,7 @@ private Part uploadPartWithCopy(String key, String 
uploadID, int partNumber,
     setHeaders(additionalHeaders);
 
     ByteArrayInputStream body = new ByteArrayInputStream("".getBytes(UTF_8));
-    Response response = REST.put(OzoneConsts.S3_BUCKET, key, 0, partNumber,
+    Response response = endpoint.put(OzoneConsts.S3_BUCKET, key, 0, partNumber,
         uploadID, null, null, body);
     assertEquals(200, response.getStatus());
 
@@ -408,9 +403,9 @@ public void testUploadWithRangeCopyContentLength()
         OzoneConsts.S3_BUCKET + "/" + EXISTING_KEY);
     additionalHeaders.put(COPY_SOURCE_HEADER_RANGE, "bytes=0-3");
     setHeaders(additionalHeaders);
-    REST.put(OzoneConsts.S3_BUCKET, KEY, 0, 1, uploadID, null, null, body);
+    endpoint.put(OzoneConsts.S3_BUCKET, KEY, 0, 1, uploadID, null, null, body);
     OzoneMultipartUploadPartListParts parts =
-        CLIENT.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET)
+        client.getObjectStore().getS3Bucket(OzoneConsts.S3_BUCKET)
         .listParts(KEY, uploadID, 0, 100);
     assertEquals(1, parts.getPartInfoList().size());
     assertEquals(4, parts.getPartInfoList().get(0).getSize());
@@ -420,7 +415,7 @@ private void completeMultipartUpload(String key,
       CompleteMultipartUploadRequest completeMultipartUploadRequest,
       String uploadID) throws IOException, OS3Exception {
     setHeaders();
-    Response response = REST.completeMultipartUpload(OzoneConsts.S3_BUCKET, 
key,
+    Response response = 
endpoint.completeMultipartUpload(OzoneConsts.S3_BUCKET, key,
         uploadID, completeMultipartUploadRequest);
 
     assertEquals(200, response.getStatus());
@@ -445,7 +440,7 @@ private void setHeaders(Map<String, String> 
additionalHeaders) {
 
     additionalHeaders
         .forEach((k, v) -> when(headers.getHeaderString(k)).thenReturn(v));
-    REST.setHeaders(headers);
+    endpoint.setHeaders(headers);
   }
 
   private void setHeaders() {
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
index cb3e24472b0..488474e3039 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestObjectTaggingDelete.java
@@ -43,6 +43,7 @@
 import org.apache.hadoop.ozone.client.OzoneClient;
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneVolume;
+import org.apache.hadoop.ozone.client.protocol.ClientProtocol;
 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;
@@ -124,6 +125,7 @@ public void testDeleteObjectTaggingNotImplemented() throws 
Exception {
 
     when(mockClient.getObjectStore()).thenReturn(mockObjectStore);
     when(mockObjectStore.getS3Volume()).thenReturn(mockVolume);
+    
when(mockObjectStore.getClientProxy()).thenReturn(mock(ClientProtocol.class));
     when(mockVolume.getBucket("fsoBucket")).thenReturn(mockBucket);
 
     ObjectEndpoint endpoint = EndpointBuilder.newObjectEndpointBuilder()
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 02b71e8772c..d1651d6b59c 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
@@ -47,6 +47,7 @@
 import org.apache.hadoop.ozone.client.OzoneClientStub;
 import org.apache.hadoop.ozone.client.OzoneKeyDetails;
 import org.apache.hadoop.ozone.client.OzoneVolume;
+import org.apache.hadoop.ozone.client.protocol.ClientProtocol;
 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;
@@ -170,6 +171,7 @@ public void testPutObjectTaggingNotImplemented() throws 
Exception {
 
     when(mockClient.getObjectStore()).thenReturn(mockObjectStore);
     when(mockObjectStore.getS3Volume()).thenReturn(mockVolume);
+    
when(mockObjectStore.getClientProxy()).thenReturn(mock(ClientProtocol.class));
     when(mockVolume.getBucket("fsoBucket")).thenReturn(mockBucket);
 
     ObjectEndpoint endpoint = EndpointBuilder.newObjectEndpointBuilder()
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
index 4b2d8a49efb..736660073d5 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestPartUploadWithStream.java
@@ -72,8 +72,6 @@ public void setUp() throws Exception {
         .setClient(client)
         .setConfig(conf)
         .build();
-
-    rest.init();
   }
 
   @Test
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 81f6853bf73..e422e492079 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
@@ -93,6 +93,7 @@ public void setup() {
     clientProtocol = mock(ClientProtocol.class);
     S3GatewayMetrics.create(conf);
     when(client.getProxy()).thenReturn(clientProtocol);
+    when(objectStore.getClientProxy()).thenReturn(clientProtocol);
   }
 
   /**
diff --git 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
index 992b0dc2dc9..dbe21601dbd 100644
--- 
a/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
+++ 
b/hadoop-ozone/s3gateway/src/test/java/org/apache/hadoop/ozone/s3/endpoint/TestUploadWithStream.java
@@ -80,8 +80,6 @@ public void setUp() throws Exception {
         .setHeaders(headers)
         .setConfig(conf)
         .build();
-
-    rest.init();
   }
 
   @Test
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 5a72fad11b2..cae9a942288 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
@@ -78,6 +78,7 @@ public void setup() throws Exception {
     clientStub = new OzoneClientStub();
     clientStub.getObjectStore().createS3Bucket(bucketName);
     bucket = clientStub.getObjectStore().getS3Bucket(bucketName);
+    bucket.createKey("file1", 0).close();
 
     headers = mock(HttpHeaders.class);
     when(headers.getHeaderString(STORAGE_CLASS_HEADER)).thenReturn(
@@ -132,8 +133,6 @@ public void testListBucketSuccess() throws Exception {
   public void testGetBucketSuccess() throws Exception {
     long oriMetric = metrics.getGetBucketSuccess();
 
-    clientStub = createClientWithKeys("file1");
-    bucketEndpoint.setClient(clientStub);
     bucketEndpoint.get(bucketName, null,
         null, null, 1000, null,
         null, "random", null,
@@ -637,13 +636,6 @@ public void testDeleteObjectTaggingFailure() throws 
Exception {
     assertEquals(1L, curMetric - oriMetric);
   }
 
-  private OzoneClient createClientWithKeys(String... keys) throws IOException {
-    for (String key : keys) {
-      bucket.createKey(key, 0).close();
-    }
-    return clientStub;
-  }
-
   private String initiateMultipartUpload(String bktName, String key)
       throws IOException,
       OS3Exception {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to