Make Ant path matching in file / FTP component easier to use
------------------------------------------------------------

                 Key: CAMEL-4779
                 URL: https://issues.apache.org/jira/browse/CAMEL-4779
             Project: Camel
          Issue Type: Improvement
          Components: camel-core, camel-spring
    Affects Versions: 2.8.3
            Reporter: Daniel Gredler
            Priority: Minor


The existing codebase has an implicit optional dependency from camel-core to 
camel-spring; camel-core contains the class AntPathMatcherGenericFileFilter, 
which internally uses camel-spring's SpringAntPathMatcherFileFilter class via 
runtime classpath checks and reflection. The reason that 
SpringAntPathMatcherFileFilter is in camel-spring is that it uses Spring's 
AntPathMatcher class internally. Interestingly, there is already an 
AntPathMatcher class with an API very similar to Spring's class in the 
camel-core-xml module.

This patch moves camel-core-xml's AntPathMatcher into camel-core, removes the 
classpath and reflection magic in camel-core's AntPathMatcherGenericFileFilter 
class, and adds a new class to camel-core named GenericFileFilterConverter, 
which automagically converts strings to ant path file filters. The patch also 
adds some unit tests.

The end result is that Camel users can now use ant path matching with the file 
and FTP components without having to add a dependency on camel-spring, and 
Camel users can specify the ant path expression to use directly in the 
component querystring, rather than having to go through the work of registering 
an additional file filter instance in the registry (although this is only true 
when the user only needs to specify a single include path, which is a very 
common use case). For example:

from("file://target/blah?recursive=true&filter=**/*.txt")
  .to(...);

Instead of:

from("file://target/blah?recursive=true&filter=#myTxtFilter")
  .to(...);


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to