Skip to main content
Jump to: navigation, search

Difference between revisions of "EMF Facet/IndigoReview"

(First version)
 
(APIs)
 
(51 intermediate revisions by 2 users not shown)
Line 12: Line 12:
  
 
For the first time, EMF Facet is part of an Eclipse Simultaneous Release.
 
For the first time, EMF Facet is part of an Eclipse Simultaneous Release.
The different features provided by '''EMF Facet v0.9.0''', as part of Indigo, are of xxxxxxxxxxx categories.
+
The different features provided by '''EMF Facet v0.1.0''', as part of Indigo, are of four categories.
  
==== Queries and Facets ====
+
* 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 [http://nattable.org/drupal/ NatTable library].
  
* A query abstraction mechanism allowing language-independent querying on models of legacy systems;
+
The query, facet and customization mechanism have been copied from [http://www.eclipse.org/MoDisco/ 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.
* The Facet mechanism for dynamically extending the metamodels;
+
 
+
This both mechanism have been copied from MoDisco. MoDisco components will be disabled when the refactoring of EMF Facet ones will be done. This is expected for 0.2.0.
+
 
+
Those feature are hidden by a capability until the MoDisco version is not deprecated.
+
 
+
==== Customizations ====
+
 
+
* A model customization mechanism allowing to change the rendering of model element in function of them state.
+
 
+
This mechanism has been copied from MoDisco. MoDisco components will be disabled when the refactoring of EMF Facet ones will be done. This is expected for 0.2.0.
+
 
+
This feature ishidden by a capability until the MoDisco version is not deprecated.
+
 
+
==== Customizable widgets ====
+
 
+
* A customizable table based on the [http://nattable.org/drupal/ NatTable library].
+
  
 
=== Accordance with project plan themes and priorities ===
 
=== Accordance with project plan themes and priorities ===
  
* Provide the required service and support on the available components in order to ensure the quality and reliability of the platform.
+
The [http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emft.emf-facet 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.
** Infrastructure layer (generic components)
+
** Technologies & Use Cases layers (technology-specific components)
+
* Perform the refactoring of the Discovery Manager to enhance the capabilities of the overall platform, as well as its usability.
+
* Extend the support to other legacy technologies (with the new support for JSP and several JEE frameworks).
+
  
See [http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emft.emf-facet http://www.eclipse.org/projects/project-plan.php?projectid=modeling.emft.emf-facet]
+
== Non-Code Aspects ==
  
== Non-Code Aspects ==
+
The complete EMF Facet documentation is available from the [http://www.eclipse.org/modeling/emft/facet/doc/nightly/org.eclipse.emf.facet.doc/ EMF Facet head documentation]. This documentation is generated from the embedded Help plug-ins.
  
The complete EMF Facet documentation is available from the [http://wiki.eclipse.org/index.php/MoDisco MoDisco Wiki page]:
+
The [http://www.eclipse.org/modeling/emft/facet/ EMF Facet website] provides a direct access to all the related resources.
* General documentation on the various components;
+
* Version specific information;
+
* Additional information on available use cases, as well as incubation and deprecated components.
+
The Help plugins are automatically generated from the content of the Wiki.<br/>
+
The [http://www.eclipse.org/MoDisco/ MoDisco website] provides a direct access to all the related resources.
+
  
 
== APIs ==  
 
== APIs ==  
  
The current MoDisco API situation is detailed [http://download.eclipse.org/modeling/mdt/modisco/api_report/ here].
+
The current EMF Facet API situation is detailed by [http://archive.eclipse.org/facet/downloads/drops/0.1.0/R201106070516/api_report/html/index.html the API report build on the version 0.1.0].
The MoDisco team will work at fixing the few issues in the coming MoDisco Indigo SR builds.
+
 
 +
Two illegal API used have been identified and are tracked by the following bugs : [https://bugs.eclipse.org/bugs/show_bug.cgi?id=344247 bug 344247], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=344246 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 ==
 
== Architecture ==
  
The MoDisco architecture is detailed in [http://wiki.eclipse.org/MoDisco/Architecture http://wiki.eclipse.org/MoDisco/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 [http://wiki.eclipse.org/MoDisco/Architecture MoDisco architecture document] can then be used to understand the EMF Facet architecture.
  
 
== Testing & Packaging ==
 
== Testing & Packaging ==
  
MoDisco uses a '''Buckminster'''-based system to build and promote versions.<br/>
+
EMF Facet uses a '''Buckminster'''-based system to build and promote versions.<br/>
 
Each new build is tested at least with Eclipse 3.7 (Indigo).<br/>
 
Each new build is tested at least with Eclipse 3.7 (Indigo).<br/>
 
Core plugins are provided with dedicated test plugins checking their valid behavior.<br/>
 
Core plugins are provided with dedicated test plugins checking their valid behavior.<br/>
MoDisco is integrated into the '''Indigo Release Train''' since the beginning.<br/>
+
EMF Facet is integrated into the '''Indigo Release Train'''.<br/>
It is also part of the '''Amalgamation Modeling Package for Indigo'''.
+
  
 
== Tool Usability ==
 
== Tool Usability ==
  
MoDisco is used for building Model Driven Reverse Engineering solutions to different scenarios such as:
+
EMF Facet is a solution to extend existing Ecore metamodels without having to modify them.
* Legacy Modernization
+
 
* Quality Assurance
+
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.)
* Retro-documentation
+
 
* Architecture Improvement
+
For example, EMFFacet is used by :
* Etc
+
* 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 ==
 
== End-of-Life ==
  
Some components from the MoDisco previous release builds [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;short_desc=Deprecated;short_desc_type=casesubstring;product=MDT.MoDisco have been deprecated].
+
Some elements from the EMF Facet (copied from MoDisco) [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;short_desc=Deprecated;short_desc_type=casesubstring;product=EMFT.facet have been deprecated].
  
 
== Bugzilla ==
 
== Bugzilla ==
  
* Bugs (snapshot taken on the 24th of May 2011):
+
* [https://bugs.eclipse.org/bugs/report.cgi?x_axis_field=target_milestone&y_axis_field=version&z_axis_field=&query_format=report-table&short_desc_type=allwordssubstr&short_desc=&product=EMFT.facet&longdesc_type=allwordssubstr&longdesc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_severity=blocker&bug_severity=critical&bug_severity=major&bug_severity=normal&bug_severity=minor&bug_severity=trivial&emailtype1=substring&email1=&emailtype2=substring&email2=&bug_id_type=anyexact&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&format=table&action=wrap&field0-0-0=noop&type0-0-0=noop&value0-0-0= Bugs] (snapshot taken on the 26th of May 2011):
[[Image:MoDisco_IndigoReview_BugReport.PNG]]
+
[[Image:EMF_Facet_Bugs_20110526.png]]
  
* Enhancement requests (snapshot taken on the 24th of May 2011):
+
* [https://bugs.eclipse.org/bugs/report.cgi?x_axis_field=target_milestone&y_axis_field=version&z_axis_field=&query_format=report-table&short_desc_type=allwordssubstr&short_desc=&product=EMFT.facet&longdesc_type=allwordssubstr&longdesc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_severity=enhancement&emailtype1=substring&email1=&emailtype2=substring&email2=&bug_id_type=anyexact&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&format=table&action=wrap&field0-0-0=noop&type0-0-0=noop&value0-0-0= Enhancement requests] (snapshot taken on the 16th of May 2011):
[[Image:MoDisco_IndigoReview_EnhancementReport.PNG]]
+
[[Image:EMF_Facet_Enhancement_requests-20010526.png]]
  
* More detailed information is available in [http://wiki.eclipse.org/MoDisco/IndigoReview/Bugzilla_Situation http://wiki.eclipse.org/MoDisco/IndigoReview/Bugzilla_Situation].
+
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 [[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 [http://www.eclipse.org/modeling/mdt/papyrus/ Papyrus] project.
 +
The enhancement [https://bugs.eclipse.org/bugs/show_bug.cgi?id=344125 344125] has been committed after M7 because it was blocking a Papyrus  bug ([https://bugs.eclipse.org/bugs/show_bug.cgi?id=343950 343950])
  
== Standards ==  
+
== Standards ==
  
The MoDisco  project is working in close collaboration with the [http://adm.omg.org/ OMG Architecture Driven Modernization (ADM) Task Force], which results this year in the EMF implementation of the '''Abstract Syntax Tree Metamodel''' ('''ASTM'''), '''Knowledge Discovery Metamodel''' ('''KDM''') and '''Software Metrics Metamodel''' ('''SMM''') specifications.
+
The EMF Facet does not implement any standards.
  
 
== UI Usability ==
 
== UI Usability ==
  
MDT MoDisco intends to conform to the User Interface Guidelines.
+
EMF Facet intends to conform to the User Interface Guidelines but some [[EMFFacet_UI_issues|UI Usability issues]] have been found.
The missing points to be fixed in the next version are summarized in [http://wiki.eclipse.org/MoDisco/UI_Accessibility_Issues http://wiki.eclipse.org/MoDisco/UI_Accessibility_Issues].
+
  
 
== Schedule ==
 
== Schedule ==
 +
EMF Facet is a "+2" project in the simultaneous release
  
MDT MoDisco is a "+3" project in the simultaneous release
+
  M4 12/14/2010
+
  M5 02/01/2011
M1 08/18/2010
+
  M6 03/15/2011 API freeze
M2 09/29/2010
+
  M7 05/03/2011 Feature Freeze
M3 11/10/2010
+
  RC1 05/17/2011
  M4 12/15/2010
+
  RC2 05/24/2011
  M5 02/02/2011
+
  RC3 05/31/2011
  M6 03/16/2011 API freeze
+
  RC4 06/07/2011
  M7 05/04/2011 Feature Freeze
+
  Indigo 06/22/2011
  RC1 05/18/2011
+
  RC2 05/25/2011
+
  RC3 06/01/2011
+
  RC4 06/08/2011
+
  Indigo 06/09/2011
+
  
 
== Communities ==
 
== Communities ==
  
* Strong collaboration with the [http://adm.omg.org/ OMG Architecture Driven Modernization (ADM) Task Force]
+
* Presentation at '''Eclipse Summit Europe 2010''': [http://www.slideshare.net/fmadiot/emf-facet-ese2010 EMF Facet - A Non-Intrusive Tooling to ExtendMetamodels]
** Upgraded version of the SMM (Software Metrics Metamodel) implementation
+
* The EMF Facet table widget is used by [http://www.eclipse.org/modeling/mdt/papyrus/ Papyrus].
** First version of the ASTM (Abstract Syntax Tree Metamodel) implementation
+
* Creation of the [http://www.eclipse.org/modeling/emft/facet/ EMF Facet] project as a spin-off from MoDisco
+
* Presentation at '''EclipseCon 2011''': [http://www.eclipsecon.org/2011/sessions/?page=sessions&id=2093 Spy On Your Models]  
+
* Constant activity on the dedicated [http://www.eclipse.org/forums/index.php?t=thread&frm_id=21& MoDisco forum]
+
  
 
== Committer Changes ==
 
== Committer Changes ==
  
Gregoire Dupe (Mia-Software) replaced Frederic Madiot as co-leader of the project.
 
 
Frederic Madiot has moved from Mia-Software to Obeo.
 
Frederic Madiot has moved from Mia-Software to Obeo.
 
Gabriel Barbier has moved from Mia-Software to Thales.
 
Gabriel Barbier has moved from Mia-Software to Thales.
Line 137: Line 107:
 
== IP Issues ==
 
== IP Issues ==
  
The Eclipse IP Process has been strictly followed and all plugins contain the appropriate ''about.html'' and license files.<br/>
+
* The Eclipse IP Process has been strictly followed and all plug-ins contain the appropriate ''about.html'' and license files.
The MoDisco IP Log is available from [http://www.eclipse.org/projects/ip_log.php?projectid=modeling.mdt.modisco http://www.eclipse.org/projects/ip_log.php?projectid=modeling.mdt.modisco]
+
 
 +
* The [http://www.eclipse.org/projects/ip_log.php?projectid=modeling.emft.emf-facet EMF Facet IP Log] is up to date.
 +
 
 
* Some third-party libraries are used (cf. corresponding validated CQs)
 
* Some third-party libraries are used (cf. corresponding validated CQs)
All MoDisco content is released under EPL.
+
** [http://commons.apache.org/jxpath/ Apache Commons JXPath] Version 1.3 ([https://dev.eclipse.org/ipzilla/show_bug.cgi?id=4562 QC 4562])
 +
** [http://nattable.org/drupal/ NatTable] Version 2.1.0 ([https://dev.eclipse.org/ipzilla/show_bug.cgi?id=4854 CQ 4854])
 +
 
 +
* All EMF Facet content is released under EPL.
  
 
== Project Plan ==
 
== Project Plan ==
  
The current project plan is available from [http://www.eclipse.org/projects/project-plan.php?projectid=modeling.mdt.modisco http://www.eclipse.org/projects/project-plan.php?projectid=modeling.mdt.modisco]. <br/>
+
This next '''EMF Facet''' version will imply:
Graduating to '''v1.0.0''' for the next '''Juno Simultaneous Release''' is planned.
+
This next '''MoDisco''' version will imply:
+
 
* Upgrades on the various existing components (e.g. bug fixing, performance increase, etc);
 
* Upgrades on the various existing components (e.g. bug fixing, performance increase, etc);
* Final migration of the Facet and Customization mechanisms in the EMFT-EMF Facet project.
+
* 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.

Latest revision as of 11:59, 20 June 2012

This page provides the required docuware for the EMF Facet v0.1.0 Release Review, as part of the upcoming Indigo 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 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

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

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

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

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

Back to the top