Thanks a lot Willem!

/Bengt

2010/10/14 Willem Jiang <willem.ji...@gmail.com>

> You can create the expression with below code
>
>  Language language = camelContext.resolveLanguage(simple);
>  Expression expression =
> language.createExpression("./archive/${date:now:yyyyMMdd}"));
>
>  in the process(Exchange exchange) method, you can use the expression like
> this
>
>  String value = expression.evaluate(exchange, String.class);
>
>
>
> On 10/14/10 8:41 PM, Bengt Rodehav wrote:
>
>> I have a configurable camel route for monitoring certain directories. I
>> use
>> the quartz component to perform my monitoring actions at certain scheduled
>> times (e g to check that a certain file exists in a certain directory at a
>> certain time).
>>
>> I configure my route by giving it the directory to monitor (and a few
>> other
>> things). However, what directory to monitor depends on what day it is. E g
>> files that are processed are moved to an archive directory with a
>> subdirectory name with today's date ( e g ./archive/20101014).
>>
>> I perform my actual monitoring in a custom processor. I would like to
>> configure this using the simple language, e g like this:
>>
>> # Directory to monitor
>>
>> directory=./archive/${date:now:yyyyMMdd}
>>
>>
>> I've been using the simple language before as part of the route. However,
>> I
>> don't know how I can evaluate a simple language expression (like the
>> directory property above) from within my custom processor. Can anyone help
>> with this? My code is similar to the following:
>>
>> from("quartz://" + group + "/" + timerName + "?cron=" + cron).process(new
>>
>>> ConditionProcessor(condition, mDirectory));
>>>
>>
>> ...
>>
>> public class ConditionProcessor implements Processor {
>>
>>   private ICondition mCondition;
>>
>>   private String mDirectory;
>>
>>
>>    public ConditionProcessor(ICondition theCondition, String theDirectory)
>>> {
>>>
>>
>>     mCondition = theCondition;
>>
>>     mDirectory = theDirectory;
>>
>>   }
>>
>>
>>    public void process(Exchange theExchange) throws Exception {
>>>
>>
>>     String evaluatedDirectory = ???; // Evaluate "theDirectory" with
>> simple
>>
>>> language
>>>
>>
>>     if (!mCondition.check(evaluatedDirectory)) {
>>
>>       // Send notification
>>
>>     }
>>
>>   }
>>
>> }
>>
>>
>> I'm using Camel 2.4 now but will update to Camel 2.5 when it's available.
>>
>> /Bengt
>>
>>
>
> --
> Willem
> ----------------------------------
> Open Source Integration: http://www.fusesource.com
> Blog:    http://willemjiang.blogspot.com (English)
>         http://jnn.javaeye.com (Chinese)
> Twitter: http://twitter.com/willemjiang
>

Reply via email to