<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>AspectJ modules</title>
<STYLE TYPE="text/css">
<!--
 
   /* FOR THE SDA PAGE */
 
	/*
	BODY {margin-top: 15px; margin-left: 15px; margin-right: 15px;}
	*/

	A:link {
		color:#4756AC;
	}
	A:visited {
		color:#60657B;
	}
	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; 
		margin-left: 10px;
		line-height:110%; 
	}
	H3 {
		font:18px/18px Verdana, Arial, Helvetica, sans-serif; 
		color:black; 
		font-weight:bold; 
		margin-left: 10px;
		line-height:110%; 
	}
	H4 {
		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; 
		margin-right: 10px;
		margin-left: 10px;
		line-height:130%; 
	}
	.paragraph {
		font:13px/13px Verdana, Arial, Helvetica, sans-serif; 
		margin-right: 10px;
		margin-left: 10px;
		line-height:130%; 
	}
	.smallParagraph {
		font:11px/11px Verdana, Arial, Helvetica, sans-serif; 
		margin-right: 10px;
		margin-left: 10px;
		line-height:130%; 
	}
	LI {
		font:13px/13px Verdana, Arial, Helvetica, sans-serif;
		text-align:justify; 
		margin-right: 10px;
		margin-left: 15px;
		line-height:120%; 
	}
	/*
	UL {
		font:13px/13px Verdana, Arial, Helvetica, sans-serif;
		text-align:justify; 
		margin-right: 10px;
		margin-left: 15px;
		line-height:120%; 
	}*/
	
	DL {
		font:13px/13px Verdana, Arial, Helvetica, sans-serif;
		text-align:justify; 
		margin-right: 10px;
		margin-left: 15px;
		line-height:120%; 
	}
	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; 
		text-align:left
	}
	.figureTitle {
		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; 
		line-height:110%;
	}
	.smallHeading {
		font:13px/13px Verdana, Arial, Helvetica, sans-serif; 
		font-weight:bold;
		line-height:110%;
	}
	.tinyHeading {
		font:11px/11px Verdana, Arial, Helvetica, sans-serif; 
		font-weight:bold;
		line-height:120%;
	}
	.newsText {
		font:11px/11px Verdana, Arial, Helvetica, sans-serif; 
		line-height:130%;
	}
	.smallParagraph {
		font:11px/11px Verdana, Arial, Helvetica, sans-serif; 
		line-height:130%;
	}
	.fancyHeading {
		font:20px/20px Chantilly, Arial, Helvetica, sans-serif; 
		margin-right: 10px;
		color:#6f7a92;
		margin-left: 10px;
		line-height:130%;
	}
 
-->
</STYLE>
</head>

<BODY BGCOLOR="white">

<h3 align="center">AspectJ Modules</h3>

<p>There are a number of different structures [Parnas]: &quot;the module structure, 
the uses structure, the runtime structure, ..&quot;&nbsp; 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:/home/technology/org.aspectj/modules</p>
<p>
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, 
even when using Ant to build outside of Eclipse.)

<p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table1">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>Module</b></font></td>
		<td width="*" bgColor="#c8cedc">
		<p align="center"><font color="#383e4c"><b>Dependencies</b> </font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">ajbrowser</td>
		<td bgColor="#eeeeee">
		<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 
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, 
		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 
				to invoke it programmatically.
				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 
				(except for the emacs support).</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">asm</td>
		<td bgColor="#eeeeee">
		<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 
structure model which allows them to navigate and interpret the static structure of an aspectj program.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">bridge</td>
		<td bgColor="#eeeeee">
		<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.&nbsp; 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, 
		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.&nbsp; 
				Extends the JDT compiler's parsing and name resolution to 
				understand AspectJ declarations.&nbsp; Also extends incremental 
				behavior with understanding of AspectJ dependancies.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">org.eclipse.jdt.core</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">&nbsp;</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				The Eclipse JDT compiler, slightly patched for AspectJ
                and stored in binary form to avoid accidental changes.
                Sources are available in CVS at
                dev.eclipse.org:/home/technology/org.aspectj/shadows.
         </p>
         </td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">runtime</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">&nbsp;</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				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, 
		util</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Ant taskdef for the AspectJ compiler/weaver, ajc.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">util</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">&nbsp;</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				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, 
		util</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Back-end of the AspectJ compiler, built on top of the BCEL 
				bytecode toolkit.&nbsp; All advice planning and weaving is done 
				here.&nbsp; Takes an aspect bytecode format and other Java 
				classfiles as input.&nbsp; </td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>
&nbsp;<h4 align="center">Supporting Modules</h4>
<p align="left"><b>CVS Location: </b>dev.eclipse.org:/home/technology/org.aspectj/modules</p>
<p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table2">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>Module</b></font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">build</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Ant files, scripts, and taskdefs required for building the 
				AspectJ distribution.&nbsp; Also contains the GUI installer.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">docs</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Programmer and developer documentation.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">lib</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Libraries required for building AspectJ.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">testing</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Test support classes.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">testing-client</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Client used for running the harness and reporting results.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">testing-drivers</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				Testing harness drivers and support classes.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<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 
				the core modules.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">tests</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ test suite, including all language tests, regression 
				tests, and test system sources.</td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>

<h4 align="center">Eclipse AspectJ Development Tools (AJDT)</h4>
<p align="left"><b>CVS Location: </b>dev.eclipse.org:/home/technology/org.eclipse.ajdt/plugins/org.eclipse.ajdt</p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table3">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>
		Plug-in</b></font></td>
		<td width="*" bgColor="#c8cedc">
		<p align="center"><font color="#383e4c"><b>Dependencies</b> </font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">org.eclipse.ajdt.ui</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">org.aspectj.ajde</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ IDE support for Eclipse.</td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">org.aspectj.ajde</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">ajde, asm, bridge</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ libraries plug-in.</td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>
&nbsp;<h4 align="center">JBuilder Support</h4>
<p align="left"><b>CVS Location: <span style="font-weight: 400">
cvs.aspectj4jbuildr.sourceforge.net:/cvsroot/aspectj4jbuildr</span></b></p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table4">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>
		OpenTool</b></font></td>
		<td width="*" bgColor="#c8cedc">
		<p align="center"><font color="#383e4c"><b>Dependencies</b> </font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">jbuilder</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">ajde, asm, bridge</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ IDE support for JBuilder.</td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>
<br>
<h4 align="center">NetBeans Support</h4>
<p align="left"><b>CVS Location: <span style="font-weight: 400">
cvs.aspectj4netbean.sourceforge.net:/cvsroot/aspectj4netbean</span></b></p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table5">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>Module</b></font></td>
		<td width="*" bgColor="#c8cedc">
		<p align="center"><font color="#383e4c"><b>Dependencies</b> </font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">netbeans</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">ajde, asm, bridge</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ IDE support for NetBeans and SunONE Studio.</td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>
&nbsp;<h4 align="center">Emacs Support</h4>
<p align="left"><b>CVS Location: <span style="font-weight: 400">
cvs.aspectj4emacs.sourceforge.net:/cvsroot/aspectj4emacs</span></b></p>
<table cellSpacing="4" cellPadding="1" width="100%" align="center" border="0" id="table6">
	<tr>
		<td width="100" bgColor="#c8cedc">
		<p align="center" class="smallParagraph"><font color="#383e4c"><b>Module</b></font></td>
		<td width="*" bgColor="#c8cedc">
		<p align="center"><font color="#383e4c"><b>Dependencies</b> </font></td>
		<td  width="*" bgColor="#c8cedc">
		<p class="smallParagraph" align="center"><b>
		<font color="#383e4c" size="2">Description</font></b></td>
	</tr>
	<tr>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">emacs</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">ajde, asm, bridge</td>
		<td bgColor="#eeeeee">
		<p class="smallParagraph" align="left">
				AspectJ support for Emacs and XEmacs.</td>
	</tr>
	<!--
      <tr>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">appears in <font color="#383E4C"><b>ICSE
          2000
          </b></font></p>
        </TD>
        <TD bgColor=#eeeeee>
          <p class=smallParagraph align="left">A Study on Exception Detection and Handling Using
          Aspect-Oriented Programming (0.4)</p>
        </TD>
        <TD bgColor=#eeeeee><p class=smallParagraph align="center"><a href="/documentation/papersAndSlides/ICSE2000-ExcptnDetect.pdf">PDF</a>
        </p></TD>
      </tr>
      -->
	</table>

</body>

</html>