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:
On the latest day of EclipseCon Europe 2011, several presentations marked the day. Starting with the first european presentation of Mylyn Intent. Intent is a documentation tool letting you keep your documentation synchronized with your code and define validation rules to ensure that your work follows the development guidelines of your project. If you ever had a synchronization problem between your documentation and your code, you should give it a try.
I started the afternoon attending to Simon’s talk about Orion, the web based platform of the Eclipse Foundation. After a presentation of the state of the Orion project during which we saw its amazingly fast editor and how the Orion team fused concepts of IDEs and web based applications, we had a demonstration of how the self hosted mode can help debug problems and distribute fixes very quickly. I am looking forward for an Orion based debugger and it’s definitively a project on which we should keep an eye on.
After that, Martin Flügge realized a talk about Dawn, a framework used to create collaborative tools based on CDO. With a live demonstration of a collaborative diagram editor based on Dawn, Martin has presented how Dawn can help modeling tools to move easily a step further with real-time shared editing, conflict handling and locking. You can find Martin’s slides about dawn on the CDO website.
And finally, Mikael showed us the latest features of EMF Compare. With the introduction of graphical comparison of diagrams, protection of the consistencies of models depending from one another (such as during a commit) and a new comparison engine dedicated to UML models, EMF Compare strengthen its place as a must have tool in the development environment of any Eclipse modeling developer.
This edition of EclipseCon Europe was concluded by a closing session during which everyone had the opportunity to thank the people who worked hard organizing this EclipseCon for their great work!
Yesterday started the 2011 edition of EclipseCon Europe. It was a great opportunity to attend very nice talks. Unfortunately everybody cannot be there so here is a small description of the talks that I’ve seen along with links for those who want to know more.
As an Eclipse modeling guy, I’ve started the day with the EMF tutorial in which newcomers to the EMF world could learn what EMF is and taste several key EMF based technologies available in the eclipse foundation thanks to well detailed explanations from the Eclipse Source guys and speakers from the modeling community. For those who want to try this tutorial, its content is available online here and there along with the slide of the presentation.
After a good launch and an interesting keynote from David Cuartielles, I went to the virtual EMF talk. During this talk, Hugo and Gregoire have presented a new technology to manipulate several EMF models with different metamodels as one model seamlessly. After a good explanation of the concept behind virtual EMF, we had the opportunity to watch it during a demonstration using MoDisco. You can already try virtual EMF and send them your feedback by grabbing it on Eclipse labs.
Just after this talk I had to present my talk on Acceleo. Where I’ve presented how Acceleo can be used to create and maintain easily a code generator for the language of your choice. I’ll put my presentation online as soon as possible for those who missed it even if the Eclipse Foundation seems to use a very good system to register the talks and I hope that we will be able to see that way the talk we missed later.
Then I went to Jan’s talk on graphical editing in which he presented an interesting DSL based approach to create a diagram editor. He showed how starting with an EMF model, in his case in an Xtext DSL, you could use a DSL to create the mapping between your model elements and the elements displayed in your diagram and how, in a style sheet DSL, you could define the design of your diagram. With few lines of code, you end up easily with a working diagram view. For those who want to give it a try, go to Jan’s blog and github account.
This first day was concluded by a keynote from John Swainson giving us the story of the birth of Eclipse and of course a great party to celebrate the 10th birthday of Eclipse.
In this version, you will be able to see several performance improvements in the tooling and the compilation along with a brand new view in the Acceleo perspective, the Interpreter.
The Interpreter view will help you create and debug your generators by letting you evaluate on the fly Acceleo expressions. You can find a detailed presentation of this new view on Laurent’s blog or in video on youtube.
For those who want to know more, I will present a talk about Acceleo next week during EclipseCon Europe at Ludwigsburg.
Better Ant and Maven support
Acceleo 3.0 generates the necessary Ant file to compile an Acceleo project thanks to the PDE build system. Now Acceleo 3.1 adds on top of this, two Ant files for the compilation and the launch of an Acceleo generation out of Eclipse. We are also introducing the generation of the pom.xml for a tycho/maven based build of Acceleo projects.
New serialization option
Things will change
For our next release, we want to change the way we consider Acceleo. We have always seen Acceleo as a code generator with a great tooling that we are improving year after year with new features. But this has to stop, we don’t want Acceleo to be just a software with a version number that help you with your work, we want to do more than that, we want to be more than that. That’s why, in June we will not release another numbered version of Acceleo with the 3.1 version but instead introduce our first named release. We will shift our current effort on the development of Acceleo in order to build an happiness generator. We don’t want to improve your code anymore, we intend to improve your life on a daily basis.
Introducing Acceleo Rainbow Edition
With Acceleo Rainbow Edition, we will use the color of the rainbow to help you relax and approach your life with a new perspective. We will now work on a brand new roadmap for this Rainbow Edition.
You can already have a sneak peek at this wonderful Rainbow Edition with the brand new Acceleo Rainbow Editor by grabbing the last build of Acceleo, here.
For the newcomers looking for resources about Acceleo, you can find all the informations on our wiki.
A revolution at Obeo
This new direction is introduced today with Acceleo but we will propagate it on all Obeo softwares in the months to come. Our company will now focus on the creation of relaxation software development in order to propagate peace and happiness all over the world. You can already see a sneak peek of the next Obeo product that will use the colors of the rainbow, Obeo Designer.
We hope that you can use this brand new editor in Acceleo to have a time as relaxing as we do when developing our generators.
Last Friday, I was at Toulouse for the first edition of the Topcased Days. During this conference, I had the opportunity to realize a presentation of Acceleo 3. This was a huge success and this was a great occasion to meet lots of Acceleo users. I had a great time seeing presentations from Acceleo users and watching how they are using Acceleo to generate code for satellites, planes etc. The organization was great and it was both very friendly and professional. I will put the videos of my presentation online soon for those who couldn’t be there and you’ll be able to find a link to this presentation on the Acceleo wiki.
Speaking of the Acceleo wiki, as Cédric mentioned before, it is making a fresh start with more content and an improved navigation. Now the wiki will take a main place in the Acceleo community, and you will find in one place everything needed to use Acceleo.
You will also be able to find a table of the features available in Acceleo 3 and the new things that we will work on for the next release, including a wishlist for those who want to contribute to Acceleo. Some of those subjects may be used for the upcoming Google Summer of Code. This wiki will be updated with links to videos, tutorials, and community content.
Three weeks ago, I started to work on some new features for the next release of Acceleo next year. Jonathan and Laurent told me to use Acceleo as a regular user and to find any feature that would be missing. Quickly I had some ideas to improve Acceleo and I started to work on some of them.
In Acceleo 3, we have a system to report errors to the user with red markers in the editor. Starting with Acceleo 3.1 we will have a support for new markers like warnings or informations such as the green arrow to quickly see if a template overrides another template (if you click on the green arrow, we will open the overridden template in another editor).
We will also have a support for two new tags in comments “@TODO” and “@FIXME”. Those two new tags will create new tasks in the tasks view just like with the JDT.
We will have a new block for the documentation “[** … /]” because the comment block “[comment … /]” is a bit too long. With that documentation block, we will have a new refactoring process which will allow us to quickly generate a documentation block by typing Alt+Shift+J on a query, a template, a macro or a module. Just like in the JDT, it will create a documentation block with “@param” tags for each parameters of the selected template or query.
The documentation will be saved in the “emtl” files (Acceleo modules when compiled) and this documentation will be available when the cursor of your mouse is over an element.
Or during the autocompletion.
We will also have an improved outline view with new icons in order to see the visibility of an element and new actions in order to sort elements inside the outline view or to hide non public elements, templates or queries. All imports will be put under an “import declaration” node in the outline view.
Finally we will have a support for deprecated elements with the “@deprecated” tag in documentation blocks. It will create a warning on the deprecated element (a query, a template, a macro, or a module) and if used on a module, all elements of the module will be considered as deprecated.
And the last, but definitely not the least. The AcceleoEditor will have an action to show all the invisible characters that will be generated by Acceleo. If you look carefully, you will see that after the end of the header of the “[for (attribute : EAttribute | e.eAttributes)]” the new line will not generate a new line in the generated file.
You can see most of those improvements in this screenshot and when they will be available (they won’t be all in Acceleo 3.1 M1) don’t hesitate to send us your feedback in the forum or in the bugzilla.