David Blevins on 30/05/08 19:53, wrote:
Personally, I favor copying the code over and jarjar'ing the asm
dependency.

Two quick questions:

"jarjar'ing" the dependency? What does that mean? I hope I'm not the only one who isn't hip to the lingo! I guess if I knew the context better I could work it out.

Secondly, I was wondering about the advantages of having fewer dependencies, especially in this maven era. If something's really great, it's fine to depend on it, surely?

The term comes from a tool that essentially read in the byte code and repackaged it. For example changing the java package from org.objectweb.asm to org.apache.fooproject.asm. There are other tools that can do it now, like the maven-shade-plugin, but it was the first that I'm aware of.

The ASM guys themselves recommend repackaging their code due to the number of people using different versions of ASM and that some of those versions of incompatible. Hibernate is a good example of this as they use a really old version of ASM. As this particular library is only 40K or so you can solve a lot of potential headaches for users by getting it out of their way.

Thanks for the info. IIRC I experienced the problems that stemmed from that when I upgraded an app from Spring 2 to Spring 2.1 (or close to those version numbers) due to Hibernate 3.1 - I think I ended up downgrading Hibernate to make it work for a period.

I strikes me that somehow it should have worked better if the developers putting out those new versions had just talked to each other, but they didn't and a lot of people wasted whole days on the problem. So I guess you're right.

What isn't ideal is that the user experiences and knowledge becomes fragmented. Perhaps that's the lesser of two evils.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to