[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [aspectj-users] Load time weaving with AspectJ?
- From: Matthew Webster <matthew_webster@xxxxxxxxxx>
- Date: Tue, 21 Sep 2004 10:30:55 +0100
- Delivered-to: firstname.lastname@example.org
- Importance: Normal
Load-time weaving in a middleware environment using AspectJ is comprised of
a weaving class loader, a weaving adaptor and an instance the weaver
itself. A weaving class loader is similar to a normal class loader in that
it locates the implementations of named types. In addition before loading
any classes it must define a set of aspects to the weaver and pass each
class it loads to the weaver before defining it in the JVM. The weaving
adaptor is designed to simplify the interaction between the weaving class
loader and the weaver.
In our WebSphere LTW prototype we modified an existing application class
loader to intercept its initialization and the call to "defineClass()"
where loaded bytecodes are passed to the JVM. During initialization we
instantiate a weaving adaptor (which in turn instantiates a weaver) and
pass it the full classpath use by the class loader and a set of aspects.
Then when each class is loaded it is passed to the weaving adaptor and the
resulting woven bytecodes defined in the JVM.
There are some rules for LTW which are enforced by the weaving adaptor:
1. The set of aspects must be defined before any class is loaded and remain
unchanged until the class loader is garbage collected.
2. All classes loaded by a weaving class loader must be by subject to
3. Only classes defined by a weaving class loader can be woven.
Java Technology Centre, MP146
IBM Hursley Park, Winchester, SO21 2JN, England
Telephone: +44 196 2816139 (external) 246139 (internal)
Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
Sent by: aspectj-users@xxxxxxxxxxx
Re: [aspectj-users] Load time
08/09/2004 10:14 weaving with AspectJ?
Please respond to
Adrian, I've already read your interesting post.
Insn't it a bit strange that Bea supports AspectJ in its Weblogic and Ibm
Have you modified the classloader or maye it is possible to add a
pre-processor to the standard classloader (as I understand Bea uses this
Adrian Colyer <adrian_colyer@xxxxxxxxxx> wrote:
The capability has been in AspectJ since 1.1, but we packaged things up
and made it a lot easier to use in 1.2. The 1.2 README has some
information on this feature :
In addition, I wrote a short introductory blog article on the topic a
BEA have a dev2dev pack which lets you use AspectJ for load-time weaving
in WebLogic (though clearly they're doing a lot of work with AspectWerkz
now too). We have used AspectJ for load-time weaving in WebSphere too
(internally), but this requires some small changes to WebSphere's
class-loading so that it would be difficult for end-users to replicate
this capability at the moment. If there are users out there wh o would
us to support this feature (in WebSphere), we'd love to hear from you and
especially to hear any use-cases you have for the feature - it all helps
us to make an informed judgement about the right time and manner in which
to introduce the capabilities.
Sent by: aspectj-users-admin@xxxxxxxxxxx
Please respond to
[aspectj-users] Load time weaving with AspectJ?
I've just read a message from Adrian Colyer in the dev-list about
load-time weaving with AspectJ and I must confess I completely missed that
Is it in AspectJ since 1.2 version or 1.1?
Can you give me some references about load-time weaving in AspectJ?
I've found only Adrian's post here:
But nothing else.
In particular I'd be very interested in learning how to use load-time
weaving in a real J2ee environment (such as Websphere or other app server)
Scopri Mister Yahoo! - il fantatorneo sul calcio di Yahoo! Sport'
aspectj-users mailing list