|
From: Colin S. <col...@ex...> - 2003-11-25 22:23:33
|
Chris Nokleberg wrote: >Colin Sampaleanu wrote: > > >>The issue is that Hibernate 2.1 is still in beta. So while it's >>hopefully ok for them to go to cglib 2 in their beta, the same thing >>does not necessarilly apply to us in our 1.0 RC and final releases. That >>is, I don't personally know what state cglib 2 is right now. We have to >>look at it ourselves. Even if we do go to cglib2, I think that may kill >>our ability to work with Hibernate 2.0, if cglib2 is not totally upwards >>compatible with cglib1. This is important to figure out... >> >> > >I'm happy to answer any questions, but here is the current state of things. > >CGLIB 2.0 is currently released as beta1. Beta2 will be released "any day >now". I don't anticipate many changes between beta2 and final. > >Hibernate 2.1 beta 6 (the latest release) still uses CGLIB 1.0. Hibernate >2.1 CVS uses CGLIB from CVS (equivalent to upcoming beta2 code). > >I imagine that Hibernate 2.1 final will use whatever release of CGLIB is >available at the time. It may be possible for us to release 2.0 final in >tandem with Hibernate 2.1, but I'm not positive. > >The original plan was for CGLIB 1.0 and 2.0 to be able to coexist >peacefully. This was enabled by moving all of the net.sf.cglib.* classes >into a new package (net.sf.cglib.proxy). However, we recently switched >CGLIB 2.0 to use ASM 1.4, which is *not* binary compatible with ASM 1.3 >(which CGLIB 1.0 uses). This means that you can no longer use CGLIB 1.0 and >2.0 in the same environment. > >Practically, this means that you must upgrade to CGLIB 2.0 when you switch >to supporting Hibernate 2.1. I really don't see a way around this. However, >I've looked at your use of CGLIB and the changes are trivial, just renaming >a few import statements. I can supply you with a patch when the time comes. >I would not worry about stability--your use of CGLIB is very simple, and in >any case will be heavily tested by inclusion with Hibernate 2.1. > > > >>I'm actually unclear on why cglib embeds ASM themselves. It's a little >>bit annoying, as I use AMS outside of cglib, and that fact that it's in >>the cglib jar means I am tied to that version unless I want to do some >>surgery. >> >> > >Our build.xml creates two jar files, one that includes the ASM classes (the >"full" version) and one that doesn't. Both versions are also available for >download. Feel free to use the separate one. FYI at times CGLIB has >depended on a CVS version of ASM but currently it is in sync with ASM 1.4. > >Chris > > > Thanks Chris. That clarifies things. So at this point it looks like as of the next release of Hibernate 2.1 (beta or final, whatever it is), we have no choice but to target either Hibernate 2.0 (with cglib1), or Hibernate 2.1 (with cglib2), without some extra effort. We don't do an incredible amount with cglib, so we could possibly support both Hibernate versions by accessing cglib through some sort of wrapper. I'm not incredibly fond of this idea, especially as cglib2 and the newer asm look to offer some really nice capabilities, but it's an option... Now taking a second look at your statements more carefully. Colin |