Torsten Curdt wrote: > On 08.03.2008, at 15:25, James Carman wrote: > >> On 3/8/08, Torsten Curdt <[EMAIL PROTECTED]> wrote: >>> >>> On 08.03.2008, at 13:44, James Carman wrote: >>> >>>> All, >>>> >>>> The wicket folks are investigating using Commons Proxy and they >>>> don't want to have to decide which implementation (jdk, cglib, >>>> javassist) to use themselves. They would like us to split up >>>> Commons Proxy into 3 jars, commons-proxy, commons-proxy-cglib, >>>> commons-proxy-javassist. Any thoughts? >>> >>> >>> Is the discovery such a big problem with proxy? ...in general I >>> prefer the static discovery type. But someone has to do it. >> >> Well, Johan makes a good case. He's writing some code that he wants >> to use Proxy, but he doesn't want to have to figure out what >> implementation to use himself. He'd rather it be done automatically >> for him, by doing something like ProxyFactory.getInstance(). I >> thought about this at one time. I guess we could say, instantiate >> your class that's based on Proxy by passing in whatever >> implementation the client wants. So, he could have something like: >> >> public class MyFrameworkClass >> { >> public MyFrameworkClass(ProxyFactory proxyFactory) { >> this.proxyFactory = proxyFactory; >> } >> >> public Object createSomeKindOfProxy(SomeArgument arg) { >> return proxyFactory.create... >> } >> } > > Well, one could just try and see what classes are available in the > classpath. This could be easily be done in a wrapper class as you > suggested.
Shrug. And suddenly someone adds a new library that introduces new deps (e.g. Hibernate to CGLIB). Why not simply use JDK proxy as default and use a system property to override the default selection? If a project is dependend on a more powerful proxy implementation they have to select one themselves or document this fact for their users (e.g. they have to use CGLIB- or JavaAssist-based proxies). - Jörg --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]