|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- [[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:quickref/quick5.pdf[Quick Reference (AspectJ 5)],
- xref:quickref/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[runtime API],
- link:weaver-api/index.html[weaver API] and link: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:quickref/quick5.pdf[AspectJ 5 Quick Reference]
- |Four-page quick reference for the AspectJ 5 language
-
- |xref:quickref/quick.pdf[AspectJ Quick Reference]
- |Two-page quick reference for the AspectJ language
-
- a|AspectJ 5 Developer's Notebook
-
- * xref:adk15notebook/index.adoc[HTML multi-page]
- * xref:adk15notebook/adk15notebook.adoc[HTML single page]
- * xref:adk15notebook/adk15notebook.pdf[PDF]
- |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.
-
- a|Programming Guide
-
- * xref:progguide/index.adoc[HTML multi-page]
- * xref:progguide/progguide.adoc[HTML single page]
- * xref:progguide/progguide.pdf[PDF]
- |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.
-
- a|Development Environment Guide
-
- * xref:devguide/index.adoc[HTML multi-page]
- * xref:devguide/devguide.adoc[HTML single page]
- * xref:devguide/devguide.pdf[PDF]
- |Guide to the command-line compiler xref:devguide/ajc.adoc[ajc] and the xref:devguide/antsupport.adoc[Ant tasks] for
- building AspectJ programs
-
- a|Problem Diagnosis Guide
-
- * xref:pdguide/index.adoc[HTML multi-page]
- * xref:pdguide/pdguide.adoc[HTML single page]
- * xref:pdguide/pdguide.pdf[PDF]
- |Guide to various debugging 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 Runtime API]
- |API documentation for AspectJ runtime classes. `JoinPoint` shows the state automatically available at each join point.
- `ProceedingJoinPoint` explains how to `proceed(..)` to the intercepted join point from an around advice.
-
- |xref:weaver-api/index.html[AspectJ Weaver API]
- |API documentation for AspectJ weaver classes. This is a superset of the runtime API plus all the additional classes
- used for byte code weaving, both during compilation from source code and binary weaving during post-compile and
- load-time weaving.
-
- |xref:faq/faq.adoc#faq[FAQ]
- |Frequently asked questions about the AspectJ language, tools, and project
-
- |xref:release/JavaVersionCompatibility.adoc[Java version compatibility]
- |Compatibility matrix, explaining which AspectJ compiler version supports which Java language version and needs which
- JDK to run
-
- // AspectJ_JDK_Update: add new release to table
- |Release notes |Release notes, describing new features, improvements, bugfixes per AspectJ version: +
- +
- xref:release/README-1.9.22.adoc[1.9.22],
- xref:release/README-1.9.21.adoc[1.9.21 / 1.9.21.1 / 1.9.21.2], xref:release/README-1.9.20.adoc[1.9.20 / 1.9.20.1],
- xref:release/README-1.9.19.adoc[1.9.19], xref:release/README-1.9.9.adoc[1.9.9 / 1.9.9.1],
- xref:release/README-1.9.8.adoc[1.9.8], xref:release/README-1.9.7.adoc[1.9.7],
- xref:release/README-1.9.6.adoc[1.9.6], xref:release/README-1.9.5.adoc[1.9.5],
- xref:release/README-1.9.4.adoc[1.9.4], xref:release/README-1.9.3.adoc[1.9.3],
- xref:release/README-1.9.2.adoc[1.9.2], xref:release/README-1.9.1.adoc[1.9.1],
- xref:release/README-1.9.0.adoc[1.9.0], xref:release/README-1.8.14.adoc[1.8.14],
- xref:release/README-1.8.13.adoc[1.8.13], xref:release/README-1.8.12.adoc[1.8.12],
- xref:release/README-1.8.11.adoc[1.8.11], xref:release/README-1.8.10.adoc[1.8.10],
- xref:release/README-1.8.9.adoc[1.8.9], xref:release/README-1.8.8.adoc[1.8.8],
- xref:release/README-1.8.7.adoc[1.8.7], xref:release/README-1.8.6.adoc[1.8.6],
- xref:release/README-1.8.5.adoc[1.8.5], xref:release/README-1.8.4.adoc[1.8.4],
- xref:release/README-1.8.3.adoc[1.8.3], xref:release/README-1.8.2.adoc[1.8.2],
- xref:release/README-1.8.1.adoc[1.8.1], xref:release/README-1.8.0.adoc[1.8.0],
- xref:release/README-1.7.4.adoc[1.7.4], xref:release/README-1.7.3.adoc[1.7.3],
- xref:release/README-1.7.2.adoc[1.7.2], xref:release/README-1.7.1.adoc[1.7.1],
- xref:release/README-1.7.0.adoc[1.7.0], xref:release/README-1.6.12.adoc[1.6.12],
- xref:release/README-1.6.11.adoc[1.6.11], xref:release/README-1.6.10.adoc[1.6.10],
- xref:release/README-1.6.9.adoc[1.6.9], xref:release/README-1.6.8.adoc[1.6.8],
- xref:release/README-1.6.7.adoc[1.6.7], xref:release/README-1.6.6.adoc[1.6.6],
- xref:release/README-1.6.5.adoc[1.6.5], xref:release/README-1.6.4.adoc[1.6.4],
- xref:release/README-1.6.3.adoc[1.6.3], xref:release/README-1.6.2.adoc[1.6.2],
- xref:release/README-1.6.1.adoc[1.6.1], xref:release/README-1.6.0.adoc[1.6.0],
- xref:release/README-1.5.4.adoc[1.5.4], xref:release/README-1.5.3.adoc[1.5.3],
- xref:release/README-1.5.2.adoc[1.5.2], xref:release/README-1.5.1.adoc[1.5.1],
- xref:release/README-1.5.0.adoc[1.5.0], xref:release/README-1.2.1.adoc[1.2.1],
- xref:release/README-1.2.adoc[1.2], xref:release/README-1.1.adoc[1.1].
-
- |xref:release/changes.adoc[Changes] (historical)
- |Changes between historical releases up to 1.6.0
-
- |xref:release/porting.adoc[Porting guide] (historical)
- |Porting guide for historical releases to 1.2
-
- |link: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
-
- a|AspectJ Design Overview
-
- * xref:developer/index.adoc[HTML multi-page]
- * xref:developer/design-overview.adoc[HTML single page]
- * xref:developer/design-overview.pdf[PDF]
- |Introductory information about AspectJ language design, developer guides, module structure
- |===
-
- [[distributions]]
-
- == AspectJ distributions
-
- [cols=",",options="header",]
- |===
- |Distributions
- |Description
-
- |https://eclipse.org/aspectj[AspectJ binary distribution]
- |The AspectJ distribution contains a Java-based installer, binaries for the compiler, 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: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]#
|