Planet Acceleo

You have landed on 2.x maintenance stream website.

The last version is now available on the Eclipse website.

Planet Acceleo is an agregation of Acceleo and modules repository developers. You may syndicate it using this RSS feed

June 03, 2013

EMF Compare - GMF strikes back

Here we are, EMF Compare 2.1.0 is just around the corner. This was a very exciting, yet very busy year. EMF Compare 2.0 was released last summer, laying out the foundations for all of the cool stuff we wanted to (but could not) include. Now, 2.1.0 comes to fill the gap between the 1.* and 2.* streams, most notably through the re-introduction of support for graphical comparisons.

So what can you really expect from Compare 2.1? Let's skip the project life and focus on the cool features that can now be used.

Graphical Comparison

We introduced a "preview" support of the graphical display of differences into the project in its fifth milestone (M5) back in february. This was one of the biggest features we wanted to polish for the release, and polished it has been :).

This support is quite generic, and it should be able to handle most GMF-based modelers without too much work from their side (a few extensions are needed to tell EMF Compare how to open their diagrams). For now, our primary target was Papyrus.

Though the differences themselves were all pretty well detected, we were not happy with how they were displayed in this first draft. The decorators we use to tell the users "what changed in there?" were thus our primary focus. Here are a few examples of the differences that can be detected in Papyrus UML diagrams... and how we display them in said diagrams.
  • Adding a Class
    Both "new" and "old" models are displayed, on the left and right sides respectively. The Class "A" has been added : it is highlighted in the left (new) diagram, and a transparent placeholder for its shape is shown over the right (old) diagram.
  • Removing a feature
    Within lists, the placeholder is shown as a single line:
  • And if we need some context to understand the change?
    Some changes cannot be understood if shown alone. For example, cascading differences (delete a package and all of its content) need some context to understand the differences related to said "content". Likewise, if we delete both sides of an association along with the association itself, we'll need contextual information to understand the association difference. This is handled through lighter-colored placeholders.

  • What about conflicts?
    In case of conflicts, we try and highlight all related information on all three sides of the comparison:
Comparing models without identifiers

One of the hardest part of comparing EMF models is that we need to "match" the elements contained by these models together. When we are given two instances of a given model in two different versions, we need a way to tell that some package "library" in the first version is the same element as the package "library" in the second version. Likewise, we need to be able to tell that the attribute "pages" of a class "Book" in the first is the same as the attribute "length" of the class "Book" in the second version before we can even tell that there is a difference on that attribute (it has been renamed).

When we have identifiers in our model, this is an easy matter. We assume that the identifier of one given object has not changed between the two versions. However, this is not always (rarely, in fact) the case. EMF Compare 2.1.0 re-introduces support for such models, computing and matching objects through their similarity. For example, here is the result of comparing two ecore files together:
Enhanced user experience

The amout of data we compute is quite large, reflecting the accuracy we desire for the comparison; and the number of differences between two versions of the same model can be daunting. We strived to improve the comparison UI in order to provide a much more precise and intelligible information. We've used two means to that end, both of which can be extended by clients of the API.
  • Grouping differences together
    By default, EMF Compare does not group differences, and simply displays them as they've been detected:
    One of the options we provide by default lets you group these differences according to their originating side (in the case of three-way comparisons, comparing with a remotely controlled version for example), along with a special group for the conflicts (if any):
  • Filtering differences out of the view
    A second option (of course, both can be combined) to limit the number of visible information is to filter out differences that could be considered somewhat as "noise". For example, EMF Compare detects all differences within the containment tree: if the Class "Book" has been removed, then of course its attribute "pages" has been removed. And in turn, the "type" of this attribute has been unset. Those are three differences resulting from a single one. By default, EMF Compare will not display the "resulting" differences, focusing on the "root" only:
    However, they are still computed, and they are still there in the comparison. We called these "cascading" differences, and users can choose to have them displayed instead by unticking the associated filter:

This has already become too long of a post (kudos if you read all the way till here ;)). Anyone interested in the full list of enhancements and highlights of this release can find it here on the project's wiki, with a little more details.

by (Laurent Goubet) at June 03, 2013 08:28 AM

March 19, 2013

Introducing Eclipse Sirius

You might have noticed some signs of excitement from us lately, one being the following tweet :

What was sent at 4:45pm? a new project proposal for Eclipse, one which, in my opinion, is a major event.

Let me introduce you to Eclipse Sirius !

Have you ever wanted a nice graphical environment customized for your domain data but been discouraged by the complexity of all the technologies needed to create one? Maybe you compromised and decided to use an existing format or notation, even if it does not completely fit your needs, just to benefit from the associated tools. Fear no more! Instead of adapting your needs to some existing tool, with Sirius the tooling adapts itself to you, as it should be. And you don't even need to learn about the Eclipse Modeling stack, we did it for you.

That said, if you want to tweak something you can always plug your customization in through the underlying frameworks, namely : GMF, GEF, EMF and the Eclipse Platform.

How did it all start ?

It's no vaporware. We started the development of Sirius a few years ago with Thales. We've set-up together a great team to build this technology, known as Doremi at that time.

Thanks to this collaboration, we've reached a very high level of maturity: Sirius is used in many very large projects within Thales and it's been around in Obeo Designer for a few years already. It is also the foundation of several tools you can already find in the Eclipse Marketplace, some of them being installed by more than 2000 users a month.

We are not kidding.

This contribution to Eclipse means a whole new team will become commiters. They have been working on Sirius for years and you already know them as contributors. You will now see those guys from Thales and Obeo co-leading and working in the open.

What about Obeo Designer ?

Sirius is one Obeo Designer's components. Once published via Eclipse the Sirius open source version will be included in Obeo Designer.

Sirius being open-source doesn't change much besides strengthening Obeo Designer by significantly growing the user base of one of its components. This means more diverse usages, more tests "in the wild" and potentially more designers to reuse or extend.

Obeo Designer remains a commercial product : a strong and open platform to build and deploy your modeling environment with well integrated and tested components. It is the perfect companion for professional usage by bringing collaborative modeling and support.

Why ?

First because it is in our DNA, we strive to build great products in the open. And our partners are supporting us on this, especially Thales, since Sirius is the result of many years of a joint and rich collaboration with Obeo.

Secondly to unleash the energies in Eclipse Modeling. There is a lot of interest in this domain,  companies are in dire need of solutions but the cost to fill the gap between what they need and what Eclipse Modeling provides right now is too high. We are reducing this gap with Sirius and this will trigger more usage and more funding for Eclipse Modeling as a whole.

We also want to work with you, fellow commiters and OSS tool providers, in building the best tools ever. We are building a great component, but having a non open-source runtime may slow down its adoption. This last barrier is now gone.

Have some questions ?
I'm sure you have tons of them. Please use the dedicated Eclipse forum.

Want to know more ?

I'll be at EclipseCon Boston next week. At 1:30 pm On Tuesday .

I'll present the project with Stephane Bonnet from Thales in the session :

"Your custom modeling environment definition made easy. At last !"

During this session you'll learn about the project, its goals, its current deployments and you'll see it in action with live demos.

I will also introduce the project during the Modeling Symposium later the same day !

Sirius brings you the ability to quickly define your dedicated editors : diagram, tree, tables, it would be a shame not to show you what you can do with it :


by (Cédric Brun) at March 19, 2013 05:16 PM

March 13, 2013

Learning from the source

I don't know about you, but at Obeo we're preparing for EclipseCon North America. Eclipse Conferences are great, so many things are built on top of Eclipse or within the Eclipse projects. Tooling of course, but also rich applications, runtimes, you can get a clear vision of what's going on in these areas in just a few days being there.  You could think : "all right, but he is an Eclipse commiter, of course Eclipse conferences are interesting to him". Actualy I'm also CTO at Obeo and when Obeo comes at EclipseCon it's not a one man trip. Seven people from Obeo will go this year to Boston, it's not unusual, and for a company like us it's no small investment.
So, with my CTO hat (and not the Eclipse commiter one) let me give you a hint : its worth it !

During a few days your team is getting to learn from the source ! The community is so diverse, they will learn about developping mobile apps, web apps, rich applications, runtimes, but also about product management, tooling, business intelligence, quality, processes. They will learn tips and tricks on using technologies and in our world these tips are making the difference between a successful project and a complete failure. The knowledge you'll get is high quality:  you'll learn either from people using the technology day to day or from people actually building the technology !

Looking back at the few years the company have been around, there is no doubt Eclipse conferences had the most profound impact on how we use technology and how we develop products.

I'll take a few samples from what we are presenting there but make sure you have a look on the program yourself.

EMF Compare 2.0 : Scaling to Millions : performance and scalability related talks are in general giving a lot of insight into a technology. Here Mikaël will describe by which mechanisms Compare is now able to produce diffs from models too huge to even be completely loaded in memory and merge these diffs while keeping the model integrity.

EMF.Edit : the Force Unleashed : how EMF brings a flexible command support, and how you can use it even not how of an Eclipse context in for instance, a JavaFX application.  "This talk is dedicated to EMF rookies that know EMF as a generator of JavaBeans on Steroids and want to know more about steroids "

Documentation Driven Testing : if you think documentation is an important part of your software but you don't want to spend time doing it for nothing.

Buildroot Eclipse Bundle : a powerful IDE for Embedded Linux developers : see how Eclipse tools can help in building your complete embedded Linux system.

Stop Throwing your doc away : Agile Documentation with Mylyn Intent : you might learn there how the tools from Eclipse can save you a lot of time telling you where your documentation is not up to date.

And thats a tiny extract of the conference which has 7 parallel tracks during 3 days +  a full day of 3 hours tutorials.

And I am not even mentioning the discussions, the BOF sessions and the keynotes.

Well, of course you won't be able to send all your developers there. Just make sure to send those who are good at sharing knowledge with the others and you'll see it will impact both your software and your practices.

ps :  better hurry to register

by (Cédric Brun) at March 13, 2013 09:12 PM

February 14, 2013

EMF and Graphical comparison - what's in the pipeline?

A lot of things are being worked on for EMF Compare, and while we're polishing the core and refining the user-interface, a few new features have been included in the latest milestones. The biggest focus is on the graphical (GMF) comparison and displaying of differences:

Graphical Comparison

It's been a while since I mentionned that graphical comparison with EMF Compare 2 was coming. Well, the feature has been included as a preview in the M5 milestone of EMF Compare (which can be installed from this update site). We can now properly detect and merge graphical differences in GMF models.

However, we have now initiated a more thorough reflection on how to display these graphical differences. Our preliminary implementation is not satisfactory:
Should we use a custom color code or reuse the "team" colors (those that show on the icon's overlays), should be draw a rectangle "around" the differences or decorate the existing figure's borders, how can we best show that an element has been deleted?

We are trying to determine how these differences would be best displayed... and your opinion matters :). If you think you can help on this reflection, or wish to share any thought on this point, the specification of what we expect the graphical display to look like can be found on the wiki. We've initiated a thread on the compare forum for the discussion to take place for anyone interested.

Two special integration features for Papyrus and Ecoretools are also contributed, though these only include means to detect "label" differences and may be temporary: labels are computed when displayed, potentially from many distinct other features... thus detecting and merging them is very costly. For the technical, we have to create off-screen editparts and compare the labels textually. Merging requires calls to the direct edit tool when there is one. These integration features may not be kept in the final release.

User Interface

The second most visible change that's coming with this M5 milestone of EMF Compare is a deep modification of how differences are displayed in the structural view. In short, we previously had a very long sentence that tried to describe the changes in details:
While we have reduced this to the bare minimum useful information with this new version:
We expect that the simple label, along with the change icon (remote, local, conflict...), will be enough to understand what happened in the model. We add the name of the feature that actually changed along with the type of difference we detected as additional information.

The content viewers (the two/three panes displayed as the bottom half of the comparison editor) are also expected to change before Kepler is live. Namely, we are currently changing the way we show the differences in their context. Currently, the only context we offer is the list of siblings of the changed element:
For containment changes, this is quite disturbing, and we are changing that to display the whole tree instead (along with the other containment changes detected during this comparison:


EMF Compare is thought and implemented as a framework, and we are striving to provide all extensibility means that could be necessary to tweak, customize or replace the comparison and merging processes. I won't go in much detail here, more information on each possibility will be added to the wiki, or questions can be asked on the forum.
  • Customize the comparison process: Most steps of the comparison process can be modified, be it the matching, differencing, detection of equivalences, detection of conflicts, resolution of the logical model...
  • Custom mergers: We now provide an extensible merging framework so that extenders (or users) can alter the default behavior or contribute their own merging policy for either default or custom differences.
  • Filtering or grouping differences: Differences displayed in the structural view can be filtered and/or grouped together. A number of default options are provided, but new ones can be added seamlessly through extension points.
  • Customized user interface: There are a number of entry points to customize the user interface of EMF Compare. For example, the graphical comparison we were discussing above is entirely contributed to the EMF Compare UI as an extension. Clients can also tweak the labels and icons of the differences, contribute new toolbar actions, ... This is a part that still lacks good documentation, feel free to get in touch through the forum if you need more details on this.

by (Laurent Goubet) at February 14, 2013 10:36 AM

February 06, 2013

Model decoration

When you model a system, you use a specific language (meta-model) to represent information. So, you use a particular language fitted to your business needs. It may be required to specialize this model giving a precise semantics on each object, but also to rise above it through other business concepts to read, understand, exploit it better or enhance it from different viewpoints. So, you can imagine to manage a requirements model which decorates/references/plugs in a design model allowing to check that this last one is conform to the specifications.

In the example below, I focus on the decoration of a UML model with a DSL (Domain Specific Language). The need was to configure a UML model (design of communicating components) and to test these configurations against code generation. Each configuration defines a combination of different and particular communication protocols to use on the connectors between components. And, of course, each protocol brings its own parameters which may be quite difficult to model directly on the UML model (with profile/stereotypes for e.g.) and which may involve structural impacts.

To define the DSL, I have chosen to create a generic language to address any model decorations or configurations. The aim is to base on a generic behavior in order to create easily new decoration concepts and to benefit from a set of wired facilities (At the level of meta-model implementation, decoration instantiation with its life-cycle management and code generation). I inspired from the principles of Architectural Description/Styles Language that I extremely simplified, defining two main concepts: a Configuration and a Parameter, a Configuration being able to own a set of parameters. For me, a Configuration or a Parameter are a kind of Decoration.

Then I extended this meta-model to define my own decoration in order to configure the UML model with the Ethernet protocol (use case presented below). So, I described an Ethernet Configuration which is a kind of Configuration and which applies on UML connectors. As Parameter of this Configuration, I defined the concept of Container which will be intended to federate the components communicating from each side of the connectors configured with this protocol. An IP address and port number have to be set on each Container.

What is presented below can be downloaded from the TopCased project: "UML to real time Java with RTSJ".

At the end of the video, I introduce how it is possible to strengthen the understanding of his configuration/architecture, approaching model decoration through graphical viewpoints (out of scope of TopCased project). For that, I rely on the free UML Designer, based on the Viewpoint technology of Obeo Designer, which can be installed from the Eclipse Marketplace and whose the configuration is Open Source. The interest of this designer is that it is easily integrable with other designers based on the same technology and easily extensible.

The use case can be watched here:

french version here

This puts in relief other benefits of model decoration.
Indeed, it enables to distinct the applicative preoccupations from the architectural ones and to make evolving the last ones easily without impacting the decorated model.
Then, it allows to apply, on the same model, different configurations, and so to be modular.
Besides, the readability of information is improved through a fit language, some wizards and suitable viewpoints.
At last, the UML model is not dependent from some configuration, and so it is more inter-operable. In the same way, the concepts of the decoration may evolve without impacts on the UML model.

by (Cedric Notot) at February 06, 2013 11:30 PM

October 26, 2012

Chocolate Driven Development

After agile methods, devops, continuous integration, model driven development, ... here is coming the new awesome approach to improve quality and productivity: CHOCOLATE!

Here are the slides of my talk at EclipseCon Europe 2012.
I spoke about gamification, pleasure-based management, packaging tooling, continuous quality improvement, ... with  a common thread based on "choco-commit".

It was a challenge to use a fun way to explain so many different aspect of industrialization in software development.
Thanks for all the feedback I received about it.

.prezi-player { width: 450px; } .prezi-player-links { text-align: center; }

I hope several of these ideas can help you improve the pleasure of making good softwares or can be useful to discover some Eclipse plug-in to simplify packaging and agile development.

by Etienne Juliot ( at October 26, 2012 02:24 PM

August 03, 2012

2012 Annual Report of Eclipse Modeling

Eclipse Juno has been released with plenty of new exciting features.
Of course, the most famous new feature is about the platform which is now based on the Eclipse 4.X main stream.
The New and  Noteworthy for Platform, JDT, PDE and Equinox explains all these new facilities.

For the Modeling project, the Annual Report resumes the main activities for this release:

The increasing popularity of modeling and model-driven development continues to be an important driver for the growth of Eclipse. The modeling ecosystem is active and diverse with commiters from more than 30 different companies. New projects are created with regularity and are inherently integrated by virtue of their reuse of EMF's core APIs.
  • In 2012, modeling extends its community by addressing the need of a broad range of domains.
  • DSLs for programming languages using Xtext's extensible expression language are exploited by Xcore, a textual syntax for EMF's Ecore and by Xtend, an concise JVM-based language. Both support rich textual editors reminiscent of JDT's Java editor.
  • A DSL for business modeling with GMF 3.0 and EEF 1.1 that supports the creation of custom graphical and forms-based editors.
  • Support OMG standards, including Acceleo 3.3 for code generation, OCL 4.0 with more efficient API and tooling, and support for the UML 2.4 and BPMN 2 specifications.
  • Massively scalable deployment with CDO for collaborative and distributed repositories as well as EGF to manage the assembly of software factories.
With the launch of Juno, EMF will be in heart of Eclipse 4.2 SDK's workbench model. This is a great opportunity for end users to discover the various interesting modeling innovations.

If you want to test Eclipse Modeling Juno, the Amalgamation project provides a bundle with the core Modeling plug-ins and a nice UI to discover Modeling tools hosted by Eclipse Foundation.

by Etienne Juliot ( at August 03, 2012 10:30 AM

August 02, 2012

See Graphical DSL at EclipseCon hot new product Showcase

If you are in Washington for EclipseCon 2012, don't miss the "hot new product showcase".
It will start Wednesday, at 17:50.

You will see plenty of demos of new exciting technologies created with Eclipse projects.
Last year, I really enjoy it because:
  • it's very easy to speak with the guys who created these products, 
  • you are not stress because of the beginning of a talk
  • you can see products, while talks are main focus on technologies
  • the vibes is good, as there is a reception at the same place

This year, I'm proud to present there our DSL workbench: Obeo Designer.
One of our challenge we would like to do with our visitors: create in live, with only several minutes, a nice looking graphical designer customized with the visitor's choices.

To explain its features in a funny way, I made this original presentation:

.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }

by Etienne Juliot ( at August 02, 2012 02:58 PM

June 15, 2012

Timing Behaviors and EMF models : just married !

Four years ago, we concluded at Obeo that there exists many tools in Eclipse dedicated to source code in which users can profile and analyze the timing behaviors of their applications : YourKit, the TPTP project, the Linux Tool project for example. 
But, what could be the same tools dedicated to models ? 
Could we describe timing requirements in the models and compare this specifications to actual executions ?

Hence, we had brought together a real time execution platform provider (Atego), a real time systems designer (Thales) and real-time experts (UBO, INRIA Aoste, CEA List) to work on this project. We submitted the RT-Simex industrial research project to the French National Research Agency in 2008.

This project has just finished and its main result is very exciting : It allows to describe timing behaviors, to simulate and to analyze real time executions in EMF models. 

Let's watch this short video (in French) on a simple video filtering use case. We present :

The tool-set is also demonstrated on this presentation (in English):

.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }

Melanie Bats and Frédéric Mallet also present the project during the last Toulouse Eclipse day. Their slides are available here.

by Fred ( at June 15, 2012 04:41 PM

ERTS 2012 - Alea ToolKit presentation

These are the slides that I have just presented with Marielle from Systerel to the Embedded Real Time Software and Systems (ERTS²) congress.
.prezi-player { width: 550px; } .prezi-player-links { text-align: center; }

by Fred ( at June 15, 2012 01:43 PM

May 31, 2012

Bye bye

Today is my last day in OBEO.

It's been a pleasure working with the team that created the Acceleo, EMF Compare, ATL and Intent Eclipse projects.
This has been an honor to work with the foundation about EEF.

I do not know now if my involvement will be as strong as now, but I will work in an environment where I should use eclipse modeling tools, so I do not make me worry.

Thank you to everyone I could be next to, thank you to everyone who helped me by mail or bugzilla and see you very soon!

by (Stéphane Bouchet) at May 31, 2012 10:00 AM

May 24, 2012

Moving to git is complete


There it is, the move to Git repo is done.

The oldish CVS is marked read only, and the github repository will shows up in few days.

Next step, the move from EMFT to EMF !

by (Stéphane Bouchet) at May 24, 2012 03:20 PM

April 19, 2012

RT-Simex R&D project presented to the FSE conference

Last month, Julien, from the INRIA Aoste team, has presented the RT-Simex project to the FSE conference ( The slides are available here :

by Fred ( at April 19, 2012 01:01 AM

Performing Safety Analyses and System Designs : a viewpoint matter !

During the last CSDM 2011 conference, I have presented our work made in the IMOFIS project.

IMOFIS was an R&D project with Renault, Alstom Transport, Systerel, UTC, CEA-List and Obeo to develop an environment that assists safety engineers to analyse and verify their systems. This project ended on October 25 2011.

In this project, we have developed a metamodel and a tool, named Alea ToolKit, to capture both parts of the system designs and parts of the safety analyses needed to build a critical systems.

For example, one system studied in this project is the Communication Based Train Control  (CBTC). To build such systems, typical process is dual : on one side the system engineering and in other side the safety engineering. The first one leads to build a safe system. The second leads to verify that the system is build in safety. Between this two engineerings, the exchanges are models, documents and mainly requirements. System have to manage requirements (refine, satisfy, derive it). Safety has to tag requirements as safety ones.
Typical system engineering process
One key problematic in such process is to be able to synchronize system and safety world. One subset of needs is :
  • the adaptability, i.e to provide a tool and methodology usable for several projects and even several domains such as railway and automotive ones. 
  • the interoperability, i.e. to be able to reference system modeling elements to describe the safety analyses,
  • the consistency, i.e. to provide facilities in order to manage several safety modeling levels (Preliminary Hazard Analysis, Fault Tree, FMEA). We want to help user to manage the consistency among thus abstraction levels,
  • the traceability, i.e. to be able to compute links among engineerings and to use those links for navigation.
A set of needs explored in IMOFIS

Hence,to fulfill those needs, we have explored the use of a viewpoint based approach with Obeo Designer. The key idea is to capitalize concepts in a generic/general safety metamodel and to provide different views to specialize the use of this generic metamodel for a specific concerns : a specific abstraction level or a specific domain. This metamodel is build on the the Eclipse Modeling Framework in order to achieve the interoperability with other system metamodels (SysML in our case). The views are implemented in a viewpoint based-engine : Obeo Designer. The resulting modeling framework is the Applied metamodeL for safEty Analyses ToolKit.

    To illustrate such a tool, let's illustrate on the CBTC  example. Firstly, we check the correct viewpoints.

    In a viewpoint based-approach, user choose the viewpoint to load.
    Then, let's take a look to the system design from the SysML viewpoint.

    From SysML, user can navigate to the safety analyses. For example, the F2 function is used in two safety analyses : a cause analysis (Fault tree analysis) and an accident case analysis (Preliminary Hazard Analysis).

    In fact, the safety engineer described the accident case from the SysML model : i.e. he references the SysML CTBC Block and the F2 function from the SysML model. Hence, the safety engineer interoperate with the system design in order to build his analysis.

    From the Alea ToolKit point of view, this scenario is "just" a graphical view on a global enhanced fault tree. The viewpoint tool manage the consistency between this event sequence view and the cause analysis view represented as a fault tree. The following picture is the projection of the previous scenario from a fault tree point of view.

    The viewpoint manage also the traceability links between the views. For example, the traceability companion allow to navigate among the safety views. From a second accident case for the excessive speed hazard, user can navigate to the previous scenario.

    Hence, viewpoint based approach allow to provide an integrated modeling framework gathering Safety and System concerns. It improves information search, communication (before many documents were parsed) and coherency among safety/system analyses. This approach is not a new set of methods for safety analyses. It doesn't take into account all the safety activities but PHA, SHA and FMEA modeling at the system level. 

    Next steps are bridges : a safety viewpoint is not only graphical representations, but this is also a set of filters and information synchronizations for specific concerns. Hence my next work is to enhance those graphical viewpoints in order to connect business tools such as my AltaRica editor. This is another R&D story !

    If you want more information, a complete presentation of this work is available here

    by Fred ( at April 19, 2012 01:00 AM

    January 18, 2012

    Maven integration in Acceleo

    With the release of the new Acceleo stand alone front end for the compilation of Acceleo modules, I’ve started to work on a brand new maven integration in Acceleo.

    Currently in Acceleo, if you need to build Acceleo modules with maven you have to use a Tycho based build with a java class generated by Acceleo to tweak the build (for example to register the metamodel(s) used in the modules). This Tycho based build will always produce an Eclipse plugin as a result.

    The next major release of Acceleo will have a maven plugin dedicated to the compilation and it will bring several key improvements. Firstly, the new compilation front end brings a completely stand alone compilation. Those who want to build their Acceleo modules without having to build an Eclipse plugin will be able to do so. Secondly, this new front end support more complex project structures (with for example, multiple output folders in a same project). Thirdly, you will have the ability to contribute a class to influence the uris of the dependencies in the saved files (for example, change all the uris of the dependencies to other module to “platform:/plugins” uris that are more “eclipse plugin” friendly). Finally, it also features an improved resolution of the dependencies of a project with several options.

    Your project will be able to have a dependency to Acceleo modules in another project (that should have been previously compiled). A valid Acceleo project is just a directory on the file system with at least one “source” sub-directory and one “output” sub-directory (no need of an Eclipse nature or anything like that).

    This first solution is fine as long as you have the source code of the other modules but sometime you need to build something with the dependencies in jars. The maven plugin for Acceleo will let you declare a dependency to a jar containing already compiled Acceleo modules by using:

    • The absolute path of the jar. Ex: C:\…\myJar.jar
    • The path of the jar relative to the project built. Ex: ${project.basedir}\lib\myJar.jar
    • The groupId and the artifactId of the jar resolved by maven  (the version of the jar is optional since some version number includes the date of the build and therefore change often). Ex: myGroupId:myJar:myVersion
    • The name of an Eclipse bundle resolved by Tycho preceding by “p2.eclipse-plugin” only in a Tycho based build (“p2.eclipse-plugin” is the groupId of all the dependencies resolved by Tycho). Just like the previous use case, the version of the jar is optional too. Ex: p2.eclipse-plugin:myJar:myVersion

    For those who want to have a look at this new maven based build for Acceleo, you can find its source code on and you can test it with a simple pom.xml like this one.

    January 18, 2012 01:08 PM

    December 27, 2011

    MDE in action for safety analysis modelling

    Since two years, I am working for the IMOFIS R&D project. The last year, we have developed a graphical modeler for safety concerns. This modeler is based on the EN 50126 and ISO 26262 norms.

    The key idea of this work is to provide a graphical safety viewpoint for system engineering. The system is design with the SysML language. Safety engineers describe their analysis with the safety viewpoint. p { margin-bottom: 0.21cm; }
    The result is pretty cool ! In the next figure I described that the SysML “F2” operation of the SysML Block “CBTC” (Communication Based Train Control) is referenced by a barrier to prevent a derailment (the accident) in case of an excessive speed (the hazard).

    In this work, we use several model-driven technologies to build our software :
    1. The Eclipse Modeling Framework to describe the safety metamodel
    2. The Extended Editing Framework to generate both property views and wizards
    3. The Obeo Designer viewpoint-based studio to create graphical views  without any manual code
    4. The GenDoc2 Topcased technology to generate documentations. This technology is based on the Acceleo model-driven code generation.
    I will present this work on the Topcased Day conference in february !  In the meantime, you can look for screenshots, videos and publications on the Obeo network !

    by Fred ( at December 27, 2011 10:19 PM

    November 09, 2011

    Slides from EclipseCon Europe 2011

    For those of you looking for the Acceleo presentation that I’ve realized last week during EclipseCon Europe 2011, you can now find it online.

    I have also put online the presentation that I’ve done during the Eclipse Modeling symposium on the new Interpreter view available in Acceleo 3.2. A video of this presentation during the symposium is available on Dailymotion.

    And now, after Twitter, the Acceleo community will also be available on Google+.

    November 09, 2011 01:59 PM

    November 08, 2011

    Modeling Symposium @ EclipseCon Europe 2011

    The modeling symposium at EclipseCon Europe 2011 was really nice with several talks on various topics related to modeling. I would like to thank all presenters and particularly István who filmed all presentations with his smartphone.

    by (Mariot Chauvin) at November 08, 2011 02:23 PM

    November 03, 2011

    Why not generating EMF code with Acceleo ?

    Obeo has developed the Rolls Royce of the code generation. It's time to use this for the EMF generation tooling.

    Since one year we are developping an alternative EMF generation with EEF. Now we have covered most of the EMF generation (even the model part!) and you can try it with the last EEF nighlty!

    Here is the demonstration Stéphane made of the new wonderful feature:

    For the ESE attenders, I will made a demo @ the modeling symposium this evening !

    by (Goulwen Le Fur) at November 03, 2011 10:18 AM

    October 10, 2011

    Acceleo 3.2

     To celebrate the historic victory of the french rugby team in the world cup quarter final, the Acceleo team is proud to announce its 3.2 release very soon.

    Photo from NikRugby23

    • We tackled performance problems in compilation. Acceleo is now as fast as Vincent Clerc, and even if you totally don't know who he is, you will appreciate the better reactivity of the tool.  

    • We provide a new useful view to test Acceleo and OCL expressions on the fly, the Acceleo interpreter. You will find more details and example of usage of the interpreter in the Laurent's blog entry.

    Screenshot of Acceleo Interpreter

    Want to join the scrum  ? You could install a release candidate and give us feedback before the final release planned for October 24th.

    by (Mariot Chauvin) at October 10, 2011 03:09 PM

    August 22, 2011

    EEF submissions for EclipseCon Europe

    This year, I will try to present two talks to EclipseCon Europe about the Extended Editing Framework (EEF) and more generally Eclipse Modeling : Scientific application redesign in oil industry with Eclipse Modeling and 25 min to take care of your end users with EEF!.

    Scientific application redesign in oil industry with Eclipse Modeling

    This first talk deals with a work we made with IFP energies nouvelles (IFPEN) for redesign a part of its platform OpenFlow. IFPEN develops and provides a platform aiming at creating scientific softwares for oil production industry. This platform offers several services like tools helping creation of graphical user interfaces or a communication framework to send data to supercomputers.

    The communication part of the suite is fully operational but can be really improved, mainly in the way the communications are described. The work with IFPEN was to create a communication designer with EcoreTools and to generate all the communication layer of the IFPEN platform with Acceleo 3.

    For this talk, I will be assisted by two persons of IFPEN and we will show you :
    • The different elements of Eclipse Modeling we used to made this redesign
    • A demonstration of the final Communication Designer
    • And a demonstration of a second tool we made to create automatically GUI with EEF

    25 min to take care of your end users with EEF!

    The second talk I proposed is more EEF-centric. EEF has reached its version 1.0 and is no longer in incubation. The two years in incubation allowed the framework to be more and more robust and to be a real candidate to become the EMF.edit framework version 2.0!

    I will try to focus this talk on a tutorial aspect to enable people attending the presentation to use EEF immediatly on their own use cases.
    The talk will start with a short introduction of the project and will be followed by a first tutorial to get good looking properties view for a given metamodel defined with Ecore.
    After a short presentation of the different kinds of generable GUI with EEF, a second tutorial will show how to create very usable form editors with the extension part of EEF.

    I hope this description of the talks I've submitted around EEF convinced you and make you want to come to this wonderful event that is Europe EclipseCon !

    by (Goulwen Le Fur) at August 22, 2011 09:22 AM

    June 27, 2011

    An AltaRica textual editor in Eclipse

    Since more than one year, I have heard about the AltaRica language provided by the LaBRI. AltaRica is a language designed to model both functional and dysfunctional behaviors of critical systems. AltaRica provides a syntax and a set of model-checkers like ARC that allows to analyze the set of reachable configurations of a concurrent system from an initial state for example. This language has a formal semantic and seems quite easy to learn and to use !

    However, I haven't found a free plug and play editor for a beginner (as me) with auto-completion and error detection. I have thus implemented, during my spare time, a textual AltaRica Eclipse-based editor in a first version.

    My motivation are :
    • to learn the langage 
    • to be able to use this langage with the Eclipse Modeling Framework. In fact, if I succeed, the AltaRica model and all other models used during my critical systems developments (SysML, UML, EventB, Requirements, traceability) will be managed by the same common modelling framework. It will thus facilitate the interroperability ! 
    • to learn the Eclipse-Based xText technology for which you can describe the AltaRica grammar and generate the Eclipse-integrated textual editor.
    An extract from the xText AltaRica grammar

    After several hours, I succeed in providing my first AltaRica editor with auto completion and error detection. For sample, I can edit the counter example delivered with ARC and compile this sample.
    A simple counter from 0 to 10. The counter can be incremented by
         one unit using inc event or by two units using inc2 event.
    Syntax error detection
    Completion proposals
    The ARC compilation results when asking all the path to get count >=3

    The ARC console is not yet integrated in Eclipse because I don't know if someone else could be interested either in using or in contributing to this editor. Please, feel free to contact me if you are interesting !

    by Fred ( at June 27, 2011 10:28 AM

    June 22, 2011

    Eclipse DemoCamp in Nantes

    Next week the second edition on the Eclipse DemoCamp will take place at the Ecole des Mines de Nantes.

    Even if Nantes is specialized in Eclipse modeling technologies, we have this year an existing program with a good mix of modeling and non-modeling talks.

    6:15PM - 6:35PM: MoDisco & ATL (AtlanMod)

    6:35PM - 6:55PM: EMF Facet (Mia-Software)

    6:55PM - 7:15PM: EEF (Goulwen Le Fur, Obeo)

    7:45PM - 8:05PM: Memory Analyzer (Zenika)

    8:05PM - 8:25PM: Tycho (Pod Programming)

    8:25PM - 8:45PM: EGit (Obeo)

    8:45PM - 9:00PM: General Questions & Wrap-up

    If you want to attend, please update the wiki page or contact me:

    by Freddy Allilaire ( at June 22, 2011 12:06 AM

    June 01, 2011

    Webinar Retour EclipseCon 2011 : ce qui nous attend dans Eclipse 3.7

    Tomorrow (2011/05/31, at 3 pm Paris timezone), there will a webinar about EclipseCon 2011 and Eclipse Indigo focused on news and northworthy of the Eclipse ecosystem. For the first time, this webinar will be in French since it will target the large and active community of French Eclipse users and some of them are more comfortable with their native language ;)

    Speakers are: Etienne Juliot, Cédric Brun, Mariot Chauvin, Mikaël Barbero, Frédéric Madiot.
    You can register at:

    English abstract
    EclipseCon 2011 was a great success with lots of announcements and exciting new projects.
    If you could not got there or you didn't success to fork yourself to see every talks, this webinar will help you to have an overview of the event and the upcoming technologies for Eclipse Indigo.
    As lots of materials on EclipseCon are already available in English and in a view to increase their visibility to the french community, this webinar will be in French.

    Résumé en français
    EclipseCon 2011 a été un grand succès avec beaucoup d'annonces et de nouveaux projets passionnants.
    Si vous n'étiez pas sur place ou vous n'avez pas réussi à vous dédoubler vous pour voir toutes les conférences, ce webinar vous aidera à avoir un aperçu de l'événement et des technologies à venir pour Eclipse Indigo.
    Comme beaucoup de documents sur EclipseCon sont déjà disponibles en anglais et en vue d'accroître leur visibilité à la communauté française, ce webinar sera en français.

    Ce webinar durera une heure et sera présentée de manière chronologique, comme si vous étiez à Santa Clara du lundi au jeudi. Les orateurs sont exclusivement des commiteurs des projets de la fondation ou des orateurs à la conférence. En prévision de la sortie d'Eclipse 3.7 qui sortira en juin prochain, nous vous montrerons pourquoi cette version est la plus importante depuis plusieurs années en expliquant ses nouveautés : Orion, Eclipse 4, Virgo, Acceleo, WindowBuilder, Tycho, EEF, eGit, ...

    UPDATE :

    The webinar has been recorded and is available at  / La vidéo a été enregistrée à l'adresse :

    Here are the slides / Voici les supports de présentation :

    by Etienne Juliot ( at June 01, 2011 03:22 PM

    May 04, 2011

    True story of a successful business model based on Eclipse

    At EclipseCon 2010, I do an original talk about business model. I was very happy to see so many persons to listen a non-technical talk.
    My goal wasn't to explain generalities about FOSS business models (a very good talk was done by Neelan Choksi, the president and COO of Tasktop, and is available at

    My goal was to explain our own story, why we continually adapt our commercial offer (service or product), and how we succeed to find a nice way to make money with free software.
    Eg: provide for free our code generation tooling, and selling legacy migration solutions!

    I also explained how Eclipse Foundation help us to find a way to increase the visibility of our work (and so, to increase the number of leads).

    by Etienne Juliot ( at May 04, 2011 03:46 PM

    February 18, 2011

    My new blog about filmmaking and open source

    In parallel with my computing activity, I decided to open a new blog about filmmaking, to share my experiences in this domain...

    I will talk about independent filmmaking, DSLR cinema, new amazing DSLR techniques, film production processes, directing, cinematography... and how the openness and the innovation of free software spirit can also improve all that stuff...

    Here is the link... See you later on this blog or on the other one...

    by (Jonathan Musset) at February 18, 2011 04:32 PM

    November 16, 2010

    Eclipse Modeling for WTP

    If I want to describe cinematic between my webapp, which representation is the easiest to understand :

    this one:

    or this one :

    At Eclipse Summit Europe 2010, I do a talk to explain how Modeling can be useful to design JavaEE based applications:
    • how to create some textual and graphical DSL for each layers of my webapp,
    • how to create Acceleo based code generators for Hibernate, Struts, Spring and others frameworks,
    • how to integrate everything in an Entreprise Architecture with a Togaf based designer.
    Some flash demos are available to see the resulted workbench.

    And here are my slides:

    by Etienne Juliot ( at November 16, 2010 07:22 PM

    November 03, 2010

    Vidéo de la présentation "MDA en 2010 au JUG Summer Camp"

    Juste un mot pour vous dire que les vidéos du JUG Summer Camp 2010 sont disponibles sur Parleys ici :

    La mienne intitulée "Le MDA en 2010, une visiion pragmatique!" est ici :

    by Jérôme at November 03, 2010 03:46 PM

    October 31, 2010

    My slides about Acceleo / MTL at the Eclipse & OMG symposium

    Here are my slides I presented at the 2nd Biannual Symposium on Eclipse Open Source
    Software & OMG Open Specifications in Minneapolis

    I spoke about our experiences with Acceleo to implement the MOF-to-Text Language specification. At the end of my talk, I explain problems we had about sharing our feedback about specs with the OMG organisation. OMG guys was very interested about this and I hope it will simplify some collaboration beetween Eclipse community and OMG spec writers.

    Here is the abstract:
    "When OMG tackled the standardization of an M2T syntax with the MOF Model to Text Language specification, commiters decided to rewrite Acceleo from scratch as an official Eclipse Foundation project, changing the syntax to the OMG standard while keeping the exemplary tooling and pragmatism of
    With Acceleo 3.0 included in Eclipse 3.6, our new goal is to provide the de facto or reference implementation of the standard; however, some parts of the specification are still quite vague and ambiguous and collaboration with OMG isn't smooth. We discuss both the specification and the implementation, and gather overall thoughts on how to provide a long-term and successful communication channel between the Acceleo project and OMG representatives."

    Here are the slides:

    by Etienne Juliot ( at October 31, 2010 05:58 PM

    October 28, 2010

    How to create working Android applications using Eclipse modeling techniques

    Several months ago, at Eclipse Con 2010, I presented a talk titled "Acceleo Code Generation : Let's start with an Android example". This is the demo.

    At Eclipse Summit Europe, we will do the talk again. This time, I won't participate... But, Mikael Barbero and Stephane Begaudeau will show an advanced version of this tutorial : "Creating a Language for Android Apps with Eclipse Modeling". Both are software engineers at Obeo. They have worked on this 4 hours tutorial with Jan Koehnlein and Holger Schill from Itemis.

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

    Thank you guys for the good job you have done to prepare this tutorial. That kicks ass! The result seems to be very impressive...

    This tutorial will also be interesting for beginners... 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.

    Flickr/androids eat apples!/laihiu 
    Goulwen Le Fur will also be at Eclipse Summit Europe 2010 and he will talk about EEF, this very usefull component I have talked about several times this year.

    by (Jonathan Musset) at October 28, 2010 01:15 PM

    July 06, 2010

    Eclipse DemoCamp in Nantes this week

    Don't forget this Thursday if you're closed to Nantes to attend to our Eclipse DemoCamp.

    Here we have the program:
    18:00 - 18:10: Welcome
    18:10 - 18:35: Modisco, by Gabriel Barbier, Mia-Software
    18:35 - 19:00: WTP with Glassfish, by Laurent Ruaud and Evariste Konkolé, Serli
    19:00 - 19:25: Acceleo, by Stéphane Bégaudeau, Obeo
    19:25 - 19:50: Eclipse SOA, by INRIA
    19:50 - 20:15: ATL in the AtlanMod Model Management Architecture, by Hugo Bruneliere, EMN/INRIA
    20:15 - 20h45: GMF Showcases, by Etienne Juliot, Obeo
    20:45 - 21h00: Open discussion

    Our goal: few slides, lots of demos!

    If you want to attend, please use the wiki page:

    See you on Thursday!

    by Freddy Allilaire ( at July 06, 2010 06:28 PM

    July 02, 2010

    Acceleo 3 and properties

    Since I'm often brought to develop acceleo generators, I often had to design my templates so that they can be easily parameterized by users.
    This is important since by doing so, acceleo modules are flexible enough to fit my users needs and (hopefully) I don't have to update modules too often.
    Of course, you need to carefully design your templates to achieve this modularity. But for simple needs, simple solutions are the best.
    Acceleo natively supports the use of properties files which is an efficient and simple way to parameterize generation module: Properties are generally simple to understand and users can use them easily.
    Well, Acceleo 3 is out, and of course properties are still supported. I just wanted to point out something I stumble upon just recently: Properties files are now accessed via the java ResourceBundle mechanism. And consequently, they need to be in the classpath in order to be accessed at runtime.
    So, as a module developer, you'll place your default properties files (those you provide with your modules in order to have a sensible default behavior) in a package of your module project.
    Well, don't forget to check that this package is exported at runtime, otherwise your properties won't be accessible when you run your generations!

    You probably already know how to do it but just in case: open the META-INF/MANIFEST.MF file, and in the Runtime tab just add the package(s) that contain your properties files.
    And since you need to do this also for your entry point templates, it may be a good idea to place default properties files in the same package as the entry point template files?

    by (Laurent Delaigue) at July 02, 2010 01:43 PM

    June 29, 2010

    Acceleo 3.0.0 is released!

    Acceleo 3.0 has just been released and it comes with compatibility with Eclipse 3.4, 3.5 and the latest 3.6 versions. Acceleo 3.0 is a pragmatic implementation of the OMG Model-to-text specification. It supports the developer with most of the features that can be expected from a top quality code generator IDE: simple syntax, efficient code generation, advanced tooling, features on par with the JDT... Acceleo also has a unique tooling around example-based design of code generators with all the pragmatism we had with the 2.x stream.

    Acceleo can be downloaded and installed in a number of ways. If you have an existing Eclipse installation and simply wish to install Acceleo in it, installing through the update site is the easiest way. If you'd rather install a new Eclipse with Acceleo, you may want to take a look at the facilities provided by the amalgamation project. Amalgamation is the project that leads the creation of the modeling bundle, it has an easy one click discover and install wizard. Thanks to it you could also easily install also ATL 3.1 (the model-to-model transformation language in Eclipse), EEF (a way to improve the EMF model creation), EMF Compare 1.1 and many other modeling components.

    Acceleo 3.1 will be released in June 2011 with the Eclipse Indigo release train. We also planned several corrective versions for the 2.x maintenance stream: a 2.7.1 version will be released this year and a 2.8 version in 2011. Meanwhile, the Acceleo team is investigating towards Eclipse 4 (e4) compatibility. All the links and information to download and install Acceleo are available from here:

    Note that examples are available from the menu right-click => New => Examples => Acceleo Plug-ins.

    Do not hesitate to give feedback through the mailing-lists, the bug-tracker or the web forum, a Wiki is available to ease the collaboration and the gathering of tips and tricks.
    Support information:
    Developers information:

    Thanks to all the developers and contributors involved in this release!

    by Freddy Allilaire ( at June 29, 2010 05:08 PM

    June 25, 2010

    How to create an Acceleo 2.x generator for composed metamodels

    Imagine you have a metamodel that reference other metamodels and you want to create a generator for this metamodel. Let's take an example :

    The first metamodel contains an EClass named Object that have a reference package of type EPackage. That create a reference to the ECore metamodel.

    First we have to create a template for the first metamodel :


    import manymetamodels.ecore

    %script type="first.Object" name="default" file="test.txt"%>
    Object %name%> :


    Then we need to create the template :


    %script type="ecore.EPackage" name="default"%>
    EPackage %name%>.

    And that's all. So you just need to create at least one template per metamodel and then inport them according to the way you navigate your metamodels.

    by yvan ( at June 25, 2010 01:56 AM

    June 10, 2010

    Eclipse DemoCamp in Nantes

    Obeo and INRIA organize an Eclipse DemoCamp at Nantes on the 8th of July:

    Don't be afraid, we looked at the world cup agenda and there will be no game on this day! So you could attend quietly and maybe take a break about soccer for few hours.

    However don't miss the first Eclipse World cup experience where I hope lot of people will join us (Go! Go! Go France!). If you're interested, take a look to the post made by Goulwen.

    For the DemoCamp, we have started to work on the agenda and already several interesting demos will be presented: Acceleo by Obeo, MoDisco by Mia-software, WTP by Serli and more to come.

    If you want to propose a demo or simply attend, please sign up on the wiki.

    See you in Nantes!

    by Freddy Allilaire ( at June 10, 2010 07:31 PM

    May 20, 2010

    Agility 1.4 is out

    Agility is a product based on Eclipse that help migrating code. You can find more details here. This new release comes with several improvements :

    - Custom link resolution
    - OStore reflective editor
    - Export to product parser

    There are also bug fixes of course :)


    by yvan ( at May 20, 2010 06:36 AM

    April 12, 2010

    Acceleo 2.7 is out

    There are several improvements and bug fix :

    - Profiling now profile compilation of templates. EObjects profiling can
    be also disabled. It's very useful when generating from big models.
    - EA models import has been improved
    - Some improvements have been done on resource caching
    - A template extender have been added. It allows to explicitly extends
    template from a module. It relay on extension point.
    - It's now possible to add custom services as system services. For those
    services the import statement is not required.
    - The import order error has been changed into a warning.

    For a more complete list you can visite the official Acceleo web site.
    To download this new version you can use this update site

    by yvan ( at April 12, 2010 02:17 AM

    April 07, 2010

    The new acceleo release before the 3.0 version

    Acceleo 2.7 has just been released. The Acceleo profiler has been improved in particular when generating from big models. A template extender was added; it allows to explicitly extend a template from an Acceleo module. Custom services can now be added as a system services. Several fixes were done on the models import from the Enterprise Architect modeler. Concerning the Acceleo modules, the C and Java modules have been improved. A new build is available on the update site.

    Furthermore some bugs have been fixed; you may want to have a look on the new and noteworthy page for the 2.7.0 release:

    The "Acceleo modeling bundles" providing the Eclipse platform, Acceleo, its prerequisites have been updated. These bundles are the way to go if you want to test the power of modeling within Eclipse: They provide as usual the ATL workbench for model to model transformations, EMF Compare for model comparison and others components composing the official Eclipse Modeling Package.

    We planned several corrective versions for the 2.x branch: a 2.7.1 version will be released this year and a 2.8 version in 2011. But as you may know, the next major release of Acceleo is currently implemented and this new version is an official Eclipse foundation project ( The most obvious change of this new version is the overhaul of the syntax as we now follow the OMG standard "MOF Model To Text Language" (MTL) based on OCL. In incubation since a little more than two years within Eclipse, Acceleo 3.0 is coming soon with the Eclipse Helios train (June 2010). Acceleo 3.0 already supports a level of functionality close to its 2.x stream. “Pre-release candidate” milestone could already be tested:

    Do not hesitate to give feedback through the mailing-lists, the bug-tracker or the web forum, a Wiki is available to ease the collaboration and the gathering of tips and tricks.

    Thanks to all the developpers and contributors involved in this release!

    by Freddy Allilaire ( at April 07, 2010 06:59 PM

    February 11, 2010

    2nd Birthday of ParisJUG

    juggyannif02.jpg I just back in my Home Office from a two days trip to Paris.I went to the second birthday of ParisJUG. Thanks and bravo to Antonio and all the ParisJUG team for the organization! It was a special event about the Open-Source revolution.
    All French JUG leaders are came specially for this event. Orianne and Jerome Petit, the Poitou-Charentes JUG leaders, announced that we would organize an event in September: The Beach JUG (aka Le JUG de la Plage!) ;-) The event will take place in La Rochelle on the French west coast. This will be an opportunity for me to talk about Model Driven. If you are interested to come and talk, ping me, I will redirect.

    The evening starting by an excellent Keynote presented by Sacha Labourey. He shares with us his experience as Open-Source committer on JBoss, then CTO and co-GM of the RedHat / JBoss company. And he detailed some best practices for creating an Open-Source and succeed in life (in Open-Source world ;)) I liked this phrase: "We are free and we don't suck ! "
    Then there is a surprise, a mystery guest, the buzz turned the whole day on Twitter, tracks from Clara Morgane to Nicolas Sarkozy:

    And finally, it's Marc Fleury, the JBoss Founder who became!
    I had the honor to discuss with Marc around a glass of French wine! Marc has a really cool life, since it sold JBoss. He came back to Europe, in Madrid and spend full time with his children and used his free time to study Economy... a huge topic to me...
    400people.jpg eclipse_built on_neg_logo_fc_xsm.aiJust after the Keynote, Etienne Juliot presented a quickie before almost 400 people. It explain how Obeo joined the Eclipse Foundation as a Strategic Member and how to build a viable Business Model based on the Eclipse ecosystem.


    I remember two messages: "Do it!" and "Professional Open-Source is not a Bisounours World", which reaches the Sacha opinion. Indeed, Etienne told us that it is very difficult to monetize open source technologies in order to build a solid software company. He explained how Obeo has managed to build a clear strategy and build a solid business model.

    The evening then continued with a third half-time with almost 120 people, the moment to talk with many good Open-Source Guys!

    by Jérôme at February 11, 2010 07:45 PM

    January 13, 2010

    New succes for Agility

    Obeo Agility is a proprietary product edited by Obeo. It's used for code migration. It parses legacy code into a model used for generating code for the targeted technology. We already parse and migrate millions of code lines from many languages (Cobol, Ada, PL1, ...). We finished a project for parsing 5 millions of code lines written in Natural. The goal for this project was not migrating the code, but automating code review. Reports are generated using... Acceleo.

    by yvan ( at January 13, 2010 05:55 AM

    November 30, 2009

    Profiling your code generation

    I am now developing on the Eclipse Acceleo project. To get started I bring a feature form the old Acceleo project. I write a profiler for the new Acceleo. It's very similar to the old profiler.

    As you can see the screen shot show many statistics about the module execution. By double clicking on an element you can open its definition.

    by yvan ( at November 30, 2009 09:59 AM

    November 12, 2009

    Eclipse Demo Camp 2009 in Paris with Acceleo and OD

    Next week, November 17th, come in Paris to see Eclipse Community and news of Eclipse projects.
    I co-organise this event with Cedric Vidal , a very nice guy with lots of cool ideas on model driven and EMF, and we want to promote talks with live demos and few slides (I hate "slideware talks").
    We success

    Some very nice talks will be propose on Birt, XText, UI (with XWT and Wazaabi) and a "guess star" with an introduction of Mike Milinkovich (Executive Director of the Eclipse Fondation).

    Jonathan Musset will talk about the new features of Eclipse Acceleo project. This demo has been shown at Eclipse Summit Europe and was very impressive by the quality of the template editor which is perhaps the best editor of Eclipse platform, just after JDT.

    We will also make some demo of Obeo Designer, our Eclipse Modeling distribution with a new exciting tooling to create GMF designers without any Java code (during our demo, we will create from scratch a new nice designer).

    Info on the Eclipse wiki page:

    Register on
    or directly with this form:


    by Etienne Juliot ( at November 12, 2009 12:06 PM

    June 30, 2009

    Eclipse Acceleo Day program is available!

    The first Eclipse Acceleo workshop will take place on July 10, 2009 in Nantes. More information available here:
    The complete program is now available with a lot of interesting talks dealing with Eclipse, MDE, DSM and of course Acceleo ;-)

    Hour Title Presenter Affiliation Language
    09:00 Introduction Etienne Juliot OBEO English
    09:30 Presentation of a DSM-oriented design and generation environment Erlé Le Gac Capgemini French
    10:00 MDA & Acceleo deployment feedbacks Vincent Fady Atos Origin French
    10:30 Coffee break

    11:00 Acceleo, contribution to the industrialization of developments: Feedback from Bull-Centre de Services Paris Olivier Leal Bull French
    11:45 An Open-source Model Driven software development toolset - Lesson learned from Orange Labs Samuel Liard Orange Labs French
    12:15 Lunch

    14:00 MDSD Scaffolding and Acceleo Cédric Vidal Proxiad English
    14:30 Presentation of WISSS (Webapp Is Simple, Stupid and Secure) François Gaudin Makina Corpus English
    15:00 Acceleo MTL: a standard alternative for code generation
    Cédric Brun OBEO English
    15:45 Coffee break

    16:15 EEF powered by Acceleo MTL - Acceleo MTL ... and punishment! Goulwen Le Fur OBEO English
    17:00 Panel

    This workshop is free but with mandatory registration (for organisation purposes). Registration details are available here:

    Hope to see you there :-)

    by Freddy Allilaire ( at June 30, 2009 05:44 PM

    June 15, 2009

    Eclipse Acceleo Day

    Eclipse Acceleo Day will take place on July 10, 2009 in Nantes. This workshop is dedicated to Acceleo and associated technologies. All information for attending and participating are available here: Eclipse Acceleo Day.

    The workshop fees have been lowed to their minimum: this is a free workshop ;), but mandatory registration (for organisation purposes). This workshop is co-located with the 10th Libre Software Meeting (

    The workshop will be an occasion for some members of Acceleo community to meet and to exchange ideas. This meeting will also be an opportunity to present some of the planned extensions to this tool and discuss MDE related subjects.

    If you want to participate and/or attend, don't hesitate to contact me by email.


    Acceleo ( is an Eclipse-based toolkit for code generation, with a model based approach. Code generation is the technique of using or writing programs that write source code. Code generators are tools built to serve engineers in the automatic creation of applications. Acceleo is a free software, its development is totally open.

    Topics of Interest

    • New Eclipse Acceleo project (
    • MOF-to-Text Language
    • Validation with Acceleo
    • Documentation generation
    • Scripting generation (PHP, Python, Ruby, ...)
    • Link with M2M transformations (ATL and others)
    • Comparison with other generative engines
    • Integration of Acceleo in a industrial tool chain
    • Presentation of existing modules ("ready-to-use" generators)


    Most of the talks will be 20-30 minutes long. Participants are welcome to propose a short talk presenting their project of their experience with Acceleo. Working languages are english and french. All slides and documents will be in english. Demos would be greatly appreciated :-)

    Important Dates
    • Registration: July 3rd, 2009 (Even if attendance is free, registration is mandatory for organisation purposes)
    • Workshop Date : July 10th, 2009

    by Freddy Allilaire ( at June 15, 2009 07:03 PM

    May 26, 2009

    Thread safe services

    Last month I explained how to tune Acceleo standalone engine threading. But services were still running in mutual exclusion because historically services didn't need to be thread safe. The result was a performance loss.
    Services of a given service class couldn't run in parallel by default. It means threads will have to wait for other threads to run services. I noticed that a lot of service classes are thread safe, they don't use field or static references.

    But as I can't decide if a service class is thread safe or not for you, I added an interface that bypass the mutual exclusion zone for a given service class. It allows multi threads to run services of a service class. This interface is IThreadSafeService. It declares nothing, so you just have to add the implements clause as following:

    public MyServices implements IThreadSafeService {

    But be aware, if you use this interface and your service class is not thread safe it can lead to random boggus behavior. And it can be difficult to find out what is the root cause of your troubles.

    by yvan ( at May 26, 2009 06:54 AM

    April 10, 2009

    Acceleo standalone and multi-threading

    One of the main features of the standalone Acceleo engine is to provide multi-thread support. This allows us to divide the code generation time according to the count of available processors, effectively cutting the generation in half on some machines. To share the work between threads, the input model is divided into groups of objects; each group is then queued till a thread can process it.

    There are two parameters to tweak the multi-threaded generation. The first one is the number of threads to run simultaneously, the default value being the number of available processors plus one. This allows us to use all available processors, the one supplementary thread used to cover synchronization waiting time. While some threads are waiting for another one, one processor is free to run the thread which was waiting for an idle processor.

    The second parameter is the number of objects per group, the default being 20 objects per group. This parameter is very important since its allows you to find the optimum between load sharing and thread management overhead. Your objects groups will not be processed using the same amount of time. So Imaging you divided your model into two groups by setting number of objects in the model divided by 2. The group which runs faster will have to wait for the slower group at the end of the generation. In this case you are losing time. On the oposite you can put a single object per group. This way you minimize the loss of time at the genretation end. But threads will spend more time peeking groups in the queue since there are much more groups.

    To set thoses parameters have a look at :
    - Extension.setThreadsNumber(int)
    - Extension.setEObjectsPerThread(int)

    by yvan ( at April 10, 2009 09:36 AM

    February 17, 2009

    Acceleo profiler

    There is a new feature in Acceleo 2.5. This feature allows users to profile the generation process of Acceleo. To activate the profiling you should check the profiling checkbox in the launch configuration of the chain.

    The result of the profiling session is saved as a model, it's very useful for performance comparison (using EMF Compare) or report creation in batch environment (using Acceleo :) ).

    Basicaly the model is the execution tree of Acceleo, each node being a step of the generation process. Those nodes give statistics like the time spent in the node and its subtree, the percentage of time it represents, and the number of times the element have been run by Acceleo. You can also find the list of EObjects for each node in the outline.

    The model can be sorted by chronogical order or by the time spent as shown on the screenshot. It can help in the understanding of the generation process and finding the hotspot(s). Once this hotspot is found you can open the template editor on this element by double clicking it.

    I am sure this will help to optimize your Acceleo templates.

    by yvan ( at February 17, 2009 04:12 AM

    February 10, 2009


    This blog will be dedicated to my development works at Obeo. My aim is to provide useful information on products and features I am working on. This information can be technical tricks for developers or general purpose information.

    Coming soon, the ability of profiling the text generation process of Acceleo...

    by yvan ( at February 10, 2009 07:57 AM

    February 04, 2009

    Acceleo nominated at Eclipse Technology Awards

    Acceleo project has been nominated for the Eclipse Award in the category "Best Open Source Eclipse-Based Developer Tool".
    I really think Acceleo can win because it proposes some nice Eclipse tooling, but also because it proves a real community of users and contributors with an open development process.

    Last year, it was EclEmma which won.

    by Etienne Juliot ( at February 04, 2009 02:42 PM

    December 10, 2008

    Papyrus 1.6 is released with Acceleo !

    Papyrus, one of the best OpenSource UML modeleur on the Eclipse platform has been released.

    Papyrus includes a new killer feature : Java code generation from UML models.

    And which generative engine does they choose ? Yeah ! Acceleo.

    Obeo has joigned Papyrus community to help them to create this Java generator.
    Of course, this generator is under EPL license.

    Acceleo 2.0RC2 has been used, with some specific integration plugins like this one (for the Run... menu) :

    by Etienne Juliot ( at December 10, 2008 06:09 AM

    MDE / MDA / MDSD / etc.

    OMG has defined the MDA term.

    But now, what a jungle !
    Let's see some very simple definitions.

    - Model Driven Engineering
    - definition : all the process of creating softwares with a model driven approach.
    - examples : it includes some metamodel based analysis, how to manage teams with MDA,
    which steps are required to create a real model based software factory, ...

    - Model Driven Architecture
    - definition : the technical choice of tool and metamodel for all the creation of a new software
    - examples : transformation models engines, separation and links between PIM/CIM/and others

    - Model Driven Software Development (also call MDD : Model Driven Development)
    - definition : metamodel based tools and process for development step
    - examples : source code generation (like Acceleo), PSM model based editor

    - Domain Specific Modeling (and DSL : Domain Specific Language)
    - definition : metamodel based modelers to design specific and semantical models
    - examples : GMF based modelers, Workflow modelers, Wysiwig model based modelers

    - Architecture Driven Modernization
    - definition : modernize existing software with a metamodel approach
    - examples : reverse engineering systems, recasting engine (like Agility)

    Of course, let's do a metamodel of theses model driven definitions :

    by Etienne Juliot ( at December 10, 2008 06:09 AM

    ATL 2

    ATL v2 will be release very soon.
    ATL is a model transformation engine based on MDA standard and Eclipse platform.
    It can used for:
    - interoperability between tools
    - translate a model from a notation to another (for example: relational to uml)
    - propose "different zooms" on a model (for example: global specification -> detailled specification -> global design -> ...)
    - create any kind of bridge (for example: BPMN -> BPEL or BPMN -> SCA)

    ATL 2 is provide some new exciting features:
    - better completion on model elements
    - virtual machin based on EMF
    - better performance
    - lots of bug fixes
    - a clean updatesite
    - integration inside Ganymede (Eclipse 3.4)
    - and a new commercial support on

    See News and Noteworthy for more detail on ATL 2.

    by Etienne Juliot ( at December 10, 2008 06:09 AM

    Acceleo 2.0 : free module for UML2 to Hibernate

    For Acceleo v2.0 and launching of Acceleo Modules Farm, Obeo will release with an OpenSource license one of its commercial modules : UML2Hibernate.

    I have create this module. It uses UML 2.1 models (class diagram with stereotype > >) and generates :

    - DAO layer
    - Entity objects
    - HBM mapping
    - SQL tables (3NF)
    - JUnit tests
    - Hibernate v3 compatible Design Patterns

    It manages lots of associations :
    - inheritance
    - 1-1
    - 1-*
    - *-*
    - recursive associations
    - unidirectionnal and bidirectionnal associations
    - ...

    It will be available before the end of may. I hope you will enjoy it, and you will contribue to improve its features.
    Here is the link where this module will be available :

    by Etienne Juliot ( at December 10, 2008 06:09 AM

    Icon set for post-ganymede version of Eclipse SCA


    I just work on some new icons for Eclipse SCA project.
    I need some comments to choose which one need to be removed or changed.

    On my point of view, it will be nicer than the v1.0 version because it will better fit Eclipse UI and icons style.

    New global palette:

    SCA Bindings:

    SCA Implementations:

    SCA Interfaces:

    The new tree Editor:
    The graphical Designer isn't ready because it uses old style for embedded icons.
    For comment, you can use this bug report.

    by Etienne Juliot ( at December 10, 2008 06:09 AM

    June 28, 2008

    Eclipse 3.4 Ganymede: News and Noteworthy by projects

    Eclipse Ganymede has just been released.

    Here are list of new features of modeling projects:

    There are other projects (like Jet, QVT-O, ...) but there haven't a News and Noteworthy page.

    by Etienne Juliot ( at June 28, 2008 03:57 PM

    June 12, 2008

    Eclipse SCA 1.0

    After one year of work, Eclipse SCA 1.0 is ready.

    This is a new project of Eclipse STP (Soa Tool Platform) for assembly of SOA applications.
    To understand the goal of SCA standard (Service Component Architecture, available here), the easiest way is to use an example:
    you have one GUI component (for exemple, C# based) named "A" and it need to communicate with one business component "B" write EJB and Java and with another external component "C" written in PHP and only accessible with WebService. With SCA, you just need to declare each component, a reference (required interface) on A (declare with C# interface), and two services on B and C.
    The SCA server will automaticly translate protocols and API language to ensure everybody can communicate with everybody.
    In a nutshell, SCA isn't a new middleware (it rely on existing middlewares or libraries). It's like Spring, but as a specification and for any protocols and languages.

    The main feature of Eclipse SCA project is a nice designer. It's used color and shape very similar of official specification and it's based on GMF. I'm one of the commiters team of this project and the leader is Stephane Drapeau.

    It will be bundle inside Ganymede (Eclipse 3.4).
    You can test it and read this nice tutorial.

    by Etienne Juliot ( at June 12, 2008 04:20 PM

    December 11, 2007

    Validation of Models with Acceleo (Part 2)

    The second one (Part 2) consists in creating Acceleo services.

    This solution provides additionnal functionalities in relation to the first one. Indeed, as the rules are written in Java language, you can decide that a specific rule won't overload a generic one for example...

    I've created a "ValidatorServices" class which implements a mechanism to validate a model and get the report from templates, thanks to the services that it provides. The end-user has just to extend this one and to implement the "checkRules" abstract protected method in order to define his own rules.
    He can use "validate", "isErrorChecking" or "isWarningChecking" services to validate his model.

    But the main new feature consists in giving the possibility to use the result of the validation report and to act on the generation or not. Let's interest by this feature:

    The "isErrorChecking" and "isWarningChecking" are able to notify if an error/warning at least has been detected. So, "isErrorChecking" may be used for example to forbid the generation if it returns true.

    The "ValidatorServices" class manages a "singleton" behaviour in order to have only one validation launch per generation and to optimize the process.
    Moreover, it manages a workaround about Acceleo architecture limitation on the instanciating of custom services between templates...

    Indeed, the services don't share the same context between each template. So, let's take an example with two templates where each of them generates a file. We knows that the generation depends on the "file" parameter. Consequently, it's in this place that you have to use "isExistingError" if you want to control the generation. Not to have as many validation launches as templates which generate files, it is required to keep report in memory. To do that, the "ValidatorServices" retrieve data from a temporary file, in the temporary directory of the OS (Java environment variable). You can use a custom action to delete this file (clean data context) at the end of the generation process.
    IsXXXChecking use temporary file only if it is called in different templates which generate files.

    The main benefit of this way is to be able to cancel the generation if the validation process has thrown errors or warnings... according to your rules.
    Then, it provides a flexibility for the use of the validation mechanism (priority of rules, control generation...) thanks to the Java language. So, applying a rule on a "super" meta-class and an other one on a "child" meta-class, you can decide to display the both respective messages if these rules are not checked (and not only the "child" one).

    The concern is the technical heaviness of the solution which might be managed, in a more transparent way, by the acceleo core.
    Then, the use of Java language involves a loss of the Acceleo features (debugging, traceability...).

    by (Cedric Notot) at December 11, 2007 07:30 AM

    September 07, 2007

    Statechart diagram generation

    As a proof of concept, we create an Acceleo generator for UML2 Statechart diagram.
    This generator has been made as a TopCased work (to be include, I hope, as a built-in TopCased generator).

    Here is a nice flash demo:

    The source code generated uses Smuc framework, but it will be easy to target any standard technology (like C, Java, ...).
    Thanks to Cedric Notot for all his work on this generator and who experiment new strategies for models validation with Acceleo.

    by Etienne Juliot ( at September 07, 2007 11:26 AM

    May 16, 2007

    MDA vs MDSD

    I will start this blog by debating on differences between MDA (Model Driven Architecture) en MDSD (Model Driven Software Development) approaches. One could see MDSD as a deprecated version of the standard MDA. But another will see that MDSD has a wider scope than MDA. So I will try to explain what MDSD embraces and what's it is useful for.

    First, let's compare what we've got on both sides. For MDA :

    • Standardized by the OMG since 1999

    • Based on XMI, MOC, OCL, UML...

    • Aims at automating all transformations between models to code, suppressing the coding part

    • Driven by the Y cycle and CIMs, PIMs, PSMs and PDMs

    • Tries to define standard meta-models shared across industry domains

    For MDSD :

    • Based on the ideas brought by MDA

    • Not bound to its standards : can be any meta-model like DSLs, not only UML and profiles

    • Try to promote customized DSLs answering to each need, not assuming that every body will have the same needs on a given domain

    • Use models as abstraction and still leave a place for development tasks

    • Defines its own ideas of PIMs and PDMs depending on projects or needs contexts

    From the use I can see in my job,the MDA standard is more something made for the big players in the industry, whereas MDSD is a more flexible approach that can be used by a larger group of users, less attached to standards and with smaller scale needs.

    To conclude, I will just say that MDSD is a pragmatic way of using MDA concepts. With the new wave of tools such as Eclipse, EMF, GMF, Acceleo..., you can use these kind of approaches on large scale projects and I would recommend anyone to have a deep look into it as it really helps to cut down software development costs !

    And the quickest way to do that is to try it using Acceleo I think !

    by (Stephane LACRAMPE) at May 16, 2007 09:10 AM

    May 14, 2007

    EMF on Rhapsody

    Have you ever see EMF with Rhapsody ?

    Let's see :

    Is that you, Ed, with the black tee shirt ?
    Very good :)

    by Etienne Juliot ( at May 14, 2007 04:34 PM

    Last updated:
    July 30, 2016 02:45 PM
    All times are UTC.