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.adoc 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. [[top]]
  2. == AspectJ Documentation and Resources
  3. AspectJ^TM^ is a seamless aspect-oriented extension to
  4. Java^TM^. The compiler and development tools are available
  5. under an open-source license, require Java 8 to run, and produce code
  6. that runs in JDK 1.3 and later VM's. For the latest materials, see
  7. https://eclipse.org/aspectj. Not all of these materials have been updated
  8. for AspectJ 5.
  9. [cols=",",]
  10. |===
  11. |+++Section+++ |+++Contents+++
  12. |xref:#documentation[Documentation] |xref:faq/faq.adoc#faq[FAQ], xref:dist/doc/quick5.pdf[Quick
  13. Reference (AspectJ 5)], xref:dist/doc/quick.pdf[Quick Reference (1.2.1)],
  14. xref:adk15notebook/index.adoc[AspectJ 5 Developer's Notebook],
  15. xref:progguide/index.adoc[programming],
  16. xref:devguide/index.adoc[development] and
  17. xref:pdguide/index.adoc[problem diagnosis] guides,
  18. link:runtime-api/index.html[API] and link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[example code].
  19. |xref:#distributions[Distributions]
  20. |https://eclipse.org/aspectj[AspectJ]; development environment support
  21. for https://eclipse.org/ajdt[Eclipse].
  22. |xref:#resources[Other resources] |https://eclipse.org/aspectj[AspectJ project], the bug
  23. https://bugs.eclipse.org/bugs[db], and mailing lists for
  24. mailto:aspectj-users@eclipse.org[users] and
  25. mailto:aspectj-dev@eclipse.org[developers].
  26. |xref:#paths[Learning paths] |for those new to AspectJ
  27. |===
  28. [[documentation]]
  29. === AspectJ documentation
  30. [width="100%",cols="50%,50%",options="header",]
  31. |===
  32. |Documentation |Description
  33. |xref:dist/doc/quick5.pdf[AspectJ 5 Quick Reference] |This is a four-page quick
  34. reference for the AspectJ 5 language.
  35. |xref:dist/doc/quick.pdf[AspectJ Quick Reference] |This is a two-page quick
  36. reference for the AspectJ language.
  37. |xref:adk15notebook/index.adoc[AspectJ 5 Developer's Notebook] +
  38. (xref:adk15notebook/adk15notebook.adoc[single page]) |This describes the
  39. changes to the AspectJ language and tools introduced in the AspectJ 5
  40. Development Kit. These changes are additive, and are not yet reflected
  41. in the programming guide or quick reference.
  42. |xref:progguide/index.adoc[Programming Guide] +
  43. (xref:progguide/progguide.adoc[single page]) |This introduces AOP and the
  44. AspectJ language. xref:progguide/gettingstarted.adoc[Getting Started]
  45. describes basic semantics, and shows development- and production-time
  46. applications. xref:progguide/language.adoc[The AspectJ Language]
  47. describes join points, pointcuts, advice, and introduction, all features
  48. new to AOP. xref:progguide/examples.adoc[Examples] walks you through the
  49. examples included with the documentation, and there are two short
  50. chapters on useful xref:progguide/idioms.adoc[Idioms] and a few
  51. xref:progguide/pitfalls.html[Pitfalls] The appendices have reference
  52. information: the xref:progguide/quickreference.adoc[Quick Reference] summarizes
  53. AspectJ syntax, the xref:progguide/semantics.adoc[Language Semantics]
  54. best describes AspectJ usage, and
  55. xref:progguide/implementation.adoc[Implementation Notes] describes how
  56. the current version is limited to code the compiler controls.
  57. |xref:devguide/index.adoc[Development Environment Guide] +
  58. (xref:devguide/devguide.adoc[single page]) |This is a guide to
  59. xref:devguide/ajc.adoc[ajc], the command-line compiler;
  60. and the
  61. xref:devguide/antsupport.adoc[Ant tasks] for building AspectJ programs.
  62. |xref:pdguide/index.adoc[Problem Diagnosis Guide] +
  63. (xref:pdguide/pdguide.adoc[single page]) |This has a guide to the
  64. various features available such as messages and trace to help you both
  65. solve problems with you own programs and report bugs to the AspectJ
  66. team.
  67. |xref:runtime-api/index.html[AspectJ API] |API documentation for AspectJ
  68. runtime classes. JoinPoint shows the state automatically available at
  69. each join point. See also the xref:weaver-api/index.html[Weaver API]
  70. |xref:faq/faq.adoc#faq[FAQ] |Frequently-asked questions about the AspectJ
  71. language, tools, and project.
  72. |README's |Changes and porting guide for AspectJ
  73. xref:dist/doc/README-1.9.21.adoc[1.9.21],
  74. xref:dist/doc/README-1.9.20.adoc[1.9.20 and 1.9.20.1], xref:dist/doc/README-1.9.19.adoc[1.9.19],
  75. xref:dist/doc/README-1.9.9.adoc[1.9.9 and 1.9.9.1], xref:dist/doc/README-1.9.8.adoc[1.9.8],
  76. xref:dist/doc/README-1.9.7.adoc[1.9.7], xref:dist/doc/README-1.9.6.adoc[1.9.6],
  77. xref:dist/doc/README-1.9.5.adoc[1.9.5], xref:dist/doc/README-1.9.4.adoc[1.9.4],
  78. xref:dist/doc/README-1.9.3.adoc[1.9.3], xref:dist/doc/README-1.9.2.adoc[1.9.2],
  79. xref:dist/doc/README-1.9.1.adoc[1.9.1], xref:dist/doc/README-1.9.0.adoc[1.9.0],
  80. xref:dist/doc/README-1.8.11.adoc[1.8.11], xref:dist/doc/README-1.8.10.adoc[1.8.10],
  81. xref:dist/doc/README-1.8.9.adoc[1.8.9], xref:dist/doc/README-1.8.8.adoc[1.8.8],
  82. xref:dist/doc/README-1.8.7.adoc[1.8.7], xref:dist/doc/README-1.8.6.adoc[1.8.6],
  83. xref:dist/doc/README-1.8.5.adoc[1.8.5], xref:dist/doc/README-1.8.4.adoc[1.8.4],
  84. xref:dist/doc/README-1.8.3.adoc[1.8.3], xref:dist/doc/README-1.8.2.adoc[1.8.2],
  85. xref:dist/doc/README-1.8.1.adoc[1.8.1], xref:dist/doc/README-1.8.0.adoc[1.8.0],
  86. xref:dist/doc/README-1.7.4.adoc[1.7.4], xref:dist/doc/README-1.7.3.adoc[1.7.3],
  87. xref:dist/doc/README-1.7.2.adoc[1.7.2], xref:dist/doc/README-1.7.1.adoc[1.7.1],
  88. xref:dist/doc/README-1.7.0.adoc[1.7.0], xref:dist/doc/README-1.6.12.adoc[1.6.12],
  89. xref:dist/doc/README-1.6.11.adoc[1.6.11], xref:dist/doc/README-1.6.10.adoc[1.6.10],
  90. xref:dist/doc/README-1.6.9.adoc[1.6.9], xref:dist/doc/README-1.6.8.adoc[1.6.8],
  91. xref:dist/doc/README-1.6.7.adoc[1.6.7], xref:dist/doc/README-1.6.6.adoc[1.6.6],
  92. xref:dist/doc/README-1.6.5.adoc[1.6.5], xref:dist/doc/README-1.6.4.adoc[1.6.4],
  93. xref:dist/doc/README-1.6.3.adoc[1.6.3], xref:dist/doc/README-1.6.2.adoc[1.6.2],
  94. xref:dist/doc/README-1.6.1.adoc[1.6.1], xref:dist/doc/README-1.6.0.adoc[1.6.0],
  95. xref:dist/doc/README-1.5.4.adoc[1.5.4], xref:dist/doc/README-1.5.3.adoc[1.5.3],
  96. xref:dist/doc/README-1.5.2.adoc[1.5.2], xref:dist/doc/README-1.5.1.adoc[1.5.1],
  97. xref:dist/doc/README-1.5.0.adoc[1.5.0], xref:dist/doc/README-1.2.1.adoc[1.2.1],
  98. xref:dist/doc/README-1.2.adoc[1.2.0], xref:dist/doc/README-1.1.adoc[1.1],
  99. xref:dist/doc/porting.adoc[1.0].
  100. |xref:dist/doc/changes.adoc[Changes] |Changes between historical releases up to 1.6.0.
  101. |link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[Examples] |AspectJ code to demonstrate some language
  102. features and implement JavaBean properties, the Observer pattern, a
  103. tracing library, and a game application where aspects handle display
  104. updating.
  105. | xref:developer/index.adoc[AspectJ Design Overview] +
  106. (xref:developer/design-overview.adoc[single page]) |Introductory information about
  107. AspectJ language design, developer guides, module structure
  108. |===
  109. [[distributions]]
  110. === AspectJ distributions
  111. [cols=",",options="header",]
  112. |===
  113. |Distributions |Description
  114. |https://eclipse.org/aspectj[AspectJ] |The AspectJ distribution contains
  115. binaries for the compiler, structure browser, and Ant taskdefs, as well
  116. as the documentation and examples.
  117. |https://eclipse.org/aspectj[AspectJ] source code |Source code for
  118. AspectJ is available under the open-source
  119. https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt[Eclipse Public
  120. License v 2.0] license from the Git repositories for the AspectJ
  121. project. See the xref:faq/faq.adoc#buildingsource[FAQ entry].
  122. |https://eclipse.org/ajdt[AspectJ for Eclipse] |AspectJ Development
  123. Environment support for Eclipse is available under Eclipse Public
  124. License v 1.0 from the eclipse.org project site https://eclipse.org/ajdt
  125. |===
  126. [[resources]]
  127. === Other AspectJ resources
  128. [cols=",",options="header",]
  129. |===
  130. |Resources |Description
  131. |Mail lists |AspectJ users discuss tips and best practices for writing
  132. AspectJ programs on aspectj-users@eclipse.org. AspectJ developers
  133. discuss issues with developing the AspectJ tools on
  134. aspectj-dev@eclipse.org. To get occasional emails about AspectJ releases
  135. and relevant events, subscribe to aspectj-announce@eclipse.org. To view
  136. list archives or subscribe to the list, go to
  137. https://eclipse.org/aspectj[the AspectJ home page]. To find archived
  138. emails, use the Eclipse site
  139. https://www.eclipse.org/search/search.cgi[search page].
  140. |https://bugs.eclipse.org/bugs[Bug database] |Use the Eclipse project's
  141. Bugzilla database to view and submit bugs against the AspectJ product
  142. components
  143. https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler[Compiler]
  144. (for the AspectJ compiler, ajc)
  145. https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=IDE[IDE]
  146. (for AJDE bugs),
  147. https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Ant[Ant]
  148. (for the Ant tasks), and
  149. https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Docs[Docs]
  150. (for the documentation). Bugs all users should know about are
  151. https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&keywords=info[flagged
  152. with the "info" keyword]. See the xref:faq/faq.adoc#ajcbugs[FAQ entry] for
  153. instructions on submitting compiler bugs.
  154. |===
  155. [[paths]]
  156. === Suggested learning paths for those new to AspectJ
  157. To learn the AspectJ language, read the
  158. xref:progguide/index.adoc[Programming Guide], keeping the
  159. xref:progguide/semantics.adoc[Semantics appendix] nearby as the best
  160. reference for AspectJ usage. Focus initially on the join point model and
  161. pointcuts, concepts AOP adds to OOP. To read about how the
  162. link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[examples] work, see the
  163. xref:progguide/examples.adoc[Examples] section in the
  164. xref:progguide/index.adoc[Programming Guide]. View and navigate the
  165. crosscutting structure using https://eclipse.org/ajdt[AJDT].
  166. To start using AspectJ with your own code, modify the example aspects to
  167. apply to your classes. As you learn, use the compiler's `-Xlint` flags
  168. to catch some common mistakes. (Understand that the
  169. xref:progguide/implementation.adoc[current implementation] is limited to
  170. code the compiler controls.)
  171. To plan how to adopt AspectJ into a project, read the
  172. xref:progguide/index.adoc[Programming Guide] on development- and
  173. production-time aspects and the FAQ entries for
  174. xref:faq/faq.adoc#howToStartUsing[How should I start using AspectJ?],
  175. xref:faq/faq.adoc#adoption[Deciding to adopt AspectJ], the Development tools
  176. sections (xref:faq/faq.adoc#integrateWithDevTools[How does AspectJ integrate with existing Java development tools?],
  177. xref:faq/faq.adoc#devtools[Integrating AspectJ into your development environment], xref:faq/faq.adoc#ltw[Load-time weaving]), and
  178. xref:faq/faq.adoc#opensource[AspectJ as open-source].
  179. Enjoy the language!
  180. The AspectJ Team
  181. '''''
  182. [.small]#xref:#top[Top]#