You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  2. <html> <head>
  3. <LINK rel="STYLESHEET" href="../style.css">
  4. <!-- type="text/css": Error: no attribute "TYPE" for this element (in 3.2) -->
  5. <title>AspectJ Documentation and Resources</title>
  6. </head>
  7. <body>
  8. <a name="top"></a>
  9. <h1>AspectJ Documentation and Resources</h1>
  10. <p>
  11. AspectJ <sup><small>tm</small></sup>
  12. is a seamless aspect-oriented extension to
  13. Java<sup><small>tm</small></sup>.
  14. The compiler and development tools are available under
  15. an open-source license, require Java 2 to run, and produce
  16. code that runs in JDK 1.1 and later VM's.
  17. For the latest materials, see
  18. <a href="@aspectj.home.url@">@aspectj.home.url@</a>,
  19. especially the <a href="@aspectj.home.url@/faq">FAQ</a>.
  20. <p>
  21. <table>
  22. <tr><td><u>Section</u></td><td><u>Contents</u></td></tr>
  23. <tr><td><a href="#documentation">docs</a></td><td>
  24. <a href="faq.html">FAQ</a>,
  25. <a href="quick.pdf">Quick Reference</a>,
  26. <a href="progguide/index.html">programming</a> and
  27. <a href="devguide/index.html">development</a> guides,
  28. <a href="api/overview-summary.html">API</a> and
  29. <!-- start strip -->
  30. (<a href="examples/">local</a>)
  31. <!-- end strip -->
  32. examples
  33. <tr><td><a href="#distributions">distributions</a></td><td>
  34. <a href="@aspectj.home.url@/dist">AspectJ</a> itself
  35. and development environment support for
  36. <a href="http://eclipse.org/ajdt">Eclipse</a>,
  37. <a href="http://aspectj4emacs.sourceforge.net">Emacs</a>,
  38. <a href="http://aspectj4jbuildr.sourceforge.net">JBuilder</a>,
  39. and
  40. <a href="http://aspectj4netbean.sourceforge.net">Netbeans</a>.
  41. <tr><td><a href="#resources">resources</a></td><td>
  42. <a href="http://aosd.net">aosd.net</a>;
  43. <a href="@aspectj.home.url@">AspectJ project</a>
  44. the bug <a href="@aspectj.home.url@/bugs">db</a>,
  45. and mailing lists for
  46. <a href="mailto:aspectj-users@eclipse.org">users</a> and
  47. <a href="mailto:aspectj-dev@eclipse.org">developers</a>.
  48. <tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
  49. </table>
  50. <p>
  51. <a name="documentation"></a>
  52. <h3>AspectJ documentation</h3>
  53. <table border="1">
  54. <tr> <th>Documentation</th><th>Description</th>
  55. </tr>
  56. <tr> <td><a href="quick.pdf"> AspectJ Quick Reference</a>
  57. <!-- start strip -->
  58. (<a href="@aspectj.home.url@/doc/dist/quick.pdf">web</a>)
  59. <!-- end strip -->
  60. </td>
  61. <td>This is a two-page quick reference for the AspectJ language.
  62. </td> </tr>
  63. <tr> <td><a href="progguide/index.html">Programming Guide</a>
  64. (printable <a href="progguide.pdf">pdf</a> or <a href="progguide/printable.html">html</a>
  65. <!-- start strip -->
  66. - <a href="@aspectj.home.url@/doc/dist/progguide/index.html">web</a>
  67. <!-- end strip -->
  68. )
  69. </td>
  70. <td>This introduces AOP and the AspectJ language.
  71. <a href="progguide/ch01.html">Getting Started</a>
  72. describes basic semantics, and shows development- and production-time applications.
  73. <a href="progguide/ch02.html">The AspectJ Language</a>
  74. describes join points, pointcuts, advice, and introduction, all features new to AOP.
  75. <a href="progguide/ch03.html">Examples</a> walks you through the
  76. examples included with the documentation, and there are two short
  77. chapters on useful <a href="progguide/ch04.html">Idioms</a> and a
  78. few <a href="progguide/ch05.html">Pitfalls</a>
  79. The appendices have reference information:
  80. the <a href="progguide/apa.html">Quick Reference</a>
  81. summarizes AspectJ syntax,
  82. the <a href="progguide/apb.html">Language Semantics</a>
  83. best describes AspectJ usage, and
  84. <a href="progguide/apc.html">Implementation Limitations</a> notes that
  85. the current version is limited to code the compiler controls.</td>
  86. </tr>
  87. <tr> <td><a href="devguide/index.html">Development Environment Guide</a><br>
  88. (printable <a href="devguide/printable.html">html</a>
  89. <!-- start strip -->
  90. - <a href="@aspectj.home.url@/doc/dist/devguide/index.html">web</a>
  91. <!-- end strip -->
  92. )
  93. </td>
  94. <td>Find here a guide to the command-line compiler <u><tt>ajc</tt></u>
  95. and API doc tool <u><tt>ajdoc</tt></u>, as well as
  96. the <u>AspectJ Development Environment (AJDE)</u> for managing crosscutting
  97. structure in JBuilder, Forte, Emacs, and the stand-alone <tt>ajbrowser</tt>.
  98. (For using <tt>ajc</tt> and <tt>ajdoc</tt> in
  99. <a href="http://jakarta.apache.org/ant">Ant</a> builds,
  100. see the <code>taskdefs</code> distribution.)
  101. </td>
  102. </tr>
  103. <tr> <td><a href="api/overview-summary.html">AspectJ API</a>
  104. <!-- start strip -->
  105. (<a href="@aspectj.home.url@/doc/dist/api/overview-summary.html">web</a>)
  106. <!-- end strip -->
  107. </td>
  108. <td>API documentation for AspectJ runtime classes. <tt>JoinPoint</tt>
  109. shows the state automatically available at each join point.
  110. </td> </tr>
  111. <tr> <td><a href="faq.html"> FAQ</a>
  112. <!-- start strip -->
  113. (<a href="@aspectj.home.url@/doc/dist/faq.html">web</a>)
  114. <!-- end strip -->
  115. </td>
  116. <td>Frequently-asked questions about the AspectJ language, tools, and project.
  117. </td> </tr>
  118. <tr> <td><a href="porting.html"> Porting guide</a>
  119. <!-- start strip -->
  120. (<a href="@aspectj.home.url@/doc/dist/porting.html">web</a>)
  121. <!-- end strip -->
  122. </td>
  123. <td>How users can convert code from pre-1.0 versions
  124. of AspectJ to 1.0.
  125. </td> </tr>
  126. <tr> <td><a href="changes.html"> Changes </a>
  127. <!-- start strip -->
  128. (<a href="@aspectj.home.url@/doc/dist/changes.html">web</a>)
  129. <!-- end strip -->
  130. </td>
  131. <td>Changes between the latest releases.
  132. </td> </tr>
  133. <tr> <td>Examples
  134. <!-- start strip -->
  135. (<a href="examples/">local</a>)
  136. <!-- end strip -->
  137. </td>
  138. <td>AspectJ code to demonstrate some language features and implement
  139. JavaBean properties, the Observer pattern, a tracing library,
  140. and a game application where aspects handle display updating.
  141. </td> </tr>
  142. </table>
  143. <a name="distributions"></a>
  144. <h3>AspectJ distributions</h3>
  145. <table border="1">
  146. <tr> <th>Distributions</th><th>Description</th>
  147. <tr> <td><a href="@aspectj.home.url@/dl">AspectJ</a>
  148. </td>
  149. <td>The AspectJ distribution contains binaries for the
  150. compiler, structure browser, and Ant taskdefs,
  151. as well as the documentation and examples.
  152. (Source code for AspectJ is available from the CVS
  153. repositories for the AspectJ project.)
  154. </td>
  155. </tr>
  156. <tr> <td><a href="http://eclipse.org/ajdt">AspectJ for Eclipse</a>
  157. </td>
  158. <td>AspectJ Development Environment support for
  159. Eclipse is available under the Common Public License 1.0
  160. from the eclipse.org project site
  161. <a href="http://eclipse.org/ajdt">
  162. http://eclipse.org/ajdt</a>
  163. </td>
  164. </tr>
  165. <tr> <td><a href="http://aspectj4emacs.sourceforge.net">
  166. AspectJ for Emacs</a>
  167. </td>
  168. <td>AspectJ Development Environment support for
  169. Emacs is available under the GPL
  170. from the sourceforge project site
  171. <a href="http://aspectj4emacs.sourceforge.net/">
  172. http://aspectj4emacs.sourceforge.net</a>
  173. </td>
  174. </tr>
  175. <tr> <td><a href="http://aspectj4jbuildr.sourceforge.net">
  176. AspectJ for JBuilder</a>
  177. </td>
  178. <td>AspectJ Development Environment support for
  179. JBuilder is available under the Mozilla Public License 1.1
  180. from the sourceforge project site
  181. <a href="http://aspectj4jbuildr.sourceforge.net/">
  182. http://aspectj4jbuildr.sourceforge.net</a>
  183. </td>
  184. </tr>
  185. <tr> <td><a href="http://aspectj4netbean.sourceforge.net">
  186. AspectJ for Netbeans</a>
  187. </td>
  188. <td>AspectJ Development Environment support for
  189. Netbeans is available under the Mozilla Public License 1.1
  190. from the sourceforge project site
  191. <a href="http://aspectj4netbean.sourceforge.net/">
  192. http://aspectj4netbean.sourceforge.net</a>
  193. </td>
  194. </tr>
  195. </table>
  196. <a name="resources"></a>
  197. <h3>Other AspectJ resources</h3>
  198. <table border="1">
  199. <tr> <th>Resources</th><th>Description</th>
  200. </tr>
  201. <tr> <td>Mail lists
  202. </td>
  203. </td>
  204. <td>
  205. AspectJ users
  206. discuss tips and
  207. best practices for writing AspectJ programs
  208. on the
  209. <a href="mailto:aspectj-users@dev.eclipse.org">
  210. aspectj-users@dev.eclipse.org</a> mail list.
  211. AspectJ Developers discuss issues with developing
  212. AspectJ on the
  213. <a href="mailto:aspectj-developers@dev.eclipse.org">
  214. aspectj-developers@dev.eclipse.org</a> list.
  215. You can subscribe to the announce list
  216. (<tt>aspectj-developers@dev.eclipse.org</tt>)
  217. to get occasional emails about AspectJ releases
  218. and relevant events.
  219. <tr> <td><a href="http://dev.eclipse.org/bugs">Bug database</a>
  220. </td>
  221. <td>Use Bugzilla to submit bugs against the AspectJ
  222. product components
  223. <tt>compiler</tt> (for the ajc compiler)
  224. <tt>ide</tt> (for AJBrowser and AJDE bugs),
  225. <tt>ant</tt> (for Ant tasks)
  226. and
  227. <tt>docs</tt> (for the documentation).
  228. </td> </tr>
  229. <tr> <td> <a href="http://aosd.net">http://aosd.net</a> - the AOSD web site
  230. </td>
  231. <td>This site has discussion and announcements related to
  232. aspect-oriented software development (AOSD) in general.
  233. Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
  234. to get and publish notices about AOSD
  235. workshops, conferences, and technology releases.
  236. Use <a href="mailto:announce@aosd.net">discuss@aosd.net</a>
  237. for general AOSD discussions.
  238. </td> </tr>
  239. </table>
  240. <p>
  241. <a name="paths"></a>
  242. <h3>Suggested paths for those new to AspectJ</h3>
  243. <p>
  244. To learn the AspectJ language, read the
  245. <a href="progguide/index.html">Programming Guide</a>,
  246. keeping the <a href="progguide/apb.html">Semantics appendix</a>
  247. nearby as the best reference for AspectJ usage.
  248. Focus initially on the join point model and
  249. pointcuts, concepts AOP adds to OOP.
  250. To see how the code works, tour your
  251. <!-- start strip -->
  252. <a href="../examples/">local</a>
  253. <!-- end strip -->
  254. examples as described in the
  255. <a href="progguide/ch03.html">Examples </a> section of the
  256. <a href="progguide/index.html">Programming Guide</a>.
  257. View and navigate the crosscutting structure using
  258. the <code>ajbrowser</code> structure viewer, as described in
  259. the <a href="devguide/rn02re04.html">ajbrowser</a> section of
  260. the <a href="devguide/index.html">Development Environment Guide</a>.
  261. <p>
  262. To start using AspectJ with your own code,
  263. modify the example aspects to apply to your classes.
  264. The <a href="devguide/index.html">Development Environment Guide</a>
  265. shows how to build using the command-line tools.
  266. As you learn,
  267. use the compiler's <code>-Xlint</code> flag to catch some common
  268. mistakes. (Understand that the
  269. <a href="progguide/apc.html">current implementation</a>
  270. is limited to code the compiler controls.)
  271. <p>
  272. To plan how to adopt AspectJ into a project, read the
  273. <a href="progguide/index.html">Programming Guide</a>
  274. on development- and production-time aspects
  275. and the <a href="faq.html">FAQ</a> entries for
  276. <a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
  277. <a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
  278. the Development tools sections
  279. (<a href="faq.html#q:integrateWithDevTools">one</a>,
  280. <a href="faq.html#devtools">two</a>), and
  281. <a href="faq.html#q:opensource">AspectJ as open-source</a>.
  282. </p>
  283. <p>
  284. Enjoy the language!
  285. </p>
  286. <p>
  287. The AspectJ Team
  288. </p>
  289. <hr>
  290. <small>
  291. <a href="#top">Top</a>
  292. </small>
  293. </body> </html>