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 03:39, 1 June 2012 by Gdupe.mia-software.com (Talk | contribs) (IP Issues //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
  • 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

Other bugs

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

The current EMF Facet API situation is detailed by the API report build on the version 0.1.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):

EMF Facet Bugs 20110526.png

EMF Facet Enhancement requests-20010526.png

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

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