[[top]] == AspectJ Documentation and Resources AspectJ^TM^ is a seamless aspect-oriented extension to Java^TM^. The compiler and development tools are available under an open-source license, require Java 8 to run, and produce code that runs in JDK 1.3 and later VM's. For the latest materials, see https://eclipse.org/aspectj. Not all of these materials have been updated for AspectJ 5. [cols=",",] |=== |+++Section+++ |+++Contents+++ |xref:#documentation[Documentation] |xref:faq/faq.adoc#faq[FAQ], xref:dist/doc/quick5.pdf[Quick Reference (AspectJ 5)], xref:dist/doc/quick.pdf[Quick Reference (1.2.1)], xref:adk15notebook/index.adoc[AspectJ 5 Developer's Notebook], xref:progguide/index.adoc[programming], xref:devguide/index.adoc[development] and xref:pdguide/index.adoc[problem diagnosis] guides, link:runtime-api/index.html[API] and link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[example code]. |xref:#distributions[Distributions] |https://eclipse.org/aspectj[AspectJ]; development environment support for https://eclipse.org/ajdt[Eclipse]. |xref:#resources[Other resources] |https://eclipse.org/aspectj[AspectJ project], the bug https://bugs.eclipse.org/bugs[db], and mailing lists for mailto:aspectj-users@eclipse.org[users] and mailto:aspectj-dev@eclipse.org[developers]. |xref:#paths[Learning paths] |for those new to AspectJ |=== [[documentation]] === AspectJ documentation [width="100%",cols="50%,50%",options="header",] |=== |Documentation |Description |xref:dist/doc/quick5.pdf[AspectJ 5 Quick Reference] |This is a four-page quick reference for the AspectJ 5 language. |xref:dist/doc/quick.pdf[AspectJ Quick Reference] |This is a two-page quick reference for the AspectJ language. |xref:adk15notebook/index.adoc[AspectJ 5 Developer's Notebook] + (xref:adk15notebook/adk15notebook.adoc[single page]) |This describes the changes to the AspectJ language and tools introduced in the AspectJ 5 Development Kit. These changes are additive, and are not yet reflected in the programming guide or quick reference. |xref:progguide/index.adoc[Programming Guide] + (xref:progguide/progguide.adoc[single page]) |This introduces AOP and the AspectJ language. xref:progguide/gettingstarted.adoc[Getting Started] describes basic semantics, and shows development- and production-time applications. xref:progguide/language.adoc[The AspectJ Language] describes join points, pointcuts, advice, and introduction, all features new to AOP. xref:progguide/examples.adoc[Examples] walks you through the examples included with the documentation, and there are two short chapters on useful xref:progguide/idioms.adoc[Idioms] and a few xref:progguide/pitfalls.html[Pitfalls] The appendices have reference information: the xref:progguide/quickreference.adoc[Quick Reference] summarizes AspectJ syntax, the xref:progguide/semantics.adoc[Language Semantics] best describes AspectJ usage, and xref:progguide/implementation.adoc[Implementation Notes] describes how the current version is limited to code the compiler controls. |xref:devguide/index.adoc[Development Environment Guide] + (xref:devguide/devguide.adoc[single page]) |This is a guide to xref:devguide/ajc.adoc[ajc], the command-line compiler; and the xref:devguide/antsupport.adoc[Ant tasks] for building AspectJ programs. |xref:pdguide/index.adoc[Problem Diagnosis Guide] + (xref:pdguide/pdguide.adoc[single page]) |This has a guide to the various features available such as messages and trace to help you both solve problems with you own programs and report bugs to the AspectJ team. |xref:runtime-api/index.html[AspectJ API] |API documentation for AspectJ runtime classes. JoinPoint shows the state automatically available at each join point. See also the xref:weaver-api/index.html[Weaver API] |xref:faq/faq.adoc#faq[FAQ] |Frequently-asked questions about the AspectJ language, tools, and project. |README's |Changes and porting guide for AspectJ xref:dist/doc/README-1.9.21.adoc[1.9.21], 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], 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], xref:dist/doc/README-1.9.7.adoc[1.9.7], xref:dist/doc/README-1.9.6.adoc[1.9.6], xref:dist/doc/README-1.9.5.adoc[1.9.5], xref:dist/doc/README-1.9.4.adoc[1.9.4], xref:dist/doc/README-1.9.3.adoc[1.9.3], xref:dist/doc/README-1.9.2.adoc[1.9.2], xref:dist/doc/README-1.9.1.adoc[1.9.1], xref:dist/doc/README-1.9.0.adoc[1.9.0], xref:dist/doc/README-1.8.11.adoc[1.8.11], xref:dist/doc/README-1.8.10.adoc[1.8.10], xref:dist/doc/README-1.8.9.adoc[1.8.9], xref:dist/doc/README-1.8.8.adoc[1.8.8], xref:dist/doc/README-1.8.7.adoc[1.8.7], xref:dist/doc/README-1.8.6.adoc[1.8.6], xref:dist/doc/README-1.8.5.adoc[1.8.5], xref:dist/doc/README-1.8.4.adoc[1.8.4], xref:dist/doc/README-1.8.3.adoc[1.8.3], xref:dist/doc/README-1.8.2.adoc[1.8.2], xref:dist/doc/README-1.8.1.adoc[1.8.1], xref:dist/doc/README-1.8.0.adoc[1.8.0], xref:dist/doc/README-1.7.4.adoc[1.7.4], xref:dist/doc/README-1.7.3.adoc[1.7.3], xref:dist/doc/README-1.7.2.adoc[1.7.2], xref:dist/doc/README-1.7.1.adoc[1.7.1], xref:dist/doc/README-1.7.0.adoc[1.7.0], xref:dist/doc/README-1.6.12.adoc[1.6.12], xref:dist/doc/README-1.6.11.adoc[1.6.11], xref:dist/doc/README-1.6.10.adoc[1.6.10], xref:dist/doc/README-1.6.9.adoc[1.6.9], xref:dist/doc/README-1.6.8.adoc[1.6.8], xref:dist/doc/README-1.6.7.adoc[1.6.7], xref:dist/doc/README-1.6.6.adoc[1.6.6], xref:dist/doc/README-1.6.5.adoc[1.6.5], xref:dist/doc/README-1.6.4.adoc[1.6.4], xref:dist/doc/README-1.6.3.adoc[1.6.3], xref:dist/doc/README-1.6.2.adoc[1.6.2], xref:dist/doc/README-1.6.1.adoc[1.6.1], xref:dist/doc/README-1.6.0.adoc[1.6.0], xref:dist/doc/README-1.5.4.adoc[1.5.4], xref:dist/doc/README-1.5.3.adoc[1.5.3], xref:dist/doc/README-1.5.2.adoc[1.5.2], xref:dist/doc/README-1.5.1.adoc[1.5.1], xref:dist/doc/README-1.5.0.adoc[1.5.0], xref:dist/doc/README-1.2.1.adoc[1.2.1], xref:dist/doc/README-1.2.adoc[1.2.0], xref:dist/doc/README-1.1.adoc[1.1], xref:dist/doc/porting.adoc[1.0]. |xref:dist/doc/changes.adoc[Changes] |Changes between historical releases up to 1.6.0. |link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[Examples] |AspectJ code to demonstrate some language features and implement JavaBean properties, the Observer pattern, a tracing library, and a game application where aspects handle display updating. | xref:developer/index.adoc[AspectJ Design Overview] + (xref:developer/design-overview.adoc[single page]) |Introductory information about AspectJ language design, developer guides, module structure |=== [[distributions]] === AspectJ distributions [cols=",",options="header",] |=== |Distributions |Description |https://eclipse.org/aspectj[AspectJ] |The AspectJ distribution contains binaries for the compiler, structure browser, and Ant taskdefs, as well as the documentation and examples. |https://eclipse.org/aspectj[AspectJ] source code |Source code for AspectJ is available under the open-source https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt[Eclipse Public License v 2.0] license from the Git repositories for the AspectJ project. See the xref:faq/faq.adoc#buildingsource[FAQ entry]. |https://eclipse.org/ajdt[AspectJ for Eclipse] |AspectJ Development Environment support for Eclipse is available under Eclipse Public License v 1.0 from the eclipse.org project site https://eclipse.org/ajdt |=== [[resources]] === Other AspectJ resources [cols=",",options="header",] |=== |Resources |Description |Mail lists |AspectJ users discuss tips and best practices for writing AspectJ programs on aspectj-users@eclipse.org. AspectJ developers discuss issues with developing the AspectJ tools on aspectj-dev@eclipse.org. To get occasional emails about AspectJ releases and relevant events, subscribe to aspectj-announce@eclipse.org. To view list archives or subscribe to the list, go to https://eclipse.org/aspectj[the AspectJ home page]. To find archived emails, use the Eclipse site https://www.eclipse.org/search/search.cgi[search page]. |https://bugs.eclipse.org/bugs[Bug database] |Use the Eclipse project's Bugzilla database to view and submit bugs against the AspectJ product components https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Compiler[Compiler] (for the AspectJ compiler, ajc) https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=IDE[IDE] (for AJDE bugs), https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Ant[Ant] (for the Ant tasks), and https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&component=Docs[Docs] (for the documentation). Bugs all users should know about are https://bugs.eclipse.org/bugs/buglist.cgi?product=AspectJ&keywords=info[flagged with the "info" keyword]. See the xref:faq/faq.adoc#ajcbugs[FAQ entry] for instructions on submitting compiler bugs. |=== [[paths]] === Suggested learning paths for those new to AspectJ To learn the AspectJ language, read the xref:progguide/index.adoc[Programming Guide], keeping the xref:progguide/semantics.adoc[Semantics appendix] nearby as the best reference for AspectJ usage. Focus initially on the join point model and pointcuts, concepts AOP adds to OOP. To read about how the link:https://github.com/eclipse-aspectj/aspectj/tree/master/docs/examples[examples] work, see the xref:progguide/examples.adoc[Examples] section in the xref:progguide/index.adoc[Programming Guide]. View and navigate the crosscutting structure using https://eclipse.org/ajdt[AJDT]. To start using AspectJ with your own code, modify the example aspects to apply to your classes. As you learn, use the compiler's `-Xlint` flags to catch some common mistakes. (Understand that the xref:progguide/implementation.adoc[current implementation] is limited to code the compiler controls.) To plan how to adopt AspectJ into a project, read the xref:progguide/index.adoc[Programming Guide] on development- and production-time aspects and the FAQ entries for xref:faq/faq.adoc#howToStartUsing[How should I start using AspectJ?], xref:faq/faq.adoc#adoption[Deciding to adopt AspectJ], the Development tools sections (xref:faq/faq.adoc#integrateWithDevTools[How does AspectJ integrate with existing Java development tools?], xref:faq/faq.adoc#devtools[Integrating AspectJ into your development environment], xref:faq/faq.adoc#ltw[Load-time weaving]), and xref:faq/faq.adoc#opensource[AspectJ as open-source]. Enjoy the language! The AspectJ Team ''''' [.small]#xref:#top[Top]#