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