Acceleo
| Company type | Open-source software project |
|---|---|
| Industry | Software development tools |
| Predecessor | Acceleo.org |
| Founded | April 1, 2006 |
Area served | Worldwide |
| Products | Code generation tool, Eclipse plugin |
| Owner | Eclipse Foundation |
| Parent | Eclipse Foundation |
| Website | www |
Acceleo is a code generation tool available as open-source software under the Eclipse Foundation. It facilitates a model-driven methodology for software development and adheres to the OMG's "MOFM2T" standard for transforming models into text.
Initial releases
Acceleo 1.0 was introduced in 2006 via Acceleo.org, distributed under the GPL license, and compatible with Eclipse versions 3.0 and 3.1, as well as EMF/UML 1.2-based modeling tools. Soon after, version 1.1 extended support to Eclipse 3.2 and UML 1.3 models. The licensing shifted to the Eclipse Public Licence (EPL) starting with version 1.2. In June 2007, Acceleo 2 was launched alongside planet.acceleo.org, a community platform offering articles and Acceleo modules—specialized code generators created using Acceleo 2.
Integration into the Eclipse Foundation
In 2009, coinciding with the release of Acceleo version 3, the project became part of the Eclipse Foundation. The language used for defining code generators was revised to align with OMG’s MOFM2T specification. Packaged within Eclipse's 3.6 Helios simultaneous release train, Acceleo was established as an official Eclipse project and plugin embedded into the Eclipse IDE environment. It utilizes core Eclipse components such as the EMF and, starting from version 3, incorporates Eclipse’s implementation of OCL—a standard OMG language designed for model traversal and constraint specification.
Trademark ownership
Although Acceleo’s source remains open source, its trademark and logo are proprietary properties that were transferred from its original developer, Obeo, to the Eclipse Foundation when the project was adopted.
Source code management
Primarily developed in Java as an Eclipse project, Acceleo is distributed under the EPL license. The source repositories for versions 1.x and 2.x were maintained on SVN through the OW2 Consortium. After joining the Eclipse Foundation in 2009, the codebase for Acceleo 3 moved to a CVS repository hosted on Eclipse servers. Following the release of Eclipse Indigo (3.7) in 2011, Acceleo transitioned to Git, with its source code currently hosted on GitHub.
Version history
- Initial stable launch: Acceleo 1.0.0 on April 1, 2006
| Legend: | ||||
|---|---|---|---|---|
| Earlier versions | Most recent stable release | Upcoming release | ||
| Version | Release date | Summary |
|---|---|---|
| 1.0 | April 1, 2006 | First GPL-licensed edition supporting code generation from EMF models. |
| 1.1 | October 20, 2006 | Extended compatibility with Eclipse 3.2; introduced support for GMF, ArgoUML, Poseidon, Umbrello, and Rational Rose. |
| 1.2 | January 5, 2007 | Switched to EPL license; added indentation service, parameterized launcher, and Ant integration. |
| 2.0 | June 5, 2007 | Enhanced language features; XML compatibility; enabled exporting generators as Eclipse plugins. |
| 2.1 | July 12, 2007 | Added support for Eclipse 3.3; introduced a debugger for code generators. |
| 2.2 | January 7, 2008 | Implemented localization and template encoding options; released generators targeting JEE, PHP, Python, and WISS. |
| 2.3 | July 25, 2008 | Updated for compatibility with Eclipse 3.4; enabled invocation of standard EOperations; added reference search functionality. |
| 2.4 | September 25, 2008 | Allowed exporting generators as standalone modules or Rich Client Platform applications. |
| 2.5 | December 3, 2008 | Introduced generation profiling tools and outline actions. |
| 2.6 | June 26, 2009 | Updated compatibility to support Eclipse Galileo (3.5). |
| 2.7 | April 6, 2010 | Enhanced profiler features; added support for Enterprise Architect. |
| 3.0 | June 15, 2010 | Introduced new MOFM2T-compliant language for generator definition; incorporated OCL query functionality; enabled live compilation with error feedback. |
| 3.1 | June 7, 2011 | Added generator documentation capabilities; implemented error warnings; integrated Maven support; enabled binary compilation. |
| 3.2 | October 27, 2011 | Launched "Interpreter" view for evaluating Acceleo expressions on model elements. |
| 3.3 | May 29, 2012 | Major update delivering numerous improvements. |
| 3.4 | June 10, 2013 | Continued significant enhancements. |
| 3.5 | June 10, 2014 | Further major refinements. |
| 3.6 | June 8, 2015 | Next major iteration introducing additional features. |
| 3.7 | October 15, 2016 | Most recent major release offering advanced capabilities. |
Supported platforms
Developed in Java, Acceleo is distributed as a plugin for the Eclipse IDE. It operates on Java 5 and newer versions across these operating systems:
The language
Starting with Acceleo 3, the code generation language adheres to the MOFM2T standard through a template-driven methodology. Templates blend textual content with embedded expressions that retrieve information from input models. These expressions utilize Eclipse’s OCL language implementation, allowing dynamic generation of content based on model elements.
Features
Acceleo provides tools for generating code from models based on the EMF, including support for incremental generation that preserves manual edits during regeneration.
Key functionalities include:
- Generation from any EMF-compliant metamodels like UML 1, UML 2, and bespoke DSLs
- Custom template support to tailor generation processes
- Ability to produce output in any textual programming language (C, Java, Python, among others)
Editor
The integrated code generation editor in Acceleo offers syntax highlighting, code completion, immediate error detection, and refactoring capabilities.
Debugger
Acceleo’s debugger facilitates tracking of the generation process through breakpoints, variable examination, and stepwise execution to aid in problem resolution.
Profiler
The profiling tool records all executed instructions during generation, capturing metrics such as execution frequency and duration. Results are stored as EMF models to help pinpoint performance issues within code generators.
Traceability
Traceability features link generated outputs back to their source model elements and corresponding generator code sections, supporting impact assessment and debugging within intricate code generation scenarios.
Stand-alone use
The core parser and generation engine of Acceleo can function independently of Eclipse in "stand-alone" mode. It produces a Java class that programmatically triggers generation, allowing integration into any Java-based application. This launcher can also be executed using build tools like Ant or Maven.
Compatibility
The most recent version of Acceleo supports:
- Stand-alone execution on Java 6 runtime environments
- Eclipse versions ranging from 3.7 Indigo up to 4.6 Neon
Built atop the Eclipse Modeling Framework (EMF), Acceleo is compatible with any tool that generates EMF-compliant models.
Example
Acceleo is compatible with all EMF-based models derived from metamodels such as UML or custom DSLs. Users create code generators that transform these models into textual source code.
This sample module illustrates Java code generation utilizing EMF constructs like EClass, EAttribute, and EOperation. Although this example focuses on Java, the MOFM2T standard itself is language-independent. Acceleo also provides examples demonstrating code generation for both Java and Python languages.
Awards
| Award | Issuer | Date | Reference |
|---|---|---|---|
| Top Open Source Developer Tool Based on Eclipse 2009 | Eclipse Foundation | 1 March 2009 | (in English) Announcement of Eclipse Community Awards Winners |
| Innovation in Open Technology Award 2010 | Open World Forum | 1 November 2010 | (in English) Open World Forum Award Recipients |
Community and communication
The Acceleo user base is primarily hosted on its dedicated section within the Eclipse Foundation's website. Users can access comprehensive documentation through the Eclipse Help Center and the Acceleo project’s wiki pages.
Conferences
Members of the Acceleo development team actively participate in industry events by delivering talks at prominent MDA and Eclipse-related gatherings.
| Event | Date | Venue | Presentation Topic |
|---|---|---|---|
| MDA Approach Conference | 23 November 2006 | Geneva | |
| SOA/MDA Symposium | 30 November 2006 | Luxembourg | |
| EclipseCon 2007 | 6 March 2007 | Los Angeles | |
| Eclipse Summit Europe 2008 | 10 October 2008 | Ludwigsburg | |
| EclipseCon 2009 | 25 March 2009 | Los Angeles | Eclipse MTL: A Genuine Standard Alternative for Code Generation |
| Eclipse Summit Europe 2009 | 28 August 2009 | Ludwigsburg | Transitioning from Acceleo.org to Eclipse Modeling |
| EclipseCon 2010 | 22 March 2010 | Los Angeles | Acceleo Code Generation: Starting with an Android Example |
| Eclipse Summit Europe 2010 | 3 November 2010 | Ludwigsburg | Developing a Language for Android Applications Using Eclipse Modeling |
| Topcased Days 2011 | 4 February 2011 | Toulouse | Acceleo Overview |
| Code Generation Conference 2011 | 26 May 2011 | Cambridge | Rethinking Template-Based Code Generation |