blob: 841329522f990ba7c779e17eaf6edcb1a16ef473 [file] [log] [blame]
<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&uuml;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&ntilde;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>