Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EMF Facet/JunoReview"
(→APIs //TODO) |
(→Bugzilla //TODO) |
||
Line 122: | Line 122: | ||
[[Image:EMF_Facet_Enhancement_requests-20010526.png]] | [[Image:EMF_Facet_Enhancement_requests-20010526.png]] | ||
− | + | 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 [[Modeling_Project_Ramp_Down_Policy|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. | |
− | + | ||
+ | 143 bugs are still opened. We already have started to work on bug fixing for the service release. | ||
== Standards == | == Standards == |
Revision as of 08:02, 1 June 2012
This page provides the required docuware for the EMF Facet v0.2.0 Release Review, as part of the upcoming Juno 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 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 lake 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 be refactored to improve the maintenability 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
Restructuring
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
- 361617 - [Restructuring] Deprecation of APIs for the old Facet metamodels
- 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 failures. The main part of those failure are 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 tests failure, we will delete the unit test having a random behavior. The same strategy will be applied to the SWTBot unit test requiring too many efforts to be fixed.
Other bugs //TODO
Non-Code Aspects
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.
APIs
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.
Architecture
The EMF Facet architecture document is currently not available.
Testing & Packaging //TODO
EMF Facet uses a Buckminster-based system to build and promote versions.
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.
Tool Usability
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.
End-of-Life
Each API deprecation is tracked by a bug tagged [Deprecated].
Elements from copied from MoDisco have been deprecate, 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.
Bugzilla //TODO
- Bugs (snapshot taken on the 26th of May 2011):
- Enhancement requests (snapshot taken on the 16th of May 2011):
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.
143 bugs are still opened. We already have started to work on bug fixing for the service release.
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 //TODO
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 //TODO
- 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
No change.
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. The IP log of the release 0.2.0 has been approved.
- 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 //TODO
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.