aboutsummaryrefslogtreecommitdiffstats
path: root/docs/pdguide
diff options
context:
space:
mode:
authorAlexander Kriegisch <Alexander@Kriegisch.name>2024-01-04 08:13:04 +0700
committerAlexander Kriegisch <Alexander@Kriegisch.name>2024-01-06 10:09:11 +0100
commit0065b755292708d6fd27c067564ecef2b10ede04 (patch)
tree2a88188271fe2910fd26c5b8536f39fabe111168 /docs/pdguide
parentba6058a4007f937c3d32a6022446edaa149a0d1d (diff)
downloadaspectj-0065b755292708d6fd27c067564ecef2b10ede04.tar.gz
aspectj-0065b755292708d6fd27c067564ecef2b10ede04.zip
Delete 50+ XML DocBook resource files
in favour of the already existing asciidoc ones. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs/pdguide')
-rw-r--r--docs/pdguide/ajcore.xml198
-rw-r--r--docs/pdguide/aspectj-docs.css89
-rw-r--r--docs/pdguide/ltwdump.xml73
-rw-r--r--docs/pdguide/messages.xml385
-rw-r--r--docs/pdguide/pdguide.xml76
-rw-r--r--docs/pdguide/pointcuts.xml162
-rw-r--r--docs/pdguide/trace.xml186
7 files changed, 0 insertions, 1169 deletions
diff --git a/docs/pdguide/ajcore.xml b/docs/pdguide/ajcore.xml
deleted file mode 100644
index 7207df3cc..000000000
--- a/docs/pdguide/ajcore.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<chapter id="ajcore" xreflabel="AspectJ Core Files">
- <title>AspectJ Core Files</title>
-
- <sect1 id="ajcore-introduction">
- <title>Introduction</title>
-
- <para> When the compiler terminates abnormally, either because a particular kind of message was
- issued or an exception was thrown, an AspectJ core file will be produced. You will
- find it the working directory of the compiler and it will have a name that contains
- the date and time that the file was produced
- e.g. <literal>ajcore.20060810.173655.626.txt</literal>. The file contains details
- of the problem such as the exception thrown as well as information about the
- environment such as operating system and Java version. When submitting a bug,
- include this file whenever it is available.</para>
-
- <sect2 id="configuration" xreflabel="configuration">
- <title>Configuring dump files</title>
-
- <para> By default AspectJ will only create an <literal>ajcore</literal> file
- when an unexpected exception is thrown by the weaver or an
- <literal>abort</literal> message is
- issued. However it is possible to disable this feature or enable files to
- be produced under different circumstances. The table below lists the System
- properties that can be used to configure <literal>ajcore</literal> files. </para>
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Property</entry>
- <entry>Default</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>org.aspectj.weaver.Dump.exception</literal>
- </entry>
- <entry>
- <literal>true</literal>
- </entry>
- <entry>
- Generate an <literal>ajcore</literal> files when an exception thrown.
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.weaver.Dump.condition</literal>
- </entry>
- <entry>
- <literal>abort</literal>
- </entry>
- <entry>
- Message kind for which to generate <literal>ajcore</literal>
- e.g. <literal>error</literal>.
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.dump.directory</literal>
- </entry>
- <entry>
- <literal>none</literal>
- </entry>
- <entry>
- The directory used for ajcore files.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2 id="ajcore-examples" xreflabel="AJCore File Examples">
- <title>AJCore File Examples</title>
-
- <para> Below is an extract from an <literal>ajcore</literal> file. You will see
- details of the dump configuration as well as the exception (with stack trace) that
- is the source of the problem and any messages issued by the compiler. Most importantly
- the exact version of AspectJ is included. </para>
- <programlisting><![CDATA[
----- AspectJ Properties ---
-AspectJ Compiler DEVELOPMENT built on Tuesday Jul 25, 2006 at 13:00:09 GMT
----- Dump Properties ---
-Dump file: ajcore.20060810.173655.626.txt
-Dump reason: java.lang.NoClassDefFoundError
-Dump on exception: true
-Dump at exit condition: abort
----- Exception Information ---
-java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- at org.aspectj.weaver.tools.CommonsTraceFactory.<init>(CommonsTraceFactory.java:17)
- at java.lang.Class.newInstance0(Native Method)
- at java.lang.Class.newInstance(Class.java:232)
- at org.aspectj.weaver.tools.TraceFactory.<clinit>(TraceFactory.java:35)
- at org.aspectj.weaver.World.<clinit>(World.java:114)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:679)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:224)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:164)
- at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
- at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
- at org.aspectj.tools.ajc.Main.run(Main.java:367)
- at org.aspectj.tools.ajc.Main.runMain(Main.java:246)
- at org.aspectj.tools.ajc.Main.main(Main.java:86)
----- System Properties ---
-java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition
-sun.boot.library.path=C:\jdk1.3.1_16\jre\bin
-java.vm.version=1.3.1_16-b06
-java.vm.vendor=Sun Microsystems Inc.
-java.vendor.url=http://java.sun.com/
-path.separator=;
-java.vm.name=Java HotSpot(TM) Client VM
-file.encoding.pkg=sun.io
-java.vm.specification.name=Java Virtual Machine Specification
-user.dir=C:\workspaces\org.aspectj\org.aspectj.ant.tests
-java.runtime.version=1.3.1_16-b06
-java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
-os.arch=x86
-java.io.tmpdir=C:\DOCUME~1\IBM_user\LOCALS~1\Temp\
-line.separator=
-
-java.vm.specification.vendor=Sun Microsystems Inc.
-java.awt.fonts=
-os.name=Windows XP
-java.library.path=C:\jdk1.3.1_16\jre\bin;...
-java.specification.name=Java Platform API Specification
-java.class.version=47.0
-os.version=5.1
-user.home=C:\Documents and Settings\IBM_user
-user.timezone=Europe/London
-java.awt.printerjob=sun.awt.windows.WPrinterJob
-file.encoding=Cp1252
-java.specification.version=1.3
-java.class.path=C:\workspaces\org.aspectj\aj-build\dist\tools\lib\aspectjtools.jar
-user.name=IBM_user
-java.vm.specification.version=1.0
-java.home=C:\jdk1.3.1_16\jre
-user.language=en
-java.specification.vendor=Sun Microsystems Inc.
-awt.toolkit=sun.awt.windows.WToolkit
-java.vm.info=mixed mode
-java.version=1.3.1_16
-java.ext.dirs=C:\jdk1.3.1_16\jre\lib\ext
-sun.boot.class.path=C:\jdk1.3.1_16\jre\lib\rt.jar;...
-java.vendor=Sun Microsystems Inc.
-file.separator=\
-java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
-sun.io.unicode.encoding=UnicodeLittle
-sun.cpu.endian=little
-user.region=GB
-sun.cpu.isalist=pentium i486 i386
----- Command Line ---
--d
-C:\workspaces\org.aspectj\org.aspectj.ant.tests\IncrementalAjcTaskTest-temp
--g:none
--deprecation
--noExit
--warn:-unusedImport
--nowarn
--XterminateAfterCompilation
--preserveAllLocals
--proceedOnError
--referenceInfo
--source
-1.3
--target
-1.1
--time
--verbose
--classpath
-C:\workspaces\org.aspectj\org.aspectj.ant.tests\..\lib\test\aspectjrt.jar
--argfile
-C:\workspaces\org.aspectj\taskdefs\testdata\default.lst
--messageHolder
-org.aspectj.bridge.MessageHandler
----- Full Classpath ---
-Empty
----- Compiler Messages ---
-abort ABORT -- (NoClassDefFoundError) org/apache/commons/logging/LogFactory
-org/apache/commons/logging/LogFactory
-java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
- at org.aspectj.weaver.tools.CommonsTraceFactory.<init>(CommonsTraceFactory.java:17)
- at java.lang.Class.newInstance0(Native Method)
- at java.lang.Class.newInstance(Class.java:232)
- at org.aspectj.weaver.tools.TraceFactory.<clinit>(TraceFactory.java:35)
- at org.aspectj.weaver.World.<clinit>(World.java:114)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:679)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.doBuild(AjBuildManager.java:224)
- at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:164)
- at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
- at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
- at org.aspectj.tools.ajc.Main.run(Main.java:367)
- at org.aspectj.tools.ajc.Main.runMain(Main.java:246)
- at org.aspectj.tools.ajc.Main.main(Main.java:86)
-]]> </programlisting>
-
- </sect2>
- </sect1>
-</chapter>
diff --git a/docs/pdguide/aspectj-docs.css b/docs/pdguide/aspectj-docs.css
deleted file mode 100644
index 9c2f5d4fc..000000000
--- a/docs/pdguide/aspectj-docs.css
+++ /dev/null
@@ -1,89 +0,0 @@
-body {
- font-family: "Lucida Grande", "Trebuchet MS", sans-serif;
- line-height: 1.1em;
- }
-
-h1 {
- margin-bottom: 3px;
- padding-bottom: 0px;
- line-height: 1.1em;
-}
-
-h2 {
- font-size: 130%;
- font-weight: bold ;
- line-height: 16px;
- color: #FFFFFF;
- background-color: #0080C0;
- padding: 5px;
-}
-
-h3 {
- font-size: 110%;
- font-weight: bold ;
- line-height: 14px;
- color: #FFFFFF;
- background-color: orange;
- padding: 5px;
-}
-
-tt {
- font-size: 120%;
- color: #00AAF0;
- }
-
-tt tt {
- font-size: 100%;
- }
-
-.programlisting {
- padding-top: 5px;
- border: 2px solid #ccc;
- background: #eee;
- font-size: 120%;
- color: #111199;
-
- }
-
-.term {
- color: #111199;
- }
-
-.variablelist dd {
- margin-left: 18px;
- padding-left: 20px;
- background: url(dd_arrow.gif) no-repeat 0 2px;
- }
-
-.toc dt {
- font-size: 110%;
- padding-bottom: 0px;
- margin-bottom: 5px;
- }
-
-.toc dl dd dt {
- font-size: 100%;
- }
-
-.toc dt {
- font-size: 100%
- margin-bottom: 0;
- }
-
-.informaltable table {
- margin-left: 5%;
- }
-
-.informaltable th {
- background-color: orange;
- padding: 1px;
- }
-
-ul li {
- line-height: 1.2em;
- }
-
-.keyword {
- font-weight: bold;
- color: purple;
- } \ No newline at end of file
diff --git a/docs/pdguide/ltwdump.xml b/docs/pdguide/ltwdump.xml
deleted file mode 100644
index 72554d043..000000000
--- a/docs/pdguide/ltwdump.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<chapter id="ltwdump" xreflabel="Dumping classes during load-time weaving">
- <title>Dumping classes during load-time weaving</title>
-
- <sect1 id="ltwdump-introduction">
- <title>Introduction</title>
-
- <para>
- Very rarely problems may be encountered with classes that have been
- load-time woven.
- Symptoms will include incorrect program function or a Java exception such as
- <literal>java.lang.VerifyError</literal>.
- In these situations it's most helpful to include the offending class
- in the bug report. When using load-time weaving the woven classes are
- in memory only so to save them to disk configure
- <literal>META-INF/aop.xml</literal> to dump the classes (by default
- to an <literal>_ajdump</literal> subdirectory of the current working
- directory). Also if the input class file is not available
- (e.g. it is a generated proxy or has already been instrumented by another agent)
- you can configure the weaver to dump the input classes as well.
- </para>
- <sect2 id="ltw-examples" xreflabel="ltwdump-configuration">
- <title>Configuring bytecode dumping in load-time weaving</title>
- <para>
- For details of how to configure byte-code dumping, see the
- AspectJ Development Environment Guide section on
- <ulink url="../devguide/ltw-configuration.html#configuring-load-time-weaving-with-aopxml-files">
- Configuring Load-time Weaving</ulink>.
- Following is a simple example.
- </para>
- </sect2>
-
- <sect2 id="ltwdump-examples" xreflabel="LTW Dump Examples">
- <title>LTW Dump Examples</title>
-
- <para> The following <literal>META-INF/aop.xml</literal> will
- weave classes in the <literal>com.foo</literal> package (and subpackages) but not
- CGLIB generated classes in the <literal>com.foo.bar</literal> package (and subpackages).
- It will also ensure all
- woven byte-code is dumped both before and after weaving. </para>
- <programlisting><![CDATA[
-<aspectj>
- <aspects>
- <aspect name="ataspectj.EmptyAspect"/>
- </aspects>
- <weaver options="-verbose -debug">
- <dump within="com.foo.bar..*" beforeandafter="true"/>
- <include within="com.foo..*"/>
- <exclude within="com.foo.bar..*CGLIB*"/>
- </weaver>
-</aspectj>
-]]></programlisting>
-
- <para> You should see messages similar to this: </para>
-
- <programlisting><![CDATA[
-[WeavingURLClassLoader] info AspectJ Weaver Version 1.5.3 built on Thursday Oct 26, 2006 at 17:22:31 GMT
-[WeavingURLClassLoader] info register classloader org.aspectj.weaver.loadtime.WeavingURLClassLoader
-[WeavingURLClassLoader] info using configuration /C:/tempMETA-INF/aop.xml
-[WeavingURLClassLoader] info register aspect ataspectj.EmptyAspect
-[WeavingURLClassLoader] debug not weaving 'com.foo.bar.Test$$EnhancerByCGLIB$$12345'
-[WeavingURLClassLoader] debug weaving 'com.foo.bar.Test'
-]]></programlisting>
-
- <para> On disk you would find the following files: </para>
-
- <programlisting><![CDATA[
-_ajdump/_before/com/foo/bar/Test.class
-_ajdump/com/foo/bar/Test.class
-]]></programlisting>
-
- </sect2>
- </sect1>
-</chapter>
diff --git a/docs/pdguide/messages.xml b/docs/pdguide/messages.xml
deleted file mode 100644
index 9d2caf0b5..000000000
--- a/docs/pdguide/messages.xml
+++ /dev/null
@@ -1,385 +0,0 @@
-<chapter id="messages" xreflabel="Messages">
- <title>Messages</title>
-
- <sect1 id="messages-introduction">
- <title>Introduction</title>
- <para>
- Messages point out potential problems in the input program; some
- are clearly problems (errors), but many more may depend on what
- the programmer intends. To keep the noise down the latter are treated
- as warnings which can be ignored by the programmer or information
- which are hidden. However, when investigating
- unexpected behavior it's helpful to show them. This section describes how
- to configure messages, presents some problem scenarios when
- compiling or doing load-time weaving, and summarizes some of the
- more relevant messages.
- </para>
- <sect2 id="messages-introduction-config"
- xreflabel="messages-configuration">
- <title>Configuring Messages</title>
- <para>
- The compiler offers <literal>-verbose</literal>,
- <literal>-warning</literal>, and <literal>-XLint</literal> options
- when invoked using the command-line, Ant, or embedded in an IDE.
- All options are listed in the AspectJ Development Environment Guide
- sections for
- <ulink url="../devguide/ajc-ref.html">Ajc</ulink> and
- <ulink url="../devguide/antTasks-iajc.html">Ant Tasks</ulink>.
- The <ulink url="../devguide/ltw.html">Load-time Weaving</ulink>
- section describes how to use XML configuration files and
- system properties to pass options to the weaver. (You can also
- pass options to the weaver using system properties in build-
- time weaving.)
- The <literal>-verbose</literal> option has the effect of including
- messages level "info", which are normally ignored.
- Both <literal>warning</literal> and <literal>XLint</literal>
- enable you to identify specific messages to emit, but warning
- messages tend to be the same provided by the underlying Eclipse
- JDT (Java) compiler, while XLint messages are emitted by the
- AspectJ compiler or weaver. Obviously, during load-time weaving
- only weaver messages will be emitted. Similarly, if aspects
- are compiled but not woven, then only compiler messages will be
- emitted. However, the usual case for the compiler/weaver working
- at build time is to emit both compiler and weaver messages.
- </para>
-
- <para> The tables below list some options, System Properties (for LTW only) and Java 5 annotations
- used to control AspectJ messages. The method
- of configuration depends on your environment so please refer to the relevant
- documentation for
- <ulink url="../devguide/ajc-ref.html">ajc</ulink>,
- <ulink url="../devguide/antTasks.html">Ant</ulink> or
- <ulink url="../devguide/ltw-configuration.html#weaver-options">LTW</ulink>.
- </para>
-
- <para>
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Option</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>-verbose</literal>
- </entry>
- <entry>
- Show informational messages including AspectJ version
- and build date.
- </entry>
- </row>
- <row>
- <entry>
- <literal>-debug</literal>
- </entry>
- <entry>
- (Load-time weaving only). Show debugging messages such as
- which classes are being woven or those that are excluded.
- (This is not related to the compiler -g option to
- include debug information in the output .class files.)
- </entry>
- </row>
- <row>
- <entry>
- <literal>-showWeaveInfo</literal>
- </entry>
- <entry>
- Show weaving messages.
- </entry>
- </row>
- <row>
- <entry>
- <literal>-Xlint</literal>
- </entry>
- <entry>
- Control level of lint messages.
- </entry>
- </row>
- <row>
- <entry>
- <literal>messageHolderClass</literal>/
- <literal>-XmessageHolderClass:</literal>
- </entry>
- <entry>
- In Ant tasks and LTW respectively specify the class to receive all messages.
- See
- <ulink url="../devguide/antTasks-iajc.html#antTasks-iajc-options">
- iajc task options</ulink> or
- <ulink url="../devguide/ltw-configuration.html#weaver-options">
- Weaver Options</ulink>.
- </entry>
- </row>
-
-<!-- We need full javadoc for this API
- <row>
- <entry>
- <literal>org.aspectj.tools.Main.setMessageHolder(..)</literal>
- </entry>
- <entry>
- Programmatic access for setting the message holder
- outside of Ant.
- </entry>
- </row>
--->
- </tbody>
- </tgroup>
- </informaltable>
- </para>
-
- <para>
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>System Property</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>aj.weaving.verbose</literal>
- </entry>
- <entry>
- Show informational messages including AspectJ version and build date
- (same as <literal>-verbose</literal> option).
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.weaver.showWeaveInfo</literal>
- </entry>
- <entry>
- Show weaving messages
- (same as <literal>-showWeaveInfo</literal> option).
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.weaving.messages</literal>
- </entry>
- <entry>
- Set this system property to enable tracing of all compiler
- messages. See <xref linkend="trace-configuration"/>.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </para>
-
- <para>
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Annotation</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>@SuppressAjWarnings</literal>
- </entry>
- <entry>
- Include this is Java 5 code to suppress AspectJ
- warnings associated with the next line of code.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </para>
-
- </sect2>
- </sect1>
- <sect1 id="messages-scenarios">
- <title>Message scenarios</title>
-
- <sect2 id="messages-scenarios-ct">
- <title>Compile-time weaving scenarios</title>
- <sect3 id="messages-scenarios-ct-adviceNotWoven">
- <title>Advice not woven</title>
- <para>This means that the pointcut for the advice did not match,
- and it should be debugged as described in
- <xref linkend="pointcuts"/>.</para>
- </sect3>
- </sect2>
-
- <sect2 id="messages-scenarios-ltw">
- <title>Load-time weaving scenarios</title>
-
- <para> You can use <literal>META-INF/aop.xml</literal> to control which
- messages are produced during LTW. The following example will produce
- basic informational messages about the lifecyle of the weaver in
- addition to any warning or error messages. </para>
-
- <programlisting><![CDATA[
-<aspectj>
- <weaver options="-verbose">
- </weaver>
-</aspectj>
-]]></programlisting>
-
- <para>The messages indicate which <literal>META-INF/aop.xml</literal>
- configurations file(s) are being used. Each message is also preceeded by the
- name of the defining class loader associated with weaver. You can use this
- information in a large system to distinguish between different applications each
- of which will typically have its own class loader. </para>
-
- <programlisting><![CDATA[
-[AppClassLoader@92e78c] info AspectJ Weaver Version 1.5.3 built on Thursday Oct 26, 2006 at 17:22:31 GMT
-[AppClassLoader@92e78c] info register classloader sun.misc.Launcher$AppClassLoader@92e78c
-[AppClassLoader@92e78c] info using configuration /C:/temp/META-INF/aop.xml
-[AppClassLoader@92e78c] info using configuration /C:/temp/META-INF/aop-ajc.xml
-[AppClassLoader@92e78c] info register aspect ExceptionHandler
-[AppClassLoader@92e78c] info processing reweavable type ExceptionHandler: ExceptionHandler.aj
-]]></programlisting>
-
- <sect3 id="messages-scenarios-ltw-adviceNotWoven">
- <title>Advice not woven</title>
- <para> It is often difficult to determine, especially when using load-time weaving (LTW),
- why advice has not been woven. Here is a quick guide to the messages to
- look for. Firstly if you use the <literal>-verbose</literal> option you
- should see the following message when your aspect is registered: </para>
-
- <programlisting><![CDATA[
-info register aspect MyAspect
-]]></programlisting>
-
- <para> Secondly if you use the <literal>-debug</literal> option you should
- see a message indicating that you class is being woven: </para>
-
- <programlisting><![CDATA[
-debug weaving 'HelloWorld'
-]]></programlisting>
-
- <para> However this does not mean that advice has actually been woven into
- your class; it says that the class has been passed to the weaver. To determine
- whether your pointcuts match you can use the <literal>-showWeaveInfo</literal>
- option which will cause a message to be issued each time a join point is woven: </para>
-
- <programlisting><![CDATA[
-weaveinfo Join point 'method-execution(void HelloWorld.main(java.lang.String[]))' ...
-]]></programlisting>
-
- <para>If advice is woven at this join point you should get the
- corresponding message.</para>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="messages-xlint">
- <title>Lint messages</title>
- <para>
- The table below lists some useful <literal>-Xlint</literal> messages. </para>
- <informaltable>
- <tgroup cols="3">
- <thead>
- <row>
- <entry>Message</entry>
- <entry>Default</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>aspectExcludedByConfiguration</literal>
- </entry>
- <entry>
- <literal>ignore</literal>
- </entry>
- <entry>
- If an aspect is not being woven, despite being
- registered, it could be that it has been excluded
- by either an <literal>include</literal> or <literal>exclude</literal>
- element in the
- <literal>aspects</literal> section of <literal>META-INF/aop.xml</literal>.
- Enable this message to determine whether an aspect has
- been excluded.
- </entry>
- </row>
- <row>
- <entry>
- <literal>adviceDidNotMatch</literal>
- </entry>
- <entry>
- <literal>warning</literal>
- </entry>
- <entry>
- Issued when advice did not potentially affect any join points.
- This means the corresponding pointcut did not match any join
- points in the program. This may be valid e.g., in library
- aspects or code picking up error conditions, but often the
- programmer simply made a mistake in the pointcut. The best
- approach is to debug the pointcut.
- </entry>
- </row>
- <row>
- <entry>
- <literal>invalidAbsoluteTypeName</literal>
- </entry>
- <entry>
- <literal>warning</literal>
- </entry>
- <entry>
- Issued when an exact type in a pointcut does not match any type
- in the system. Note that this can interact with the rules for
- resolving simple types, which permit unqualified names if they
- are imported.
- </entry>
- </row>
- <row>
- <entry>
- <literal>typeNotExposedToWeaver</literal>
- </entry>
- <entry>
- <literal>warning</literal>
- </entry>
- <entry>
- This means that a type which could be affected by an aspect
- is not available for weaving. This happens when a class on
- the classpath should be woven.
- </entry>
- </row>
- <row>
- <entry>
- <literal>runtimeExceptionNotSoftened</literal>
- </entry>
- <entry>
- <literal>warning</literal>
- </entry>
- <entry>
- Before AspectJ 5, declare soft used to soften runtime exceptions
- (unnecessarily). Since then, it does not but does issue this
- warning in case the programmer did intend for the exception
- to be wrapped.
- </entry>
- </row>
- <row>
- <entry>
- <literal>unmatchedSuperTypeInCall</literal>
- </entry>
- <entry>
- <literal>warning</literal>
- </entry>
- <entry>
- Issued when a call pointcut specifies a defining type which
- is not matched at the call site (where the declared type of
- the reference is used, not the actual runtime type). Most
- people should use
- 'target(Foo) &amp;&amp; call(void foo())'
- instead.
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect1>
-
-</chapter>
diff --git a/docs/pdguide/pdguide.xml b/docs/pdguide/pdguide.xml
deleted file mode 100644
index 619f54052..000000000
--- a/docs/pdguide/pdguide.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1//EN"
- "../../lib/docbook/docbook-dtd/docbookx.dtd"
-[
-<!ENTITY messages SYSTEM "messages.xml">
-<!ENTITY pointcuts SYSTEM "pointcuts.xml">
-<!ENTITY trace SYSTEM "trace.xml">
-<!ENTITY ajcore SYSTEM "ajcore.xml">
-<!ENTITY ltwdump SYSTEM "ltwdump.xml">
-]>
-
-<book>
- <bookinfo>
- <title>The AspectJ<superscript>tm</superscript> Problem Diagnosis Guide</title>
-
- <authorgroup>
- <author>
- <othername>the AspectJ Team</othername>
- </author>
- </authorgroup>
-
- <legalnotice>
- <para>Copyright (c) 2006 IBM Corporation and others.
- 2006 Contributors.
- All rights reserved.
- </para>
- </legalnotice>
-
- <abstract>
- <para>
- This guide describes how to configure the AspectJ compiler/weaver to provide
- information for diagnosing problems in the input programs, the
- compiler/weaver or its configuration.
- </para>
- <para>
- The AspectJ compiler and weaver can provide lots of information for diagnosing
- problems in building AspectJ programs. For problems in the input program,
- there are a number of default warning and error messages, as well as many
- configurable "lint" messages, all of which can be emitted normally,
- logged using standard facilities, or intercepted programmatically.
- These are discussed in <xref linkend="messages"/>. Since most errors
- relate to writing pointcuts incorrectly, there is a section on
- <xref linkend="pointcuts"/>.
- </para>
- <para>
- For problems with the compiler/weaver itself there are three facilities
- that enable the AspectJ developers to resolve bugs even when it is
- too hard to deliver a reproducible test case:
- <orderedlist>
- <listitem><para><xref linkend="trace"/> can be enabled to track progress up to the time of a failure;</para></listitem>
- <listitem><para><xref linkend="ajcore"/> can give a relatively complete picture of the state of
- the world at the time of a failure; and </para></listitem>
- <listitem><para><xref linkend="ltwdump"/> is a way to capture both
- input and output classes during load-time weaving.
- </para></listitem>
- </orderedlist>
- </para>
- <para>
- This guide describes how to configure messages to get the right information
- and how to configure traces, dumps, and core files. Although the compiler/weaver
- operates in roughly three modes (from the command-line, embedded in an IDE,
- and enabled as load-time weaving), the principles are basically the same for
- all modes. The differences lie in how to set up diagnostics and what
- information is likely to be relevant.
- </para>
- </abstract>
- </bookinfo>
-
- &messages;
- &pointcuts;
- &ajcore;
- &trace;
- &ltwdump;
-
-</book>
diff --git a/docs/pdguide/pointcuts.xml b/docs/pdguide/pointcuts.xml
deleted file mode 100644
index ecf3cf662..000000000
--- a/docs/pdguide/pointcuts.xml
+++ /dev/null
@@ -1,162 +0,0 @@
-<chapter id="pointcuts" xreflabel="Debugging Pointcuts">
- <title>Debugging Pointcuts</title>
- <sect1 id="pointcuts-introduction">
- <title>Introduction</title>
-
- <para>
- This section describes how to write and debug pointcuts
- using the usual approach of iteration and decomposition.
- New users are often stumped when their advice does not match.
- That means the pointcut doesn't match; they rewrite the
- pointcut and it still doesn't match, with no new information.
- This can be frustrating if each iteration involves building,
- deploying, and testing a complex application. Learning to
- break it down, particularly into parts that can be checked
- at compile-time, can save a lot of time.
- </para>
- </sect1>
-
- <sect1 id="pointcuts-debugging">
- <title>Debugging pointcuts</title>
- <para>
-Go at it top-down and then bottom-up. Top-down, draft significant
-aspects by first writing the comments to specify responsibilities.
-Advice responsibility usually takes the form, "When X, do Y."
-Pointcut responsibility for "When X" often takes the form,
-"When [join points] [in locations] [are ...]". These []'s often
-translate to named pointcuts (like `libraryCalls() &amp;&amp; within(Client)
-&amp;&amp; args(Context)`) which form a semantic bridge to the plain-text
-meaning in a comment (e.g., `// when the client passes only context into
-the library`).
-This gets you to a point where you can debug the parts of the
-pointcut independently.
- </para>
- <para>
-Bottom up (to build each part), consider each primitive pointcut
-designator (PCD), then the composition, and then any implicit
-constraints:
- <orderedlist>
- <listitem><para>
-What kinds of join points should it match? (constructor-call?
-field-get?)? This translates to using the kinded pointcuts
-(`call(..)`, `get(..)`, etc.).
- </para></listitem>
- <listitem><para>
-Are these restricted to being lexically within something? This
-translates to using `within{code}(..)`. If this is true, it should
-always be used, to speed up weaving.
- </para></listitem>
- <listitem><para>
-What runtime constraints and context should be true and available at
-each join point? This translates to `this()`, `target()`, `args()`,
-`cflow{below}()` and `if(..)`.
- </para></listitem>
- <listitem><para>
-Are there any advice or implementation limitations at issue? This
-involves knowing the few constraints on AspectJ imposed by Java bytecode
-as listed in the AspectJ Programming Guide section on
- <ulink url="../progguide/implementation.html">Implementation Notes</ulink>.
- </para></listitem>
- </orderedlist>
- </para>
- <para>
- It's much faster to iterate a pointcut at compile-time
- using declare warning (even better, some errors are identified
- at parse-time in the latest versions of AJDT).
- Start with the parts of the pointcut
- that are staticly-determinable (i.e., they do not involve
- the runtime PCD's listed above). If compiles themselves
- take too long because of all the AspectJ weaving, then
- try to only include the debugging aspect with the prototype
- pointcut, and limit the scope using <literal>within(..)</literal>.
- </para>
- <para>
- Some mistakes in primitive pointcuts:
- <itemizedlist>
-<listitem><para>
-`this(Foo) &amp;&amp; execution(static * *(..))`: There is no `this` in a static
-context, so `this()` or `target()` should not be used in a static
-context or when targetting a static context (respectively). This
-happens most often when you want to say things like "all calls to Foo from Bar"
-and you only pick out calls to instance methods of Foo
-or you try to pick out calls from static methods of Bar.
-</para></listitem>
-<listitem><para>
-`target(Foo) &amp;&amp; call(new(..)`: This will never match. In
-constructor-call join points, there is no target because the object
-has not been created yet.
-</para></listitem>
-<listitem><para>
-`call(* Foo.*(..))`: `Foo` refers to the compile-time type of the
-invoking reference, not the implementing class. In Java before 1.4,
-the compile-time type was rendered as the defining type, not the
-reference type; this was corrected in 1.4 (as shown when using ajc
-with the -1.4 flag) Most people should use `target(Foo) &amp;&amp; call(...)`.
-</para></listitem>
-<listitem><para>
-`execution(* Foo.bar(..))`: An execution join point for Foo is
-always within Foo, so this won't pick out any overrides of bar(..).
-Use `target(Foo) &amp;&amp; execution(* bar(..))` for instance methods.
-</para></listitem>
-<listitem><para>
-`within(Foo)`: anonymous types are not known at weave-time to be
-within the lexically-enclosing type (a limitation of Java bytecode).
-</para></listitem>
- </itemizedlist>
- </para>
- <para>
- Some mistakes in composition:
- <itemizedlist>
-<listitem><para>
-`call(* foo(Bar, Foo)) &amp;&amp; args(Foo)`: This will never match.
-The parameters in `args(..)` are position-dependent, so `args(Foo)` only picks
- out join points where there is only one argument possible, of type Foo.
-Use the indeterminate-arguments operator '..' as needed, e.g., `args(Foo, ..)`.
-</para></listitem>
-<listitem><para>
-`call(* foo()) &amp;&amp; execution(* foo())`: This will never match. Each
-pointcut must be true at each join point matched. For a union of different
-kinds of join points (here, call or execution), use '||'.
-E.g., to match both method-call and field-get join points, use
- `call(* ...) || get(...)`.
-</para></listitem>
-</itemizedlist>
- </para>
- <para>
- Some mistakes in implicit advice constraints:
- <itemizedlist>
-<listitem><para>
-`after () returning (Foo foo) : ...`: after advice can bind the
-returned object or exception thrown. That effectively acts like
-`target()`, `this()`, or `args()` in restricting when the advice
-runs based on the runtime type of the bound object, even though it is
-not explicitly part of the pointcut.
-</para></listitem>
-</itemizedlist>
- </para>
- <para>
- Some mistakes in implementation requirements:
- <itemizedlist>
-<listitem><para>
-`ajc` has to control the code for a join point in order to implement
-the join point. This translates to an implicit `within({code under
-the control of the compiler})` for all join points, with additional
-caveat for some join points. Take exception handlers, for example:
-there is no way to be sure from the bytecode where the original handler
-ends, so `ajc` can't implement after advice on handler join points.
-(Since these are on a per-join-point basis, they should be considered
-for each corresponding primitive pointcut designator.) Unlike the
-mistakes with the primitive PCDs above, the compiler will emit an
-error for these caveats.
-</para></listitem>
-<listitem><para>
-`call(@SuperAnnotation Subclass.meth()`: Annotations are not inherited
-by default, so e.g., if the pointcut specifies an annotation, then
-subclass implementations of that method will not be matched.
-</para></listitem>
-</itemizedlist>
- </para>
-
-
- </sect1>
-</chapter>
diff --git a/docs/pdguide/trace.xml b/docs/pdguide/trace.xml
deleted file mode 100644
index 6ff915738..000000000
--- a/docs/pdguide/trace.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-<chapter id="trace" xreflabel="Tracing">
- <title>Tracing</title>
-
- <sect1 id="trace-introduction">
- <title>Introduction</title>
-
- <para>
- The AspectJ developers have instrumented the compiler/weaver with
- many "trace" messages for their own debugging use. These remain in
- the production releases because tracing helps when it is hard to
- isolate the problem in a test case. This sections describes how
- to enable tracing so you can provide trace information on bug reports.
- </para>
- <para>
- The usual approach to opening a report on Bugzilla is to describe the symptoms of the
- problem and attach a simple testcase. This allows the AspectJ team to try and reproduce the problem in
- an attempt to fix it as well as improve the test suite. Unfortunately it may not be possible
- to produce such a testcase either because your program is too large or is commercially sensitive. Alternatively
- the problem may relate to your specific environment where AspectJ is being used and will not be
- reproducible by the AspectJ team. In each of these situations you can produce a
- trace of the compiler when the problem occurs instead. This can then be attached to the bug report. </para>
-
- <sect2 id="trace-configuration" xreflabel="Configuring Tracing">
- <title>Configuring Tracing</title>
-
- <para> When available (Java 5 or later) AspectJ will use the
- <ulink url="http://java.sun.com/j2se/1.5.0/docs/guide/logging/index.html">
- java.util.logging</ulink> infrastructure
- configured using a <literal>logging.properties</literal> file. By default only error
- and fatal events will be logged but less severe warnings as well as fine-grained
- method entry and exit events can be obtained using the appropriate configuration. All
- regular compiler messages can also be logged through the infrastructure by setting the
- <literal>org.aspectj.weaving.messages</literal> System property. </para>
-
- <para> If you are running the AspectJ compiler/weaver under JDK 1.4 or earlier,
- AspectJ will use a simple built-in trace
- infrastructure that logs to stderr. This is enabled by setting the
- <literal>org.aspectj.weaving.tracing.enabled</literal> System property. You may also override
- the default behaviour or provide your own trace implementation using the
- <literal>org.aspectj.weaving.tracing.factory</literal> System property. </para>
-
- <para> The table below lists the System properties that can be used to configure tracing. </para>
- <informaltable>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Property</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>
- <literal>org.aspectj.tracing.debug</literal>
- </entry>
- <entry>
- Enable simple debugging of the trace infrastructure itself.
- <para> Default: <literal>false</literal>. </para>
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.tracing.enabled</literal>
- </entry>
- <entry>
- Enable the built-in AspectJ trace infrastructure.
- <para> Default: <literal>false</literal>. </para>
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.tracing.factory</literal>
- </entry>
- <entry>
- Select trace infrastructure. Specify the fully qualified class name
- of the <literal>org.aspectj.weaver.tools.TraceFactory</literal>
- interface to use a custom infrastructure. Specify a value of
- <literal>default</literal> to force AspectJ to use it's
- built-in infrastructure.
- </entry>
- </row>
- <row>
- <entry>
- <literal>org.aspectj.tracing.messages</literal>
- </entry>
- <entry>
- Enable tracing of compiler messages. The kind of messages logged
- is determined by the selected trace infrastructure not the message
- configuration.
- <para> Default: <literal>false</literal>. </para>
- </entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
- </sect2>
-
- <sect2 id="trace-examples" xreflabel="trace-examples">
- <title>Examples</title>
-
- <para> Using <literal>-Dorg.aspectj.tracing.factory=default</literal>
- to force AspectJ to use its internal infrastructure,
- <literal>-Dorg.aspectj.tracing.enabled=true</literal> to turn it on and
- <literal>-Dorg.aspectj.tracing.messages=true</literal> to include messages
- running a simple HelloWorld with LTW will generate tracing to stderr. Below
- is an extract from that trace with method arguments removed.
- You will notice the millisecond time stamp,
- thread id and indication of entry/exit/event or message type for each line
- of trace.
- </para>
- <programlisting><![CDATA[
-15:44:18.630 main > org.aspectj.weaver.loadtime.Aj.<init>
-15:44:18.660 main < org.aspectj.weaver.loadtime.Aj.<init>
-15:44:18.660 main > org.aspectj.weaver.loadtime.Aj.preProcess
-15:44:18.660 main - org.aspectj.weaver.loadtime.Aj.preProcess
-15:44:18.730 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.<init>
-15:44:18.730 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.<init>
-15:44:18.730 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize
-15:44:18.821 main I [AppClassLoader@92e78c] info AspectJ Weaver Version DEVELOPMENT ...
-15:44:18.821 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions
-15:44:18.821 main I [AppClassLoader@92e78c] info register classloader ...
-15:44:18.821 main - org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions
-15:44:18.841 main - org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions
-15:44:18.841 main I [AppClassLoader@92e78c] info using configuration ...
-15:44:18.891 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.parseDefinitions
-15:44:19.021 main > org.aspectj.weaver.World$TypeMap.<init>
-15:44:19.021 main < org.aspectj.weaver.World$TypeMap.<init>
-15:44:19.021 main > org.aspectj.weaver.CrosscuttingMembersSet.<init>
-15:44:19.021 main < org.aspectj.weaver.CrosscuttingMembersSet.<init>
-15:44:19.021 main > org.aspectj.weaver.Lint.<init>
-15:44:19.021 main < org.aspectj.weaver.Lint.<init>
-15:44:19.021 main > org.aspectj.weaver.World.<init>
-15:44:19.111 main < org.aspectj.weaver.World.<init>
-15:44:19.201 main > org.aspectj.weaver.bcel.BcelWeaver.<init>
-15:44:19.201 main < org.aspectj.weaver.bcel.BcelWeaver.<init>
-15:44:19.201 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerDefinitions
-15:44:19.211 main > org.aspectj.weaver.bcel.BcelWeaver.setReweavableMode
-15:44:19.351 main < org.aspectj.weaver.bcel.BcelWeaver.setReweavableMode
-15:44:19.351 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerAspects
-15:44:19.351 main I [AppClassLoader@92e78c] info register aspect Aspect
-15:44:19.351 main > org.aspectj.weaver.bcel.BcelWeaver.addLibraryAspect
-15:44:19.501 main - org.aspectj.weaver.bcel.BcelWorld.lookupJavaClass
-15:44:19.632 main > org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
-15:44:19.792 main < org.aspectj.weaver.CrosscuttingMembersSet.addOrReplaceAspect
-15:44:19.792 main < org.aspectj.weaver.bcel.BcelWeaver.addLibraryAspect
-15:44:19.792 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerAspects
-15:44:19.792 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.registerDefinitions
-15:44:19.792 main > org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave
-15:44:19.822 main < org.aspectj.weaver.bcel.BcelWeaver.prepareForWeave
-15:44:19.822 main > org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.weaveAndDefineConcete...
-15:44:19.822 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.weaveAndDefineConcete...
-15:44:19.822 main < org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initialize
-15:44:19.822 main > org.aspectj.weaver.tools.WeavingAdaptor.weaveClass
-...
-]]></programlisting>
-
- <para> Alternatively when running under Java 5 the <literal>logging.properties</literal>
- file below could be used to configure Java Logging. The resulting
- file, just containing trace for the
- <literal>org.aspectj.weaver.loadtime</literal> package, will be
- written to <literal>java0.log</literal> in your <literal>user.home</literal> directory.
- </para>
-
- <programlisting><![CDATA[
-handlers= java.util.logging.FileHandler
-
-.level= INFO
-
-java.util.logging.FileHandler.pattern = %h/java%u.log
-java.util.logging.FileHandler.count = 1
-java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
-java.util.logging.FileHandler.level = FINER
-
-org.aspectj.weaver.loadtime.level = FINER
-]]></programlisting>
-
- <para>
- By setting the System property <literal>-Dorg.aspectj.tracing.debug=true</literal>
- you should see a message confirming which trace infrastructure is being used.
- </para>
- <programlisting><![CDATA[
-TraceFactory.instance=org.aspectj.weaver.tools.Jdk14TraceFactory@12dacd1
-]]></programlisting>
- </sect2>
- </sect1>
-</chapter>