+1...the debugging thing has been a problem. If for no other reason this is the
right thing to do. However, there will be users who care less about isolation
and more about memory and speed. This gives them the choice to run exposed to
get what they want.
Matt
Dain Sundstrom wrote:
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