<!DOCTYPE html>
<html lang="en">
<!--
/********************************************************************************
** Copyright (c) 2012 Obeo.
** All rights reserved. This program and the accompanying materials
** are made available under the terms of the Eclipse Public License v1.0
** which accompanies this distribution, and is available at
** http://www.eclipse.org/legal/epl-v10.html
**
** Contributors:
**    Stephane Begaudeau (Obeo) - initial API and implementation
*********************************************************************************/
-->
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="St&eacute;phane B&eacute;gaudeau">    

    <!-- IE6-8 support of HTML elements -->
    <!--[if lt IE 9]>
      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    
    <link href="../assets/css/bootstrap.css" rel="stylesheet">
    <link href="../assets/css/docs.css" rel="stylesheet">
    
    <title>Acceleo</title>
  </head>
  <body>
    <div class="container">
       <section id="acceleo">
        <div class="page-header">
          <h1>Acceleo <small>all about the Acceleo project.</small></h1>
        </div>
        <h2>Official websites</h2>
        <p>
          In order to start a brand new code generation project with Acceleo, you first to be sure that
          you have all the necessary resources to find the answer to all your questions. From the official
          website to wikipedia, here is a list of the key places where to find Acceleo related content.        
        </p>
        
        <table class="table table-bordered table-striped">
          <thead>
            <tr>
              <th>Site</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td><a href="http://www.eclipse.org/acceleo">Homepage</a></td>
              <td>The official website is the central hub for all Acceleo related content.</td>
            </tr>
            <tr>
              <td><a href="http://wiki.eclipse.org/Acceleo">Eclipse Wiki</a></td>
              <td>The official wiki contains the documentation of the Acceleo language and the information about the Acceleo project.</td>
            </tr>
            <tr>
              <td><a href="http://www.eclipse.org/projects/project.php?id=modeling.m2t.acceleo">Project Metadata</a></td>
              <td>If you want to find all the information on the life of the project.</td>
            </tr>
            <tr>
              <td><a href="http://www.obeonetwork.com/acceleo">Obeo Network</a></td>
              <td>On the Obeo Network, you will find the advanced documentation with presentations of all the features of Acceleo in videos.</td>
            </tr>
            <tr>
              <td><a href="http://en.wikipedia.org/wiki/Acceleo">Wikipedia</a></td>
              <td>Want to learn more about the history of the Acceleo project? Wikipedia is the place to go.</td>
            </tr>
          </tbody>
        </table>
      </section>
      
      <section id="install">
        <div class="page-header">
          <h1>Install <small>grab the latest version of Acceleo.</small></h1>
        </div>
        <p>
          This document provides an overview of the user-visible features of the Acceleo plug-ins
          which make it easy to develop and run Acceleo modules inside Eclipse. It assumes some
          familiarity with the language itself, although you do not need to be an expert to start
          using the plug-ins: using the provided example projects and the powerful completion feature
          of the Acceleo editor, it is very easy to get started once you understand the basic principles.
        </p>
        <br />
        
        <h2>Requirements</h2>
        <p>
          The Acceleo development team does its best to maintain downward compatibility towards Ganymede
          (Eclipse 3.4). Following is the compatibility chart:
        </p>
        
        <table class="table table-striped table-bordered table-condensed">
          <thead>
            <tr>
              <th>Acceleo</th>
              <th>Eclipse Ganymede 3.4</th>
              <th>Eclipse Galileo 3.5</th>
              <th>Eclipse Helios 3.6</th>
              <th>Eclipse Indigo 3.7</th>
              <th>Eclipse Juno 3.8/4.2</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <th>3.0</th>
              <td>OK</td>
              <td>OK</td>
              <td class="recommended">OK</td>
              <td>OK</td>
              <td>OK</td>
            </tr>
            <tr>
              <th>3.1</th>
              <td>OK</td>
              <td>OK</td>
              <td>OK</td>
              <td class="recommended">OK</td>
              <td>OK</td>
            </tr>
            <tr>
              <th>3.2</th>
              <td>OK</td>
              <td>OK</td>
              <td>OK</td>
              <td class="recommended">OK</td>
              <td class="recommended">OK</td>
            </tr>
            <tr>
              <th>3.3</th>
              <td>OK</td>
              <td>OK</td>
              <td>OK</td>
              <td class="recommended">OK</td>
              <td class="recommended">OK</td>
            </tr>
          </tbody>
        </table>
        
        <p>
          In green, you can find the recommended version of Eclipse for each version of Acceleo.
        </p>
        
        <br />
        
        <h2>Download</h2>
        <p>
          Acceleo can be downloaded and installed in a number of ways. If you have an existing Eclipse installation and simply
          with to install Acceleo in it, you can use the Eclipse Marketplace (starting with Eclipse 3.7 Indigo) or the official
          update site. If you want to start with a fresh new install of Eclipse, have a look at the Eclipse Modeling bundle provided
          by the Amalgamation project to start with a development environment dedicated to model driven development. Advanced users
          can also choose to install Acceleo directly using the zipped update site.
        </p>
        
        <h3>Eclipse Marketplace</h3>
        <p>
          In order to always have the latest release, you can use the Eclipse Marketplace provided in all standard Eclipse installation
          since Eclipse 3.7 Indigo.
        </p>
        <ul>
          <li>Open the Eclipse Marketplace</li>
          <li>Search for Acceleo</li>
          <li>Click the install button and follow the wizard</li>
        </ul>
        
        <ul class="thumbnails">
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/openMarketplace.png" alt="">
            </a>
          </li>
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/marketplaceAcceleo.png" alt="">
            </a>
          </li>
        </ul>
        
        <h3>Update site</h3>
        <p>
          Latest release
        </p>
        <span class="label label-success">Acceleo 3.3.x</span>  <b>http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.3</b>
        <br />
        <br />
        <p>
          Older releases:
        </p>
        <span class="label label-info">Acceleo 3.2.x</span> http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.2
        <br />
        <span class="label label-info">Acceleo 3.1.x</span> http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.1
        <br />
        <span class="label label-info">Acceleo 3.0.x</span> http://download.eclipse.org/modeling/m2t/acceleo/updates/releases/3.0
        <br />
        <br />
        
        <ul>
          <li>Go to the Help menu and select "Install New Software"</li>
          <li>Enter the Acceleo update site and press Enter</li>
          <li>Select all the Acceleo features and click Next to accept the license and start the download</li>
        </ul>
        
        <ul class="thumbnails">
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/installUpdate.png" alt="">
            </a>
          </li>
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/installUpdateAcceleo.png" alt="">
            </a>
          </li>
        </ul>
        
        <h3>Using the Amalgamation project</h3>
        <ul>
          <li>Download the latest Eclipse Modeling bundle</li>
          <li>Open the discovery UI</li>
          <li>Select Acceleo and click on "Finish"</li>
        </ul>
        
        <ul class="thumbnails">
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/openDiscovery.png" alt="">
            </a>
          </li>
          <li class="span6">
            <a href="#" class="thumbnail">
              <img src="../assets/img/discovery.png" alt="">
            </a>
          </li>
        </ul>
        
        <h3>Zipped update site</h3>
        <p>
          Those who want to install Acceleo from the zipped update sites can download them from
          <a href="http://eclipse.org/modeling/m2t/downloads/?project=acceleo">here</a>.
        </p>
        
      </section>
      
      <section id="standards">
        <div class="page-header">
          <h1>Standards <small>a love story.</small></h1>
        </div>
        <p>
          Acceleo has always been developed with the respect of standards in mind. Here you can have a look at the various standard
          on which Acceleo is built.
        </p>
        
        <h2>MOFM2T</h2>
        <p>
          The MOFM2T standard defines a code generation language named MTL (model to text transformation language). The language used
          in Acceleo is an implementation of this standard. You can find more about MOFM2T on the OMG's website.
        </p>
        
        <h2>EMF</h2>
        <p>
          Acceleo is based on the industrial standard EMF allowing us to generate code from countless of other tools. Thanks to this use
          of EMF, Acceleo can generate code from graphical models created with GMF or textual representation created with Xtext.
        </p>
        
        <h2>OCL</h2>
        <p>
          The Acceleo language is a superset of the OCL language and as such the Acceleo project is depending on the implementation of
          the OCL language realized in the Eclipse Foundation.
        </p>
        
        <h2>UML</h2>
        <p>
          Since Acceleo is based on top of EMF, you can use it in collaboration with UML based tools that are using the
          EMF based implementation of UML from the Eclipse Foundation.
        </p>
      </section>
      
      <section id="contribution">
        <div class="page-header">
          <h1>Contribution <small>give back to the community.</small></h1>
        </div>
        <p>
          Acceleo is an open source software and as such, you can not only report and track problems very openly but you
          can also download its source code to fork it or to contribute to the project. 
        </p>
        
        <h2>Reporting</h2>
        <p>
          If you want to report some problems that you have found in Acceleo, you should use the
          <a href="https://bugs.eclipse.org/bugs/buglist.cgi?classification=Modeling;product=M2T;component=Acceleo;bug_status=NEW;bug_status=ASSIGNED;bug_status=REOPENED;list_id=776826">Bugzilla</a>
          instance of the Eclipse Foundation. First, make sure that the issue has not been reported already. You can also ask a
          question about your problem first on the <a href="http://eclipse.org/forums/index.php/f/24/">Eclipse Newsgroups</a> or on
          <a href="http://stackoverflow.com/questions/tagged/acceleo">Stack Overflow</a>.
        </p>
        
        <h2>Answering</h2>
        <p>
          If you are mastering Acceleo, you can help newcomers by answering their question on the official
          <a href="http://eclipse.org/forums/index.php/f/24/">Eclipse Newsgroups</a>.
        </p>
        
        <h2>Coding</h2>
        <p>
          And if you want to contribute to an open source software, look no further, as you can contribute easily to Acceleo.
          Have a look at our <a href="http://wiki.eclipse.org/Acceleo/Setup_Environment">contribution guide</a>, set up your
          development environment and in a few minutes you can be ready to code.
        </p>
        
        <br />
        <br />
      </section>
      
      <footer class="footer">
        <p>
          The material in these guides are Copyright (c) 2008, 2012 Obeo. This material is available under the Eclipse Public License v1.0
        </p>
      </footer>
    </div>
  </body>
</html>
