Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] module overview doc

We've added some draft developer documentation to:

org.aspectj/modules/docs/developer
- overview.html (table of contents)
- language.html
- modules.html (attached to this email)

Please send on or commit any revisions of the module descriptions.  Note
that "modules.html" is intended to be a lightweight overview, so that any
detailed documentation can be contained within the modules.

Thanks,

Mik

--
http://kerstens.org/mik
 

Title: AJDT Project Proposal

AspectJ Modules

There are a number of different structures [Parnas]: "the module structure, the uses structure, the runtime structure, .."  This document overviews module structure and summarizes what is hidden by each. For detailed documentation refer to the individual module sources and docs available via CVS.

Core Modules

CVS Location: dev.eclipse.org:/home/technology/org.aspectj/modules

Module

Dependencies

Description

ajbrowser

ajde, asm, bridge, util

This module contains the ajbrowser application. It depends on the ajde module for access to the aspectj compiler, and also for the swing user interface components that ajde provides.

ajde

asm, bridge, org.aspectj.ajdt.core, org.eclipse.jdt.core, util

Hides the details of accessing the aspectj compiler and interpreting compilation results (error messages, structure model, etc.) from other applications (typically IDEs) that need to invoke it programmatically. Changing any public interface in ajde can break all the IDE integration projects and should be done with care.

It also contains a library of common swing user interface components that can be used by any swing based IDE. Ajbrowser and the non-eclipse IDE integration projects use this library (except for the emacs support).

asm

bridge

Contains the Abstract Structure Model, which represents the result of an aspectj compilation. Clients of ajde are returned an instance of the structure model which allows them to navigate and interpret the static structure of an aspectj program.

bridge

util

Contains an interface and implementation of classes realted to compiler messages including: source locations, handling, and formatting.  Intended to minimize dependencies between testing, the compiler, and ajde.

org.aspectj.ajdt.core

asm, bridge, org.eclipse.jdt.core, runtime, testing-util, util, weaver

Front-end of the AspectJ compiler and extension of Eclipse's JDT compiler.  Extends the JDT compiler's parsing and name resolution to understand AspectJ declarations.  Also extends incremental behavior with understanding of AspectJ dependancies.

org.eclipse.ajdt.core

 

The additional extensibility needed from the JDT compiler is captured by these deltas.

runtime

 

Small runtime library required for building and running AspectJ programs.

taskdefs

bridge, org.aspectj.ajdt.core, util

Ant taskdefs for the ajc and ajdoc command line tools.

util

 

Common utility classes including data type, file, and stream manipulation.

weaver

asm, bridge, runtime, testing-util, util

Back-end of the AspectJ compiler, built on top of the BCEL bytecode toolkit.  All advice planning and weaving is done here.  Takes an aspect bytecode format and other Java classfiles as input. 

 

Supporting Modules

CVS Location: dev.eclipse.org:/home/technology/org.aspectj/modules

Module

Description

build

Ant files, scripts, and taskdefs required for building the AspectJ distribution.  Also contains the GUI installer.

docs

Programmer and developer documentation.

lib

Libraries required for building AspectJ.

testing

Test support classes.

testing-client

Client used for running the harness and reporting results.

testing-drivers

Testing harness drivers and support classes.

testing-util

Common testing utility classes used by the unit test suites in the core modules.

tests

AspectJ test suite, including all language tests, regression tests, and test system sources.

Eclipse Support (AJDT)

CVS Location: dev.eclipse.org:/home/technology/org.eclipse.ajdt/plugins/org.eclipse.ajdt

Plug-in

Dependencies

Description

org.eclipse.ajdt.ui

org.aspectj.ajde

AspectJ IDE support for Eclipse.

org.aspectj.ajde

ajde, asm, bridge

AspectJ libraries plug-in.

 

JBuilder Support

CVS Location: cvs.aspectj4jbuildr.sourceforge.net:/cvsroot/aspectj4jbuildr

OpenTool

Dependencies

Description

jbuilder

ajde, asm, bridge

AspectJ IDE support for JBuilder.


NetBeans Support

CVS Location: cvs.aspectj4netbean.sourceforge.net:/cvsroot/aspectj4netbean

Module

Dependencies

Description

netbeans

ajde, asm, bridge

AspectJ IDE support for NetBeans and SunONE Studio.

 

Emacs Support

CVS Location: cvs.aspectj4emacs.sourceforge.net:/cvsroot/aspectj4emacs

Module

Dependencies

Description

emacs

ajde, asm, bridge

AspectJ support for Emacs and XEmacs.


Back to the top