JIRA is raised: https://issues.apache.org/jira/browse/FELIX-2366
I tried your workaround and it works. Thanks. BTW, when looking at the source code I find something a bit fishy. The loop that tries to find the DELIM_START looks like this: // Find the matching starting "${" variable delimiter // by looping until we find a start delimiter that is // greater than the stop delimiter we have found. int startDelim = val.indexOf(DELIM_START); while (stopDelim >= 0) { int idx = val.indexOf(DELIM_START, startDelim + DELIM_START.length()); if ((idx < 0) || (idx > stopDelim)) { break; } else if (idx < stopDelim) { startDelim = idx; } } Should the loop condition really be "while(stopDelim >=0)". I haven't seen any erroneous behaviour but I cannot see that the stopDelim variable is ever changed within the loop which means that the loop will run once or not at all. Shouldn't the loop condition use "startDelim"? /Bengt 2010/5/28 Guillaume Nodet <gno...@gmail.com> > 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 <be...@rodehav.com> 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 <gno...@gmail.com> > > > > > 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 <be...@rodehav.com> > 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 <be...@rodehav.com> > > > > > > > > > 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 >