Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EMF Facet/JunoReview

< EMF Facet
Revision as of 09:13, 4 June 2012 by Gdupe.mia-software.com (Talk | contribs) (Bugzilla //TODO)

This page provides the required docuware for the EMF Facet v0.2.0 Release Review, as part of the upcoming Juno Simultaneous Release.

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

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
  • 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

We still have 110 other bugs to fix.

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

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.

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

In the 132 bugs declared in for the version 0.2.0 we have 36 enhancement request and 37 unit test failure (potentially false positives), so we can assume that we have 59 bugs that the use may fall on.

  • Bugs (snapshot taken on the 26th of May 2011):

EMF Facet Bugs 20110526.png

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 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

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

Communities

  • 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.
  • 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.

Back to the top