aboutsummaryrefslogtreecommitdiffstats
path: root/tests/features164/aopconfig/design.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/features164/aopconfig/design.txt')
-rw-r--r--tests/features164/aopconfig/design.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/features164/aopconfig/design.txt b/tests/features164/aopconfig/design.txt
new file mode 100644
index 000000000..c8bf2f8b1
--- /dev/null
+++ b/tests/features164/aopconfig/design.txt
@@ -0,0 +1,43 @@
+This is to cover https://bugs.eclipse.org/bugs/show_bug.cgi?id=124460 which relates
+to the use of aop.xml configure compile time and binary weaving, in addition to
+load time weaving.
+
+For source compilation and binary weaving the goal is to offer the same experience
+users will get when using their aop.xml for LTW.
+
+Additionally for source compilation it also offers a way to control
+aspects when they are extracted from source src zip and then used across some
+set of source folders they were never originally intended for (see the
+compiling spring bug where a test aspect is leaking across all the source folders
+in the whole of spring).
+
+So - that means consuming aspects from either the inpath/aspectpath or source folders
+should include aop.xml searching. Or they can be specified directly as source
+entries perhaps when passing source files:
+
+ajc A.java B.java foo.xml
+
+
+--
+Testing
+
+- basic aop.xml that includes one aspect
+- the variety of mungers (checkers/itd members/advice/decp/deca)
+- wildcarded includes/excludes
+- compound type patterns for scope
+- new messages: ignoring weaver sections, scoping aspects, excluding aspects, problems processing aop.xml
+- aspect supertypes included if subtypes excluded?
+- annotation style
+- inner aspects
+- needs a command line option to switch support for this on/off (ie. to make it search
+ for xml files on aspectpath/inpath - we dont want unexpected behaviour)
+
+--
+Implementation Notes
+
+- Just because the contents of the aspect are not used in weaving, doesnt mean
+ the aspect shouldn't be fully compiled/resolved and written to the bin folder
+ correctly as a valid aspect for later consumption. So we can't short circuit
+ resolution if the aspect is included - we really just want to exclude inclusion
+ of that aspect in the crosscuttingset - or maybe even later we just want to
+ skip any mungers that came from it (but what about inherited mungers from supertypes?)