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); }