diff options
author | Alexander Kriegisch <Alexander@Kriegisch.name> | 2022-04-02 08:22:42 +0700 |
---|---|---|
committer | Alexander Kriegisch <Alexander@Kriegisch.name> | 2022-04-02 08:24:04 +0700 |
commit | 651e92a3285606537cfa47913adc17ce90bc22c8 (patch) | |
tree | e0fb94bf0758d5f2f09437aee383713220b57232 /docs | |
parent | cefa5d6bfcb92ea66e6fccd68fa922dba914a420 (diff) | |
download | aspectj-651e92a3285606537cfa47913adc17ce90bc22c8.tar.gz aspectj-651e92a3285606537cfa47913adc17ce90bc22c8.zip |
Remove AspectJ Browser (ajbrowser) code and documentation
Closes #148.
TODO: Should more AJDE stuff be removed?
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/devGuideDB/ajbrowser-building.gif | bin | 26404 -> 0 bytes | |||
-rw-r--r-- | docs/devGuideDB/ajbrowser-options.gif | bin | 9437 -> 0 bytes | |||
-rw-r--r-- | docs/devGuideDB/ajbrowser.xml | 421 | ||||
-rw-r--r-- | docs/devGuideDB/ajdejbuilder.xml | 20 | ||||
-rw-r--r-- | docs/devGuideDB/devguide.xml | 27 | ||||
-rw-r--r-- | docs/devGuideDB/tools-intro.xml | 51 | ||||
-rw-r--r-- | docs/developer/IDE.md | 8 | ||||
-rw-r--r-- | docs/developer/modules.html | 156 | ||||
-rw-r--r-- | docs/dist/README-AspectJ.html | 36 | ||||
-rw-r--r-- | docs/dist/doc/index.html | 9 | ||||
-rw-r--r-- | docs/faq/faq.xml | 28 |
11 files changed, 143 insertions, 613 deletions
diff --git a/docs/devGuideDB/ajbrowser-building.gif b/docs/devGuideDB/ajbrowser-building.gif Binary files differdeleted file mode 100644 index 29767c605..000000000 --- a/docs/devGuideDB/ajbrowser-building.gif +++ /dev/null diff --git a/docs/devGuideDB/ajbrowser-options.gif b/docs/devGuideDB/ajbrowser-options.gif Binary files differdeleted file mode 100644 index 41ba67654..000000000 --- a/docs/devGuideDB/ajbrowser-options.gif +++ /dev/null diff --git a/docs/devGuideDB/ajbrowser.xml b/docs/devGuideDB/ajbrowser.xml deleted file mode 100644 index 6a6c85c25..000000000 --- a/docs/devGuideDB/ajbrowser.xml +++ /dev/null @@ -1,421 +0,0 @@ -<chapter id="ajbrowser" xreflabel="AspectJ Browser"> - - <title>AspectJ Browser</title> - - <sect1 id="ajbrowser-intro"> - <title>Introduction</title> - <para> - AJBrowser presents a GUI for compiling programs with ajc - and navigating crosscutting structure. - </para> - <para> - The AspectJ Browser can edit program source files, - compile using the AspectJ compiler <literal>ajc</literal> - run a program, - and graphically navigate the program's - crosscutting structure. - For more information on <literal>ajc</literal>, - see <xref linkend="ajc-ref"/>. - - - </para> - - <para> - Launch the browser from the command line either - by typing "ajbrowser" to invoke the script in - <literal>{aspectj}/bin</literal> - (if AspectJ is installed correctly) - or by using the - <literal>aspectjtools.jar</literal> directly, - and specifying no arguments or some number of - build configuration files - (suffix <literal>.lst</literal>): - <programlisting> -java -jar aspectj1.1/lib/aspectjtools.jar aspectj1.1/doc/examples/spacewar/debug.lst - </programlisting> - </para> - - </sect1> - - <sect1 id="ajbrowser-building"> - <title>Building Programs</title> - <sect2 id="build-configurations" xreflabel="build-configurations"> - <title>Build Configurations</title> - - <para>A build configuration is a set of files to compile for a - program (and optionally some additional compile arguments). - Because <literal>ajc</literal> requires all sources to be specified - (at least using the <literal>-sourceroots</literal> option), - most users create <literal>.lst</literal> files that list - the files to compile (one argument per line, globbing - permitted - for more details, see <xref linkend="ajc-ref"/>). - </para> - <para> - To work with a particular program, select the - corresponding ".lst" build configuration file - from the GUI using the File menu, "open" item, - or by using the - "Open Build Configuration" button - (<inlinemediaobject> - <imageobject> - <imagedata fileref="openConfig.gif"/> - </imageobject> - </inlinemediaobject>). - - You can populate the build list from the command line - by passing any number of ".lst" paths. - (However, if you pass in any non-".lst" arguments, - it will run the command-line compiler directly.) - </para> - <para> - To switch between build configurations, - select, add, or remove them - using the corresponding toolbar buttons. - </para> - <para>Global build options are stored in an - <literal>.ajbrowser</literal> file in your HOME directory. - Edit these from the GUI by clicking the "Options" button - or selecting the Tools menu item "Options...". - This is how to set classpath, aspectpath, etc. - </para> - <para>The following sections walk through a build. - </para> - </sect2> - <sect2 id="compiling-a-program-build-configuration" xreflabel="compiling-a-program-build-configuration"> - <title>Compiling a Program Build Configuration</title> - - <para> - To compile click the "Build" button - (<inlinemediaobject> - <imageobject> - <imagedata fileref="build.gif"/> - </imageobject> - </inlinemediaobject>), or - or use the tools menu. - </para> -<!-- - <para>To build using AspectJ 1.1's incremental mode, - click the <literal>incremental compile</literal> checkbox in - the <literal>AspectJ Build Options</literal> tab - of the <literal>Options</literal> dialog. - Once in incremental mode, you can force a full rebuild - by holding the shift key down when selecting the - build menu item or button. - </para> ---> - <para> - You may select - from different build configurations in the GUI - (see label 1 in the graphic below). - (If you get classpath or other errors, set up the - global build options as described above.) - </para> - <para> - <inlinemediaobject> - <imageobject> - <imagedata fileref="ajbrowser-building.gif"/> - </imageobject> - </inlinemediaobject> - </para> - </sect2> - </sect1> - - <sect1 id="ajbrowser-navigating"> - <title>Navigating Program Structure</title> - - <para> - Select nodes in the program structure by clicking them (see label 2). - If one node is related to one or more other nodes by an association the - name of the association will appear below that node and will be - displayed in italics. Links to other structure nodes appear in blue - below the association. If there is no corresponding source for the - link it will appear light-blue. - </para> - <para> - <inlinemediaobject> - <imageobject> - <imagedata fileref="ajbrowser-building.gif"/> - </imageobject> - </inlinemediaobject> - </para> - - <sect2 id="example" xreflabel="example"> - <title>Example: Exploring the "Spacewar" sample code </title> - <para> - <itemizedlist> - - <listitem> <para>Launch <literal>ajbrowser</literal></para> - </listitem> - - <listitem> <para>Choose "File -> Open" or click the "Open Build - Configuration" button - (<inlinemediaobject> - <imageobject> - <imagedata fileref="openConfig.gif"/> - </imageobject> - </inlinemediaobject>) and select the configuration file for debugging - the spacewar example, in - <literal>examples/spacewar/debug.lst</literal>.</para> - </listitem> - - <listitem> <para>Click the "Build" button (<inlinemediaobject> - <imageobject> - <imagedata fileref="build.gif"/> - </imageobject> - </inlinemediaobject>) to - compile. The left pane should fill with a spacewar declaration - tree. If there is a compiler error, the clickable error message - shows up as in label 4. - </para> - - <para>Note: If you did not set up your classpath, the - compile will fail with a message that you need to install - aspectjrt.jar on your compile classpath. To do that, select "Tools - -> Options" or click the "Options" button - (<inlinemediaobject> - <imageobject> - <imagedata fileref="browseroptions.gif"/> - </imageobject> - </inlinemediaobject>). Click the <literal>Build Options</literal> tab - to view the Build Paths pane. Edit the classpath entry to use your - install location. For example, if you ran from the base Aspectj - directory, the classpath need only include - <literal>lib/aspectjrt.jar</literal> (though the browser may populate - the classpath with the bootclasspath and classpath initially.) - Be sure to use the - <literal>lib/aspectjrt.jar</literal> that came with the browser. - </para> - - <para> - <inlinemediaobject> - <imageobject> - <imagedata fileref="ajbrowser-options.gif"/> - </imageobject> - </inlinemediaobject> - </para> - - </listitem> - - <listitem> <para>Different structure views: The structure tree at the - left can display different orderings and granularity for structure: - - <itemizedlist> - <listitem><para>The package hierarchy view shows the traditional hierarchy - of package, class, and members.</para></listitem> - - <listitem><para>The inheritance view shows the hierarchy from topmost - parent classes through subclasses to members.</para></listitem> - - <listitem><para>The crosscutting view shows the aspect members - and the code they affect.</para></listitem> - - <listitem><para>Additional buttons in the pane can be used to change the - granularity and filter out items.</para> - </listitem> - - </itemizedlist> - - </para> - - <para>Whenever you select an item in the tree view, the - source pane scrolls to that item. If you select a leaf item - representing another program element, then the tree - selection will go to the corresponding node. (See below for - how to use two panes to maintain your place.) - </para> - - </listitem> - <listitem> - - <para>When working with aspects, it helps to be able to navigate - between different program elements: - </para> - - <itemizedlist> - - <listitem><para>When looking at a method, find the advice that - affects it. </para></listitem> - - <listitem><para>When looking at a pointcut, find the advice that - uses it. </para></listitem> - - <listitem><para>When looking at advice, find what it advises - - e.g., method calls or executions, initializers, etc. - </para></listitem> - - <listitem><para>When looking at a type, find any aspects that - declare members or supertypes of the type, or - vice-versa. - </para></listitem> - - </itemizedlist> - - <para>You can view the advice on a particular method using the - default, hierarchical view. Navigate to the tree item for - <literal>spacewar.Registry.register(SpaceObject)</literal> - in the <literal>debug.lst</literal> config file. Now, in - the lower, file view, you can see and navigate to the advice - using the subtree whose parent is the <literal>method - affected by</literal> relation. - </para> - - <para>You can also use crosscutting view to see the - advice using a pointcut or the methods affected by advice. - For example, to see what advice uses a particular pointcut, - navigate to the tree item for the pointcut - <literal>spacewar.Debug.allConstructorsCut()</literal> in - the <literal>debug.lst</literal> config file. You can see - and navigate to the advice that uses the pointcut using the - <literal>pointcut used by</literal> relation. - </para> - - <para>As an example of seeing the methods affected by advice, - while still in the same view, select the first - <literal>before</literal> advice in - <literal>spacewar.Debug</literal>. It has relation - sub-trees for both <literal>uses pointcut</literal> and - <literal>affects constructions</literal>. The - <literal>affects</literal> relations will list different - kinds of join points - constructor or method calls, etc. - </para> - <para>Note that the AspectJ browser can only display - static structure (whether hierarchical or crosscutting). - That means that dynamicly-determined pointcuts (like - <literal>cflow(pointcut)</literal>) - will not be shown as picking out static points in - source code. Displayable pointcuts roughly correspond - to those that can be used in a - <literal>declare error</literal> statement. - </para> - </listitem> - </itemizedlist> - </para> - </sect2> - </sect1> - <sect1 id="ajbrowser-running"> - <title>Running Programs</title> - <para> - The browser supports a limited form of running compiled programs. - To run programs that have been built, click the run button - or select one of the run menu items in the project menu. - You can run in the same VM or spawn a new process; - the latter is generally better for GUI programs. - </para> - <para>Both require that any classpath you set be specified - using platform-specific paths and path separators (the - compiler might be more tolerant). - Output and error streams will be - merged into the streams of the browser (using separate - threads, so it may take a few seconds for the pipe - threads to gain control.) Errors should - be detected and displayed in a dialog. - </para> - <para> - The GUI does not support killing a running program, - so if your program might hang, - be sure to save your files since you may need to - kill the browser itself to kill its child processes. - </para> - </sect1> - - <sect1 id="ajbrowser-problems"> - <title>Isolating problems running the AspectJ browser</title> - - <para> - If you have problems with the browser not solved by the documentation, - please try to see if you have the same problems when running ajc - directly on the command line. - </para> - <itemizedlist> - <listitem><para> - If the problem occurs on the command line also, then the problem - is not in the browser. - (It may be in the compiler; please send bug reports.) - </para></listitem> - <listitem><para> - If the problem does not occur on the command line, then it may - lie in the parameters you are supplying in the build options. - </para></listitem> - <listitem><para> - If the build options look correct and the problem only occurs - when building from the browser, then please submit a bug report. - </para></listitem> - </itemizedlist> - - <sect2 id="ajbrowser-knownProblems"> - <title>Known issues with the AspectJ browser</title> - <para> - For the most up-to-date information on known problems, - see the - <ulink url="http://bugs.eclipse.org/bugs">bug database</ulink> - for unresolved - <ulink url="http://bugs.eclipse.org/bugs/buglist.cgi?&product=AspectJ&component=Compiler&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> - compiler bugs - </ulink> or - <ulink url="http://bugs.eclipse.org/bugs/buglist.cgi?&product=AspectJ&component=IDE&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED"> - IDE bugs - </ulink>. - </para> - <para> - <itemizedlist> - <listitem><para> - Memory and forking: Users email most about the browser task running - out of memory. - This is not a problem with the browser; some compiles take a lot of - memory, often more than similar compiles using javac. - The browser does not support forking, so the only solution is to - edit the java command line or script that launches the browser - to add memory. - </para></listitem> - <listitem><para> - Editing build configuration files: this is not currently supported. - </para></listitem> - <listitem><para> - The structure model is incomplete after incremental compiles. - To get a complete structure model requires a full build. - </para></listitem> - <listitem><para> - If you change the output directory, you must do a - full build. - </para></listitem> - </itemizedlist> - </para> - </sect2> - <sect2 id="ajbrowser-limitations"> - <title>Limitations</title> - <para> - <itemizedlist> - <listitem><para> - The AJBrowser expects the package and directory structure to match. If they do not - it will be unable to browse to the corresponding file. - </para></listitem> - <listitem><para> - The "Run" feature launches applications in the same VM. As a result, if a Swing application - is disposed the AJBrowser will be disposed as well. - </para></listitem> - </itemizedlist> - </para> - </sect2> - <sect2 id="ajbrowser-feedback"> - <title>AspectJ Browser questions and bugs</title> - <para> - You can send email to - <ulink url="mailto:aspectj-users@dev.eclipse.org"> - aspectj-users@dev.eclipse.org</ulink>. - (Do join the list to participate!) - We also welcome any bug reports, patches, and feature requests; - you can submit them to the bug database at - <ulink url="http://bugs.eclipse.org/bugs"> - http://bugs.eclipse.org/bugs</ulink> - using the AspectJ product and IDE component. - </para> - </sect2> - </sect1> -</chapter> - -<!-- Local variables: --> -<!-- fill-column: 79 --> -<!-- sgml-local-ecat-files: devguide.ced --> -<!-- sgml-parent-document:("devguide.sgml" "book" "refentry") --> -<!-- End: --> - diff --git a/docs/devGuideDB/ajdejbuilder.xml b/docs/devGuideDB/ajdejbuilder.xml index a201dd48d..f8071acc1 100644 --- a/docs/devGuideDB/ajdejbuilder.xml +++ b/docs/devGuideDB/ajdejbuilder.xml @@ -84,18 +84,20 @@ r<refentry> <para> To run the project select "Run Project" from the AspectJ toolbar, or click <ctrl>F12 while the editor pane is active. Note that the - "AspectJ Runtime" library must be added to your project in order to - run. If the library is not added you will see a
"java.lang.NoClassDefFoundError: org/aspectj/lang/Signature" error.
The library is created automatically for you from the runtime + "AspectJ Runtime" library must be added to your project in order to + run. If the library is not added you will see a + "java.lang.NoClassDefFoundError: org/aspectj/lang/Signature" error. + The library is created automatically for you from the runtime in "jbuilderdir/lib/ext". You can also create a new library - to use the runtime from a different location. If you have not added the + to use the runtime from a different location. If you have not added the library to the "Required Libraries" of your project it will be added automatically when you restart JBuilder. </para> <para> - JBuilder7 users please note: when you set up a run/debug configuration - you must select the "Build Target" (at the bottom of the - "Runtime Properties" dialog) to be "<None>". This will ensure - that the Java compiler is not invoked on your AspectJ sources + JBuilder7 users please note: when you set up a run/debug configuration + you must select the "Build Target" (at the bottom of the + "Runtime Properties" dialog) to be "<None>". This will ensure + that the Java compiler is not invoked on your AspectJ sources before running or debugging the project. </para> </refsect1> @@ -105,7 +107,7 @@ r<refentry> <imagedata fileref="jbuilder-structureNavigation.gif" /> </imageobject> <para> - Navigation of program structure is provided by the <xref linkend="ajbrowser">AspectJ Browser</xref>, so apart from a JBuilder + Navigation of program structure is provided by the AspectJ Browser, so apart from a JBuilder look and feel, the extra navigation AspectJ allows work as described there. In particular, you can use views with labels 1, 2 and 4 of the second screenshot to navigate structure using the blue links, and you @@ -117,7 +119,7 @@ r<refentry> <title>Manipulating Build Configurations</title> <para> Build configurations can be manipulated adding, removing, and - editing build configuration files. The <xref linkend="ajbrowser">AspectJ Browser</xref> is used to select the + editing build configuration files. The AspectJ Browser is used to select the current build configuration. Configurations are represented by ".lst" files which are described in the <xref linkend="ajc">ajc</xref> documentation. </para> diff --git a/docs/devGuideDB/devguide.xml b/docs/devGuideDB/devguide.xml index e79ab53a2..90e6e4aec 100644 --- a/docs/devGuideDB/devguide.xml +++ b/docs/devGuideDB/devguide.xml @@ -7,7 +7,6 @@ <!ENTITY ajc SYSTEM "ajc.xml"> <!ENTITY ajdoc SYSTEM "ajdoc.xml"> <!ENTITY antsupport SYSTEM "antsupport.xml"> -<!ENTITY ajbrowser SYSTEM "ajbrowser.xml"> <!ENTITY compatibility SYSTEM "compatibility.xml"> <!ENTITY ltw SYSTEM "ltw.xml"> <!ENTITY tools-intro SYSTEM "tools-intro.xml"> @@ -25,9 +24,9 @@ </authorgroup> <legalnotice> - <para>Copyright (c) 1998-2001 Xerox Corporation, + <para>Copyright (c) 1998-2001 Xerox Corporation, 2002 Palo Alto Research Center, Incorporated, - 2003-2005 Contributors. + 2003-2005 Contributors. All rights reserved. </para> </legalnotice> @@ -35,13 +34,13 @@ <abstract> <para> This guide describes how to build and deploy AspectJ programs - using the AspectJ tools and facilities. See also + using the AspectJ tools and facilities. See also <ulink url="../progguide/index.html">The - AspectJ Programming Guide</ulink>, + AspectJ Programming Guide</ulink>, the documentation available with the AspectJ support available for - various integrated development environments (e.g., - <ulink url="http://eclipse.org/ajdt">Eclipse AJDT</ulink>), - and the most-recent documentation available from + various integrated development environments (e.g., + <ulink url="http://eclipse.org/ajdt">Eclipse AJDT</ulink>), + and the most-recent documentation available from the AspectJ project page, at <ulink url="http://eclipse.org/aspectj"> http://eclipse.org/aspectj</ulink>. @@ -52,29 +51,27 @@ <chapter id="command-line-tools" xreflabel="AspectJ command-line tools"> <title>AspectJ command-line tools</title> - + <sect1 id="ajc-ref-top"> <title><literal>ajc</literal>, the AspectJ compiler/weaver</title> - &ajc; + &ajc; </sect1> <sect1 id="ajdoc-ref-top"> <title><literal>ajdoc</literal>, the AspectJ documentation tool</title> <para><literal>ajdoc</literal> produces JavaDoc-style documentation including crosscutting information.</para> - &ajdoc; + &ajdoc; </sect1> <sect1 id="aj-ref-top"> <title><literal>aj</literal>, the AspectJ load-time weaving script</title> <para><literal>aj</literal> launches programs, configuring basic load-time weaving.</para> - &aj; + &aj; </sect1> </chapter> - - &ajbrowser; + &antsupport; <w; &compatibility; </book> - diff --git a/docs/devGuideDB/tools-intro.xml b/docs/devGuideDB/tools-intro.xml index ab29d0c21..bc6051489 100644 --- a/docs/devGuideDB/tools-intro.xml +++ b/docs/devGuideDB/tools-intro.xml @@ -1,14 +1,14 @@ -<chapter id="tools-intro" +<chapter id="tools-intro" xreflabel="Introduction to the AspectJ tools"> <title>Introduction to the AspectJ tools</title> -<sect1 +<sect1 id="eclipse-aspectj" xreflabel="The Eclipse AspectJ implementation"> <title>The Eclipse AspectJ implementation</title> <para>The <ulink url="../progguide/index.html">AspectJ Programming Guide</ulink> describes the AspectJ language. This guide describes the AspectJ tools produced by the AspectJ - team on + team on <ulink url="http://eclipse.org/aspectj">http://eclipse.org/aspectj</ulink>. The AspectJ tools include - ajc, the compiler/weaver; @@ -25,46 +25,46 @@ classes. </para> <para> - Since AspectJ 1.1, the tools have implemented the AspectJ language + Since AspectJ 1.1, the tools have implemented the AspectJ language using bytecode weaving, which combines aspects and classes to produce .class files that run in a Java VM. There are other ways to implement the language (e.g., compiler preprocessor, VM support); the AspectJ team has always tried to distinguish the language and the implementation so other groups could build alternative implementations of AspectJ. To that end, - + <ulink url="../progguide/implementation.html">The AspectJ Programming Guide, Implementation Notes</ulink> describes how the Java bytecode form affects language semantics. VM- or source-based implementations may be free of these limits or impose limits of their own, but most should be fairly close to what's possible in Java bytecode. </para> - <para> + <para> Please be careful not to confuse any description of weaving or of this implementation of the AspectJ language with the AspectJ language semantics. If you do, you might find yourself writing code that doesn't work as - expected when you compile or run it on other systems. + expected when you compile or run it on other systems. More importantly, if you think about aspects in terms of weaving or of inserting or merging code, then you can lose many of the design benefits of thinking - about an aspect as a single crosscutting module. + about an aspect as a single crosscutting module. When the text below introduces an implementation detail, it will warn if users make mistakes by applying it in lieu of the language semantics. </para> </sect1> <!-- graphic for bytecode weaving --> -<sect1 +<sect1 id="bytecode-concepts" xreflabel="Bytecode weaving, incremental compilation, and memory usage"> <title>Bytecode weaving, incremental compilation, and memory usage</title> <para>Bytecode weaving takes classes and aspects in .class form - and weaves them together to produce binary-compatible .class files that + and weaves them together to produce binary-compatible .class files that run in any Java VM and implement the AspectJ semantics. This process supports not only the compiler but also IDE's. The compiler, given an aspect in source form, produces a binary aspect and runs the weaver. IDE's can get information about - crosscutting in the program by subscribing to information + crosscutting in the program by subscribing to information produced by weaver as a side-effect of weaving. </para> <para>Incremental compilation involves recompiling only what is necessary @@ -73,7 +73,7 @@ Incremental weaving supports this by weaving on a per-class basis. (Some implementations of AOP (including AspectJ 1.0) make use of whole-program analysis that can't be done in incremental mode.) - Weaving per-class means that if the source for a pure Java class + Weaving per-class means that if the source for a pure Java class is updated, only that class needs to be produced. However, if some crosscutting specification may have been updated, then all code potentially affected by it may need to be woven. The AspectJ @@ -89,16 +89,15 @@ (While it may seem like more memory, the proper comparison would with with a Java program that had the same crosscutting, with changes made to each code segment. That would likely require - more memory and more time to recompile than the corresponding + more memory and more time to recompile than the corresponding AspectJ program.) </para> -<sect2 +<sect2 id="classpathInpathAndAspectpath" xreflabel="Classpath, inpath, and aspectpath"> <title>Classpath, inpath, and aspectpath</title> <para>AspectJ introduces two new paths for the binary input to the weaver which you'll find referenced in <xref linkend="ajc-ref"/>, - <xref linkend="ajbrowser"/>, <xref linkend="antTasks"/>, and <xref linkend="ltw"/>. </para> @@ -109,28 +108,28 @@ </para> <para> In AspectJ tools, the <literal>aspectpath</literal> is where to find binary - aspects. Like the classpath, it can include archives (.jar and .zip files) - and directories containing .class files in a package layout (since + aspects. Like the classpath, it can include archives (.jar and .zip files) + and directories containing .class files in a package layout (since binary aspects are in .class files). These aspects affect other classes in exactly the same way as source-level aspects, but are themselves - not affected. When deploying programs, the original aspects must be included + not affected. When deploying programs, the original aspects must be included on the runtime classpath. </para> <para> In AspectJ tools, the <literal>inpath</literal> is where to find binary - input - aspects and classes that weave and may be woven. - Like the classpath, it can include archives and class directories. + input - aspects and classes that weave and may be woven. + Like the classpath, it can include archives and class directories. Like the aspectpath, it can include aspects that affect other classes and aspects. However, unlike the aspectpath, an aspect on the inpath may itself be affected by aspects, as if the source were all compiled together. - When deploying aspects that were put on the inpath, only the woven output + When deploying aspects that were put on the inpath, only the woven output should be on the runtime classpath. </para> <para> Although types in the inpath and the aspectpath need to be resolved by the AspectJ tools, you usually do not need to place them on the classpath - because this is done automatically by the compiler/weaver. But when using + because this is done automatically by the compiler/weaver. But when using the <literal>WeavingURLClassLoader</literal>, your code must explicitly add the aspects to the classpath so they can be resolved (as you'll see in the sample code and the <literal>aj.bat</literal> script). @@ -140,18 +139,18 @@ weaving with binary aspects, users forget to deploy the aspect itself along with any classes it requires. A more subtle mistake is putting a binary aspect (BA) on the inpath instead of the aspectpath. In this case - the aspect BA might be affected by an aspect, even itself; this can - cause the program to fail, e.g., when an aspect uses exclusion to + the aspect BA might be affected by an aspect, even itself; this can + cause the program to fail, e.g., when an aspect uses exclusion to avoid infinite recursion but fails to exclude advice in aspect BA. </para> <para>The latter is one of many ways that mistakes in the build process can affect aspects that are written poorly. Aspects should never rely on the boundaries of the build specification to narrow the - scope of their crosscutting, since the build can be changed + scope of their crosscutting, since the build can be changed without notice to the aspect developer. Careful users might even avoid relying on the implementation scope, to ensure their AspectJ code will run on other implementations. </para> </sect2> </sect1> -</chapter>
\ No newline at end of file +</chapter> diff --git a/docs/developer/IDE.md b/docs/developer/IDE.md index fd2c25957..2dc560008 100644 --- a/docs/developer/IDE.md +++ b/docs/developer/IDE.md @@ -11,8 +11,8 @@ the AspectJ Compiler _ajc_ from the command line. Please refer to the [AspectJ Development Environment Guide](https://www.eclipse.org/aspectj/doc/next/devguide/printable.html) for more details about on-board AspectJ tools, such as _ajc_ (compiler), _ajdoc_ (aspect-enriched Javadoc), _aj_ -(load-time weaving helper), AspectJ Browser (simple visualisation tool for cross-cutting aspect structure) as well as -basic information about load-time weaving configuration and the built-in Ant task for AspectJ. +(load-time weaving helper) as well as basic information about load-time weaving configuration and the built-in Ant task +for AspectJ. ## IDE support @@ -95,8 +95,8 @@ If you wish to install AspectJ in a separate directory and use it from the comma feel free to download the **AspectJ installer**. It is and executable JAR installer. It requires Java and possibly admin rights, if e.g. under Windows you want to install AspectJ to _C:/Program Files/AspectJ_. You execute it from a command prompt via `java -jar installer-<version>.jar` and select your installation options. Then you add `<ASPECTJ_HOME>/bin` -to your path and are good to go. You can now call tools like the Aspectj compiler `ajc`, the AspectJ documentation -generator `ajdoc` (similar to Javadoc) or the AspectJ Browser `ajbrowser` from the command line. +to your path and are good to go. You can now call tools like the Aspectj compiler `ajc` or the AspectJ documentation +generator `ajdoc` (similar to Javadoc) from the command line. You can find older installer versions until 1.9.6 on the [AspectJ website](https://www.eclipse.org/aspectj/downloads.php), more recent ones are attached to AspectJ [GitHub releases](https://github.com/eclipse/org.aspectj/releases) as diff --git a/docs/developer/modules.html b/docs/developer/modules.html index 6989c81a3..0aa3e8cfd 100644 --- a/docs/developer/modules.html +++ b/docs/developer/modules.html @@ -8,9 +8,9 @@ <title>AspectJ modules</title> <STYLE TYPE="text/css"> <!-- - + /* FOR THE SDA PAGE */ - + /* BODY {margin-top: 15px; margin-left: 15px; margin-right: 15px;} */ @@ -24,116 +24,116 @@ A:hover { color:red } - + INPUT {font:12px "Courier New", sans-serif;} - + H2 { - font:18px/18px Verdana, Arial, Helvetica, sans-serif; - color:black; - font-weight:bold; + font:18px/18px Verdana, Arial, Helvetica, sans-serif; + color:black; + font-weight:bold; margin-left: 10px; - line-height:110%; + line-height:110%; } H3 { - font:18px/18px Verdana, Arial, Helvetica, sans-serif; - color:black; - font-weight:bold; + font:18px/18px Verdana, Arial, Helvetica, sans-serif; + color:black; + font-weight:bold; margin-left: 10px; - line-height:110%; + line-height:110%; } H4 { - font:15px/16px Verdana, Arial, Helvetica, sans-serif; - color:black; - font-weight:bold; + font:15px/16px Verdana, Arial, Helvetica, sans-serif; + color:black; + font-weight:bold; margin-left: 10px; line-height:140%; } P { - font:13px/13px Verdana, Arial, Helvetica, sans-serif; + font:13px/13px Verdana, Arial, Helvetica, sans-serif; margin-right: 10px; margin-left: 10px; - line-height:130%; + line-height:130%; } .paragraph { - font:13px/13px Verdana, Arial, Helvetica, sans-serif; + font:13px/13px Verdana, Arial, Helvetica, sans-serif; margin-right: 10px; margin-left: 10px; - line-height:130%; + line-height:130%; } .smallParagraph { - font:11px/11px Verdana, Arial, Helvetica, sans-serif; + font:11px/11px Verdana, Arial, Helvetica, sans-serif; margin-right: 10px; margin-left: 10px; - line-height:130%; + line-height:130%; } LI { font:13px/13px Verdana, Arial, Helvetica, sans-serif; - text-align:justify; + text-align:justify; margin-right: 10px; margin-left: 15px; - line-height:120%; + line-height:120%; } /* UL { font:13px/13px Verdana, Arial, Helvetica, sans-serif; - text-align:justify; + text-align:justify; margin-right: 10px; margin-left: 15px; - line-height:120%; + line-height:120%; }*/ - + DL { font:13px/13px Verdana, Arial, Helvetica, sans-serif; - text-align:justify; + text-align:justify; margin-right: 10px; margin-left: 15px; - line-height:120%; + line-height:120%; } - B { font:13px/13px Verdana, Arial, Helvetica, sans-serif; - font-weight:bold; + B { font:13px/13px Verdana, Arial, Helvetica, sans-serif; + font-weight:bold; line-height:140%; } .footer { - font:10px/10px Verdana, Arial, Helvetica, sans-serif; - color:#888888; + font:10px/10px Verdana, Arial, Helvetica, sans-serif; + color:#888888; text-align:left } .figureTitle { - font:13px/13px Verdana, Arial, Helvetica, sans-serif; - text-align:justify; + font:13px/13px Verdana, Arial, Helvetica, sans-serif; + text-align:justify; text-align:center } .copyrightNotice { - font:10px/10px Verdana, Arial, Helvetica, sans-serif; - color:#999999; + font:10px/10px Verdana, Arial, Helvetica, sans-serif; + color:#999999; line-height:110%; } .smallHeading { - font:13px/13px Verdana, Arial, Helvetica, sans-serif; + font:13px/13px Verdana, Arial, Helvetica, sans-serif; font-weight:bold; line-height:110%; } .tinyHeading { - font:11px/11px Verdana, Arial, Helvetica, sans-serif; + font:11px/11px Verdana, Arial, Helvetica, sans-serif; font-weight:bold; line-height:120%; } .newsText { - font:11px/11px Verdana, Arial, Helvetica, sans-serif; + font:11px/11px Verdana, Arial, Helvetica, sans-serif; line-height:130%; } .smallParagraph { - font:11px/11px Verdana, Arial, Helvetica, sans-serif; + font:11px/11px Verdana, Arial, Helvetica, sans-serif; line-height:130%; } .fancyHeading { - font:20px/20px Chantilly, Arial, Helvetica, sans-serif; + font:20px/20px Chantilly, Arial, Helvetica, sans-serif; margin-right: 10px; color:#6f7a92; margin-left: 10px; line-height:130%; } - + --> </STYLE> </head> @@ -142,19 +142,19 @@ <h3 align="center">AspectJ Modules</h3> -<p>There are a number of different structures [Parnas]: "the module structure, -the uses structure, the runtime structure, .." This document overviews module structure and summarizes what is hidden by each. -For detailed documentation refer to the individual module sources and docs +<p>There are a number of different structures [Parnas]: "the module structure, +the uses structure, the runtime structure, .." This document overviews module structure and summarizes what is hidden by each. +For detailed documentation refer to the individual module sources and docs available via CVS. </p> <h4 align="center">Core Modules</h4> <p><b>CVS Location: </b>dev.eclipse.org:/cvsroot/technology/org.aspectj/modules</p> <p> -To set up for building, one need only check out the module directories within the +To set up for building, one need only check out the module directories within the <code>modules/</code> directory. In Eclipse, check out each module into the the workspace as a project. (Note: module dependencies may change at any time, so this documentation might be out of date. -The Eclipse .classpath files specify the module dependencies, +The Eclipse .classpath files specify the module dependencies, even when using Ant to build outside of Eclipse.) <p> @@ -172,32 +172,32 @@ even when using Ant to build outside of Eclipse.) <td bgColor="#eeeeee"> <p class="smallParagraph" align="left">ajbrowser</td> <td bgColor="#eeeeee"> - <p class="smallParagraph" align="left">ajde, asm, bridge, util, taskdefs + <p class="smallParagraph" align="left">ajde, asm, bridge, util, taskdefs (pseudo, for build system) </td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - This module contains the ajbrowser application. It depends on the ajde module -for access to the aspectj compiler, and also for the swing user interface + This retired module used to contain the ajbrowser application. It depends on the ajde module +for access to the aspectj compiler, and also for the swing user interface components that ajde provides.</td> </tr> <tr> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left">ajde</td> <td bgColor="#eeeeee"> - <p class="smallParagraph" align="left">asm, bridge, + <p class="smallParagraph" align="left">asm, bridge, org.aspectj.ajdt.core, org.eclipse.jdt.core, util</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Hides the details of accessing the aspectj compiler - and interpreting compilation results (error messages, structure - model, etc.) from other applications (typically IDEs) that need + Hides the details of accessing the aspectj compiler + and interpreting compilation results (error messages, structure + model, etc.) from other applications (typically IDEs) that need to invoke it programmatically. - Changing any public interface in ajde can break all the IDE + Changing any public interface in ajde can break all the IDE integration projects and should be done with care.<br> <br> - It also contains a library of common swing user interface - components that can be used by any swing based IDE. Ajbrowser - and the non-eclipse IDE integration projects use this library + It also contains a library of common swing user interface + components that can be used by any swing based IDE. Ajbrowser + and the non-eclipse IDE integration projects use this library (except for the emacs support).</td> </tr> <tr> @@ -207,8 +207,8 @@ components that ajde provides.</td> <p class="smallParagraph" align="left">bridge</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Contains the Abstract Structure Model, which represents the result of -an aspectj compilation. Clients of ajde are returned an instance of the + Contains the Abstract Structure Model, which represents the result of +an aspectj compilation. Clients of ajde are returned an instance of the structure model which allows them to navigate and interpret the static structure of an aspectj program.</td> </tr> <tr> @@ -218,22 +218,22 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left">util</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Contains an interface and implementation of classes realted to - compiler messages including: source locations, handling, and - formatting. Intended to minimize dependencies between + Contains an interface and implementation of classes realted to + compiler messages including: source locations, handling, and + formatting. Intended to minimize dependencies between testing, the compiler, and ajde.</td> </tr> <tr> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left">org.aspectj.ajdt.core</td> <td bgColor="#eeeeee"> - <p class="smallParagraph" align="left">asm, bridge, org.eclipse.jdt.core, + <p class="smallParagraph" align="left">asm, bridge, org.eclipse.jdt.core, runtime, testing-util, util, weaver</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Front-end of the AspectJ compiler and extension of Eclipse's JDT compiler. - Extends the JDT compiler's parsing and name resolution to - understand AspectJ declarations. Also extends incremental + Front-end of the AspectJ compiler and extension of Eclipse's JDT compiler. + Extends the JDT compiler's parsing and name resolution to + understand AspectJ declarations. Also extends incremental behavior with understanding of AspectJ dependancies.</td> </tr> <tr> @@ -257,14 +257,14 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left"> </td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Small runtime library required for building and running AspectJ + Small runtime library required for building and running AspectJ programs.</td> </tr> <tr> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left">taskdefs</td> <td bgColor="#eeeeee"> - <p class="smallParagraph" align="left">bridge, org.aspectj.ajdt.core, + <p class="smallParagraph" align="left">bridge, org.aspectj.ajdt.core, util</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> @@ -277,20 +277,20 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left"> </td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Common utility classes including data type, file, and stream + Common utility classes including data type, file, and stream manipulation.</td> </tr> <tr> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left">weaver</td> <td bgColor="#eeeeee"> - <p class="smallParagraph" align="left">asm, bridge, runtime, testing-util, + <p class="smallParagraph" align="left">asm, bridge, runtime, testing-util, util</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Back-end of the AspectJ compiler, built on top of the BCEL - bytecode toolkit. All advice planning and weaving is done - here. Takes an aspect bytecode format and other Java + Back-end of the AspectJ compiler, built on top of the BCEL + bytecode toolkit. All advice planning and weaving is done + here. Takes an aspect bytecode format and other Java classfiles as input. </td> </tr> <!-- @@ -325,7 +325,7 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left">build</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Ant files, scripts, and taskdefs required for building the + Ant files, scripts, and taskdefs required for building the AspectJ distribution. Also contains the GUI installer.</td> </tr> <tr> @@ -368,7 +368,7 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left">testing-util</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - Common testing utility classes used by the unit test suites in + Common testing utility classes used by the unit test suites in the core modules.</td> </tr> <tr> @@ -376,7 +376,7 @@ structure model which allows them to navigate and interpret the static structure <p class="smallParagraph" align="left">tests</td> <td bgColor="#eeeeee"> <p class="smallParagraph" align="left"> - AspectJ test suite, including all language tests, regression + AspectJ test suite, including all language tests, regression tests, and test system sources.</td> </tr> <!-- @@ -562,4 +562,4 @@ cvs.aspectj4emacs.sourceforge.net:/cvsroot/aspectj4emacs</span></b></p> </body> -</html>
\ No newline at end of file +</html> diff --git a/docs/dist/README-AspectJ.html b/docs/dist/README-AspectJ.html index e7bd6fcf1..5a020832e 100644 --- a/docs/dist/README-AspectJ.html +++ b/docs/dist/README-AspectJ.html @@ -149,20 +149,14 @@ <UL> <li>the <a href="bin"><CODE><aspectj install dir>/bin</CODE></a> - directory has scripts for + directory has scripts for <ul> <li><CODE>ajc</CODE>: the compiler for the AspectJ language</li> - <!-- XXX removed references to ajdoc and ajdb --> - <li><CODE>ajbrowser</CODE>: a graphical editor for - compiling programs with <CODE>ajc</CODE> - and navigating the crosscutting structure of those programs</li> - </ul> - <li>the directory <a href="lib"><CODE><aspectj install dir>/lib</CODE></a> has the AspectJ binaries, <ul> - <li><CODE><a href="lib/aspectjtools.jar">aspectjtools.jar</a></CODE>: libraries for + <li><CODE><a href="lib/aspectjtools.jar">aspectjtools.jar</a></CODE>: libraries for <code>ajc</code>, <code>ajbrowser</code>, and the Ant tasks</li> <li><CODE>aspectjrt.jar</CODE>: runtime library for AspectJ programs</li> @@ -185,9 +179,9 @@ <h3>2 Install Procedure</h3> -<p>The AspectJ tools <code>ajc</code> and <code>ajbrowser</code> are -Java programs that can be run indirectly from the scripts or -directly from <code>aspectjtools.jar</code>. +<p>The AspectJ tool <code>ajc</code> is a +Java program that can be run indirectly from the scripts or +directly from <code>aspectjtools.jar</code>. The <code>aspectjrt.jar</code> needs to be on the classpath when compiling or running programs compiled by <code>ajc</code>. This procedure shows ways to do that. @@ -196,11 +190,11 @@ by <code>ajc</code>. This procedure shows ways to do that. <p>After finishing automatic installation, we recommend that the following steps to complete your installation:</p> - <p><b>2.1 Add <CODE><aspectj install dir>/lib/aspectjrt.jar</CODE> + <p><b>2.1 Add <CODE><aspectj install dir>/lib/aspectjrt.jar</CODE> to your class path</b></p> <blockquote> - <p>This small .jar file contains classes required to compile programs + <p>This small .jar file contains classes required to compile programs with the ajc compiler, and to run programs compiled with the ajc compiler. You must have these classes somewhere on your class path when running programs compiled with ajc. For detailed instructions @@ -236,21 +230,7 @@ to create short launch scripts to start ajc easily (section 3).</p> <p>If you did not use the automatic installation process or the default launch scripts do not work on your system, you may wish to -create short launch scripts to start ajc easily. </p> - -<p>You can also run the <code>aspectjtools.jar</code> directly -using java's -jar option: - -<blockquote> -<CODE>C:\jdk1.3\bin\java.exe -jar D:\aspectj\lib\aspectjtools.jar %*</CODE> -</blockquote> - -<p>With no arguments or only argument list (.lst) files, this will launch -<code>ajbrowser</code>, the GUI structure browser; otherwise, it will -run <code>ajc</code>, the AspectJ compiler. This means that -if your browser is set up to run jar files, clicking a link -to <a href="lib/aspectjtools.jar">lib/aspectjtools.jar</a> will -launch <code>ajbrowser</code>. +create short launch scripts to start ajc easily.</p> <p> You can also create scripts like those created by the installer. These scripts use full paths that are system dependent so you will diff --git a/docs/dist/doc/index.html b/docs/dist/doc/index.html index 36bba4821..371961da2 100644 --- a/docs/dist/doc/index.html +++ b/docs/dist/doc/index.html @@ -105,8 +105,6 @@ </td> <td>This is a guide to <a href="devguide/ajc-ref.html">ajc</a>, the command-line compiler; - <a href="devguide/ajbrowser.html">ajbrowser</a>, the stand-alone - GUI for compiling and viewing crosscutting structure; and the <a href="devguide/antTasks.html">Ant tasks</a> for building AspectJ programs. </td> @@ -320,10 +318,9 @@ see the <a href="progguide/examples.html">Examples </a> section in the <a href="progguide/index.html">Programming Guide</a>. View and navigate the crosscutting structure using - <a href="http://eclipse.org/ajdt">AJDT</a>; if you can't use Eclipse, try - the <code>ajbrowser</code> structure viewer, as described in - the <a href="devguide/ajbrowser.html">AspectJ Browser</a> section of - the <a href="devguide/index.html">Development Environment Guide</a>. + <a href="http://eclipse.org/ajdt">AJDT (AspectJ Development Tools) + in Eclipse IDE</a>. IntelliJ IDEA also offers AspectJ and Spring AOP + support. <p/> To start using AspectJ with your own code, modify the example aspects to apply to your classes. diff --git a/docs/faq/faq.xml b/docs/faq/faq.xml index e616aae11..2db3b008d 100644 --- a/docs/faq/faq.xml +++ b/docs/faq/faq.xml @@ -54,7 +54,6 @@ a compiler (<literal>ajc</literal>), a debugger (<literal>ajdb</literal>), a documentation generator (<literal>ajdoc</literal>), - a program structure browser (<literal>ajbrowser</literal>), and integration with Eclipse, Sun-ONE/Netbeans, GNU Emacs/XEmacs, JBuilder, and Ant. @@ -2021,16 +2020,7 @@ ajc -bootclasspath c:\jdk1.2\jre\lib\rt.jar \ modularizing crosscutting concerns while still having immediate access to what aspects affect a class. </para> - <para>For example, the - <ulink url="devguide/index.html"> - Development Environment Guide</ulink> - <ulink url="devguide/ajbrowser.html"> - ajbrowser section</ulink>. - shows that you can list or navigate - between method and advice affecting that method and between a type - and declarations in an aspect on that type. (The IDE support may - have more features than <literal>ajbrowser</literal>, depending - on the IDE. + <para> See <xref linkend="q:integrateWithDevTools"/> for more information on which Java development environments are supported.) @@ -4543,15 +4533,11 @@ java -javaagent:aspectjweaver.jar -classpath "aspects.jar:${CLASSPATH}" .. weaver, asm, org.eclipse.jdt.core, org.aspectj.ajdt.core, and runtime. </para></listitem> - <listitem><para>For ajbrowser: the compiler modules, plus - ajbrowser, ajdoc, taskdefs, and ajde. - </para></listitem> <listitem><para>For the AspectJ distribution, the ajbrowser modules, plus aspectj5rt and org.aspectj.lib. </para></listitem> <listitem><para>For the test harness (or to run the release build - scripts and tests): the ajbrowser modules, plus - testing, testing-client, and testing-drivers. + scripts and tests): testing, testing-client, and testing-drivers. </para></listitem> <listitem><para>To run the test suite: the test harness modules, plus tests. @@ -5047,16 +5033,6 @@ cd build </ulink>). </para> <para> - Bug reports on ajbrowser should have version - information for both Java and AspectJ, and - (most importantly) clear steps for reproducing the bug. - You may submit ajbrowser bugs against the IDE component of AspectJ - via the web form - <ulink url="http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ"> - http://bugs.eclipse.org/bugs/enter_bug.cgi?product=AspectJ - </ulink>. - </para> - <para> One of the benefits of open-source is that you can find and fix the bug for yourself; when you submit the fix back to us, we can validate the fix for you |