This looks like a bug.  Could you please raise a JIRA for that ?
As a workaround, you can try:
  file://inbox?move=backup/$\{date:now:yyyMMdd\}/$\{file:name\}${#}
It will force a substitution, and thus will remove the escape chars.

On Fri, May 28, 2010 at 10:11, Bengt Rodehav <[email protected]> wrote:

> Hello Guillaume,
>
> Thanks for your reply. However, if I escape the string the way you
> describe,
> then the backslash will remain in the string. The result will be:
>
> file://inbox?move=backup/$\{date:now:yyyMMdd\}/$\{file:name\}
>
> What I want is:
>
> file://inbox?move=backup/${date:now:yyyMMdd}/${file:name}
>
> Otherwise the string will not be usable for Camel. Is there a way to
> accomplish this? In general terms one usually has a way to "quote"
> substrings in order to avoid substitution but the quotes themselves should
> be removed from the string. In this case backslash is the quoting character
> but it's not removed from the end result.
>
> I think also that it would be good if one could escape substrings and not
> only indiviudal characters (by enclosing substrings with quotes) but that
> has lower priority for me if I can get the above to work.
>
> I've been looking at the source code in file install (3.0) and understand
> why this is happening. The method of interest is substVars in class
> org.apache.felix.fileinstall.internal.Util. The logic tries to find
> matching DELIM_START (${) and DELIM_STOP (}). When I escape either of these
> (by specifying a backslash before "${" and/or "}"), the logic will never
> find matching DELIM_START and DELIM_STOP which causes the method to
> immediately return without performing property substitution. The logic at
> the end of the method (that removes the backslashes) is never reached.
>
> /Bengt
>
> 2010/5/27 Guillaume Nodet <[email protected]>
>
> > Sure, we had the same problem in Karaf and i've fixed that as part of
> > https://issues.apache.org/jira/browse/FELIX-2307
> > Basically, just add '\' before the '{' and '}' and it should work:
> >
> > file://inbox?move=backup/$\{date:now:yyyMMdd\}/$\{file:name\}
> >
> >
> > On Thu, May 27, 2010 at 23:22, Bengt Rodehav <[email protected]> wrote:
> >
> > > Hello everyone,
> > >
> > > My question didn't get much attention on my first attempt so I'll make
> > > another one...
> > >
> > > Maybe a clarifaction of what I'm trying to do helps. I'm using Karaf as
> a
> > > deployment container for Camel routes. I start services, using file
> > > install,
> > > that house camel routes. The routes are configurable using the
> > > configuration
> > > admin via file install. E g I have a general file transfer route in
> Camel
> > > that looks like this:
> > >
> > > from(mFromUri).to(mToUri);
> > >
> > > ...where "mFromUri" and "mToUri" are properties configured via
> > > configuration
> > > admin. Camel itself supports a "property concept" and an example of a
> > > "mFromUri" I might want to use is:
> > >
> > > file://inbox?move=backup/${date:now:yyyMMdd}/${file:name}
> > >
> > > This will cause Camel to poll the inbox folder and archive completed
> > files
> > > in a backup folder that is named with todays date.
> > >
> > > However, since file install always does property substitution itself
> (in
> > > this case I want Camel to do it - not file install), the URI sent to
> > Camel
> > > will be:
> > >
> > > file://inbox?move=backup//
> > >
> > > This is because the strings ${date:now:yyyMMdd} and ${file:name} will
> be
> > > transformed to empty strings since file install will regard them as
> > > properties that are not defined.
> > >
> > > How can I work around this? Any clues?
> > >
> > > /Bengt
> > >
> > >
> > > 2010/5/26 Bengt Rodehav <[email protected]>
> > >
> > > > I'm using the File Install component and cannot find a way to set
> > values
> > > > like "${abc}" (without the quotes). File install insists on
> performing
> > > > property substitution which I do not want in this case. I noticed
> that
> > > this
> > > > seems to have been addressed in version 3.0.0 but I cannot get it to
> > > work.
> > > > My question is: How can I set a value to "${abc}" (without the
> quotes)
> > > > without File install trying to perform property substitution?
> > > >
> > > > /Bengt
> > > >
> > >
> >
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Blog: http://gnodet.blogspot.com/
> > ------------------------
> > Open Source SOA
> > http://fusesource.com
> >
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to