aboutsummaryrefslogtreecommitdiffstats
path: root/docs/dist/doc/index.adoc
blob: 35ac9dfb9b2b2ad6391e47c838c2f501e50a4ab3 (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
220
221
222
[[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 1.3 to run, and produce code
that runs in JDK 1.1 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[docs] |xref:../../faq/faq.adoc#faq[FAQ], link:quick5.pdf[Quick
Reference (AspectJ 5)], link:quick.pdf[Quick Reference (1.2.1)],
xref:../../adk15ProgGuideDB/adk15notebook.adoc[AspectJ 5 Developer's Notebook],
link:progguide/index.html[programming],
link:devguide/index.html[development] and
link:pdguide/index.html[problem diagnosis] guides,
link:runtime-api/index.html[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[resources] |http://aosd.net[aosd.net];
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[paths] |for those new to AspectJ
|===

[[documentation]]
=== AspectJ documentation

[width="100%",cols="50%,50%",options="header",]
|===
|Documentation |Description
|link:quick5.pdf[AspectJ 5 Quick Reference] |This is a four-page quick
reference for the AspectJ 5 language.

|link:quick.pdf[AspectJ Quick Reference] |This is a two-page quick
reference for the AspectJ language.

|xref:../../adk15ProgGuideDB/adk15notebook.adoc[AspectJ 5 Developer's Notebook]
(printable link:adk15notebook/printable.html[html]) |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.

|link:progguide/index.html[Programming Guide] (printable
link:progguide/printable.html[html]) |This introduces AOP and the
AspectJ language. link:progguide/starting.html[Getting Started]
describes basic semantics, and shows development- and production-time
applications. link:progguide/language.html[The AspectJ Language]
describes join points, pointcuts, advice, and introduction, all features
new to AOP. link:progguide/examples.html[Examples] walks you through the
examples included with the documentation, and there are two short
chapters on useful link:progguide/idioms.html[Idioms] and a few
link:progguide/pitfalls.html[Pitfalls] The appendices have reference
information: the link:progguide/quick.html[Quick Reference] summarizes
AspectJ syntax, the link:progguide/semantics.html[Language Semantics]
best describes AspectJ usage, and
link:progguide/implementation.html[Implementation Notes] describes how
the current version is limited to code the compiler controls.

|link:devguide/index.html[Development Environment Guide] +
(printable link:devguide/printable.html[html]) |This is a guide to
link:devguide/ajc-ref.html[ajc], the command-line compiler;
link:devguide/ajbrowser.html[ajbrowser], the stand-alone GUI for
compiling and viewing crosscutting structure; and the
link:devguide/antTasks.html[Ant tasks] for building AspectJ programs.

|link:pdguide/index.html[Problem Diagnosis Guide] +
(printable link:pdguide/printable.html[html]) |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.

|link: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 link: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:README-197.adoc[1.9.7], xref:README-196.adoc[1.9.6],
xref:README-195.adoc[1.9.5], xref:README-194.adoc[1.9.4],
xref:README-193.adoc[1.9.3], xref:README-192.adoc[1.9.2],
xref:README-191.adoc[1.9.1], xref:README-190.adoc[1.9.0],
xref:README-1811.adoc[1.8.11], xref:README-1810.adoc[1.8.10],
xref:README-189.adoc[1.8.9], xref:README-188.adoc[1.8.8],
xref:README-187.adoc[1.8.7], xref:README-186.adoc[1.8.6],
xref:README-185.adoc[1.8.5], xref:README-184.adoc[1.8.4],
xref:README-183.adoc[1.8.3], xref:README-182.adoc[1.8.2],
xref:README-181.adoc[1.8.1], xref:README-180.adoc[1.8.0],
xref:README-174.adoc[1.7.4], xref:README-173.adoc[1.7.3],
xref:README-172.adoc[1.7.2], xref:README-171.adoc[1.7.1],
xref:README-170.adoc[1.7.0], xref:README-1612.adoc[1.6.12],
xref:README-1611.adoc[1.6.11], xref:README-1610.adoc[1.6.10],
xref:README-169.adoc[1.6.9], xref:README-168.adoc[1.6.8],
xref:README-167.adoc[1.6.7], xref:README-166.adoc[1.6.6],
xref:README-165.adoc[1.6.5], xref:README-164.adoc[1.6.4],
xref:README-163.adoc[1.6.3], xref:README-162.adoc[1.6.2],
xref:README-161.adoc[1.6.1], xref:README-160.adoc[1.6.0],
xref:README-154.adoc[1.5.4], xref:README-153.adoc[1.5.3],
xref:README-152.adoc[1.5.2], xref:README-151.adoc[1.5.1],
xref:README-150.adoc[1.5.0], xref:README-121.adoc[1.2.1],
xref:README-12.adoc[1.2.0], xref:README-11.adoc[1.1], and
xref:porting.adoc[1.0].

|link:changes.html[Changes] |Changes between the latest releases.

|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.
|===

[[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 faq.html#q: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 AJBrowser and 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 faq.html#q:ajcbugs[FAQ entry] for
instructions on submitting compiler bugs.

|http://aosd.net - the AOSD web site |This site has discussion and
announcements related to aspect-oriented software development (AOSD) in
general. Use announce@aosd.net to get and publish notices about AOSD
workshops, conferences, and technology releases. Use discuss@aosd.net
for general AOSD discussions.
|===

[[paths]]
=== Suggested paths for those new to AspectJ

To learn the AspectJ language, read the
link:progguide/index.html[Programming Guide], keeping the
link:progguide/semantics.html[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
link:progguide/examples.html[Examples] section in the
link:progguide/index.html[Programming Guide]. View and navigate the
crosscutting structure using https://eclipse.org/ajdt[AJDT]; if you can't
use Eclipse, try the `ajbrowser` structure viewer, as described in the
link:devguide/ajbrowser.html[AspectJ Browser] section of the
link:devguide/index.html[Development Environment Guide].

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
link:progguide/implementation.html[current implementation] is limited to
code the compiler controls.)

To plan how to adopt AspectJ into a project, read the
link:progguide/index.html[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]#