At the best of my knowledge, I could say that Eclipse QVTo is by far the best QVT Operational Mapping language implementation you may find, which, providing it's an open source and hosted as an official Eclipse project, is definitely your best choice to deal with. Although the support to whole language is not completed, the project provides nice textual editors, a high quality environment to execute and debug transformations, etc.
|Transformation launch configuration.|
- Firstly, I've been promoted as committer for the project which allowed me to review and commit several fixes and enhancemennts for the Kepler release contributed by Christopher Gerkin, whose efforts have been rewarded to promote him as a new project committer as well.
- Secondly, one of the original committers (actually the current project leader), Sergey Boyko, is quite active again which is allowing the project to reasonable evolve towards a more robust one.
- Finally, my research project revolves around the QVTo language, so don't have any doubt that new enhancements and further alignments with the specification will take place.
To conclude this post, I'd like to highlight, for those readers more familiar with M2M transformations, some of the features which I mostly love from the this M2M language:
- Black-boxing. Allows you to define operations which are implemented out of the transformation (e.g. in Java language. For instance, I've used this functionality to implement some Eclipse IProgressMonitor mechanism, so that you can observe informative progress in long running transformations inside the Eclipse IDE.
- Libraries. Allows you to create libraries with useful operations to be used by your transformations. For example, think of a reusable library which includes some helpers to deal with an Eclipse IProgressMonitor.
- Intermediate data. Allows you to define and create intermediate data (classes and properties) which you may require during a transformation (but it's not subject of the involved transformation parameters)
- Transformations extension. QVTo transformation can be extended (conceptually, similar to the class inheritance concept in OOP), so that complex transformation can me modularized into smaller and reusable ones.
- Transformations chaining. QVTo transformations can instantiate and orchestrate other QVTo transformations!.
As you may imagine, the possibilities that these overall features provide are infinite to build a complex model transformations framework for powerful MDE tools ;).
P.S: I also want to thank Ed Willink for his efforts to have this project moving forward.