Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: for the plan.

Jump to: navigation, search



Acceleo Presentations

a Real Standard Alternative for Code Generation Eclipse MTL : a Real Standard Alternative for Code Generation
The Eclipse M2T project aims at developing Model To Text tools and reducing the duplicate effort involved in template languages development. Currently, there are three languages components within M2T : JET, Xpand and MTL being the OMG MOF Model to Text implementation. MTL is using OCL for model navigation and query. MTL can generate any technology (Java, C, J2EE frameworks, Php) and with a "production ready" release planned for galileo, MTL is right away a real standard alternative for code generation. Being a community based project, Eclipse MTL puts forward a think tank discussion about specification, implementation and gather overall thoughts on how to provide a long term and successful communication channel between the MTL project and the OMG representatives. The team is composed of the Acceleo's code generator creators and contributors of the MOF 2 Text and QVT-R OMG specifications. The team reuses its knowledge to build an examplary implementation of the OMG standard. We want to be as close as possible to the specification knowing that the understanding of a specification may not always be unique. During this talk, we'll present the Galileo release of the component and its features (Standalone generator engine, full featured editors, live code preview) through businesses examples.

This presentation has been realized by Jonathan Musset during EclipseCon 2009.

From to Eclipse Modeling From to Eclipse Modeling was created many years ago outside of Eclipse... We created a real open source community around this Code Generation tool, with a public repository, a website, a wiki, a mailing list, a newsgroup, and an aggregation of blogs like the planet Eclipse one. Acceleo project won the Eclipse Award in the category "Best Open Source Eclipse-Based Developer Tool" rewarding several years of work of the Acceleo community to produce one of the best tool for model driven development.

As the time goes, the Team has been more and more convinced that the MOF Model To Text OMG specification was the way to go for the project and as we started to code we decided to move within the Eclipse M2T project changing the syntax to conform to the standard but keeping the spirit and pragmatism we had for We had our first stable release for the Galileo train, are planning to maintain the implementation for years but the next generation Acceleo will be perfectly ready for the next Eclipse simultaneous release (Helios).

We are confident that the Acceleo community is gaining value from moving to a self hosted project to an Eclipse one, and that end users will follow the transfert from to but such a move has impacts, both from a technical and community point of view : this talk will focus on those impacts, describing the change between both projects and providing experience feedback : Why did the project moved? How? What are the benefits for the Acceleo community and for the modeling project? What have been the community constraints? How to handle, technically, this kind of move ? What does moving to an OMG standard implementation mean for the users ?

This talk will tackle all those issues while demonstrating changes through demos.

This presentation has been realized by Cedric Brun during Eclipse Summit Europe 2009.

Acceleo Code Generation - Let's start with an Android example Acceleo Code Generation - Let's start with an Android example
Acceleo is a pragmatic implementation of the OMG* standard for code generation called MTL*. Still in incubation state, we plan to have Acceleo graduate for the next Eclipse simultaneous release (Helios).

Being an expert at code generation or Acceleo is not necessary to get started on your first code generator : using the Acceleo editor and the powerful features it exposes (completion, syntax highlighting, on-the-fly compilation, quick outline, ...), it is very easy to get started once you understand the most basic principles.

This talk presents both the MTL language and the Acceleo Development Toolkit which is provided in the M2T project. Beginners will learn what code generation, M2T, and Acceleo are, as well as how to use them on a concrete case-study. Acceleo addicts will discover the new standard syntax, new functionalities and techniques. We will give you enough of the basics to create your own code generation for a specific target system. We have chosen the Android platform as a target to show that we can also use Acceleo for mobile software.

Here is the talk agenda :

  • Acceleo : What's that new code generation engine?
  • Create an Android prototype and its corresponding model
  • Initialize your code generation project from the prototype
  • Editing your code generation file to make the Android prototype run
  • Launching your code generation on another model example
  • Packaging as an eclipse plug-in and for standalone usage
  • Create new Android applications in few clicks
  • How to override a specific behavior in the target environment
  • On the developer side : How to make your own extensions with Acceleo?

We'll end the talk with other complex code generation examples made with Acceleo : EEF, UML to Java, Ecore to python, Migrating from a language to another...

This presentation has been realized by Jonathan Musset during EclipseCon 2010.

No longer available Creating a Language for Android Apps with Eclipse Modeling
As in many modern platforms, programming Android apps requires a mixture of several languages. For example, an Android Activity has a declarative XML part and a behavioral Java part. To make Activity a cross-language abstraction, you usually use an Android-specific IDE that ensures that both parts are in sync, yet such an IDE will usually not allow you to introduce your own abstractions.

A solution to this problem is to define your abstractions in a separate language and compile that language to Android-specific artifacts. While that sounds rather complicated, the Eclipse Modeling Project offers a plethora of frameworks and tools that make it easily possible.

In this tutorial, you will create working Android applications using Eclipse modeling techniques. This talk will start with a short presentation of Android and its development tools. Then you will learn how to define your own abstractions using EMF Ecore and how to create a language and an editor for these with Xtext. Finally, we will implement a generator that creates the Java and XML source code of the Android application with the help of Acceleo. We will demonstrate how these ingredients integrate into the Eclipse workbench just like Java and XML do.

Tutorial Plan

  • Introduction to Android (15min)
  • The Demo Application (20min)
  • Creation of a Programming Language With Xtext (1h35)
  • Break (20min)
  • Creation of a code generator for Android with Acceleo (1h35)

This tutorial has been realized by Mikaël Barbero and Stephane Begaudeau for Obeo in collaboration with Holger Schill and Jan Koehnlein for itemis AG during Eclipse Summit Europe 2010.

And You thought you knew template based code generator? And you thought you knew template based code generator?
This talk will discuss the evolution of a code generator, the problems encountered during its development and the solutions created in Acceleo in order to handle those problems. We will start with a presentation of the Acceleo project and its position in the modeling community. Then we will talk about its language and history before detailing some of its key features. We will explain the behavior of the Acceleo editor and how it can ease the creation of a generator. We will then move on to the different views available in Acceleo, especially the Result view that provides the traceability information for all the generated elements. Finally we will show a glimpse of the behavior of some advanced features like the profiler and the debugger.

After that, we will present how Acceleo helps the user during the evolution of its generators. We will also discuss the problems encountered with code generation like the modification of the generated code and different tools used to help during the different steps of the lifecycle of a code generator.

Finally we will look into the problem of the maintenance of a code generator with Acceleo and Obeo Traceability. Following an introduction of Traceability, we will look into the solution created to handle the modification of the generated code. We will also see how to override the behavior of an existing code generator to introduce new features in the generated code.

We will conclude this presentation with our solution to the synchronization problems that cripple code generation projects with a demonstration of the synchronization tooling of Traceability.

Benefits of participating: People attending the talk will be able to discover the Acceleo project and Obeo Traceability. You will also get a glimpse of the prototype based approach used to initialize a generator, then you will see how Acceleo and Traceability provides you with the tooling necessary to handle the maintainability and the evolutions of your generators. Finally, we will show how to improve and modify complex existing generators safely with the Traceability.

Process & timetable:

  • Presentation of the Acceleo project (description, history, features)
  • Creation of a generator from a prototype and demonstration of the prototype based approach and presentation of the Acceleo tooling.
  • How Acceleo supports the user during the improvements of its generator with a presentation of the features dedicated to this approach with a live example.
  • Short presentation of Obeo Traceability and demonstration of the use of Acceleo and Traceability to maintain and customize existing generators with a live example and a discussion on the different problems encountered during the live of a code generator.

This presentation has been realized by Stephane Begaudeau for Obeo during Code Generation 2011.

A video of the presentation is available on infoQ.

Other presentations:

Acceleo Portal
Project Project · Installation
Features Acceleo Features · Runtime · Acceleo editor · Views & Perspective · Interpreter · Maven
User documentation Getting Started · User Guide · Acceleo operations reference · OCL operations reference · Text Production Rules · Migration From Acceleo 2.x · Best Practices · Videos · FAQ
Developer documentation Source code · How to contribute · Compatibility · MOFM2T specification · OCL specification
Community Professional Support · Report a bug

Back to the top