Leo Simons wrote:
Stephen McConnell wrote:
Wrapper classes (major)
-----------------------
The wrapper classes that that exist in framework are broken. The
WrapperComponentManager takes a ServiceManager as a constructor argument
and when lookup invocations are made against the wrapper, the wrapper
returns Component instance "if and only if the object returned from a
lookup on the service manager is an instance of Component". The wrapper
makes no attempt to proxy an Object as a Component.
I like this behaviour. It is quite simple and deterministic.
Read on ...
I use these classes in code that is "pseudo-avalon", where there is no
"real" container. I recognize the need for proxies in many
applications, but the setup provided by these wrappers needs to be
provided as well.
I prefer to have them in a seperate jar (in addition to the main jar)
so that they can be used without upgrading avalon-framework.jar. In
fact, I have such a (custom-built) jar in daily use. Dunno how
widespread the need for something like that is though.
Have been doing a little looking around and it seems what's using
WrapperComponentManager (which is the offending class) what what
assumptions are being made.
1. Fortress appears to be assuming that the will correctly
handling the Component proxy case and as far as I can see it
will fail when used in a real migration scenario (refer
ComponentFactory usage).
2. The Phoenix case will result in container specific code because
authors are assuming that the container will automatically
proxy everything to Component. The behaviour in Phoniex is
equivalent to what it would be if we were handling the case
properly in the WrapperComponentManager - except in this
case we have a solution that is partly in Phoneix and partly
in the wrapper class.
Still seems to me that this needs some cleaning up or moving before
releasing 4.1.4.
Cheers, Steve.
--
Stephen J. McConnell
mailto:[EMAIL PROTECTED]
http://www.osm.net
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]