On 17.08.2007 2:45 Uhr, Grzegorz Kossakowski wrote:
Not entirely true. ObjectModel can be modified during component's
execution at random times, really. It happens all the time in template
generator where Object Model is passed almost everywhere and it depends
on incoming SAX events if OM will be modified. So it's predictable
during setup phase but not during execution.
What I meant was that this modification of the OM happens in a
predictable way (though potentially overly complex to predict). You can
interrupt the processing at let's say the 100th SAX event and you know
exactly how it looks like. Doing exactly the same on a second request
there will be no difference.
Thread execution is not predictable at all.
I could agree with you that introduction of scope does not make sense in
1:1-relationship but since component can make internal requests and if
we want to provide some environment forwarding/sharing (see
COCOON-2050[1] and [RT] The big picture of Servlet Service Framework
e-mail[2] for examples where it could be needed) we will need to obtain
OM and we should get exactly the same OM component making a request have.
I can't see how the environment changer approach is different than the
simple wrapper in this regard. Somewhere you have to put the logic for
environment forwarding/sharing anyway.
Actually this whole problem reminds me of session attributes in
portlet environment.
From my purist point of view I would say: just don't even think about
it! ;)
That was just an idea. In the wrapper approach the difference is just
about making the parent OM access read-only or also writeable.
It won't take much time until the first user is asking for this
requirement though I bet ;)
Joerg