[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[stellation-res] Using AspectJ?
|
A question to the group:
I'm going to be sending out a preliminary description of the Stellation
ACL mechanism later today. I'll be starting to work on implementing
that, and completing the trigger mechanism as soon as I get the latest
bugs taken care of.
The implementation of those things is really complicating the code
in the repository, because so many things are getting tangled
together. (Look at the LocalHandle implementation, with the X/realX
methods to see what I mean...) Using a tool like AspectJ
would make things like this much easier to write without creating
a mess of the code. (Using AspectJ, the X/realX would disappear,
and the trigger code would became a separate file contianing an aspect
implementing an "around" wrapper for the relevant methods.)
So I'd like to know what people think about the idea of adding
AspectJ to our suite of tools.
Some things to know about it:
- The AspectJ compiler is open-source, under the Mozilla license.
- There is an AspectJ task for ant, so command line builds
will continue to work.
- There is an AspectJ plugin for Eclipse, so it will not interfere
with our Eclipse use.
- There should be no execution-time performance penalty for using
AspectJ.
The main arguments against it:
- People will need to learn the basics of AspectJ to understand parts
of our code.
- The setup process for working on Stellation becomes even more
complicated, because you'll need to install AspectJ.
- AspectJ *can* make things significantly less complex; but it also
has the effect of introducing additional "scatter" to the codebase.
If it's not used with great care, it can create as many problems
as it solves.
What do you all think?
-Mark
--
Mark Craig Chu-Carroll, IBM T.J. Watson Research Center
*** The Stellation project: Advanced SCM for Collaboration
*** http://www.eclipse.org/stellation
*** Work Email: mcc@xxxxxxxxxxxxxx ------- Personal Email:
markcc@xxxxxxxxxxx
Attachment:
signature.asc
Description: This is a digitally signed message part