On Mar 18, 2006, at 5:18 AM, John Sisson wrote:
Dain Sundstrom wrote:
Forgot to mention, I added an experimental flag to 1.1 which will
turn off proxying in GBean references. This means that the
injected reference will be the actual service instance and not a
proxy to the service. My guess is this will break a few services
that use ProxyManager.getProxyTarget(Objcet), since the reference
won't be a proxy. All of these uses will have be rewritten to not
assume a proxy if we want to keep use this flag.
To turn it on, you simply set the system property
org.apache.geronimo.gbean.NoProxy=true. This is property is picked
up by a static block in the AbstractGBeanReference class, so the
property will apply for the life of the kernel class loader
(normally the life of the vm).
-dain
What was the reason for this experiment?
I'd like to completely remove proxying between gbeans in the future,
but I think it would lots break stuff to just flip it over right
now. Proxying between GBeans is problematic because it changes the
expected programming model of component writers. When you are giving
out proxies instead of the instance, the user can no longer use ==
for comparison, and the since proxies are so much slower, the
expected overhead of a call is much higher. Both of these require
require changes to the component for it to run in geronimo, and if we
want to have the largest component base, we're going to have to change.
Besides all of that, it is really a PITA to debug geronimo since you
have to step through all of those proxies, for really no reason.
-dain