| <!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> |