[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [aspectj-users] Interesting Problem & Reweavable
|
As Ramnivas noted, we have that bug report 91417 to track making
reweavable the default by 1.5.0M4 - we just need a better way to
store the extra info in the classfile so it isn't so bloated.
Andy.
--
Andy Clement
AspectJ Dev
Ramnivas Laddad
<ramnivas@aspecti
vity.com> To
Sent by: ndlesiecki@xxxxxxxxx,
aspectj-users-bou aspectj-users@xxxxxxxxxxx
nces@xxxxxxxxxxx cc
Subject
27/04/2005 19:30 Re: [aspectj-users] Interesting
Problem & Reweavable
Please respond to
aspectj-users@ecl
ipse.org
I second Ron and Nick.
Seems like there is already a bug to fix this issue:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=91417
For an additional use case, see:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=36430
-Ramnivas
Lesiecki Nicholas wrote:
I agree that reweavable should be the default to enable precisely the
situation Ron describes.
Cheers,
Nick
--- Ron Bodkin <rbodkin@xxxxxxxxxxxxxx> wrote:
Hi All,
I've been working on applying the AspectJ 5 load-time weaving
support
from
the branch that Alex and Jonas have been working on, to let me
weave some
monitoring code into an app server at load time. The code is
still fairly
new, but I was able to get it working for my environment, which
was great
(already much better than trying to weave into a wad of 3rd
party jars at
build time!). Great work guys! I plan to blog about this and to
submit a
few
small suggestions to bugzilla and aspectj-dev.
However, I ran into the following output when I was weaving
into the
MySQL
JDBC driver's debug version:
error at com\mysql\jdbc\NonRegisteringDriver.java::0 class
'com.mysql.jdbc.NonRegisteringDriver' is already woven and has
not been
built with -Xreweavable
That's right. This error means that the code was already woven
with
AspectJ!
The MYSQL debug JDBC driver includes a tracing aspect: it's
great to see
this kind of increased use & popularity of AspectJ. For the
curious, you
can
see the source code for this aspect in the source distribution
of the
Mysql
Connector/J. In this case, the normal, non-debug, library
doesn't use
AspectJ so it's not a major problem.(*)
Unfortunately, because the default today is to not emit
reweavable
bytecode,
it makes it challenging to weave into libraries like this. I
think the
increasing amount of AspectJ use in libraries makes it's more
important
than
ever to make -Xreweavable the default option (or the compressed
version).
Indeed, under what circumstances would we not want code to be
reweavable?
Is
the performance that much better? It seems to me that maybe
reweavable
should just always be the case.
Failing that, I would like to see an option to weave into
previously
non-reweavable woven code at a bytecode-level, which would just
treat the
woven result like one would treat any Java bytecode (i.e., it
wouldn't
recognize adviceexecution, nor understand ITD's, etc., it would
operate
on
the "machine-level" translation into Java bytecode).
Ron
Ron Bodkin
Chief Technology Officer
New Aspects of Software
w: (415) 824-4690
(*) Amusingly, I only discovered this because I had an error in
the first
zip distribution I downloaded so I could only extract the debug
jar file.
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users