<?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: 		Marcos Didonet Del Fabro
	# Date:			2005-12-05
	#
	# Description: Type your page comments here - these are not sent to the browser
	#
	#
	#****************************************************************************
	
	#
	# Begin: page-specific settings.  Change these. 
	$pageTitle 		= "AMW Download page";
	$pageKeywords	= "";
	$pageAuthor		= "Marcos Didonet Del Fabro";
	
	# 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">
<!-- Main part -->

	<div id="midcolumn">
		<h1>$pageTitle</h1>
	
		<a name="binaries"></a>
		<div class="homeitem3col">
			<h3>Release builds</h3>
		
			<div align="center">
			
			<table style="width: 95%;" border="1" cellpadding="2" cellspacing="5" align="">
				<tr>
					<th width="25%" align="left">Release date</th>
					<td>December 8, 2006</td>
				</tr>
				<tr>
					<th align="left">ATL version</th>
					<td><a href ="http://www.eclipse.org/gmt/atl/download/">
						ATL 2006</a></td>
				</tr>
				<tr>
					<th align="left">Eclipse version</th>
					<td>3.2.1</td>
				</tr>
				<tr>
					<th align="left">EMF version</th>
					<td>2.2.1</td>
				</tr>
				<tr>
					<th align="left">Zip file</th>
					<td>
						<a href="http://www.eclipse.org/downloads/download.php?file=/technology/gmt/amw/binaries/AMW-20061208/mwplugins-20061208.zip">
						mwplugins-20061208.zip</a></td>
				</tr>				
				<tr>
					<th align="left">More info</th>
					<td>
					<a href="20061208/">
						New & Noteworthy</a>
					</td>
				</tr>	
				<tr>
					<th align="left">AMW, AM3 and ATL compatibility</th>
					<td>
						This version was tested using ATL and AM3 from December 7th.<br/>						
					</td>
				</tr>	
				
				</table>
				
			<p/>					
			
			<table style="width: 95%;" border="1" cellpadding="2" cellspacing="5" align="">
				<tr>
					<th width="25%" align="left">Release date</th>
					<td>July 17, 2006</td>
				</tr>
				<tr>
					<th align="left">ATL version</th>
					<td><a href ="http://www.eclipse.org/gmt/atl/download/">
						June 30, 2006</a></td>
				</tr>
				<tr>
					<th align="left">Eclipse version</th>
					<td>3.1.2</td>
				</tr>
				<tr>
					<th align="left">EMF version</th>
					<td>2.1.0, 2.1.1</td>
				</tr>
				<tr>
					<th align="left">Zip file</th>
					<td>
						<a href="http://www.eclipse.org/downloads/download.php?file=/technology/gmt/amw/binaries/AMW-20060717/mwplugins-20060717.zip">
						mwplugins-20060717.zip</a></td>
				</tr>				
				<tr>
					<th align="left">More info</th>
					<td>
					<a href="20060717/">
						New & Noteworthy</a>
					</td>
				</tr>	
				<tr>
					<th align="left">AMW, AM3 and ATL compatibility</th>
					<td>
						This version was tested using ATL versions from June 30th and January 13th.
						When using ATL <b>and</b> AM3, use the January 13th releases, or the sources.<br/>						
					</td>
				</tr>	
				
				</table>
				
			<p/>			
			
			
				<table style="width: 95%;" border="1" cellpadding="2" cellspacing="5" align="">
				<tr>
					<th width="25%" align="left">Release date</th>
					<td>January 26, 2006</td>
				</tr>
				<tr>
					<th align="left">ATL version</th>
					<td><a href ="http://www.eclipse.org/gmt/atl/download/">
						January 13, 2006</a></td>
				</tr>
				<tr>
					<th align="left">Eclipse version</th>
					<td>3.1, 3.1.1</td>
				</tr>
				<tr>
					<th align="left">EMF version</th>
					<td>2.1.0, 2.1.1</td>
				</tr>
				<tr>
					<th align="left">Zip file</th>
					<td>
						<a href="http://www.eclipse.org/downloads/download.php?file=/technology/gmt/amw/binaries/AMW-20060126/mwplugins-20060126.zip">
						mwplugins-20060126.zip</a></td>
				</tr>				
				<tr>
					<th align="left">AMW, AM3 and ATL compatibility</th>
					<td>
						This version was tested using AM3 and ATL versions from January 13.
						<br/>No tests were done with other Eclipse 3.1.X and EMF 2.1.X versions. 						
					</td>
				</tr>					
				</table>
			</div>			
			<p/>

			<br />
			<div align="center">
				<table style="width: 95%;" border="1" cellpadding="2" cellspacing="5" align="">
				<tr>
					<th width="25%" align="left">Release date</th>
					<td>June 10, 2005</td>
				</tr>
				<tr>
					<th align="left">ATL version</th>
					<td><a href ="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/ATL/download/ADT/ADT-20050601/adt-20050601.zip">
						20050601</a></td>
				</tr>
				<tr>
					<th align="left">Eclipse version</th>
					<td>3.1M4</td>
				</tr>
				<tr>
					<th align="left">EMF version</th>
					<td>2.1.0</td>
				</tr>
				<tr>
					<th align="left">Zip file</th>
					<td>
						<a href="http://www.eclipse.org/downloads/download.php?file=/technology/gmt/amw/binaries/AMW-20050610/mwplugins.zip">
						mwplugins.zip</a></td>
				</tr>				
				<tr>
					<th align="left">AMW, AM3 and ATL compatibility</th>
					<td>
					This version of AMW was released before any version of AM3. 
					There is no guarantee of compatibility.
					</td>
				</tr>	
				</table>
			</div>
		</div>
		<hr class="clearer" />
		
		<a name="source"></a>
		<div class="homeitem3col">
			<h3>Source</h3>
			<br />
			<div align="center">
			<table style="width: 95%;" border="1" cellpadding="2" cellspacing="5">
	        	<tr align="left">
		            <th>AMW stable build</th>
		            <th>ATL version</th>
		            <th>Eclipse version</th>
		            <th>EMF version</th>
		            <th>Last commit</th>
		            <th>Notes</th>
		        </tr>

	    	    <tr align="left">
		            <td>last version from CVS - <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/AMW/">CVS</a></td>
		            <td>latest version from <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/ATL/">CVS</a></td>
		            <td>3.2.1</td>
		            <td>2.2.1</td>
		            <td></td>
					<td>
					<a href="20060929/">
						Major changes</a>
					</td>
		            
	        	</tr>	
	        		        	
	    	    <tr align="left">
		            <td>build20060929 - <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/AMW/">CVS</a></td>
		            <td>20060630 (compatible with latest releases of ATL)</td>
		            <td>3.1.0, 3.1.1</td>
		            <td>2.1.0, 2.1.1</td>
		            <td>September 29, 2006</td>
	        	</tr>	
	        	
	    	    <tr align="left">
		            <td>build20060713 - <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/AMW/">CVS</a></td>
		            <td>20060630 </td>
		            <td>3.1, 3.1.1</td>
		            <td>2.1.0, 2.1.1</td>
		            <td>July 13, 2006</td>
	        	</tr>
        	
	    	    <tr align="left">
		            <td>build20050610 - <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/org.eclipse.gmt/AMW/">CVS</a></td>
		            <td>20050601</td>
		            <td>3.1M4</td>
		            <td>2.1.0 Integration build I200502171619</td>
		            <td>June 10, 2005</td>
	        	</tr>
	        	
		    </table>
		    </div>
		</div>
		<hr class="clearer" />

	  <a name="plugins"></a>
      <h3>Available plugins</h3>
      <p>There are 4 Model Weaver plug-ins: </p>
	      <ul class="midlist">
	      	<li>Model Weaver Core - org.eclipse.weaver</li>
			<li>Model Weaver Extensions - org.eclipse.weaver.extension</li>
			<li>Model Weaver User Guide - org.eclipse.weaver.doc.user</li>
			<li>Model Weaver Developper Guide - org.eclipse.weaver.doc.developer</li>
	      </ul>
	      The two first plugins must be installed for the standard use.
      </p>
 	  <hr class="clearer" />

	  <a name="instructions"></a>
      <h3>Installation instructions</h3>
      <ul class="midlist">
        <li>Download <a href="http://www.eclipse.org/downloads/">Eclipse</a>.
        Unzip eclipse zip file, this will create an eclipse folder with every Eclipse files in it.</li>
        <li>Download <a href="http://www.eclipse.org/emf/">EMF</a>. Unzip emf zip file from the same directory (it also
		contains an eclipse folder, with the EMF additional files to Eclipse SDK). </li>
        <li>Download and install the
        	<a href="http://www.eclipse.org/gmt/atl/download/">ATL plugins</a>
        </li>
        
        <li>To be able to use the Ant scripts from the examples, it is also necessary to download and install the
        	<a href="http://www.eclipse.org/gmt/am3/download/">AM3 plugins</a>
        </li>
       
        <li>
        	Download and unzip <a href="http://dev.eclipse.org/viewcvs/indextech.cgi/~checkout~/gmt-home/subprojects/AMW/download/weaver/mwplugins.zip">mwplugins.zip</a> into your eclipse plugin folder, then restart Eclipse.
        </li>
      </ul>

      <h3>Installation from the sources</h3>      
      <ul class="midlist">
        <li>
        	Install Eclipse and EMF.
        </li>
        <li>
			Instal the ATL and AM3 binaries, or build them from the sources (instructions 
			<a href="http://www.eclipse.org/gmt/atl/download/">here</a>).<br/>			
        </li>       
        <li>        	
        	Check out the AMW projects from the CVS.
        </li>
      </ul>
      <i>Remark:</i> Building all the plugins (AMW, AM3 and ATL) from the sources diminishes the risk of version 
      incompatibilities.      
      <p>
      	<h3>Notes</h3>
      	<ul class="midlist">
      		<li>
				Until build "build20050610" our development was made under Eclipse 3.0.1 and 3.1(with Java 1.4.2). 
				Newest versions are developed and tested with Eclipse 3.1.				
			</li>			
		</ul>		
	  </p>
	  
	  
      <hr class="clearer" />
	</div>

<!-- Right Part -->
	<div id="rightcolumn">
		<div class="sideitem">
			<h6>Download area</h6>
			<ul>
				<li><a href="#binaries">Release builds</a></li>
				<li><a href="#source">Source</a></li>
				<li><a href="#plugins">Plugins list</a></li>
				<li><a href="#instructions">Install instructions</a></li>
			</ul>
		</div>
	</div>
</div>


EOHTML;


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