aboutsummaryrefslogtreecommitdiffstats
path: root/docs/index.adoc
blob: 34dc1c7805fa4e8200556f38c652c24ff0b29ae2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
[[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/dist/doc/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/dist/doc/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/dist/doc/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]#