Revised: Dec 7, 2006
The Model-to-Text Transformation (M2T) Transformation Project is a proposed open source project under the Eclipse Modeling Project.
This proposal is in the Project Pre-Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.modeling.m2t newsgroup.
Model Driven Development (MDD) and OMG Model Drive Architecture (MDA) emphasize the creation of models of a software solution which are then refined and transformed until ultimately source code (e.g. Java, C++) and associated resources (e.g. properties files, configuration files) are created. The Model-to-Model (M2M) Transformations Project proposal (http://www.eclipse.org/proposals/m2m/) focuses on technologies to transform between different models. This proposal focuses on technologies for transforming models into text (typically language source code and the resources it consumes).
Solutions for model-to-text transformations generally make use of "templates". A template may be generally described as a text sequence interspersed with commands that extract information from a model. Commands are not limited to information extraction – they often serve as flow control in a template; controlling whether and how many times blocks of text are processed.
There are a large number of template languages – a Google search on ‘template language’ yields 258,000 hits. The parties interested in this proposal represent or have interest in the following languages.
One of the concerns of this project is to reduce the duplicate effort involved in developing and maintaining template languages.
Expanding templates is only a part of the requirements for a Model-to-Text solution. In addition, solutions must typically have:
In many cases, these "template language technologies" can be implemented in a language independent fashion.
The M2T project will deliver the following:
Implementations will use EMF Ecore meta-models (www.eclipse.org/emf) as the primary meta-model for consumed models.
Because M2T should not become a warehouse for model-to-text languages, the project will host only languages deemed strategic to the goals of the Eclipse Modeling Project. Most existing languages already have a "home", and there would be little benefit from migration to a new project. At inception, the JET language has been identified as strategic because of its long association with EMF. The XPand language from openArchitectureWare is also strategic. The OMG MOF Model to Text language is strategic because it is represents an emerging a standard in the model-to-text domain. Each strategic language will be a separate component so as to be separately distributable and installable.
Similarly, integrations with the M2T Invocation Framework should be hosted in the same project as the model-to-text language itself. However, in cases where this is not possible and the integration is strategic to the goals of the Eclipse Modeling Project, the M2T project can serve as the host project. Again, each such integration will be a separate component so as to be separately distributable and installable.
The following code will be contributed to the project:
We propose that this project be undertaken as part of the Eclipse Modeling Project. It will have dependencies on the Eclipse Platform, including the JDT and EMF.
Further more, it is proposed that the project be divided into components as follows. Each component would have a lead and its own committers (although nothing would prevent one committer working on several components).
The following companies will contribute committers to get the project started:
Artem Tikhomirov (Borland) - a version of XPand that uses LPG rather than Antlr
The following organizations have expressed interest in the project:
Critical to the success of this project is participation of developers in the modeling application development community. We intend to reach out to this community and enlist the support of those interested in making a success of the Model-to-Text Transformation project. We ask interested parties to contact the M2T newsgroup to express interest in contributing to the project.
Back to the top