blob: 99b7af5c8d262249ade138319de7f1753deec070 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html> <head>
<meta http-equiv="Content-Language" content="en-us">
<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>.
<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="quick.pdf">Quick Reference</a>,
<a href="progguide/index.html">programming</a> and
<a href="devguide/index.html">development</a> guides,
<a href="api/index.html">API</a> and
<a href="examples/">example code</a>.
<tr><td><a href="#distributions">distributions</a></td><td>
<a href="http://eclipse.org/aspectj">AspectJ</a> itself
and development environment support for
<a href="http://eclipse.org/ajdt">Eclipse</a>,
<a href="http://aspectj4emacs.sourceforge.net">Emacs</a>,
<a href="http://aspectj4jbuildr.sourceforge.net">JBuilder</a>,
and
<a href="http://aspectj4netbean.sourceforge.net">Netbeans</a>.
<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>.
<tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
</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="quick.pdf"> AspectJ Quick Reference</a>
<!-- start strip -->
<!-- (<a href="http://eclipse.org/aspectj/doc/dist/quick.pdf">web</a>) -->
<!-- end strip -->
</td>
<td>This is a two-page quick reference for the AspectJ language.
</td> </tr>
<tr> <td><a href="progguide/index.html">Programming Guide</a>
(printable <a href="progguide/printable.html">html</a>
<!-- start strip -->
<!-- - <a href="http://eclipse.org/aspectj/doc/dist/progguide/index.html">web</a> -->
<!-- end strip -->
)
</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>
<!-- start strip -->
<!-- - <a href="http://eclipse.org/aspectj/doc/dist/devguide/index.html">web</a> -->
<!-- end strip -->
)
</td>
<td>This has 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="api/index.html">AspectJ API</a>
<!-- start strip -->
<!-- (<a href="http://eclipse.org/aspectj/doc/dist/api/index.html">web</a>) -->
<!-- end strip -->
</td>
<td>API documentation for AspectJ runtime classes. <tt>JoinPoint</tt>
shows the state automatically available at each join point.
</td> </tr>
<tr> <td><a href="faq.html"> FAQ</a>
<!-- start strip -->
<!-- (<a href="http://eclipse.org/aspectj/doc/dist/faq.html">web</a>) -->
<!-- end strip -->
</td>
<td>Frequently-asked questions about the AspectJ language, tools, and project.
</td> </tr>
<tr> <td><a href="README-12.html">README-12</a>
</td>
<td>Changes and porting guide for the AspectJ 1.2.0 release.
</td> </tr>
<tr> <td><a href="README-11.html">README-11</a>
</td>
<td>Changes and porting guide for the AspectJ 1.1.0 release.
</td> </tr>
<tr> <td><a href="porting.html">Porting guide</a>
<!-- start strip -->
<!-- (<a href="http://eclipse.org/aspectj/doc/dist/porting.html">web</a>) -->
<!-- end strip -->
</td>
<td>How users can convert code from earlier versions of AspectJ.
</td> </tr>
<tr> <td><a href="changes.html"> Changes </a>
<!-- start strip -->
<!-- (<a href="http://eclipse.org/aspectj/doc/dist/changes.html">web</a>) -->
<!-- end strip -->
</td>
<td>Changes between the latest releases.
</td> </tr>
<tr> <td><a href="examples/">Examples</a>
<!-- start strip -->
<!-- (<a href="examples/">local</a>) -->
<!-- end strip -->
</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> <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/cpl-v10.html">CPL 1.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 CPL 1.0
from the eclipse.org project site
<a href="http://eclipse.org/ajdt">
http://eclipse.org/ajdt</a>
</td>
</tr>
<tr> <td><a href="http://aspectj4emacs.sourceforge.net">
AspectJ for Emacs</a>
</td>
<td>AspectJ Development Environment support for
Emacs is available under the GPL
from the sourceforge project site
<a href="http://aspectj4emacs.sourceforge.net/">
http://aspectj4emacs.sourceforge.net</a>
</td>
</tr>
<tr> <td><a href="http://aspectj4jbuildr.sourceforge.net">
AspectJ for JBuilder</a>
</td>
<td>AspectJ Development Environment support for
JBuilder is available under the Mozilla Public License 1.1
from the sourceforge project site
<a href="http://aspectj4jbuildr.sourceforge.net/">
http://aspectj4jbuildr.sourceforge.net</a>
</td>
</tr>
<tr> <td><a href="http://aspectj4netbean.sourceforge.net">
AspectJ for Netbeans</a>
</td>
<td>AspectJ Development Environment support for
Netbeans is available under the Mozilla Public License 1.1
from the sourceforge project site
<a href="http://aspectj4netbean.sourceforge.net/">
http://aspectj4netbean.sourceforge.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>
<td>
AspectJ users
discuss tips and
best practices for writing AspectJ programs
on the
<a href="mailto:aspectj-users@eclipse.org">
aspectj-users@eclipse.org</a> mail list.
AspectJ developers discuss issues with developing
AspectJ tools on the
<a href="mailto:aspectj-dev@eclipse.org">
aspectj-dev@eclipse.org</a> list.
You can subscribe to the announce list
(<tt>aspectj-announce@eclipse.org</tt>)
to get occasional emails about AspectJ releases
and relevant events.
Only those subscribed to a list may post to it.
Go to
<a href="http://eclipse.org/aspectj">
the AspectJ home page</a>
to view list archives or subscribe to the list.
<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&component=Compiler">
Compiler</a> (for the AspectJ compiler, ajc)
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=IDE">
IDE</a> (for AJBrowser and AJDE bugs),
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Ant">
Ant</a> (for the Ant tasks),
and
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Docs">
Docs</a> (for the documentation).
Bugs all developers should know about are
<a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&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
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>), 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>