This page provides the required docuware for the EMF Facet v0.2.0 Release Review, as part of the upcoming Juno Simultaneous Release.
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).
In this release
For the second time, EMF Facet is part of an Eclipse Simultaneous Release. The different features provided by EMF Facet v0.2.0, as part of Juno, are of four categories.
- A query abstraction mechanism allowing language-independent querying on models;
- The facet mechanism for dynamically extending the meta-models;
- 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.
Query, Facet and customization
The query, facet and customization mechanism have been copied from MoDisco. A re-factoring of those components has been done to improve their usability and extensibility. Because of a lack of time, the editors for the new query, facet and customization meta-models are not available. Reflexive editors have to be used to edit EMF Facet models.
To avoid API break the old version of the query, facet and customization components are still available, but hidden by a capability. MoDisco components have been marked has deprecated (cf. bug 361617)
In addition to the main re-factoring, 2 enhancements have been implemented :
- Bug 371367 - Hierarchical FacetSets (Core)
- Bug 376941 - [EFacet] Facet operation arguments in Facet model
Customizable Table Widget
The EMF Facet's table widget has been refactored to improve the maintainability and to use the new version of the query, facet and customization components.
To avoid any API break the version 0.1.0 of the table is still available, but it is hidden by a capability.
6 enhancements have been implemented :
- Bug 366367- To be able to change the "CanBePresentedInTheTable" query
- Bug 367218 - [UICore] Be able to disable the external resource overlay
- Bug 371367 - Hierarchical FacetSets (GUI)
- Bug 372626 - Aggregates
- Bug 374941 - To be able to customize overlay icons on EClass
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. This has been done at the API level but we didn't had enough time to implement editor dedicated to the new EMF Facet meta-models.
Here is the list of the planned but not achieved enhancements :
- 364325 - [Restructuring] The user must be able to navigate into a model using the Facet.
- 352718 - [Restructuring] Facet feature v0.2
- 364601 - [Restructuring] org.eclipse.emf.facet.efacet.ui has to be refactored
- 352774 - [Restructuring] getStructuralFeatures(EObject eObject, List<Facet> appliedFacets) in an utility class
- 365726 - [Restructuring] Setting of a FacetReference/FacetAttribute owned by a Facet
Service, Support and Maintenance
Unit Test Failures
We meet this year a large amount of unit test failures. The main part of those failures is not caused by a behaviour regression. We have too many unit tests :
- which don't support small UI changes ,
- which have a random behavior (unit tests using SWTBot).
To not spend to many time to solve unit test failures, we will delete the unit tests having a random behavior. The same strategy will be applied to the SWTBot unit tests requiring too many efforts to be fixed.
We still have 110 other bugs to fix.
All the documentation is embedded in help plug-ins and is also available at http://help.eclipse.org/.
The complete EMF Facet documentation is available from the EMF Facet head documentation. This documentation is generated from the help plug-ins.
The EMF Facet website provides a direct access to all the related resources.
The current EMF Facet API situation is detailed by the API report build on the version 0.2.0 RC2.
No illegal API use have been identified.
The EMF Facet architecture document is currently not available.
Testing & Packaging
EMF Facet uses a Buckminster-based system to build and promote versions. We plan to move to Tycho for the next version and for the service release.
Each new build is tested at least with Eclipse 4.2 (Juno).
Core plug-ins are provided with dedicated test plug-ins checking their valid behavior.
EMF Facet is integrated into the Juno Release Train.
EMF Facet is a solution to extend existing Ecore meta-models without having to modify them.
The idea is to provide non-intrusive mechanisms to add new features (types, attributes, operations and references) to a meta-model and to customize the existing features by adding extra properties (icons, labels, etc.)
For example, EMF Facet is used by :
- MoDisco, to adapt source code meta-models to specific use cases (eg. Java code pattern matching);
- Papyrus to present UML models in tabular views.
Each API deprecation is tracked by a bug tagged [Deprecated].
Elements copied from MoDisco have been deprecated, cf. bug 361617.
The first version of the EMF Facet table widget has been deprecated cf. deprecation bugs. This table has been deprecated because it is based on the facet and customization features imported from MoDisco.
- Opened bugs by severity (snapshot taken on the 4th of June 2012):
In the 132 bugs declared in for the version 0.2.0 we have 36 enhancement requests and 37 unit test failures (potentially false positives), so we can assume that we have 59 bugs that the users may fall on.
- Fixed bugs (snapshot taken on the 4th of June 2012):
- Fixed enhancement requests (snapshot taken on the 4th of June 2012):
The summer (July to September) has been dedicated to bug fixing (16 bugs fixed). During the autumn (October to December) we worked on the new version (restructuring) of eFacet and customization features (meta-models and API). The end of the winter and the beginning of the spring has been dedicated to the implementation of features required by the Papyrus team. 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.
According to the last table we can imagine that an enhancement will be provided in the service release. This is not the case: the development has been done for 0.2.0 but some documentation was missing. This documentation will be added in the service release.
143 bugs are still opened. We already have started to work on bug fixing for the service release.
The EMF Facet does not implement any standards.
EMF Facet intends to conform to the User Interface Guidelines but some UI Usability issues have been found.
EMF Facet is a "+2" project in the simultaneous release
M1 08/16/2011 M2 09/27/2011 M3 11/28/2011 M4 12/13/2011 M5 01/31/2012 M6 03/20/2012 API freeze M7 05/09/2012 Feature Freeze RC1 05/22/2012 RC2 05/30/2012 RC3 06/05/2012 RC4 06/12/2012 Juno 06/27/2012
- The EMF Facet table widget is used by Papyrus.
The Eclipse (MDT) MoDisco project leadership verifies that:
- the about files and use licenses are in place as per the Guidelines to Legal Documentation.
- all contributions (code, documentation, images, etc) have been committed by individuals who are either Members of the Foundation, or have signed the appropriate Committer Agreement. In either case, these are individuals who have signed, and are abiding by, the Eclipse IP Policy.
- all significant contributions have been reviewed by the Foundation's legal staff.
- all non-Committer code contributions, including third-party libraries, have been documented in the release and reviewed by the Foundation's legal staff.
- all Contribution Questionnaires have been completed.
- the "provider" field of each plug-in is set to "Eclipse Modeling Project“.
- the "copyright" field of each feature is set to the copyright owner (the Eclipse Foundation is rarely the copyright owner).
- any third-party logos or trademarks included in the distribution (icons, help file logos, etc) have been licensed under the EPL.
- any fonts or similar third-party images included in the distribution (e.g. in PDF or EPS files) have been licensed under the EPL.
Some third-party libraries are used (cf. corresponding validated CQs)
All EMF Facet content is released under EPL.
For the next version of EMF Facet, we plan to:
- fix the "major" bugs;
- finish the restructuring;
- fix "normal" bugs;
- implement editors for the facet set and the customization.