Jump to content

Acceleo

From Alfawiki
Acceleo
Company typeOpen-source software project
IndustrySoftware development tools
PredecessorAcceleo.org
FoundedApril 1, 2006; 20 years ago (2006-04-01)
Area served
Worldwide
ProductsCode generation tool, Eclipse plugin
OwnerEclipse Foundation
ParentEclipse Foundation
Websitewww.eclipse.org/acceleo/

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

Honors awarded to Acceleo
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