©Copyright2017Obeo
Template-based Generation Tooling
Etienne Juliot
EclipseCon 2017, Modeling Unconference
©Copyright2017Obeo
Generating files from models
Coding rules
Model
Source code
Configuration files
Documentation
Customizable
Generator
©Copyright2017Obeo
Why?
Quality
Automatically apply your best
coding best-practices
Productivity
Produce code in less time
than you would write it
manually
Adaptability
Easily integrate both functional
and technical evolutions
Produce good code quicker and safer!
©Copyright2017Obeo
What is Acceleo?
Powerful and standard templating language Dedicated edition tooling
Quickly create lasting code generators!
Easy to adapt and maintain during your whole project’s life-cycle
©Copyright2017Obeo
MTL Standard templating language (MOF-to-Text Language)
User code management
Invokation of Java Queries
Conditional File Generation
Local Variables Definition
Modularity
Polymorphism
©Copyright2017Obeo
Integrated tooling
Initialization wizard
Template Editor
Syntax highlighting
Completion
Open declaration
Quick replacement
Refactoring
Hot Replace
Error detection
Interpreter View
Profiling
Dedicated Runtime
Stand alone + Maven Support
VCS support
©Copyright2017Obeo
Template-based Generation Tooling
Easy Modular Iterative
www.eclipse.org/acceleo
✔ Tutorials
✔ User Guide
✔ Developer Doc
✔ Best Practices
©Copyright2017Obeo
Project Organization
Specifications ARE Validation tests
For each Pattern
One Model
One Hand-Made Text File
One translation explaination
→ One new implemented feature
→ One test case
Avoid regression
Initialize
Edit
Deploy
©Copyright2017Obeo
Vision for Acceleo 4
History : V1.0 (2006) v3.0 (MTL + Eclipse.org) v3.8→ →
Adopt AQL
Less verbose
Faster
Consistent with M2Doc & Sirius
Simplified internal architecture
Get rid of EMTL files to ease build & deployment
LSP based to support LSP4e, CHE, Visual Studio Code and other?
Template Debugger
Envisionned roadmap : Depending of your priorities & your support!

Acceleo presentation - EclipseCon 2017