Dain Sundstrom wrote:

On Aug 11, 2005, at 2:22 PM, David Jencks wrote:


On Aug 11, 2005, at 2:32 PM, Aaron Mulder wrote:


    Right now, if you want a proxy to a ServerInfo (which is a class
which implements no interfaces), the kernel's ProxyManager will give one to you. To do that, it creates a subclass of ServerInfo and overrides the
methods it can.

    It seems like it might be preferable if we only created proxies
based on interfaces.  This would be a long-term goal, as we'd have to
provide interrfaces for all the classes that need them (such as
ServerInfo) and change our references (which use proxies) to be based on
interface instead of class.  It seems that we're also creating some
proxies where the class to proxy is java.lang.Object (don't ask me!), and
we have to hunt that stuff down.


Those are mostly there to force a particular startup/dependency order.


    Nevertheless, I'm wondering what other people think *in  principle*
of removing support for proxies based on class, some day when it becomes
possible.


What is the advantage?


I personally would like to see support for creating a class based proxy be removed. It just encourages bad (lazy) programming.

We aren't going to be able to convince the cglib guys to remove support for proxying classes.


We don't need or want them to remove it. We can simply turn off this feature in our proxy factory.

-dain

The Spring integration already gets around this by generating a new interface that is the sum of all methods on a POJO's class, then instantiating a proxy of this and wrapping the POJO with it. The proxy is then plugged into the kernel (my memory may be a bit rusty on this - but the point stands)

So,

1) removing the ability to proxy anything that is not interfaced-based from the kernel, will not prevent people from doing so, just make it more awkward.

2) there may be a valid reason for wanting to do so.

Of course, a decent Spring/POJO/kernel integration would render this unnecessary :-)

Jules

--
"Open Source is a self-assembling organism. You dangle a piece of
string into a super-saturated solution and a whole operating-system
crystallises out around it."

/**********************************
* Jules Gosnell
* Partner
* Core Developers Network (Europe)
*
*    www.coredevelopers.net
*
* Open Source Training & Support.
**********************************/

Reply via email to