blob: fe276ee4a2b733544f9d7293b35f3a87a083c81a [file] [log] [blame]
<html>
<head>
<title>AspectJ Documentation and Resources</title>
</head>
<body>
<a name="top"></a>
<h1>AspectJ Documentation and Resources</h1>
<p/>
AspectJ <sup><small>tm</small></sup>
is a seamless aspect-oriented extension to
Java<sup><small>tm</small></sup>.
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="http://eclipse.org/aspectj">http://eclipse.org/aspectj</a>.
Not all of these materials have been updated for AspectJ 5.
<p/>
<table>
<tr><td><u>Section</u></td><td><u>Contents</u></td></tr>
<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>.
</td></tr>
<tr><td><a href="#distributions">distributions</a></td><td>
<a href="http://eclipse.org/aspectj">AspectJ</a>;
development environment support for
<a href="http://eclipse.org/ajdt">Eclipse</a>
and
<a href="https://jdeveloperaop.dev.java.net/">JDeveloper</a>.
</td></tr>
<tr><td><a href="#resources">resources</a></td><td>
<a href="http://aosd.net">aosd.net</a>;
<a href="http://eclipse.org/aspectj">AspectJ project</a>
the bug <a href="http://bugs.eclipse.org/bugs">db</a>,
and mailing lists for
<a href="mailto:aspectj-users@eclipse.org">users</a> and
<a href="mailto:aspectj-dev@eclipse.org">developers</a>.
</td></tr>
<tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
</td></tr>
</table>
<p/>
<a name="documentation"></a>
<h3>AspectJ documentation</h3>
<table border="1">
<tr> <th>Documentation</th><th>Description</th>
</tr>
<tr> <td><a href="quick5.pdf"> AspectJ 5 Quick Reference</a>
</td>
<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>
<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>
<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>
<tr> <td><a href="progguide/index.html">Programming Guide</a>
(printable <a href="progguide/printable.html">html</a>)
</td>
<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>
<tr> <td><a href="devguide/index.html">Development Environment Guide</a>
<br/>
(printable <a href="devguide/printable.html">html</a>)
</td>
<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.
</td>
</tr>
<tr> <td><a href="pdguide/index.html">Problem Diagnosis Guide</a>
<br/>
(printable <a href="pdguide/printable.html">html</a>)
</td>
<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.
</td>
</tr>
<tr> <td><a href="runtime-api/index.html">AspectJ API</a>
</td>
<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>
<td>Frequently-asked questions about the AspectJ language, tools, and project.
</td> </tr>
<tr> <td>README's
</td>
<td>Changes and porting guide for AspectJ
<a href="README-195.html">1.9.5</a>,
<a href="README-194.html">1.9.4</a>,
<a href="README-193.html">1.9.3</a>,
<a href="README-192.html">1.9.2</a>,
<a href="README-191.html">1.9.1</a>,
<a href="README-190.html">1.9.0</a>,
<a href="README-1811.html">1.8.11</a>,
<a href="README-1810.html">1.8.10</a>,
<a href="README-189.html">1.8.9</a>,
<a href="README-188.html">1.8.8</a>,
<a href="README-187.html">1.8.7</a>,
<a href="README-186.html">1.8.6</a>,
<a href="README-185.html">1.8.5</a>,
<a href="README-184.html">1.8.4</a>,
<a href="README-183.html">1.8.3</a>,
<a href="README-182.html">1.8.2</a>,
<a href="README-181.html">1.8.1</a>,
<a href="README-180.html">1.8.0</a>,
<a href="README-174.html">1.7.4</a>,
<a href="README-173.html">1.7.3</a>,
<a href="README-172.html">1.7.2</a>,
<a href="README-171.html">1.7.1</a>,
<a href="README-170.html">1.7.0</a>,
<a href="README-1612.html">1.6.12</a>,
<a href="README-1611.html">1.6.11</a>,
<a href="README-1610.html">1.6.10</a>,
<a href="README-169.html">1.6.9</a>,
<a href="README-168.html">1.6.8</a>,
<a href="README-167.html">1.6.7</a>,
<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>
<td>Changes between the latest releases.
</td> </tr>
<tr> <td><a href="examples/">Examples</a>
</td>
<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>
</table>
<a name="distributions"></a>
<h3>AspectJ distributions</h3>
<table border="1">
<tr> <th>Distributions</th><th>Description</th></tr>
<tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a>
</td>
<td>The AspectJ distribution contains binaries for the
compiler, structure browser, and Ant taskdefs,
as well as the documentation and examples.
</td>
</tr>
<tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a> source code
</td>
<td>Source code for AspectJ is available
under the open-source
<a href="http://www.eclipse.org/legal/epl-v10.html">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>.
</td>
</tr>
<tr> <td><a href="http://eclipse.org/ajdt">AspectJ for Eclipse</a>
</td>
<td>AspectJ Development Environment support for
Eclipse is available under Eclipse Public License v1.0
from the eclipse.org project site
<a href="http://eclipse.org/ajdt">
http://eclipse.org/ajdt</a>
</td>
</tr>
<tr> <td><a href="https://jdeveloperaop.dev.java.net/">
Support for the JDeveloper IDE</a>
</td>
<td>Support for programming in AspectJ using the JDeveloper IDE
is available under the Apache Software License
from the java.net project site
<a href="https://jdeveloperaop.dev.java.net/">
https://jdeveloperaop.dev.java.net/</a>
</td>
</tr>
</table>
<a name="resources"></a>
<h3>Other AspectJ resources</h3>
<table border="1">
<tr> <th>Resources</th><th>Description</th>
</tr>
<tr> <td>Mail lists
</td>
<td>
AspectJ users discuss tips and
best practices for writing AspectJ programs on
<a href="mailto:aspectj-users@eclipse.org">
aspectj-users@eclipse.org</a>.
AspectJ developers discuss issues with developing
the AspectJ tools on
<a href="mailto:aspectj-dev@eclipse.org">
aspectj-dev@eclipse.org</a>.
To get occasional emails about AspectJ releases
and relevant events, subscribe to
<tt>aspectj-announce@eclipse.org</tt>.
To view list archives or subscribe to the list, go to
<a href="http://eclipse.org/aspectj">
the AspectJ home page</a>.
To find archived emails, use the Eclipse site
<a href="http://www.eclipse.org/search/search.cgi">search page</a>.
</td></tr>
<tr> <td><a href="http://bugs.eclipse.org/bugs">Bug database</a>
</td>
<td>Use the Eclipse project's Bugzilla database
to view and submit bugs against the AspectJ product components
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Compiler">
Compiler</a> (for the AspectJ compiler, ajc)
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=IDE">
IDE</a> (for AJBrowser and AJDE bugs),
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Ant">
Ant</a> (for the Ant tasks),
and
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Docs">
Docs</a> (for the documentation).
Bugs all users should know about are
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;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="http://aosd.net">http://aosd.net</a> - the AOSD web site
</td>
<td>This site has discussion and announcements related to
aspect-oriented software development (AOSD) in general.
Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
to get and publish notices about AOSD
workshops, conferences, and technology releases.
Use <a href="mailto:discuss@aosd.net">discuss@aosd.net</a>
for general AOSD discussions.
</td> </tr>
</table>
<p/>
<a name="paths"></a>
<h3>Suggested paths for those new to AspectJ</h3>
<p/>
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="http://eclipse.org/ajdt">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>.
<p/>
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.)
<p>
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>.
</p>
<p>
Enjoy the language!
</p>
<p>
The AspectJ Team
</p>
<hr/>
<small>
<a href="#top">Top</a>
</small>
</body> </html>