On Tue, May 19, 2009 at 10:29 AM, Jacek Laskowski
<[email protected]> wrote:
> On Tue, May 19, 2009 at 9:36 AM, Jean-Louis MONTEIRO
> <[email protected]> wrote:
>
>> My understanding is that if you go back to org.objectweb package you will
>> face hibernate issues because of ASM versions.
>>
>> Is that true ?
>
> Yes. That's the truth we have to struggle with. XBean comes with two
> binary incompatible versions of asm - 2.2.3 (xbean-reflect) and 3.1
> (xbean-finder). Hibernate relies on 1.5.3. When those come together
> NCDFE surfaces. The only solution I can come up with is to shade
> org.objectweb.asm package or replace it with another and use it -
> that's how it works now in OpenEJB with asm-finder 3.1. The issue I'm
> facing at the moment is that I need to upgrade XBean to its latest
> version ot fix the issue with @ApplicationException handling, but
> asm-finder is not available in the repo (in its source form) so I
> can't upgrade xbean in it. I need to resurrect it. That's why I asked
> what was the reason to whack it after it was published to the repos.
> That's what I've not been able to explain so far.

Just to add to the above - Dave did "inlining" (package renaming), but
there's another way to fix the issue with "shading". The difference is
how much work and where one is willing to do. The former - inlining -
requires source code changes because org.objectweb.asm turns into
another package so you're forced to use the newly-created package
afterwards. It's that you copy classes into another package - the
classes are alike as far as their bytecode go minus package
declaration and imports. The former approach - shading - requires no
code changes but needs to create "a bundle" of necessary jar deps as
one big jar plus package change. Very useful.

For us, the best would be to repackage asm classes with inlining and
use the new packages in our code.

Jacek

-- 
Jacek Laskowski
Notatnik Projektanta Java EE - http://www.JacekLaskowski.pl

Reply via email to