The project has been created.

Modeling Team Framework (MTF)

Introduction

Modeling Team Framework (MTF) is a proposed open source project under the Eclipse Modeling Framework Technology Project (EMFT).

This proposal is in the 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 on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft newsgroup.

Background

Many or nearly all modeling projects contain a lot of different artifact types. Typically these are for example ecore based metamodels, EMF based models, other text sources like properties files or Java source files and also specific GMF or TMF based model editors. These editors are Eclipse plugins refering to specific metamodel versions. The source files and EMF models must also be versioned with an SCM tool.

At most all files are under control of e.g. SVN, CVS or GIT. But in this scenario EMF models are stored as normal file blobs, without the possibilities to show differences on EObject level. On the other side repositories like CDO are great for storing EMF models but without special support for e.g. Java file based versioning and merging.

So one conventional solution is to have two projects in the Eclipse space. One for the EMF models and another for the other src files stored in e.g. SVN. And on tasks like tagging or synchronizing, both repositories must be changed by hand.

The third artifact type, the editor plugins, are completely out of scope of the current SCM tools. So the editor developer must install them by hand to a P2 repository or an Eclipse update site. For modeling the modeler must ensure to install the right version of the editor plugins for the proper version of the metamodel according to the model, he/she likes to work on.

The Modeling Team Framework will provide a mechanism like a meta repository on top of the three repository types. It could be the base for software configuration management of Eclipse projects which uses the Eclipse Modeling Framework (EMF). The Modeling Team Framework will track the mapping between metamodel versions and editor plugins, and will automatically provide P2-based update sites.

The basic ideas behind this meta modeling repository descended from the funded research project AMOR. See model-repository.org (german only) for further details.

Scope

The objectives of the Modeling Team Framework project are the following:

  • Define APIs and implement components based on EMF and the Eclipse Team API for storing, collaborating and synchronizing all software development artifacts in modeling projects.
  • Provide a UI for similar versioning handling of all these artifacts.
  • Increase the usability of EMF-based modeling tools by simplifying the way, how editor plugins get loaded for specific metamodels.
  • Integrate with other Eclipse components, e.g. CDO for storing/collaborating EMF models or subclipse for storing text files in SVN repositories.
  • Integrate with P2, to ease the way of Eclipse plugin updates.
  • Provide a platform to collect and discuss requirements and use cases for versioning of modeling projects.

Modeling Team Framework will not cover these issues:

  • Deal with models not based on EMF.
  • Implement a model repository. MTF works as delegate only.
  • Implement a source repository. MTF works as delegate only.
  • Implement a P2 repository. MTF works as delegate only.

Description

Modeling Team Framework will have to define APIs and provide implementations for the following functionality:

Team API
The UI is built on top of the Team API from within Eclipse core.
Collaboration
The Team Server will provide collaboration and user session synchronization like CDO/Net4j or ECF.
Persistence
The Backend also stores e.g. plugins and textfiles in sync with metamodels stored in CDO. This information must also persisted.
Exchangeable storage backend for plugins and text files.
The backend to actually store the different artifacts will be exchangeable, allowing customized implementations for specific storage technologies, such as pure SVN, CVS or others.

Relationship with other Eclipse Projects

  • Modeling Team Framework will be built on top of EMF.
  • Modeling Team Framework will use CDO for storage of EMF models.
  • Modeling Team Framework will provide a Team Server Adapter for Subclipse, CVSclipse or eGit.
  • Modeling Team Framework will make contributions to Eclipse P2.
  • The development Team will contribute necessary implementations and features to the used technologies like to CDO.
  • The upcoming SOA Repository Framework in the SOA Tool Platform (STP), will make use of the Modeling Team Framework.

Organization

Mentors

  • Ed Merks (Macro Modeling, Canada)
  • Sven Efftinge (itemis AG, Germany)

Proposed initial committers

  • Steffen Stundzig, itemis AG, project lead
  • Sven Krause, Achievo Deutschland AG
  • Helmar Behrends, Achievo Deutschland AG
  • Steffen Dienst, Institute for Applied Informatics (InfAI) e.V.
  • Robert Wloch, itemis AG
  • Michael Willig, itemis AG

Interested parties

The need for modeling project support has been discussed on several phone conferences, emails and local meetings in 2008 and 2009.

Parties indicating interest were

  • Achievo Deutschland AG, Sven Krause
  • CDO Model Repository, Eike Stepper (CDO project lead)
  • itemis AG, Sven Efftinge (TMF PMC)
  • Oracle Deutschland GmbH, Berthold Maier
  • Institute for Applied Informatics (InfAI) e.V., Stefan Kühne
  • SOPERA GmbH, Zsolt Beothy-Elo
  • Department of Business Information Systems at the University of Leipzig, Martin Gebauer
  • flowr.org, Helmar Behrends
  • Javier Muñoz, leader of the MOSKitt project
  • Raphael Faudou, Atos Origin and the MDT Papyrus project
  • Igor Burilo, Polarion Software (Subversive team)

Code contributions

The initial code contribution will be a set of plug-ins from the EPL based flowr.org project.