EMF Facet/IndigoReview
This page provides the required docuware for the EMF Facet v0.1.0 Release Review, as part of the upcoming Indigo Simultaneous Release.
Contents
Overview
EMF Facet provides a generic and extensible MDE framework to support meta-model extension and model customization.
It is an Eclipse Modeling Framework Technology (EMFT) project, inside the Eclipse Modeling Project (EMP).
Features
In this release
For the first time, EMF Facet is part of an Eclipse Simultaneous Release. The different features provided by EMF Facet v0.1.0, as part of Indigo, are of four categories.
- A query abstraction mechanism allowing language-independent querying on models;
- The facet mechanism for dynamically extending the metamodels;
- A model customization mechanism allowing to change the rendering of model element in function of their state.
- Customizable widget
- A customizable table widget based on the NatTable library.
The query, facet and customization mechanism have been copied from MoDisco. A refactoring of those mechanisms is whished to improve their usability and extensibility. MoDisco components will be disabled when the refactoring of EMF Facet ones will be done. This is expected for 0.2.0. Those features are hidden by a capability until the MoDisco version is not deprecated.
Accordance with project plan themes and priorities
The EMF Facet project plan has not be totally achieved. We were expecting to deprecate the MoDisco features and to enable the EMF Facet ones, but this was not possible, due to a lake of time. At this time, the EMF Facet feature are hidden by a capability and MoDisco features are still the official implementation of the query, facet and customization mechanism.
Non-Code Aspects
The complete EMF Facet documentation is available from the EMF Facet head documentation. This documentation is generated from the embedded Help plug-ins.
The EMF Facet website provides a direct access to all the related resources.
APIs
The current EMF Facet API situation is detailed by the API report build on the version 0.1.0.
Two illegal API used have been identified and are tracked by the following bugs : bug 344247, bug 344246. Those illegal uses have been found too late (2011-04-29) to be fixed for the version 0.1.0. To prevent other late warnings, an API report is generated with each build.
Architecture
The EMF Facet architecture document is currently not available. EMF Facet is, at this time, not much more than a copy of MoDisco, the MoDisco architecture document can then be used to understand the EMF Facet architecture.
Testing & Packaging
EMF Facet uses a Buckminster-based system to build and promote versions.
Each new build is tested at least with Eclipse 3.7 (Indigo).
Core plugins are provided with dedicated test plugins checking their valid behavior.
EMF Facet is integrated into the Indigo Release Train.
Tool Usability
EMF Facet is a solution to extend existing Ecore metamodels without having to modify them.
The idea is to provide non-intrusive mechanisms to add new features (types, attributes, operations and references) to a metamodel and to customize the existing features by adding extra properties (icons, labels, etc.)
For example, EMFFacet is used by :
- MoDisco, to adapt source code metamodels to specific use cases (eg. Java code pattern matching);
- Papyrus to present UML models in tabular views.
End-of-Life
Some elements from the EMF Facet (copied from MoDisco) have been deprecated.
Bugzilla
- Bugs (snapshot taken on the 26th of May 2011):
- Enhancement requests (snapshot taken on the 16th of May 2011):
40 bugs are still opened. We expect to fix them in the service releases. Nine enhancements have been committed after M6, whereas according to the modelling project ramp down policy the M7 period is reserved to the bug fixing. We have chosen to commit those enhancements because they are requested and used by the Papyrus project. The enhancement 344125 has been committed after M7 because it was blocking a Papyrus bug (343950)
Standards
The EMF Facet does not implement any standards.
UI Usability
EMF Facet intends to conform to the User Interface Guidelines but some UI Usability issues have been found.
Schedule
EMF Facet is a "+2" project in the simultaneous release
M4 12/14/2010 M5 02/01/2011 M6 03/15/2011 API freeze M7 05/03/2011 Feature Freeze RC1 05/17/2011 RC2 05/24/2011 RC3 05/31/2011 RC4 06/07/2011 Indigo 06/22/2011
Communities
- Presentation at Eclipse Summit Europe 2010: EMF Facet - A Non-Intrusive Tooling to ExtendMetamodels
- The EMF Facet table widget is used by Papyrus.
Committer Changes
Frederic Madiot has moved from Mia-Software to Obeo. Gabriel Barbier has moved from Mia-Software to Thales.
IP Issues
- The Eclipse IP Process has been strictly followed and all plug-ins contain the appropriate about.html and license files.
- The EMF Facet IP Log is up to date.
- Some third-party libraries are used (cf. corresponding validated CQs)
- Apache Commons JXPath Version 1.3 (QC 4562)
- NatTable Version 2.1.0 (CQ 4854)
- All EMF Facet content is released under EPL.
Project Plan
This next EMF Facet version will imply:
- Upgrades on the various existing components (e.g. bug fixing, performance increase, etc);
- Final migration of the query, facet and customization mechanisms from the MoDisco project to the EMF Facet project.
- Refactoring of the query, facet and customization mechanisms to improve their usability and extensibility.
- Provide the possibility to save the facet references (and facet attributes) non derived values.