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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  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-184.html">1.8.4</a>,
  127. <a href="README-183.html">1.8.3</a>,
  128. <a href="README-182.html">1.8.2</a>,
  129. <a href="README-181.html">1.8.1</a>,
  130. <a href="README-180.html">1.8.0</a>,
  131. <a href="README-174.html">1.7.4</a>,
  132. <a href="README-173.html">1.7.3</a>,
  133. <a href="README-172.html">1.7.2</a>,
  134. <a href="README-171.html">1.7.1</a>,
  135. <a href="README-170.html">1.7.0</a>,
  136. <a href="README-1612.html">1.6.12</a>,
  137. <a href="README-1611.html">1.6.11</a>,
  138. <a href="README-1610.html">1.6.10</a>,
  139. <a href="README-169.html">1.6.9</a>,
  140. <a href="README-168.html">1.6.8</a>,
  141. <a href="README-167.html">1.6.7</a>,
  142. <a href="README-166.html">1.6.6</a>,
  143. <a href="README-165.html">1.6.5</a>,
  144. <a href="README-164.html">1.6.4</a>,
  145. <a href="README-163.html">1.6.3</a>,
  146. <a href="README-162.html">1.6.2</a>,
  147. <a href="README-161.html">1.6.1</a>,
  148. <a href="README-160.html">1.6.0</a>,
  149. <a href="README-154.html">1.5.4</a>,
  150. <a href="README-153.html">1.5.3</a>,
  151. <a href="README-152.html">1.5.2</a>,
  152. <a href="README-151.html">1.5.1</a>,
  153. <a href="README-150.html">1.5.0</a>,
  154. <a href="README-121.html">1.2.1</a>,
  155. <a href="README-12.html">1.2.0</a>,
  156. <a href="README-11.html">1.1</a>, and
  157. <a href="porting.html">1.0</a>.
  158. </td> </tr>
  159. <tr> <td><a href="changes.html">Changes</a>
  160. </td>
  161. <td>Changes between the latest releases.
  162. </td> </tr>
  163. <tr> <td><a href="examples/">Examples</a>
  164. </td>
  165. <td>AspectJ code to demonstrate some language features and implement
  166. JavaBean properties, the Observer pattern, a tracing library,
  167. and a game application where aspects handle display updating.
  168. </td> </tr>
  169. </table>
  170. <a name="distributions"></a>
  171. <h3>AspectJ distributions</h3>
  172. <table border="1">
  173. <tr> <th>Distributions</th><th>Description</th></tr>
  174. <tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a>
  175. </td>
  176. <td>The AspectJ distribution contains binaries for the
  177. compiler, structure browser, and Ant taskdefs,
  178. as well as the documentation and examples.
  179. </td>
  180. </tr>
  181. <tr> <td><a href="http://eclipse.org/aspectj">AspectJ</a> source code
  182. </td>
  183. <td>Source code for AspectJ is available
  184. under the open-source
  185. <a href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License v1.0</a>
  186. license from the CVS
  187. repositories for the AspectJ project. See the
  188. <a href="faq.html#q:buildingsource">FAQ entry</a>.
  189. </td>
  190. </tr>
  191. <tr> <td><a href="http://eclipse.org/ajdt">AspectJ for Eclipse</a>
  192. </td>
  193. <td>AspectJ Development Environment support for
  194. Eclipse is available under Eclipse Public License v1.0
  195. from the eclipse.org project site
  196. <a href="http://eclipse.org/ajdt">
  197. http://eclipse.org/ajdt</a>
  198. </td>
  199. </tr>
  200. <tr> <td><a href="https://jdeveloperaop.dev.java.net/">
  201. Support for the JDeveloper IDE</a>
  202. </td>
  203. <td>Support for programming in AspectJ using the JDeveloper IDE
  204. is available under the Apache Software License
  205. from the java.net project site
  206. <a href="https://jdeveloperaop.dev.java.net/">
  207. https://jdeveloperaop.dev.java.net/</a>
  208. </td>
  209. </tr>
  210. </table>
  211. <a name="resources"></a>
  212. <h3>Other AspectJ resources</h3>
  213. <table border="1">
  214. <tr> <th>Resources</th><th>Description</th>
  215. </tr>
  216. <tr> <td>Mail lists
  217. </td>
  218. <td>
  219. AspectJ users discuss tips and
  220. best practices for writing AspectJ programs on
  221. <a href="mailto:aspectj-users@eclipse.org">
  222. aspectj-users@eclipse.org</a>.
  223. AspectJ developers discuss issues with developing
  224. the AspectJ tools on
  225. <a href="mailto:aspectj-dev@eclipse.org">
  226. aspectj-dev@eclipse.org</a>.
  227. To get occasional emails about AspectJ releases
  228. and relevant events, subscribe to
  229. <tt>aspectj-announce@eclipse.org</tt>.
  230. To view list archives or subscribe to the list, go to
  231. <a href="http://eclipse.org/aspectj">
  232. the AspectJ home page</a>.
  233. To find archived emails, use the Eclipse site
  234. <a href="http://www.eclipse.org/search/search.cgi">search page</a>.
  235. </td></tr>
  236. <tr> <td><a href="http://bugs.eclipse.org/bugs">Bug database</a>
  237. </td>
  238. <td>Use the Eclipse project's Bugzilla database
  239. to view and submit bugs against the AspectJ product components
  240. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Compiler">
  241. Compiler</a> (for the AspectJ compiler, ajc)
  242. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=IDE">
  243. IDE</a> (for AJBrowser and AJDE bugs),
  244. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Ant">
  245. Ant</a> (for the Ant tasks),
  246. and
  247. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;component=Docs">
  248. Docs</a> (for the documentation).
  249. Bugs all users should know about are
  250. <a href="http://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&amp;keywords=info">
  251. flagged with the "info" keyword</a>.
  252. See the
  253. <a href="faq.html#q:ajcbugs">
  254. FAQ entry</a> for instructions on submitting compiler bugs.
  255. </td> </tr>
  256. <tr> <td> <a href="http://aosd.net">http://aosd.net</a> - the AOSD web site
  257. </td>
  258. <td>This site has discussion and announcements related to
  259. aspect-oriented software development (AOSD) in general.
  260. Use <a href="mailto:announce@aosd.net">announce@aosd.net</a>
  261. to get and publish notices about AOSD
  262. workshops, conferences, and technology releases.
  263. Use <a href="mailto:discuss@aosd.net">discuss@aosd.net</a>
  264. for general AOSD discussions.
  265. </td> </tr>
  266. </table>
  267. <p/>
  268. <a name="paths"></a>
  269. <h3>Suggested paths for those new to AspectJ</h3>
  270. <p/>
  271. To learn the AspectJ language, read the
  272. <a href="progguide/index.html">Programming Guide</a>,
  273. keeping the <a href="progguide/semantics.html">Semantics appendix</a>
  274. nearby as the best reference for AspectJ usage.
  275. Focus initially on the join point model and
  276. pointcuts, concepts AOP adds to OOP.
  277. To read about how the <a href="examples/">examples</a> work,
  278. see the <a href="progguide/examples.html">Examples </a> section
  279. in the <a href="progguide/index.html">Programming Guide</a>.
  280. View and navigate the crosscutting structure using
  281. <a href="http://eclipse.org/ajdt">AJDT</a>; if you can't use Eclipse, try
  282. the <code>ajbrowser</code> structure viewer, as described in
  283. the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of
  284. the <a href="devguide/index.html">Development Environment Guide</a>.
  285. <p/>
  286. To start using AspectJ with your own code,
  287. modify the example aspects to apply to your classes.
  288. As you learn,
  289. use the compiler's <code>-Xlint</code> flags to catch some common
  290. mistakes. (Understand that the
  291. <a href="progguide/implementation.html">current implementation</a>
  292. is limited to code the compiler controls.)
  293. <p>
  294. To plan how to adopt AspectJ into a project, read the
  295. <a href="progguide/index.html">Programming Guide</a>
  296. on development- and production-time aspects
  297. and the <a href="faq.html">FAQ</a> entries for
  298. <a href="faq.html#q:startUsingAJ">How should I start using AspectJ?</a>,
  299. <a href="faq.html#adoption">Deciding to adopt AspectJ</a>,
  300. the Development tools sections
  301. (<a href="faq.html#q:integrateWithDevTools">one</a>,
  302. <a href="faq.html#devtools">two</a>,
  303. <a href="faq.html#ltw">Load-time weaving</a>
  304. ), and
  305. <a href="faq.html#q:opensource">AspectJ as open-source</a>.
  306. </p>
  307. <p>
  308. Enjoy the language!
  309. </p>
  310. <p>
  311. The AspectJ Team
  312. </p>
  313. <hr/>
  314. <small>
  315. <a href="#top">Top</a>
  316. </small>
  317. </body> </html>