Pull request now submitted, sorry for all the emails.

My implementation now requires the implementor to return a value which is to be 
used as the replacement. It can be any value or as I've done in the 
SimpleMenuItem implementation return a copy of itself with the expressions 
resolved.

It would be beneficial for the attribute classes to be immutable as they would 
not be thread safe.

I have one question, because I could not figure it out. How do attributes added 
to a list attribute get evaluated? I could not find anything that processes the 
contents of list attributes themselves. Interestingly it does work however.

There's probably some extra tests that could be added, namely what happens when 
the model changes, the tests do show that indeed attribute expansion works, but 
do not show what happens when the variable values themselves change on 
subsequent requests. This could be something to look at when we reevaluate the 
tests.

I'm happy to work on the tests if you like and might start work on first 
merging them to their higher occurrences.

Note, I've only updated TILES_3_0_X, if you're happy I'll merge this back to 
trunk.

> On 15 Jun 2015, at 12:44, Brett Ryan <brett.r...@johnsands.com.au> wrote:
> 
> I've just been doing further testing and only just realised that the 
> instances created are actually singletons, I thought they were created per 
> request. So once the values are updated they won't change again.
> 
> I need to rethink what I've done and get back to you.
> 
> 
>> On 12 Jun 2015, at 18:47, mck <m...@apache.org> wrote:
>> 
>> 
>> 
>>> Alrighty, I've implemented the support just the way I want it, and
>>> wondered if I could contribute it back.
>>> 
>>> What I've done is created a new interface (ExpressionAware) which
>>> provides the following method:
>>> 
>>>  void evaluateExpressions(AttributeEvaluator, Request)
>>> 
>>> This is then called from AbstractAttributeEvaluator.evaluate(Attribute,
>>> Request) which then allows the implementor to update expression values or
>>> do set new properties etc. I've implemented this in the MenuItem class to
>>> replace its values when called.
>>> 
>> 
>> 
>> Fantastic!
>> I'm not seeing the patch. But could you anyhow create a jira ticket and
>> upload the patch to it.
>> I can review it there and we can continue the ongoing development
>> discussion on the ticket.
>> 
>> Feel free to create a separate ticket to for optimising the evaluation
>> tests back to tiles-core, sounds like a good idea.
>> 
>> ~mck
>> 
> 

Reply via email to