Sure, by all means.

Ralph

On Aug 29, 2009, at 11:28 AM, rzo wrote:

Ralph,

thanks for the fast reply.
In the mean time i decided to try it with groovy.
I have written a groovy expression interpolation which I will be using in my project.
If you are interested in this i could put the files on jira.

- Ron


Ralph Goers wrote:

On Aug 29, 2009, at 10:35 AM, Ralph Goers wrote:


On Aug 29, 2009, at 6:33 AM, rzo wrote:

Hello,

thanks for mentioning jexl scripting.
I tried it out and have found the following issue:

evaluating the following:

test=${expr:if (System.getProperty("user.home").startsWith("C")) {"x";} else {"z";}}

does not seem to work.
Debuging shows that the expression forwarded to jexl is:

if (System.getProperty("user.home").startsWith("C")) {"x";

is this a bug ? or is there a way to escape the brackets within $ {...} ?


The "bug" is actually the way org.apache.commons.lang.text.StrSubstitutor works. It can configured be with prefix and suffix characters - the defaults are '{' and '}' and after finding the prefix it just searches for the first occurance of the suffix character - unless it finds a recursive variable. So the string passed to ConfigurationInterpolator is what you show above.

However, it might be possible to override the suffix matcher to look for an escape character.


It occurs to me though that just using a different suffix matcher will not remove the escape character.

One other thought. StrSubstitutor allows the prefix and suffix characters to be replaced, so you should be able to do

conf.getSubstitutor().setVariablePrefix('`');
conf.getSubstitutor().setVariablesuffix('`');

and then use test="$`expr:if (System.getProperty ("user.home").startsWith("C")) {"x";} else {"z";}`

It also supports using strings so you could do:

conf.getSubstitutor.setVariableSuffix("$}";

and then test="${expr:if (System.getProperty("user.home").startsWith ("C")) {"x";} else {"z";}$}

Of course, then you would have to use those prefix and suffix characters throughout that configuration.

Ralph


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to