Juozas, I'm still waiting for you to let me know when Hibernate should
start using a newer version of CGLIB .... I havn't upgraded, only
because I know you guys are still changing APIs, etc.

So just let me know when you have something reasonably final.

Thanks :)

----- Original Message -----
From: "Juozas Baliuka" <[EMAIL PROTECTED]>
To: "Schnitzer, Jeff" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Saturday, February 01, 2003 10:04 AM
Subject: Re: [Hibernate] Trouble with proxy implementations


>
>
>
>
> Agree,
> user doe's not need to  know about cglib API used by hibernate.
> I will add prefix  all Factory methods this way: "cglib$GetInterceptor()",
> "cglib$GetDelegate()"
> They are used for optimizations and we do not need "nice" names. Very
> possible we will decide to generate
> separate class for factory, It is possible to have all optimizations
without
> cglib interface implemented by proxy,
> MetaClass doe's almost the same.
>
> <snip>
>
> Also - I'm still rather confused why sometimes getInterceptor() is
> exposed and sometimes it isn't.
>
> It must be always implemented by generated classes, possible some of
objects
> are not instances of proxy class.
>
>   I'm introspecting the proxy with
> java.beans.Introspector and printing out the PropertyDescriptors.  It's
> also odd that I don't see a property called "delegate".
>
> Version used by hibernate doe's not have this method, it is introduced
later
> to eleminate "java.lang.reflect.Method.invoke".
> Instance returned form "getDelegate()" is the same as parameter "delegate"
> in "newInstance(interceptor,delegate)"
>  used to redirect all intercepted methods.
>
>  It is possible to live without "delegate" paramater in "newInstance" and
> "getDelegate" in "Factory", user defined interceptor can store this
> reference itself.
> Both methods  can be implemented in MethodProxy :
>
> "invokeSuper" - indirect  delegation to "super"
> (
>
this.method()->MethodProxy.invokeSuper(this)->this.CGLIB$ACCESS_x_method()->
> super.method()  )
>
> "invoke"  - direct   delegation to "delegate"
> (  this.method()->MethodProxy.invoke(param)->param.method() )
>
> I see we will have nice weekend :)
>
>
> Jeff Schnitzer
> [EMAIL PROTECTED]
>
> > -----Original Message-----
> > From: Juozas Baliuka [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, January 30, 2003 10:34 PM
> > To: Schnitzer, Jeff; [EMAIL PROTECTED]
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: [Hibernate] Trouble with proxy implementations
> >
> >
> > This public method implemented for *all* proxy instances.
> > Proxy implements net.sf.cglib.Factory interface it is used for
> > optimization
> > to eleminate reflection.
> > We can rename getters and setters, but it is public API and you can
> filter
> > methods this way:
> > public boolean accept(){
> >   return net.sf.cglib.Factory.class != method.getDeclaringClass() ;
> > }
> >
> >
> > public interface Factory {
> >     /**
> >      * Creates new instance of the same type as factory
> >      * @param ih interceptor
> >      * @return instance
> >      */
> >     public Object newInstance(MethodInterceptor ih);
> >
> >     public MethodInterceptor getInterceptor();
> >
> >     public Object newInstance(MethodInterceptor ih, Object delegate);
> >
> >     public Object newInstance( Class types[], Object args[],
> > MethodInterceptor ih);//calls multiarg constructor
> >
> >     public Object getDelegate();//new getter
> >
> >     public void setDelegate(Object delegate);//new setter
> >
> >     public void setInterceptor(MethodInterceptor ih);//new setter
> > }
> >
> >
> > It gets weird.  The problem is that *sometimes* the proxy exposes a
> > getInterceptor() method of type net.sf.cglib.proxy.MethodInterceptor.
> >
> > When I restart the JVM, it usually works for a while - this method is
> > not exposed.  Eventually, however, something "breaks" and this method
> is
> > consistently exposed.
> >
> > ???
> >
> > Jeff
> >
> > > -----Original Message-----
> > > From: Schnitzer, Jeff
> > > Sent: Thursday, January 30, 2003 5:23 PM
> > > To: [EMAIL PROTECTED]
> > > Cc: [EMAIL PROTECTED]
> > > Subject: RE: [Hibernate] Trouble with proxy implementations
> > >
> > > It's possible that there is a getter on the proxy that returns an
> > object
> > > that has the getSession() method.  Difficult to tell from my current
> > > test app.  I'll write some introspection code to find out what's
> going
> > > on.
> > >
> > > Jeff
> > >
> > > > -----Original Message-----
> > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > > > Sent: Thursday, January 30, 2003 4:45 PM
> > > > To: Schnitzer, Jeff
> > > > Cc: [EMAIL PROTECTED]
> > > > Subject: RE: [Hibernate] Trouble with proxy implementations
> > > >
> > > >
> > > > Wierd .... those methods are defined on the _handler_ class,
> > > > not the proxy interface itself.....
> > > >
> > > > And I didn't thing the proxies implement the interface of the
> > > > MethodInterceptor....
> > > >
> > > >
> > > >
> > > >
> > > >                     "Schnitzer,
> > > >                     Jeff"                To:
> > > > <[EMAIL PROTECTED]>
> > > >                     <[EMAIL PROTECTED]       cc:
> > > >                     xis.com>             Subject:     RE:
> > [Hibernate]
> > > > Trouble with proxy implementations
> > > >
> > > >                     31/01/03 11:04
> > > >                     AM
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > It's with a very recent CVS copy of hibernate2.  The getters must
> be
> > > > generated by CGLIB.  It's hard to follow the exact call graph (I
> get
> > > an
> > > > exception that prevents the full XML from being displayed) but one
> > > > example:
> > > >
> > > > It looks like the proxy has a method getSession() that returns a
> > > > net.sf.hibernate.impl.SessionImpl.
> > > >
> > > > Jeff
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> > > > > Sent: Thursday, January 30, 2003 3:42 PM
> > > > > To: Schnitzer, Jeff
> > > > > Cc: [EMAIL PROTECTED]
> > > > > Subject: Re: [Hibernate] Trouble with proxy implementations
> > > > >
> > > > >
> > > > > Hmmmm. HibernateProxy itself only declares writeReplace(). Do
> you
> > > mean
> > > > > methods
> > > > > that are coming from CGLIB, or are you referring to an older
> > version
> > > > of
> > > > > Hibernate?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >                     "Schnitzer, Jeff"
> > > > >                     <[EMAIL PROTECTED]>                  To:
> > > > > <[EMAIL PROTECTED]>
> > > > >                     Sent by:                                cc:
> > > > >                     [EMAIL PROTECTED]
> > Subject:
> > > > > [Hibernate] Trouble with proxy implementations
> > > > >                     eforge.net
> > > > >
> > > > >
> > > > >                     31/01/03 10:30 AM
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > I'm having a small problem with the generated proxy
> > implementations
> > > in
> > > > > one of my webapps.  My data objects are of course java beans,
> and
> > > > these
> > > > > java beans are passed up into the presentation tier.
> > > > >
> > > > > Among other things, my presentation tier uses reflection to
> > examine
> > > > the
> > > > > data (model) components and generate XML from them.  This works
> > > great
> > > > > with real beans but causes a lot of trouble with proxies.
> > > > >
> > > > > Unfotunately the generated proxies have a lot of methods that
> fit
> > > the
> > > > > javabeans property pattern getXXX() and return sophisticated
> > > objects.
> > > > > This really makes a mess out of the process.
> > > > >
> > > > > Is it possible to change these methods so that they do not
> > coincide
> > > > with
> > > > > the pattern for javabeans properties?
> > > > >
> > > > > Jeff Schnitzer
> > > > > [EMAIL PROTECTED]
> > > > >
> > > > >
> > > > > -------------------------------------------------------
> > > > > This SF.NET email is sponsored by:
> > > > > SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2
> > See!
> > > > > http://www.vasoftware.com
> > > > > _______________________________________________
> > > > > hibernate-devel mailing list
> > > > > [EMAIL PROTECTED]
> > > > > https://lists.sourceforge.net/lists/listinfo/hibernate-devel
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > >
> **********************************************************************
> > > > > Any personal or sensitive information contained in this email
> and
> > > > > attachments must be handled in accordance with the Victorian
> > > > Information
> > > > > Privacy Act 2000, the Health Records Act 2001 or the Privacy Act
> > > 1988
> > > > > (Commonwealth), as applicable.
> > > > >
> > > > > This email, including all attachments, is confidential.  If you
> > are
> > > > not
> > > > > the
> > > > > intended recipient, you must not disclose, distribute, copy or
> use
> > > the
> > > > > information contained in this email or attachments.  Any
> > > > confidentiality
> > > > > or
> > > > > privilege is not waived or lost because this email has been sent
> > to
> > > > you in
> > > > > error.  If you have received it in error, please let us know by
> > > reply
> > > > > email, delete it from your system and destroy any copies.
> > > > >
> > >
> **********************************************************************
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > **********************************************************************
> > > > Any personal or sensitive information contained in this email and
> > > > attachments must be handled in accordance with the Victorian
> > > Information
> > > > Privacy Act 2000, the Health Records Act 2001 or the Privacy Act
> > 1988
> > > > (Commonwealth), as applicable.
> > > >
> > > > This email, including all attachments, is confidential.  If you
> are
> > > not
> > > > the
> > > > intended recipient, you must not disclose, distribute, copy or use
> > the
> > > > information contained in this email or attachments.  Any
> > > confidentiality
> > > > or
> > > > privilege is not waived or lost because this email has been sent
> to
> > > you in
> > > > error.  If you have received it in error, please let us know by
> > reply
> > > > email, delete it from your system and destroy any copies.
> > > >
> > **********************************************************************
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.NET email is sponsored by:
> > > SourceForge Enterprise Edition + IBM + LinuxWorld =omething 2 See!
> > > http://www.vasoftware.com
> > > _______________________________________________
> > > hibernate-devel mailing list
> > > [EMAIL PROTECTED]
> > > https://lists.sourceforge.net/lists/listinfo/hibernate-devel
> >
> >
> >
> > -------------------------------------------------------
> > This SF.NET email is sponsored by:
> > SourceForge Enterprise Edition + IBM + LinuxWorld =omething 2 See!
> > http://www.vasoftware.com
> > _______________________________________________
> > hibernate-devel mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/hibernate-devel
> >
>
>
>
>
> -------------------------------------------------------
> This SF.NET email is sponsored by:
> SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
> http://www.vasoftware.com
> _______________________________________________
> hibernate-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/hibernate-devel



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
hibernate-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/hibernate-devel


Reply via email to