> I was able to get this working
>
> from("direct:start").filter("when", "MON-FRI 9:30-18:30").to(...)
Does that matches the current system time?
> but I'm struggling with the matches method. This works:
> .filter(
> header("anyHeader")
> .matches( new LanguageExpression("when", timeExpression) ))
>
> but I'd like to do something like:
> .filter(
> header("anyHeader")
> .matches( language("when", "MON-FRI") ))
A static import?
public class LanguageExpression {
public static LanguageExpression language(String s, String pattern) {
return new LanguageExpression(s, pattern);
}
}
import static LanguageExpression.language;
public class MyBuilder {
...
from(...).filter(language("when", "MON-FRI")).to(...);
}
> or even better
> .filter(header("anyHeader").matches("when", "MON-FRI"))
Not sure which method to modify ...
> or maybe (quite dangerous, but more flexible):
> .filter(header("anyHeader").matches("{when} MON-FRI"))
I found org.apache.camel.builder.BuilderSupport.header(String) :
ValueBuilder.
And in org.apache.camel.builder.ValueBuilder.matches(Expression) :
Predicate.
Maybe a Converter String>Expression?
Jan