Grzegorz Kossakowski wrote:
[EMAIL PROTECTED] pisze:
Author: gkossakowski
Date: Sun Jul 1 16:13:44 2007
New Revision: 552371
URL: http://svn.apache.org/viewvc?view=rev&rev=552371
Log:
COCOON-2082: Getting rid of Avalon dependencies, it includes:
* conversion JS, JXPath and JEXL compilers to Spring beans
* conversion DefaultExpressionFactory to Spring bean, it collects
language compilers by using bean-map from Spring configurator
As you see, I'm in between of Avalon->Spring conversion process for
expression languages. I have not moved and adjusted tests (thus build
will fail) because I came across very obscure problem.
First of all I would like you to ask to do svn up and mvn clean install
-Dmaven.test.skip=true for trunk, run cocoon-webapp, access
http://localhost:8888/blocks/cocoon-template-sample/view/caching2
and check if you get following error:
TypeError: Cannot read property "parameters" from undefined (#1)
AFAICS the problem is that we want to support the syntax
cocoon.request.parameters.foo
to access request parameters. For some reason this isn't supported anymore after
your refactorings though I can't see from your commits where this could be
caused. (Well actually I don't have an idea where this feature is implemented at
all.)
I would be grateful for any reports to be sure if it's not a JDK issue
or so. Also, any help with sorting this out is really appreciated
because I'm really out of ideas how to track such a weird problem.
Details below.
After conversion (changes in r552371) ExpressionContext creation is
slightly broken. Take a look at
TemplateObjectModelHelper#getTemplateObjectModel method, the most
interesting fragment is line:
cocoon.put("settings",
(Settings)WebAppContextUtils.getCurrentWebApplicationContext().getBean(Settings.ROLE));
Cocoon object is normal Java's HashMap, so it seems that there should
happen nothing fancy. As you guess, something weird happens, though ;)
More specifically, this put breaks completely cocoon object. Inspection
in debugger of this object shows that before put operation mentioned
above everything looks ok and just after keys of HashMap are getting out
of sync of values (table). In a fact, the table of values contains 3
items (and is lacking request object, that explains an exception) and
keySet contains 4 items (including request). Moreover, if I change key
from "settings" to something else like "test", cocoon object is less
broken (table includes request) but if you iterate the cocoon object you
will never reach the request object.
From using the debugger I came to the conclustion that the cocoon object is
setup correctly (at least for me). I don't see this weird behaviour.
--
Reinhard Pötz Independent Consultant, Trainer & (IT)-Coach
{Software Engineering, Open Source, Web Applications, Apache Cocoon}
web(log): http://www.poetz.cc
--------------------------------------------------------------------