Thank you for clarifying that the string for toD is already a simple string. 
However, it still fails with the same exception at runtime:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 
'header.SMID' in value "file://.?fileName=status-${header.SMID}.txt"

-Steve

> -----Original Message-----
> From: Claus Ibsen <claus.ib...@gmail.com>
> Sent: Wednesday, June 26, 2019 11:41 PM
> To: users@camel.apache.org
> Subject: Re: How to use simple expression in properties file?
> 
> On Wed, Jun 26, 2019 at 11:49 PM Steve Huston <shus...@riverace.com>
> wrote:
> >
> > Is it possible to put a simple() expression in a properties string and have
> Camel evaluate it at run time?
> >
> > Here's what I'm trying to do:
> > - Set a message header ID with a value I want to use later
> > - Use .toD("{{event.sink}}")
> >
> > application.properties can then have something like:
> >
> > event.sink = simple("file://.?fileName=status-${header.ID}.txt")
> >
> 
> toD using a string is simple language already, so just use
> 
> event.sink = file://.?fileName=status-${header.ID}.txt
> 
> > The goal being to have a message body written to a file whose name
> includes the ID header value.
> >
> > When I try to run this I get an exception:
> >
> > Caused by: java.lang.IllegalArgumentException: Could not resolve
> placeholder 'header.ID' in value "simple("file://.?fileName=status-
> ${header.ID}.txt")"
> >
> 
> And you can use $simple{xxx} syntax for the fileName value
> 
> 
> 
> > Thanks,
> > -Steve
> 
> 
> 
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to