Exactly what I need: to serialize/unserialize objects (proxified by Guice/cglib) in a short time....
It should be great if it was possible to do this using Guice ! Anthony > just want to point out that javassist does provide a "ProxyFactory", but this > uses the same approach as ASM/CGLIB ie. extending the given superclass > and implementing the interfaces - their proxy is serializable (so proxies can > in fact be serializable) ... *but* they warn that serialized proxies should only > be used for short-term storage or RMI, because of migration issues > FYI, their approach to serialization is to write out a special SerializedProxy > instance to the object stream, in place of the proxy instance - this instance > stores the superclass, interfaces, etc. in fields which it uses to recreate the > proxy in readResolve() when deserializing 2008/11/25 Stuart McCulloch <[EMAIL PROTECTED]> > 2008/11/25 Stuart McCulloch <[EMAIL PROTECTED]> > >> 2008/11/25 Gili <[EMAIL PROTECTED]> >> >>> >>> Johan Haleby brought up an interesting approach to proxing classes >>> without the limitations introduced by ASM/CGLIB such as: >>> >>> - requiring no-op constructors >>> - preventing the use of final or private methods >>> - losing annotations on the original class >>> >>> I would love to get your opinion on it because frankly if we can get >>> rid of these limitations I would be *that* much happier :) Take a >>> look: >>> http://groups.google.com/group/mockito/browse_thread/thread/2a85cace251eb92c >>> >> >> FWIW, I wouldn't call this a proxy per se - this is bytecode manipulation >> which requires access to the original bytes (it uses javassist to do this) >> > > just want to point out that javassist does provide a "ProxyFactory", but > this > uses the same approach as ASM/CGLIB ie. extending the given superclass > and implementing the interfaces - their proxy is serializable (so proxies > can > in fact be serializable) ... *but* they warn that serialized proxies should > only > be used for short-term storage or RMI, because of migration issues > > FYI, their approach to serialization is to write out a special > SerializedProxy > instance to the object stream, in place of the proxy instance - this > instance > stores the superclass, interfaces, etc. in fields which it uses to recreate > the > proxy in readResolve() when deserializing > > and only works on non-interface classes... but you can easily fall back >> to using standard proxies for interfaces - downside is you end up with >> two approaches to maintain >> >> however I would be wary of calling this a 'silver' bullet because there >> are >> several limitations wrt. bytecode manipulation (security notwithstanding) >> - for example, I don't know if javassist works with custom classloaders as >> used in EJB containers (and OSGi, etc.) where the original class bytes >> may not be available, or where the original class may already be in-use >> elsewhere in the JVM >> >> just warning we may be jumping from known issues into the unknown ;) >> >> Gili >>> >>> >> >> >> -- >> Cheers, Stuart >> > > > > -- > Cheers, Stuart > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "google-guice" group. To post to this group, send email to google-guice@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-guice?hl=en -~----------~----~----~----~------~----~------~--~---