summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorwisberg <wisberg>2005-01-27 05:17:41 +0000
committerwisberg <wisberg>2005-01-27 05:17:41 +0000
commit9c82919cca9ed50a606179979cd90c9cef26b013 (patch)
tree378cbb300200630fe4ad6d7be11984736ace9e5d /docs
parent74b121aaaa4ef74e13c336635927a2020ca9dd7e (diff)
downloadaspectj-9c82919cca9ed50a606179979cd90c9cef26b013.tar.gz
aspectj-9c82919cca9ed50a606179979cd90c9cef26b013.zip
Summary of implementation limitations carefully worded to avoid the term "limitation" since Erik took it out. Proposed without objection on the mail list.
Diffstat (limited to 'docs')
-rw-r--r--docs/progGuideDB/implementation.xml63
1 files changed, 60 insertions, 3 deletions
diff --git a/docs/progGuideDB/implementation.xml b/docs/progGuideDB/implementation.xml
index 5f255700e..ecd73fb7d 100644
--- a/docs/progGuideDB/implementation.xml
+++ b/docs/progGuideDB/implementation.xml
@@ -287,10 +287,67 @@
initialization, or to delegate to a <literal>this</literal>
constructor if necessary.
</para>
-
</sect2>
-
-
</sect1>
+<sect1>
+ <title>Summary of implementation requirements</title>
+ <para>
+ This summarizes the requirements of our implementation of AspectJ.
+ For more details, see the relevant sections of this guide.
+ </para>
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>The invoking code must be under the control of ajc
+ for the following join points:</para>
+ <itemizedlist spacing="compact">
+ <listitem>call join point</listitem>
+ <listitem>get join point</listitem>
+ <listitem>set join point</listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>The declaring/target code must be under the control of ajc
+ for the following join points and inter-type declarations:</para>
+ <itemizedlist spacing="compact">
+ <listitem>execution join point</listitem>
+ <listitem>adviceexecution join point</listitem>
+ <listitem>handler join point</listitem>
+ <listitem>initialization join point</listitem>
+ <listitem>preinitialiaztion join point</listitem>
+ <listitem>staticinitialization join point</listitem>
+ <listitem>perthis aspect</listitem>
+ <listitem>pertarget aspect</listitem>
+ <listitem>declare parents</listitem>
+ <listitem>declare method or field (see interface caveats below)</listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Implementation Caveats</para>
+ <itemizedlist spacing="compact">
+ <listitem>
+ <para>The initialization and preinitialization join points
+ do not support around advice</para>
+ </listitem>
+ <listitem>
+ <para>The handler join point does not support...</para>
+ <itemizedlist spacing="compact">
+ <listitem>after advice</listitem>
+ <listitem>around advice</listitem>
+ <listitem>cflow(handler(..))</listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Declaring members on an interface in an aspect affects only
+ the topmost implementing classes the implementation controls.</para>
+ </listitem>
+ <listitem>
+ <para>cflow and cflowbelow pointcuts work within a single thread.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+</sect1>
</appendix>
+
+