Eclipse Modeling - M2T - Home

Model To Text (M2T)

The Model to Text (M2T) project focuses on the generation of textual artifacts from models. Its purpose is threefold:

  1. Provide implementations of industry standard and defacto Eclipse standard model-to-text engines
  2. Provide exemplary development tools for these languages
  3. Provide common infrastructure for this languages.

The next release of M2T is scheduled for the end of June 2010.

Validation (Incubation) PhaseJET

JET is typically used in the implementation of a "code generator". A code-generator is an important component of Model Driven Development (MDD). The goal of MDD is to describe a software system using abstract models (such as EMF/ECORE models or UML models), and then refine and transform these models into code. Although is possible to create abstract models, and manually transform them into code, the real power of MDD comes from automating this process. Such transformations accelerate the MDD process, and result in better code quality. The transformations can capture the "best practices" of experts, and can ensure that a project consistently employes these practices.

However, transformations are not always perfect. Best practices are often dependent on context - what is optimal in one context may be suboptimal in another. Transformations can address this issue by including some mechanism for end-user modification of the code generator. This is frequently done by using "templates" to create artifacts, and allowing users to substitute their own implementations of these templates if necessary. This is the role of JET.

This component provides:

  1. Expand the JET language to support custom tags (which are distributed in "tag libraries"). (The language specification will be described in a separate document.)
  2. Define Java interfaces and Eclipse Extension points for declaring custom tag libraries.
  3. Provide Standard JET tag libraries that make it possible to create entire transformations without recourse to Java and the Eclipse APIs. (These tag libraries will be described in a separate document.)
  4. Provide Eclipse API and UI for invoking such transformations.
  5. Provide a JET template editor (formerly a separate component, EMFT JET Editor).

Validation (Incubation) PhaseAcceleo

Acceleo is a pragmatic implementation of the Object Management Group (OMG) MOF Model to Text Language (MTL) standard.

You do not need to be an expert to start using the plug-ins and create your first code generator : using the provided example projects and the powerful completion feature of the Acceleo editor, it is very easy to get started and understand the basic principles.

Go to the project's website.

Validation (Incubation) PhaseXpand

Xpand is a statically-typed template language featuring

  • polymorphic template invocation,
  • aspect oriented programming,
  • functional extensions,
  • a flexible type system abstraction,
  • model transformation,
  • model validation and much more

It includes an editor which provides features like

  • syntax coloring,
  • error highlighting,
  • navigation,
  • refactoring and
  • code completion.

Xpand was originally developed as part of openArchitectureWare project before it became a component under eclipse.

Validation (Incubation) PhaseM2T Core

M2T Core is an invocation framework allowing clients to invoke model-to-text solutions independently of the model-to-text language.

Validation (Incubation) PhaseM2T Shared

M2T Shared consists of infrastructure components shareable between different model-to-text languages.

Incubation

Some components are currently in their Validation (Incubation) Phase.

News

Jun 7th, 2007 - EMFT JET Editor merged into M2T JET. Downloads available.

Apr 26th, 2007 - EMFT JET component moved to M2T. Downloads available.

Apr 20th, 2007 - M2T website launched!

Build Feeds Build News

Sorry, can't access database.

Modeling Corner

Want to contribute models, projects, files, ideas, utilities, or code to M2T or any other part of the Modeling Project? Now you can!

Have a look, post your comments, submit a link, or just read what others have written. Details here.