Acceleo 3.4.0 Release Review
Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
This document lays out the feature and API set for the 3.4.0 release of the M2T Acceleo project. The Acceleo component is an open source component under the Eclipse Modeling project. Its primary goal is to provide an implementation of the MOF Model-To-Text OMG standard. The Kepler release of Acceleo introduces some new APIs and is labeled 3.4.0.
The project leadership certifies that the APIs in this release are "Eclipse Quality".
The Acceleo project is composed of various plug-ins separated in two categories, the stand alone runtime and the Eclipse tooling:
- common ui
- ide ui
- traceability ui
This stand alone capability is tested and maintained thanks to dedicated unit tests.
The Acceleo integration in Eclipse let you provide your own generation engine to completely change the behavior of the generation. You can also provide you own generation strategy in order to customize the way the generated content should be serialized (by default, it is saved on the file system in files). You can provide additional actions in the code completion thanks to a dedicated extension point.
Extensibility of the generators created
After having created you generator, the Acceleo engine can let you override or extend perts of the behavior of your generator. Thanks to the "dyanmic template" extension point, you can contribute new Acceleo module to existing generators.
Java and Guava
Acceleo uses Java 5 and Guava 10.0.1
2500 unit tests are launched every build. Code coverage is about:
- 83 % of the traceability engine
- 80 % of the compiler
- 60 % of the code generation engine
Checkstyle activated on each distinct plug-in. Eclemma used on a regular basis to improve test coverage. Yourkit used on a regular basis to improve performances. An Ohloh page is available at http://www.ohloh.net/p/acceleo-eclipse/analyses/latest
Metamodel definitions and interfaces are considered APIs. Commitment to provide stand-alone code generation. Non-API classes are separated from the exposed API through an "internal" namespace. API Tooling is activated on all plugins to mark exceptions within the exposed API. Non-API packages are exported with an internal visibility as such they are visible but with an illegal access warning.
The documentation that comes with Acceleo 3.4 is available in the Help menu : Acceleo Documentation. Each document of the documentation set deals with a different aspect of mastering Acceleo: There are an Overview, a tutorial available on this wiki, a description of all the available features, a guide detailling the Acceleo language, a list of the new features, an Acceleo/OCL operations reference to describe the Acceleo/OCL library, and a Text Production Rules document.
The main documentation are the language guide and the features guide because they fully describe each and every feature of Acceleo and its language. Basic Examples are available in the example category : UML to Java, and Ecore to Python. There is also an Acceleo portal on the Eclipse Wiki http://wiki.eclipse.org/Acceleo
The bugzilla report for this release is visible here. Note : these figures are subject to changes as the whole team is in the process of fixing bugs until the final release (this snapshot has been taken on June 6, 2013)
The Acceleo project provides a deep integration in Eclipse starting with several new resource and project wizards to let you create new Acceleo projects, modules, UI launcher and more. Acceleo also comes with its own perspective and several views dedicated to code generation. One of the main feature of the Acceleo project is the Acceleo editor where you create and edit your code generators. This editor provides syntax highlighting, code completion, errors detection, code collapsing, documentation, a quick outline and various navigation actions.
The list of all the features of the Acceleo project, along with their documentation, can be found in its embedded documentation in the menu Help -> Help Content.
There are no specific end of life concerns for this release.
This implementation of Acceleo is based on the OMG MOF Model-To-Text OMG Standard : http://www.omg.org/spec/MOFM2T/1.0/
Activity on the M2T newsgroup (eclipse.modeling.m2t): more than 200 messages since June 2012
Acceleo on stack overflow: http://stackoverflow.com/tags/acceleo/info