Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-dev] Fw: Re: AspectJ in Aurora

Eugene, Dimitri,

We're in the midst of planning IDE support for AspectJ 1.1 and beyond.  I
want to respond your following two questions (sorry for taking so long).

> 1. is it possible to use the ajc from 1.1 release as a weaver only?
> 2. is there any open API in order to integrate it in our make process?

I see three approaches to integrating AspectJ support into IDEA and other
IDEs:

1) Ajc Ant Task:
Minimal IDE integration, but allows you to compile project resources. 

2) AJDE Framework:
The Eclipse, JBuilder, NetBeans, and Emacs plugins all use these public APIs
(org.aspectj.ajde and org.aspectj.asm).  They get you: 
- programmatic access to the AspectJ compiler including progress monitor
- structured compiler error/warning messages
- a structure model and persistence mechanism
- structure views that are used to generate the document outline tree,
inline annotations and visualizer view
- build options and preferences API
- build configuration editor
- event model
- Swing UIs for the above (used by all the IDEs except Eclipse)

3) Weaver API:
Unlike the other approaches, this one has the caveat of not existing yet.
It would allow different compiler front-ends to be used.  The front-end
would need to produce a binary aspect form compatible with that expected by
the AspectJ weaver.  The weaver could also produce the crosscutting
relationships that show up in structure views.

The easiest approach for now is to use as much of the AJDE Framework APIs as
you can.  Let me know if there is anything in your current approach that
prevents that, or if you have any other requirements for integrating into
your make process.  We could also start discussions on your requirements for
a weaver API, since that could be a candidate for AspectJ 1.2.

What is your current strategy for supporting AspectJ?  I just downloaded
IDEA-867, and it appears that your compiler is working for a subset of the
language.  I'm wondering if the easiest way for you to get full AspectJ 1.1
support right now is by invoking AspectJ 1.1 compiler.  Your front-end could
still retain the eager parsing and refactoring abilities for aspects, and
could build up the AspectJ declaration hierarchy for which AJDE would give
you relationship information.  

Regards,

Mik

--
http://kerstens.org/mik




Back to the top