| <h1>Modeling Team Framework (MTF)</h1> |
| |
| <h2>Introduction</h2> |
| <p>Modeling Team Framework (MTF) is a proposed open source project under the <a |
| href="http://www.eclipse.org/modeling/emft/">Eclipse Modeling |
| Framework Technology Project</a> (EMFT).</p> |
| <p>This proposal is in the Pre-Proposal Phase (as defined in the |
| <a href="http://www.eclipse.org/projects/dev_process/">Eclipse |
| Development Process document</a>) 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 <a |
| href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.emft</a> |
| newsgroup.</p> |
| <h2>Background</h2> |
| <p>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. |
| </p> |
| <p> |
| 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. |
| </p> |
| <p> |
| 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. |
| </p> |
| <p> |
| 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. |
| </p> |
| <p> |
| 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.</p> |
| <p> |
| The basic ideas behind this meta modeling repository descended from the |
| funded research project AMOR. See <a href="http://model-repository.org">model-repository.org (german only)</a> |
| for further details. |
| </p> |
| <h2>Scope</h2> |
| <p>The objectives of the Modeling Team Framework project are the following:</p> |
| <ul> |
| <li>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.</li> |
| <li>Provide a UI for similar versioning handling of all these artifacts.</li> |
| <li>Increase the usability of EMF-based modeling tools by |
| simplifying the way, how editor plugins get loaded for specific metamodels.</li> |
| <li>Integrate with other Eclipse components, e.g. CDO for storing/collaborating EMF models or |
| subclipse for storing text files in SVN repositories.</li> |
| <li>Integrate with P2, to ease the way of Eclipse plugin updates.</li> |
| <li>Provide a platform to collect and discuss requirements and use |
| cases for versioning of modeling projects.</li> |
| </ul> |
| <p>Modeling Team Framework will not cover these issues:</p> |
| <ul> |
| <li>Deal with models not based on EMF.</li> |
| <li>Implement a model repository. MTF works as delegate only.</li> |
| <li>Implement a source repository. MTF works as delegate only.</li> |
| <li>Implement a P2 repository. MTF works as delegate only.</li> |
| </ul> |
| <h2>Description</h2> |
| <p>Modeling Team Framework will have to define APIs and provide implementations |
| for the following functionality:</p> |
| <dl> |
| <dt>Team API</dt> |
| <dd>The UI is built on top of the Team API from within Eclipse core.</dd> |
| <dt>Collaboration</dt> |
| <dd>The Team Server will provide collaboration and user session synchronization like CDO/Net4j or ECF.</dd> |
| <dt>Persistence</dt> |
| <dd>The Backend also stores e.g. plugins and textfiles in sync with metamodels stored in CDO. This information must |
| also persisted.</dd> |
| <dt>Exchangeable storage backend for plugins and text files.</dt> |
| <dd>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. |
| </dd> |
| </dl> |
| <h3>Relationship with other Eclipse Projects</h3> |
| <ul> |
| <li>Modeling Team Framework will be built on top of EMF.</li> |
| <li>Modeling Team Framework will use CDO for storage of EMF models.</li> |
| <li>Modeling Team Framework will provide a Team Server Adapter for Subclipse, CVSclipse or eGit.</li> |
| <li>Modeling Team Framework will make contributions to Eclipse P2.</li> |
| <li>The development Team will contribute necessary implementations and features to the used technologies like to CDO.</li> |
| <li>The upcoming SOA Repository Framework in the SOA Tool Platform (STP), will make use of the Modeling Team Framework.</li> |
| </ul> |
| <h2>Organization</h2> |
| <h3>Mentors</h3> |
| <ul> |
| <li>Ed Merks (Macro Modeling, Canada)</li> |
| <li>Sven Efftinge (itemis AG, Germany)</li> |
| </ul> |
| |
| <h3>Proposed initial committers</h3> |
| <ul> |
| <li>Steffen Stundzig, itemis AG, project lead</li> |
| <li>Sven Krause, Achievo Deutschland AG</li> |
| <li>Helmar Behrends, Achievo Deutschland AG</li> |
| <li>Steffen Dienst, Institute for Applied Informatics (InfAI) e.V.</li> |
| <li>Robert Wloch, itemis AG</li> |
| <li>Michael Willig, itemis AG</li> |
| </ul> |
| |
| <h3>Interested parties</h3> |
| <p>The need for modeling project support has been discussed on |
| several phone conferences, emails and local meetings in 2008 and 2009.</p> |
| <p>Parties indicating interest were</p> |
| <ul> |
| <li>Achievo Deutschland AG, Sven Krause</li> |
| <li>CDO Model Repository, Eike Stepper (CDO project lead)</li> |
| <li>itemis AG, Sven Efftinge (TMF PMC)</li> |
| <li>Oracle Deutschland GmbH, Berthold Maier</li> |
| <li>Institute for Applied Informatics (InfAI) e.V., Stefan Kühne</li> |
| <li>SOPERA GmbH, Zsolt Beothy-Elo</li> |
| <li>Department of Business Information Systems at the University of Leipzig, Martin Gebauer</li> |
| <li>flowr.org, Helmar Behrends</li> |
| <li>Javier Muñoz, leader of the <a href="http://www.moskitt.org/eng/que-es-moskitt/">MOSKitt project</a></li> |
| <li>Raphael Faudou, Atos Origin and the MDT Papyrus project</li> |
| <li>Igor Burilo, Polarion Software (Subversive team)</li> |
| </ul> |
| |
| <h3>Code contributions</h3> |
| <p>The initial code contribution will be a set of plug-ins from the |
| EPL based flowr.org project.</p> |