<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

	#*****************************************************************************
	#
	# template.php
	#
	# Author: 		Denis Roy
	# Date:			2005-06-16
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "AspectJ Plans";
	$pageKeywords	= "AspectJ, AJDT, Aspect Oriented Software Development, Eclipse";
	$pageAuthor		= "Andy Clement";
	
	# Add page-specific Nav bars here
	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);

	# End: page-specific settings
	#
				
	# Paste your HTML content between the EOHTML markers!	
	$html = <<<EOHTML

<div id="maincontent">
	<div id="midcolumn">
	
	<h1>Plans</h1>

<p>
<i>Last updated: 3 July 2008</i>
</p>

<p>
  Here are some details of recent and upcoming AspectJ releases.
  
  <!--
  These are plotted on the
  <a href="http://www.eclipse.org/projects/timeline/">Eclipse timeline</a>.
  -->
  
</p>


<div class="homeitem3col">
<h3>AspectJ1.6.3</h3>
<p>Target: Dec-08</p>
<p>Release themes:</p>
<ul>
<li>see <a href="http://www.eclipse.org/projects/project-plan.php?projectid=tools.aspectj"/>the new plan page</a>
</ul>
</div>

<div class="homeitem3col">
<h3>AspectJ1.6.2</h3>
<p>Released: 03-Oct-08</p>
<p>Release themes:</p>
<ul>
<li>IDE Incremental compilation
</ul>
</div>

<div class="homeitem3col">
<h3>AspectJ1.6.1</h3>
<p>Released: 3-Jul-08</p>
<p>Release themes:</p>
<ul>
<li>load-time weaving footprint 
<li>load-time weaving in multi-classloader environments
<li>issues with generics and intertype declarations
</ul>
</div>

<div class="homeitem3col">
<h3>Aspectj1.6.0</h3>
<p>Release themes:</p>
<ul>
<li>Java6 support
<li>Further annotation AspectJ language support
<li>Incremental compilation speed in AJDT
</ul>
<p>AspectJ 1.6.0 released 23-Apr-08 - see the downloads page.</p>
<p>AspectJ 1.6.0rc1 available 16-Apr-08.</p>
<p>AspectJ 1.6.0m2 available 26-Feb-08.</p>
<p>AspectJ 1.6.0m1 available 16-Jan-08.</p>
<p>
<p>
<a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.6.0+M1&target_milestone=1.6.0+M2&target_milestone=1.6.0+RC1&target_milestone=1.6.0&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">Bugs and enhancements addressed in 1.6.0</a>.

</div>

<div class="homeitem3col">
<h3>AspectJ 5, version 1.5.4</h3>
<p>Status: RC1 -  7th December 2007, Final - 20th December 2007</p>
<p>AspectJ 1.5.4 is a service refresh on the AspectJ 1.5 codestream.</p>
<p>
Shortcuts for detailed information:</p>
<ul>
<li>These <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=AspectJ&target_milestone=1.5.4&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0=">bugs and enhancements</a> are fixed in AspectJ 1.5.4 .
</ul>
</div>

<div class="homeitem3col">
	<h3>AspectJ 1.5.3</h3>
	<p>
	Status: Released 22nd November 2006
	</p>
	 <p>
      Release themes:
    </p>

    <ul>
       <li>Improved memory usage</li>        
       <li>Improved LTW</li>
       <li>Improved serviceability</li>
    </ul>
</div>

<div class="homeitem3col">
	<h3>AspectJ 1.5.2</h3>
	<p>
	Released: 30th June 2006
	</p>
	 <p>
      Release themes:
    </p>

    <ul>
       <li>Improved performance</li>        
       <li>Improved LTW</li>
       <li>Improved incremental compilation</li>
    </ul>
</div>

<div class="homeitem3col">
	<h3>AspectJ 1.5.1a</h3>
		<p>
		Released: 10th April 2006
		</p>
		
        <p>
          Release themes:
        </p>

        <ul>
           <li>Improved memory usage</li>        
           <li>Improved performance</li>
        </ul>
</div>

		<hr class="clearer" />
	</div>

</div>


EOHTML;


	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
