[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] Some minor changes to the code?

Hi!

The test cases for the class loader aren't yet in a state for
contribution. So
in general I would contribute the classloader to the project. But today
seems to
be a bit too early. Sorry!


I'm looking forward to seeing your weaving class loader implementation. We knew that the new bytecode weaving architecture should enable this functionality, but it will be very nice to see working code. I'll make your small requested changes. I might do some additional refactoring to avoid code duplication.

Okay, here we are. I added my implementation to the bug system (no 31460). The code needs the changes I submitted earlier (no 30794) to compile.


I haven't found the time to implement all the test cases right now. So I will add them if they are finished, okay?

A better version of the "weaveWithoutDump" method would be an
implementation
that provides information which aspects got woven into the class (or none
if the
class remains unchanged). That would allow me to announce this information
within the weaving class loader which would be pretty nice.


This sort of information should probably be passed using the MessageHandler object that handles all other messages. This object already receives IMessage.WARNING and IMessage.ERROR messages that you'll need to decide how to handle in your weaver. It would be straightforward to add some additional IMessage.MESSAGE messages that would indicate when aspects were being woven into particular classes. If you look at Shadow.java I bet you could find some commented out println's that would be exactly what you wanted if they were turned into messages.

The class loader already contains the hook method to announce dependency changes. The implementation using the MessageHandler object is prepared but not yet included.
But now I can use the class loader within my special project and reimplement the announcement functionality later to find the exact set of aspects that got woven into a particular class. :-)


Best regards,
Martin