AspectJ Documentation and Resources

AspectJ tm is a seamless aspect-oriented extension to Javatm. The compiler and development tools are available under an open-source license, require Java 2 to run, and produce code that runs in JDK 1.1 and later VM's. For the latest materials, see @aspectj.home.url@, especially the FAQ.

SectionContents
docs FAQ, Quick Reference, programming and development guides, API and (local) examples
distributions AspectJ itself and development environment support for Eclipse, Emacs, JBuilder, and Netbeans.
resources aosd.net; AspectJ project the bug db, and mailing lists for users and developers.
paths for those new to AspectJ

AspectJ documentation

DocumentationDescription
AspectJ Quick Reference (web) This is a two-page quick reference for the AspectJ language.
Programming Guide (printable pdf or html - web ) This introduces AOP and the AspectJ language. Getting Started describes basic semantics, and shows development- and production-time applications. The AspectJ Language describes join points, pointcuts, advice, and introduction, all features new to AOP. Examples walks you through the examples included with the documentation, and there are two short chapters on useful Idioms and a few Pitfalls The appendices have reference information: the Quick Reference summarizes AspectJ syntax, the Language Semantics best describes AspectJ usage, and Implementation Limitations notes that the current version is limited to code the compiler controls.
Development Environment Guide
(printable html - web )
Find here a guide to the command-line compiler ajc and API doc tool ajdoc, as well as the AspectJ Development Environment (AJDE) for managing crosscutting structure in JBuilder, Forte, Emacs, and the stand-alone ajbrowser. (For using ajc and ajdoc in Ant builds, see the taskdefs distribution.)
AspectJ API (web) API documentation for AspectJ runtime classes. JoinPoint shows the state automatically available at each join point.
FAQ (web) Frequently-asked questions about the AspectJ language, tools, and project.
Porting guide (web) How users can convert code from pre-1.0 versions of AspectJ to 1.0.
Changes (web) Changes between the latest releases.
Examples (local) AspectJ code to demonstrate some language features and implement JavaBean properties, the Observer pattern, a tracing library, and a game application where aspects handle display updating.

AspectJ distributions

DistributionsDescription
AspectJ The AspectJ distribution contains binaries for the compiler, structure browser, and Ant taskdefs, as well as the documentation and examples. (Source code for AspectJ is available from the CVS repositories for the AspectJ project.)
AspectJ for Eclipse AspectJ Development Environment support for Eclipse is available under the Common Public License 1.0 from the eclipse.org project site http://eclipse.org/ajdt
AspectJ for Emacs AspectJ Development Environment support for Emacs is available under the GPL from the sourceforge project site http://aspectj4emacs.sourceforge.net
AspectJ for JBuilder AspectJ Development Environment support for JBuilder is available under the Mozilla Public License 1.1 from the sourceforge project site http://aspectj4jbuildr.sourceforge.net
AspectJ for Netbeans AspectJ Development Environment support for Netbeans is available under the Mozilla Public License 1.1 from the sourceforge project site http://aspectj4netbean.sourceforge.net

Other AspectJ resources

ResourcesDescription
Mail lists AspectJ users discuss tips and best practices for writing AspectJ programs on the aspectj-users@dev.eclipse.org mail list. AspectJ Developers discuss issues with developing AspectJ on the aspectj-developers@dev.eclipse.org list. You can subscribe to the announce list (aspectj-developers@dev.eclipse.org) to get occasional emails about AspectJ releases and relevant events.
Bug database Use Bugzilla to submit bugs against the AspectJ product components compiler (for the ajc compiler) ide (for AJBrowser and AJDE bugs), ant (for Ant tasks) and docs (for the documentation).
http://aosd.net - the AOSD web site This site has discussion and announcements related to aspect-oriented software development (AOSD) in general. Use announce@aosd.net to get and publish notices about AOSD workshops, conferences, and technology releases. Use discuss@aosd.net for general AOSD discussions.

Suggested paths for those new to AspectJ

To learn the AspectJ language, read the Programming Guide, keeping the Semantics appendix nearby as the best reference for AspectJ usage. Focus initially on the join point model and pointcuts, concepts AOP adds to OOP. To see how the code works, tour your local examples as described in the Examples section of the Programming Guide. View and navigate the crosscutting structure using the ajbrowser structure viewer, as described in the ajbrowser section of the Development Environment Guide.

To start using AspectJ with your own code, modify the example aspects to apply to your classes. The Development Environment Guide shows how to build using the command-line tools. As you learn, use the compiler's -Xlint flag to catch some common mistakes. (Understand that the current implementation is limited to code the compiler controls.)

To plan how to adopt AspectJ into a project, read the Programming Guide on development- and production-time aspects and the FAQ entries for How should I start using AspectJ?, Deciding to adopt AspectJ, the Development tools sections (one, two), and AspectJ as open-source.

Enjoy the language!

The AspectJ Team


Top