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

oscerd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a91203adcd1 CAMEL-23132: Update camel-aws2-s3 to use ListObjectsV2 
API instead of deprecated ListObjects API (#23086)
5a91203adcd1 is described below

commit 5a91203adcd19f4e91e05a570b01ac13c1532b62
Author: Andrea Cosentino <[email protected]>
AuthorDate: Fri May 8 14:42:02 2026 +0200

    CAMEL-23132: Update camel-aws2-s3 to use ListObjectsV2 API instead of 
deprecated ListObjects API (#23086)
    
    Signed-off-by: Andrea Cosentino <[email protected]>
---
 .../camel-aws2-s3/src/main/docs/aws2-s3-component.adoc     |  2 +-
 .../org/apache/camel/component/aws2/s3/AWS2S3Consumer.java | 14 +++++++-------
 .../org/apache/camel/component/aws2/s3/AWS2S3Producer.java |  8 ++++----
 .../aws2/s3/AWS2S3ProducerHttpResponseCodeTest.java        |  8 ++++----
 4 files changed, 16 insertions(+), 16 deletions(-)

diff --git 
a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc 
b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
index eeb43ddd13fa..24209506fbea 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
+++ b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc
@@ -1219,7 +1219,7 @@ In AWS S3 there are multiple operations you can submit, 
as an example for List b
 [source,java]
 
------------------------------------------------------------------------------------------------------
 from("direct:aws2-s3")
-     .setBody(ListObjectsRequest.builder().bucket(bucketName).build())
+.setBody(ListObjectsV2Request.builder().bucket(bucketName).build())
      
.to("aws2-s3://test?amazonS3Client=#amazonS3Client&operation=listObjects&pojoRequest=true")
 
------------------------------------------------------------------------------------------------------
 
diff --git 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
index 7da4ead6ac2f..e29563f4dd81 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Consumer.java
@@ -52,8 +52,8 @@ import 
software.amazon.awssdk.services.s3.model.GetObjectRequest.Builder;
 import software.amazon.awssdk.services.s3.model.GetObjectResponse;
 import software.amazon.awssdk.services.s3.model.HeadBucketRequest;
 import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
-import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
-import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
+import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
+import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
 import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
 import software.amazon.awssdk.services.s3.model.S3Object;
 import software.amazon.awssdk.utils.IoUtils;
@@ -130,7 +130,7 @@ public class AWS2S3Consumer extends 
ScheduledBatchPollingConsumer {
         } else {
             LOG.trace("Queueing objects in bucket [{}]...", bucketName);
 
-            ListObjectsRequest.Builder listObjectsRequest = 
ListObjectsRequest.builder();
+            ListObjectsV2Request.Builder listObjectsRequest = 
ListObjectsV2Request.builder();
             listObjectsRequest.bucket(bucketName);
             if (ObjectHelper.isNotEmpty(getConfiguration().getPrefix())) {
                 listObjectsRequest.prefix(getConfiguration().getPrefix());
@@ -146,13 +146,13 @@ public class AWS2S3Consumer extends 
ScheduledBatchPollingConsumer {
             // continue from where we left last time
             if (marker != null) {
                 LOG.trace("Resuming from marker: {}", marker);
-                listObjectsRequest.marker(marker);
+                listObjectsRequest.continuationToken(marker);
             }
 
-            ListObjectsResponse listObjects = 
getAmazonS3Client().listObjects(listObjectsRequest.build());
+            ListObjectsV2Response listObjects = 
getAmazonS3Client().listObjectsV2(listObjectsRequest.build());
 
             if (Boolean.TRUE.equals(listObjects.isTruncated())) {
-                String next = listObjects.nextMarker();
+                String next = listObjects.nextContinuationToken();
                 if (next == null && listObjects.hasContents() && 
ObjectHelper.isEmpty(listObjects.prefix())) {
                     // fallback to use last key from the returned list of 
objects
                     int size = listObjects.contents().size();
@@ -162,7 +162,7 @@ public class AWS2S3Consumer extends 
ScheduledBatchPollingConsumer {
                     }
                 }
                 marker = next;
-                LOG.trace("Returned list is truncated, so setting next marker: 
{}", marker);
+                LOG.trace("Returned list is truncated, so setting next 
continuation token: {}", marker);
             } else {
                 // no more data so clear marker
                 marker = null;
diff --git 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java
 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java
index 4d65759d900b..728cc5d946ef 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Producer.java
@@ -692,8 +692,8 @@ public class AWS2S3Producer extends DefaultProducer {
 
         if (getConfiguration().isPojoRequest()) {
             Object payload = exchange.getIn().getMandatoryBody();
-            if (payload instanceof ListObjectsRequest req) {
-                ListObjectsResponse objectList = s3Client.listObjects(req);
+            if (payload instanceof ListObjectsV2Request req) {
+                ListObjectsV2Response objectList = s3Client.listObjectsV2(req);
                 Message message = getMessageForResponse(exchange);
                 message.setBody(objectList.contents());
                 populateHttpResponseCode(objectList, message);
@@ -704,13 +704,13 @@ public class AWS2S3Producer extends DefaultProducer {
             final String prefix
                     = exchange.getIn().getHeader(AWS2S3Constants.PREFIX, 
getConfiguration().getPrefix(), String.class);
 
-            final ListObjectsRequest listObjectsRequest = ListObjectsRequest
+            final ListObjectsV2Request listObjectsRequest = 
ListObjectsV2Request
                     .builder()
                     .bucket(bucketName)
                     .delimiter(delimiter)
                     .prefix(prefix)
                     .build();
-            ListObjectsResponse objectList = 
s3Client.listObjects(listObjectsRequest);
+            ListObjectsV2Response objectList = 
s3Client.listObjectsV2(listObjectsRequest);
 
             Message message = getMessageForResponse(exchange);
             message.setBody(objectList.contents());
diff --git 
a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/AWS2S3ProducerHttpResponseCodeTest.java
 
b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/AWS2S3ProducerHttpResponseCodeTest.java
index 5cf82aecc5b6..22b1b37405a9 100644
--- 
a/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/AWS2S3ProducerHttpResponseCodeTest.java
+++ 
b/components/camel-aws/camel-aws2-s3/src/test/java/org/apache/camel/component/aws2/s3/AWS2S3ProducerHttpResponseCodeTest.java
@@ -34,8 +34,8 @@ import 
software.amazon.awssdk.services.s3.model.DeleteBucketResponse;
 import software.amazon.awssdk.services.s3.model.DeleteObjectRequest;
 import software.amazon.awssdk.services.s3.model.DeleteObjectResponse;
 import software.amazon.awssdk.services.s3.model.ListBucketsResponse;
-import software.amazon.awssdk.services.s3.model.ListObjectsRequest;
-import software.amazon.awssdk.services.s3.model.ListObjectsResponse;
+import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
+import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
@@ -126,8 +126,8 @@ public class AWS2S3ProducerHttpResponseCodeTest {
     @Test
     public void listObjectsShouldSetHttpResponseCode() throws Exception {
         
when(configuration.getOperation()).thenReturn(AWS2S3Operations.listObjects);
-        when(s3Client.listObjects(any(ListObjectsRequest.class)))
-                .thenReturn((ListObjectsResponse) ListObjectsResponse.builder()
+        when(s3Client.listObjectsV2(any(ListObjectsV2Request.class)))
+                .thenReturn((ListObjectsV2Response) 
ListObjectsV2Response.builder()
                         .sdkHttpResponse(httpStatus(200))
                         .build());
 

Reply via email to