camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (CAMEL-11656) Support default directory sorter for FileConsumer
Date Thu, 23 Nov 2017 14:57:01 GMT


ASF GitHub Bot commented on CAMEL-11656:

oscerd commented on issue #2108: CAMEL-11656 - add preSort option
   @onders86 is there a specific reason to backport to 2.20.x? This is a new option, so  usually
we avoid new options in minor releases

This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:

> Support default directory sorter for FileConsumer
> -------------------------------------------------
>                 Key: CAMEL-11656
>                 URL:
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.19.0
>            Reporter: Viktor Khoroshko
>            Priority: Minor
>             Fix For: 2.21.0
> Hello,
> The current way of sorting consumed files isn't very flexible due to how it's implemented:
> Files are sorted AFTER they're added to in progress repository what in combination with
*maxMessagesPerPoll* set to be > 0  and *eagerLimitMaxMessagesPerPoll* set to false forces
the *removeExcessiveInProgressFiles* call - which in case of persistent idempotent repository
used causes redundant calls to a database. 
> This is not only the issue.
> In my case I have a logic in a custom file filter that a file shouldn't be processed
if a file with a same prefix is already in progress while still those files should be processed
in a specified order. 
> The issue is that since sorting is performed after each file is added to in progress
repository and before added there a file should be accepted by a filter but it will be not
 - as a previous file with a same prefix has already been added to in progress repo.
> *Example*: files  - test.001, test.002, test.003
> If test.003 is first in a returned file list then it will be added to in progress repository
and next files will not be accepted due to the same prefix. 
> Default sorting would solve this issue. 
> It would be great if default sorter can be specified for *FileConsumer* in the pollDirectory
> {code:java}
>   log.trace("Polling directory: {}", directory.getPath());
>         File[] dirFiles = directory.listFiles();
>         if (dirFiles == null || dirFiles.length == 0) {
>             // no files in this directory to poll
>             if (log.isTraceEnabled()) {
>                 log.trace("No files found in directory: {}", directory.getPath());
>             }
>             return true;
>         } else {
>             // we found some files
>             if (log.isTraceEnabled()) {
>                 log.trace("Found {} in directory: {}", dirFiles.length, directory.getPath());
>             }
>         }
>         List<File> files = Arrays.asList(dirFiles);
>        // sort there?
> {code}

This message was sent by Atlassian JIRA

View raw message