Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] load-time weaving question (w.r.t. obtaining permission from third-party software licensor)

Hi Garry -

This is really a legal question. It's for your lawyers to decide whether using ajc would be a violation.

The FAQ is recommending that people not use ajc to violate any licenses, and in particular not to be lulled into believing that just because weaving is happening at load time or is producing another set of .class files, it doesn't violate a license requiring one not modify the classes in a library. Developers use licenses in part to ensure their libraries run unchanged and as tested, and weaving aspects might not be what they expect. So we just think everyone should be good citizens; if there are flagrant or costly violations using ajc, then it could get a bad name and come under undue restrictions within over-cautious organizations.

Moving forward, I'd hope library licenses start to include permission to weave aspects, to reduce any uncertainty. These licenses prohibit modifications to preserve behavior (and secrecy), but many aspects can be used safely without infringing these concerns. AspectJ semantics always leave woven classes in a state that is backwards-binary- compatible with their original state, and many aspects augment rather than change the underlying functionality.

Wes

Garry Cronin wrote:
Hi All!

The AspectJ FAQ states

"do not use bytecode weaving, at load-time or otherwise, to modify .class files protected by license, without permission from the licensor."

Just to clarify, is it necessary to obtain permission from the licensor if I'm performing load-time (as opposed to compile-time) weaving? I can understand why it would be necessary if I were making modifications to the binary .class files (compile-time weaving) but because no modifications are being made to the binary .class files via load-time weaving, does this not free me from the obligation of obtaining permission? I guess it's an intellectual property violation regardless of the mechanism used to change the logic, but I just want to be crystal clear of the possible implications of doing this!

thanks in advance
- Garry

p.s. I am aware that AspectJ 1.1 doesn't yet have a load-time weaving capability but that a proof-of-concept custom ClassLoader will soon be available to try this out.



_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/aspectj-users




Back to the top