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 13KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335
  1. <html>
  2. <head>
  3. <title>AspectJ Documentation and Resources</title>
  4. </head>
  5. <body>
  6. <a name="top"></a>
  7. <h1>AspectJ Documentation and Resources</h1>
  8. <p/>
  9. AspectJ <sup><small>tm</small></sup>
  10. is a seamless aspect-oriented extension to
  11. Java<sup><small>tm</small></sup>.
  12. The compiler and development tools are available under
  13. an open-source license, require Java 1.3 to run, and produce
  14. code that runs in JDK 1.1 and later VM's.
  15. For the latest materials, see
  16. <a href="http://eclipse.org/aspectj">http://eclipse.org/aspectj</a>.
  17. Not all of these materials have been updated for AspectJ 5.
  18. <p/>
  19. <table>
  20. <tr><td><u>Section</u></td><td><u>Contents</u></td></tr>
  21. <tr><td><a href="#documentation">docs</a></td><td>
  22. <a href="faq.html">FAQ</a>,
  23. <a href="quick5.pdf">Quick Reference (AspectJ 5)</a>,
  24. <a href="quick.pdf">Quick Reference (1.2.1)</a>,
  25. <a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>,
  26. <a href="progguide/index.html">programming</a>,
  27. <a href="devguide/index.html">development</a> and
  28. <a href="pdguide/index.html">problem diagnosis</a> guides,
  29. <a href="runtime-api/index.html">API</a> and
  30. <a href="examples/">example code</a>.
  31. </td></tr>
  32. <tr><td><a href="#distributions">distributions</a></td><td>
  33. <a href="http://eclipse.org/aspectj">AspectJ</a>;
  34. development environment support for
  35. <a href="http://eclipse.org/ajdt">Eclipse</a>
  36. and
  37. <a href="https://jdeveloperaop.dev.java.net/">JDeveloper</a>.
  38. </td></tr>
  39. <tr><td><a href="#resources">resources</a></td><td>
  40. <a href="http://aosd.net">aosd.net</a>;
  41. <a href="http://eclipse.org/aspectj">AspectJ project</a>
  42. the bug <a href="http://bugs.eclipse.org/bugs">db</a>,
  43. and mailing lists for
  44. <a href="mailto:aspectj-users@eclipse.org">users</a> and
  45. <a href="mailto:aspectj-dev@eclipse.org">developers</a>.
  46. </td></tr>
  47. <tr><td><a href="#paths">paths</a> </td><td>for those new to AspectJ
  48. </td></tr>
  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="quick5.pdf"> AspectJ 5 Quick Reference</a>
  57. </td>
  58. <td>This is a four-page quick reference for the AspectJ 5 language.
  59. </td> </tr>
  60. <tr> <td><a href="quick.pdf"> AspectJ Quick Reference</a>
  61. </td>
  62. <td>This is a two-page quick reference for the AspectJ language.
  63. </td> </tr>
  64. <tr> <td><a href="adk15notebook/index.html">AspectJ 5 Developer's Notebook</a>
  65. (printable <a href="adk15notebook/printable.html">html</a>)
  66. </td>
  67. <td>This describes the changes to the AspectJ language and tools introduced
  68. in the AspectJ 5 Development Kit. These changes are additive, and are not yet
  69. reflected in the programming guide or quick reference.</td>
  70. </tr>
  71. <tr> <td><a href="progguide/index.html">Programming Guide</a>
  72. (printable <a href="progguide/printable.html">html</a>)
  73. </td>
  74. <td>This introduces AOP and the AspectJ language.
  75. <a href="progguide/starting.html">Getting Started</a>
  76. describes basic semantics, and shows development- and production-time applications.
  77. <a href="progguide/language.html">The AspectJ Language</a>
  78. describes join points, pointcuts, advice, and introduction, all features new to AOP.
  79. <a href="progguide/examples.html">Examples</a> walks you through the
  80. examples included with the documentation, and there are two short
  81. chapters on useful <a href="progguide/idioms.html">Idioms</a> and a
  82. few <a href="progguide/pitfalls.html">Pitfalls</a>
  83. The appendices have reference information:
  84. the <a href="progguide/quick.html">Quick Reference</a>
  85. summarizes AspectJ syntax,
  86. the <a href="progguide/semantics.html">Language Semantics</a>
  87. best describes AspectJ usage, and
  88. <a href="progguide/implementation.html">Implementation Notes</a>
  89. describes how
  90. the current version is limited to code the compiler controls.</td>
  91. </tr>
  92. <tr> <td><a href="devguide/index.html">Development Environment Guide</a>
  93. <br/>
  94. (printable <a href="devguide/printable.html">html</a>)
  95. </td>
  96. <td>This is a guide to
  97. <a href="devguide/ajc-ref.html">ajc</a>, the command-line compiler;
  98. <a href="devguide/ajbrowser.html">ajbrowser</a>, the stand-alone
  99. GUI for compiling and viewing crosscutting structure;
  100. and the <a href="devguide/antTasks.html">Ant tasks</a>
  101. for building AspectJ programs.
  102. </td>
  103. </tr>
  104. <tr> <td><a href="pdguide/index.html">Problem Diagnosis Guide</a>
  105. <br/>
  106. (printable <a href="pdguide/printable.html">html</a>)
  107. </td>
  108. <td>This has a guide to
  109. the various features available such as messages and trace to help you both solve problems
  110. with you own programs and report bugs to the AspectJ team.
  111. </td>
  112. </tr>
  113. <tr> <td><a href="runtime-api/index.html">AspectJ API</a>
  114. </td>
  115. <td>API documentation for AspectJ runtime classes. <tt>JoinPoint</tt>
  116. shows the state automatically available at each join point.
  117. See also the <a href="weaver-api/index.html">Weaver API</a>
  118. </td> </tr>
  119. <tr> <td><a href="faq.html"> FAQ</a>
  120. </td>
  121. <td>Frequently-asked questions about the AspectJ language, tools, and project.
  122. </td> </tr>
  123. <tr> <td>README's
  124. </td>
  125. <td>Changes and porting guide for AspectJ
  126. <a href="README-1613.html">1.6.13</a>,
  127. <a href="README-1612.html">1.6.12</a>,
  128. <a href="README-1611.html">1.6.11</a>,
  129. <a href="README-1610.html">1.6.10</a>,
  130. <a href="README-169.html">1.6.9</a>,
  131. <a href="README-168.html">1.6.8</a>,
  132. <a href="README-167.html">1.6.7</a>,
  133. <a href="README-166.html">1.6.6</a>,
  134. <a href="README-165.html">1.6.5</a>,
  135. <a href="README-164.html">1.6.4</a>,
  136. <a href="README-163.html">1.6.3</a>,
  137. <a href="README-162.html">1.6.2</a>,
  138. <a href="README-161.html">1.6.1</a>,
  139. <a href="README-160.html">1.6.0</a>,
  140. <a href="README-154.html">1.5.4</a>,
  141. <a href="README-153.html">1.5.3</a>,
  142. <a href="README-152.html">1.5.2</a>,
  143. <a href="README-151.html">1.5.1</a>,
  144. <a href="README-150.html">1.5.0</a>,
  145. <a href="README-121.html">1.2.1</a>,
  146. <a href="README-12.html">1.2.0</a>,
  147. <a href="README-11.html">1.1</a>, and
  148. <a href="porting.html">1.0</a>.
  149. </td> </tr>
  150. <tr> <td><a href="changes.html">Changes</a>
  151. </td>
  152. <td>Changes between the latest releases.
  153. </td> </tr>
  154. <tr> <td><a href="examples/">Examples</a>
  155. </td>
  156. <td>AspectJ code to demonstrate some language features and implement
  157. JavaBean properties, the Observer pattern, a tracing library,
  158. and a game application where aspects handle display updating.
  159. </td> </tr>
  160. </table>
  161. <a name="distributions"></a>
  162. <h3>AspectJ distributions</h3>
  163. <table border="1">
  164. <tr> <th>Distributions</th><th>Description</th></tr>
  165. <tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a>
  166. </td>
  167. <td>The AspectJ distribution contains binaries for the
  168. compiler, structure browser, and Ant taskdefs,
  169. as well as the documentation and examples.
  170. </td>
  171. </tr>
  172. <tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a> source code
  173. </td>
  174. <td>Source code for AspectJ is available
  175. under the open-source
  176. <a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License v1.0</a>
  177. license from the CVS
  178. repositories for the AspectJ project. See the
  179. <a href="faq.html#q:buildingsource">FAQ entry</a>.
  180. </td>
  181. </tr>
  182. <tr> <td><a href="http://eclipse.org/ajdt">AspectJ for Eclipse</a>
  183. </td>
  184. <td>AspectJ Development Environment support for
  185. Eclipse is available under Eclipse Public License v1.0
  186. from the eclipse.org project site
  187. <a href="http://eclipse.org/ajdt">
  188. http://eclipse.org/ajdt</a>
  189. </td>
  190. </tr>
  191. <tr> <td><a href="https://jdeveloperaop.dev.java.net/">
  192. Support for the JDeveloper IDE</a>
  193. </td>
  194. <td>Support for programming in AspectJ using the JDeveloper IDE
  195. is available under the Apache Software License
  196. from the java.net project site
  197. <a href="https://jdeveloperaop.dev.java.net/">
  198. https://jdeveloperaop.dev.java.net/</a>
  199. </td>
  200. </tr>
  201. </table>
  202. <a name="resources"></a>
  203. <h3>Other AspectJ resources</h3>
  204. <table border="1">
  205. <tr> <th>Resources</th><th>Description</th>
  206. </tr>
  207. <tr> <td>Mail lists
  208. </td>
  209. <td>
  210. AspectJ users discuss tips and
  211. best practices for writing AspectJ programs on
  212. <a href="mailto:aspectj-users@eclipse.org">
  213. aspectj-users@eclipse.org</a>.
  214. AspectJ developers discuss issues with developing
  215. the AspectJ tools on
  216. <a href="mailto:aspectj-dev@eclipse.org">
  217. aspectj-dev@eclipse.org</a>.
  218. To get occasional emails about AspectJ releases
  219. and relevant events, subscribe to
  220. <tt>aspectj-announce@eclipse.org</tt>.
  221. To view list archives or subscribe to the list, go to
  222. <a href="http://eclipse.org/aspectj">
  223. the AspectJ home page</a>.
  224. To find archived emails, use the Eclipse site
  225. <a href="http://www.eclipse.org/search/search.cgi">search page</a>.
  226. </td></tr>
  227. <tr> <td><a href="http://bugs.eclipse.org/bugs">Bug database</a>
  228. </td>
  229. <td>Use the Eclipse project's Bugzilla database
  230. to view and submit bugs against the AspectJ product components
  231. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Compiler">
  232. Compiler</a> (for the AspectJ compiler, ajc)
  233. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=IDE">
  234. IDE</a> (for AJBrowser and AJDE bugs),
  235. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Ant">
  236. Ant</a> (for the Ant tasks),
  237. and
  238. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Docs">
  239. Docs</a> (for the documentation).
  240. Bugs all users should know about are
  241. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;keywords=info">
  242. flagged with the "info" keyword</a>.
  243. See the
  244. <a href="faq.html#q:ajcbugs">
  245. FAQ entry</a> for instructions on submitting compiler bugs.
  246. </td> </tr>
  247. <tr> <td> <a href="http://aosd.net">http://aosd.net</a> - the AOSD web site
  248. </td>
  249. <td>This site has discussion and announcements related to
  250. aspect-oriented software development (AOSD) in general.
  251. Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
  252. to get and publish notices about AOSD
  253. workshops, conferences, and technology releases.
  254. Use <a href="mailto:discuss@aosd.net">discuss@aosd.net</a>
  255. for general AOSD discussions.
  256. </td> </tr>
  257. </table>
  258. <p/>
  259. <a name="paths"></a>
  260. <h3>Suggested paths for those new to AspectJ</h3>
  261. <p/>
  262. To learn the AspectJ language, read the
  263. <a href="progguide/index.html">Programming Guide</a>,
  264. keeping the <a href="progguide/semantics.html">Semantics appendix</a>
  265. nearby as the best reference for AspectJ usage.
  266. Focus initially on the join point model and
  267. pointcuts, concepts AOP adds to OOP.
  268. To read about how the <a href="examples/">examples</a> work,
  269. see the <a href="progguide/examples.html">Examples </a> section
  270. in the <a href="progguide/index.html">Programming Guide</a>.
  271. View and navigate the crosscutting structure using
  272. <a href="http://eclipse.org/ajdt">AJDT</a>; if you can't use Eclipse, try
  273. the <code>ajbrowser</code> structure viewer, as described in
  274. the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of
  275. the <a href="devguide/index.html">Development Environment Guide</a>.
  276. <p/>
  277. To start using AspectJ with your own code,
  278. modify the example aspects to apply to your classes.
  279. As you learn,
  280. use the compiler's <code>-Xlint</code> flags to catch some common
  281. mistakes. (Understand that the
  282. <a href="progguide/implementation.html">current implementation</a>
  283. is limited to code the compiler controls.)
  284. <p>
  285. To plan how to adopt AspectJ into a project, read the
  286. <a href="progguide/index.html">Programming Guide</a>
  287. on development- and production-time aspects
  288. and the <a href="faq.html">FAQ</a> entries for
  289. <a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
  290. <a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
  291. the Development tools sections
  292. (<a href="faq.html#q:integrateWithDevTools">one</a>,
  293. <a href="faq.html#devtools">two</a>,
  294. <a href="faq.html#ltw">Load-time weaving</a>
  295. ), and
  296. <a href="faq.html#q:opensource">AspectJ as open-source</a>.
  297. </p>
  298. <p>
  299. Enjoy the language!
  300. </p>
  301. <p>
  302. The AspectJ Team
  303. </p>
  304. <hr/>
  305. <small>
  306. <a href="#top">Top</a>
  307. </small>
  308. </body> </html>