|
From: Chris N. <ch...@si...> - 2003-11-25 21:59:41
|
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 |