Distributed Ecore development, really? Yeah!
Tuesday 28 June 2011 at 7:54 pm It is end of June and as every year a new version of Eclipse has been released. And together with this release comes the new version of Dawn - Dawn 1.0. Dawn 1.0 contains several bug fixes but more important are the new features. First of all to mention is the support for the good all tree-based EMF editors which can be generated straight from your EMF generator models. Dawn now supports generating a fragment-based extension as for GMF editors. This makes it possible to collaborate your editors with just some clicks and without the need of programming anything be yourself.With this new version Dawn introduces a split up generator model. The old DawnGenmodel was only one file which contained generator descriptors for the target extension (GMF, EMF, etc). Now it is separated into at least two files - the main DawnGenerator model and a target specific one. The specific generator model contains information about the target itself. In the context of EMF and GMF this means that it references the related generator model to get access to generation relevant data. It also allows customizing the generated extension (e.g the naming of classes). With the introduction of collaboration EMF editors, Dawn knows two different types of specific generator models - Dawn EMF GenModel (*dawngenmoldel_emf) and Dawn GMF GenModel (*dawngenmoldel_gmf).
The main model (*.dawngenmodel) on the other site contains general settings which will influence all editors, e.g. coloring. This file is only generated once and is referenced by all specific Dawn gen models.
The reason for this split was to separate Dawn from the underlying frameworks and let it only depend on what is really needed. Thus it is possible to run the generator for the collaborative EMF extension without having GMF installed.
For not bothering the user with different editors, Dawn provides a new generation editor which allows having all generation information at one place. For this it can open every specific gen model which is found in the same folder as the main model and displays it on a separated page. How to create your own extensions is described in this tutorial.
With this set of generators ready, Dawn started to provide extensions for exiting frameworks. And what would be more obvious than providing collaborative tooling for the one and only, the number one model, the mother of all our models itself? Well, nothing I guess and that's why I wrote an extension for the Ecore Model Editor. This was actually an easy task, since the Ecore Editor's implementation is quite close to all other generated EMF-model editors and so I just used the brand new generator to create the Dawn extension fragment. But that's not all. Using the existing tooling I created the extension for the graphical Ecore Tools editor likewise. With these both extensions Dawn now supports the most common editors for Ecore modeling. But we won't stop here. While ready for the Juno development we are going to integrate other frameworks like Graphiti to provide similar collaborative extension. They tuned. Till then, enjoy Indigo ;)