CAMEL-8732: File consumer - Allow to sort by random
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f0343c13 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f0343c13 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f0343c13 Branch: refs/heads/master Commit: f0343c131ca8400ba04321812f07ed71d8c7e521 Parents: f24eee8 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun May 3 10:19:33 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun May 3 10:52:37 2015 +0200 ---------------------------------------------------------------------- .../camel/component/file/GenericFileConsumer.java | 3 +++ .../camel/component/file/GenericFileEndpoint.java | 13 +++++++++++++ 2 files changed, 16 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f0343c13/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java index 00afddc..c188ebf 100644 --- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java +++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileConsumer.java @@ -153,6 +153,9 @@ public abstract class GenericFileConsumer<T> extends ScheduledBatchPollingConsum if (endpoint.getSortBy() != null) { Collections.sort(exchanges, endpoint.getSortBy()); } + if (endpoint.isShuffle()) { + Collections.shuffle(exchanges); + } // use a queue for the exchanges Deque<Exchange> q = exchanges; http://git-wip-us.apache.org/repos/asf/camel/blob/f0343c13/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java index 48512e9..80c597b 100644 --- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java +++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java @@ -154,6 +154,8 @@ public abstract class GenericFileEndpoint<T> extends ScheduledPollEndpoint imple protected Comparator<GenericFile<T>> sorter; @UriParam(label = "consumer") protected Comparator<Exchange> sortBy; + @UriParam(label = "consumer") + protected boolean shuffle; @UriParam(label = "consumer", enums = "none,markerFile,fileLock,rename,changed,idempotent") protected String readLock = "none"; @UriParam(label = "consumer", defaultValue = "1000") @@ -722,6 +724,17 @@ public abstract class GenericFileEndpoint<T> extends ScheduledPollEndpoint imple setSortBy(GenericFileDefaultSorter.sortByFileLanguage(getCamelContext(), expression, reverse)); } + public boolean isShuffle() { + return shuffle; + } + + /** + * To shuffle the list of files (sort in random order) + */ + public void setShuffle(boolean shuffle) { + this.shuffle = shuffle; + } + public String getTempPrefix() { return tempPrefix; }