| <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&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 users 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 |
| <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> |