<html><head> | |
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | |
<title>Chapter 1. Introduction to the AspectJ tools</title><link rel="stylesheet" href="aspectj-docs.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.44"><link rel="home" href="index.html" title="The AspectJtm Development Environment Guide"><link rel="up" href="index.html" title="The AspectJtm Development Environment Guide"><link rel="previous" href="index.html" title="The AspectJtm Development Environment Guide"><link rel="next" href="bytecode-concepts.html" title="Bytecode weaving, incremental compilation, and memory usage"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Introduction to the AspectJ tools</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="bytecode-concepts.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><h2 class="title"><a name="tools-intro"></a>Chapter 1. Introduction to the AspectJ tools</h2></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="tools-intro.html#eclipse-aspectj">The Eclipse AspectJ implementation</a></dt><dt><a href="bytecode-concepts.html">Bytecode weaving, incremental compilation, and memory usage</a></dt><dd><dl><dt><a href="bytecode-concepts.html#classpathInpathAndAspectpath">Classpath, inpath, and aspectpath</a></dt></dl></dd></dl></div><div class="sect1"><a name="eclipse-aspectj"></a><div class="titlepage"><div><h2 class="title" style="clear: both"><a name="eclipse-aspectj"></a>The Eclipse AspectJ implementation</h2></div></div><p>The <a href="../progguide/index.html" target="_top">AspectJ Programming Guide</a> | |
describes the AspectJ language. This guide describes the AspectJ | |
tools produced by the AspectJ | |
team on | |
<a href="http://eclipse.org/aspectj" target="_top">http://eclipse.org/aspectj</a>. | |
The AspectJ tools include | |
- ajc, the compiler/weaver; | |
ajdoc, a documentation tool; ajbrowser, a crosscutting code viewer; | |
Ant support for ajc; and load-time weaving support. | |
These tools are delivered in the library folder of the AspectJ tools | |
installation, mainly in <tt>aspectjtools.jar</tt> (tools) and | |
<tt>aspectjrt.jar</tt> (runtime). | |
This guide does not describe the Eclipse AspectJ development tools | |
(AJDT). That is produced by another team (sharing some members) on | |
<a href="http://eclipse.org/aspectj" target="_top">http://eclipse.org/ajdt</a>. | |
AJDT is delivered as an Eclipse plugin, incorporating the classes in | |
the AspectJ tools libraries along with the Eclipse plugin interface | |
classes. | |
</p><p> | |
Since AspectJ 1.1, the tools have implemented the AspectJ language | |
using bytecode weaving, which combines aspects and classes to produce | |
.class files that run in a Java VM. There are other ways to implement the | |
language (e.g., compiler preprocessor, VM support); the AspectJ team | |
has always tried to distinguish the language and the implementation | |
so other groups could build alternative implementations of AspectJ. | |
To that end, | |
<a href="../progguide/implementation.html" target="_top">The AspectJ Programming Guide, | |
Implementation Notes</a> describes how the Java bytecode form affects | |
language semantics. VM- or source-based implementations may be free | |
of these limits or impose limits of their own, but most should be | |
fairly close to what's possible in Java bytecode. | |
</p><p> | |
Please be careful not to confuse any description of | |
weaving or of this implementation of the AspectJ language with | |
the AspectJ language semantics. | |
If you do, you might find yourself writing code that doesn't work as | |
expected when you compile or run it on other systems. | |
More importantly, if you | |
think about aspects in terms of weaving or of inserting or merging | |
code, then you can lose many of the design benefits of thinking | |
about an aspect as a single crosscutting module. | |
When the text below introduces an implementation detail, it will warn if | |
users make mistakes by applying it in lieu of the language semantics. | |
</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="bytecode-concepts.html">Next</a></td></tr><tr><td width="40%" align="left">The AspectJ<sup>tm</sup> Development Environment Guide </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Bytecode weaving, incremental compilation, and memory usage</td></tr></table></div></body></html> |