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

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