blob: d8370b67c47880802b5678bae12ac940e0f55f86 [file] [log] [blame]
<title>AspectJ Documentation and Resources</title>
<a name="top"></a>
<h1>AspectJ Documentation and Resources</h1>
AspectJ <sup><small>tm</small></sup>
is a seamless aspect-oriented extension to
The compiler and development tools are available under
an open-source license, require Java 1.3 to run, and produce
code that runs in JDK 1.1 and later VM's.
For the latest materials, see
<a href=""></a>.
Not all of these materials have been updated for AspectJ 5.
<tr><td><a href="#documentation">docs</a></td><td>
<a href="faq.html">FAQ</a>,
<a href="quick5.pdf">Quick Reference (AspectJ 5)</a>,
<a href="quick.pdf">Quick Reference (1.2.1)</a>,
<a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>,
<a href="progguide/index.html">programming</a>,
<a href="devguide/index.html">development</a> and
<a href="pdguide/index.html">problem diagnosis</a> guides,
<a href="runtime-api/index.html">API</a> and
<a href="examples/">example code</a>.
<tr><td><a href="#distributions">distributions</a></td><td>
<a href="">AspectJ</a>;
development environment support for
<a href="">Eclipse</a>
<a href="">JDeveloper</a>.
<tr><td><a href="#resources">resources</a></td><td>
<a href=""></a>;
<a href="">AspectJ project</a>
the bug <a href="">db</a>,
and mailing lists for
<a href="">users</a> and
<a href="">developers</a>.
<tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
<a name="documentation"></a>
<h3>AspectJ documentation</h3>
<table border="1">
<tr> <th>Documentation</th><th>Description</th>
<tr> <td><a href="quick5.pdf"> AspectJ 5 Quick Reference</a>
<td>This is a four-page quick reference for the AspectJ 5 language.
</td> </tr>
<tr> <td><a href="quick.pdf"> AspectJ Quick Reference</a>
<td>This is a two-page quick reference for the AspectJ language.
</td> </tr>
<tr> <td><a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>
(printable <a href="adk15notebook/printable.html">html</a>)
<td>This describes the changes to the AspectJ language and tools introduced
in the AspectJ 5 Development Kit. These changes are additive, and are not yet
reflected in the programming guide or quick reference.</td>
<tr> <td><a href="progguide/index.html">Programming Guide</a>
(printable <a href="progguide/printable.html">html</a>)
<td>This introduces AOP and the AspectJ language.
<a href="progguide/starting.html">Getting Started</a>
describes basic semantics, and shows development- and production-time applications.
<a href="progguide/language.html">The AspectJ Language</a>
describes join points, pointcuts, advice, and introduction, all features new to AOP.
<a href="progguide/examples.html">Examples</a> walks you through the
examples included with the documentation, and there are two short
chapters on useful <a href="progguide/idioms.html">Idioms</a> and a
few <a href="progguide/pitfalls.html">Pitfalls</a>
The appendices have reference information:
the <a href="progguide/quick.html">Quick Reference</a>
summarizes AspectJ syntax,
the <a href="progguide/semantics.html">Language Semantics</a>
best describes AspectJ usage, and
<a href="progguide/implementation.html">Implementation Notes</a>
describes how
the current version is limited to code the compiler controls.</td>
<tr> <td><a href="devguide/index.html">Development Environment Guide</a>
(printable <a href="devguide/printable.html">html</a>)
<td>This is a guide to
<a href="devguide/ajc-ref.html">ajc</a>, the command-line compiler;
<a href="devguide/ajbrowser.html">ajbrowser</a>, the stand-alone
GUI for compiling and viewing crosscutting structure;
and the <a href="devguide/antTasks.html">Ant tasks</a>
for building AspectJ programs.
<tr> <td><a href="pdguide/index.html">Problem Diagnosis Guide</a>
(printable <a href="pdguide/printable.html">html</a>)
<td>This has a guide to
the various features available such as messages and trace to help you both solve problems
with you own programs and report bugs to the AspectJ team.
<tr> <td><a href="runtime-api/index.html">AspectJ API</a>
<td>API documentation for AspectJ runtime classes. <tt>JoinPoint</tt>
shows the state automatically available at each join point.
See also the <a href="weaver-api/index.html">Weaver API</a>
</td> </tr>
<tr> <td><a href="faq.html"> FAQ</a>
<td>Frequently-asked questions about the AspectJ language, tools, and project.
</td> </tr>
<tr> <td>README's
<td>Changes and porting guide for AspectJ
<a href="README-166.html">1.6.6</a>,
<a href="README-165.html">1.6.5</a>,
<a href="README-164.html">1.6.4</a>,
<a href="README-163.html">1.6.3</a>,
<a href="README-162.html">1.6.2</a>,
<a href="README-161.html">1.6.1</a>,
<a href="README-160.html">1.6.0</a>,
<a href="README-154.html">1.5.4</a>,
<a href="README-153.html">1.5.3</a>,
<a href="README-152.html">1.5.2</a>,
<a href="README-151.html">1.5.1</a>,
<a href="README-150.html">1.5.0</a>,
<a href="README-121.html">1.2.1</a>,
<a href="README-12.html">1.2.0</a>,
<a href="README-11.html">1.1</a>, and
<a href="porting.html">1.0</a>.
</td> </tr>
<tr> <td><a href="changes.html">Changes</a>
<td>Changes between the latest releases.
</td> </tr>
<tr> <td><a href="examples/">Examples</a>
<td>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.
</td> </tr>
<a name="distributions"></a>
<h3>AspectJ distributions</h3>
<table border="1">
<tr> <th>Distributions</th><th>Description</th></tr>
<tr> <td><a href="">AspectJ</a>
<td>The AspectJ distribution contains binaries for the
compiler, structure browser, and Ant taskdefs,
as well as the documentation and examples.
<tr> <td><a href="">AspectJ</a> source code
<td>Source code for AspectJ is available
under the open-source
<a href="">Eclipse Public License v1.0</a>
license from the CVS
repositories for the AspectJ project. See the
<a href="faq.html#q:buildingsource">FAQ entry</a>.
<tr> <td><a href="">AspectJ for Eclipse</a>
<td>AspectJ Development Environment support for
Eclipse is available under Eclipse Public License v1.0
from the project site
<a href=""></a>
<tr> <td><a href="">
Support for the JDeveloper IDE</a>
<td>Support for programming in AspectJ using the JDeveloper IDE
is available under the Apache Software License
from the project site
<a href=""></a>
<a name="resources"></a>
<h3>Other AspectJ resources</h3>
<table border="1">
<tr> <th>Resources</th><th>Description</th>
<tr> <td>Mail lists
AspectJ users discuss tips and
best practices for writing AspectJ programs on
<a href=""></a>.
AspectJ developers discuss issues with developing
the AspectJ tools on
<a href=""></a>.
To get occasional emails about AspectJ releases
and relevant events, subscribe to
To view list archives or subscribe to the list, go to
<a href="">
the AspectJ home page</a>.
To find archived emails, use the Eclipse site
<a href="">search page</a>.
<tr> <td><a href="">Bug database</a>
<td>Use the Eclipse project's Bugzilla database
to view and submit bugs against the AspectJ product components
<a href=";component=Compiler">
Compiler</a> (for the AspectJ compiler, ajc)
<a href=";component=IDE">
IDE</a> (for AJBrowser and AJDE bugs),
<a href=";component=Ant">
Ant</a> (for the Ant tasks),
<a href=";component=Docs">
Docs</a> (for the documentation).
Bugs all users should know about are
<a href=";keywords=info">
flagged with the "info" keyword</a>.
See the
<a href="faq.html#q:ajcbugs">
FAQ entry</a> for instructions on submitting compiler bugs.
</td> </tr>
<tr> <td> <a href=""></a> - the AOSD web site
<td>This site has discussion and announcements related to
aspect-oriented software development (AOSD) in general.
Use <a href=""></a>
to get and publish notices about AOSD
workshops, conferences, and technology releases.
Use <a href=""></a>
for general AOSD discussions.
</td> </tr>
<a name="paths"></a>
<h3>Suggested paths for those new to AspectJ</h3>
To learn the AspectJ language, read the
<a href="progguide/index.html">Programming Guide</a>,
keeping the <a href="progguide/semantics.html">Semantics appendix</a>
nearby as the best reference for AspectJ usage.
Focus initially on the join point model and
pointcuts, concepts AOP adds to OOP.
To read about how the <a href="examples/">examples</a> work,
see the <a href="progguide/examples.html">Examples </a> section
in the <a href="progguide/index.html">Programming Guide</a>.
View and navigate the crosscutting structure using
<a href="">AJDT</a>; if you can't use Eclipse, try
the <code>ajbrowser</code> structure viewer, as described in
the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of
the <a href="devguide/index.html">Development Environment Guide</a>.
To start using AspectJ with your own code,
modify the example aspects to apply to your classes.
As you learn,
use the compiler's <code>-Xlint</code> flags to catch some common
mistakes. (Understand that the
<a href="progguide/implementation.html">current implementation</a>
is limited to code the compiler controls.)
To plan how to adopt AspectJ into a project, read the
<a href="progguide/index.html">Programming Guide</a>
on development- and production-time aspects
and the <a href="faq.html">FAQ</a> entries for
<a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
<a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
the Development tools sections
(<a href="faq.html#q:integrateWithDevTools">one</a>,
<a href="faq.html#devtools">two</a>,
<a href="faq.html#ltw">Load-time weaving</a>
), and
<a href="faq.html#q:opensource">AspectJ as open-source</a>.
Enjoy the language!
The AspectJ Team
<a href="#top">Top</a>
</body> </html>