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

davsclaus 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 a976048  [CAMEL-16595] Swift getall filter path (#5529)
a976048 is described below

commit a976048690168c67dc9c008d93efc7949e03ff12
Author: gasdia73 <gasdi...@gmail.com>
AuthorDate: Sat May 8 07:55:02 2021 +0200

    [CAMEL-16595] Swift getall filter path (#5529)
    
    * Added option to filter getAll by path
    
    * Fix in ObjectProducer because of failing test
    
    * Check for non empty path
    
    * fix check for non empty path
    
    Co-authored-by: Roberto Gasdia <roberto.gas...@innoteam.it>
---
 .../component/openstack/swift/producer/ObjectProducer.java | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git 
a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
 
b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
index 28c4d8d..fcf8281 100644
--- 
a/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
+++ 
b/components/camel-openstack/src/main/java/org/apache/camel/component/openstack/swift/producer/ObjectProducer.java
@@ -31,6 +31,7 @@ import org.openstack4j.api.OSClient;
 import org.openstack4j.model.common.ActionResponse;
 import org.openstack4j.model.common.Payload;
 import org.openstack4j.model.storage.object.SwiftObject;
+import org.openstack4j.model.storage.object.options.ObjectListOptions;
 import org.openstack4j.model.storage.object.options.ObjectLocation;
 
 public class ObjectProducer extends AbstractOpenstackProducer {
@@ -93,7 +94,18 @@ public class ObjectProducer extends 
AbstractOpenstackProducer {
         final String name = msg.getHeader(SwiftConstants.CONTAINER_NAME, 
msg.getHeader(OpenstackConstants.NAME, String.class),
                 String.class);
         StringHelper.notEmpty(name, "Container name");
-        final List<? extends SwiftObject> out = 
os.objectStorage().objects().list(name);
+        final String path = msg.getHeader(SwiftConstants.PATH, String.class);
+
+        List<? extends SwiftObject> out;
+        if (path != null) {
+            StringHelper.notEmpty(path, "Path");
+            ObjectListOptions objectListOptions = ObjectListOptions.create();
+            objectListOptions.startsWith(path).delimiter('/');
+            out = os.objectStorage().objects().list(name, objectListOptions);
+        } else {
+            out = os.objectStorage().objects().list(name);
+        }
+
         exchange.getIn().setBody(out);
     }
 

Reply via email to