Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Frédéric Madiot, Mia-S...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Software artifacts :
-...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Supported Technologies...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Model-Driven
Reverse-E...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Anatomy of an Eclipse ...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Demo
Using EMF to desc...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Demo
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Demo
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Demo
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
What can you do with
t...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Quality Analysis
Check...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Quality Analysis
Examp...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Quality Analysis
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
E4
Plug-in
3.x
Plug-in...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Refactoring
Example:
T...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Information Mining
Ini...
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Thank you !
Eclipse pr...
Upcoming SlideShare
Loading in …5
×

Mia-Software at Eclipse Modeling Symposium 2010

2,440 views

Published on

This presentation explains how to create EMF models to describe existing plug-ins developped for Eclipse 3.x

  • Be the first to comment

Mia-Software at Eclipse Modeling Symposium 2010

  1. 1. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Frédéric Madiot, Mia-Software Grégoire Dupé, Mia-Software Using EMF to represent Eclipse 3.x Plug-ins
  2. 2. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Software artifacts : - source code - configuration files - tests - database - … Existing Software System Discover Models use Models to represent and manipulate artifacts of existing systems Understand Viewpoints Transform New Software System MoDisco http://www.eclipse.org/MoDisco/
  3. 3. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Supported Technologies Infrastructure MoDisco Architecture Java Metamodel Discoverer Generator Transfo. to KDM XML Metamodel Discoverer Generator Model Browser Navigation through complex models Customization & Extensibility Definition of specific Viewpoints Discovery Manager Plug and orchestrate transformations Eclipse Modeling projects JSP Metamodel Discoverer Generator OMG/ADM Standards Pivot Metamodels (SMM & KDM) EclipsePlugin Metamodel Discoverer
  4. 4. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Model-Driven Reverse-Engineering of Eclipse plug-ins
  5. 5. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Anatomy of an Eclipse 3.x Plug-in MANIFEST.MF plugin.xml Source code build.properties plugin.properties .project .classpath files folders Eclipse Plug-in
  6. 6. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo Using EMF to describe a Plug-in MANIFEST.MF plugin.xml Source code build.properties plugin.properties .project .classpath files folders Eclipse Plug-in Project’s structure (KDMSource) .project (XML) .classpath (XML) manifest build.properties (KDMCore) plugin (eclipseplugin) Java source code (Java) plugin.properties (KDMCore) extensions (XML)
  7. 7. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  8. 8. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  9. 9. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  10. 10. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved What can you do with the EMF model of a plug-in ?
  11. 11. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Quality Analysis Check plug-in development rules Use EMF APIS to detect problems in the model of the Plug-in Store violations as Measurements into a SMM model Inject violations into the Problem View Existing Plug-in    Model of the Plug-in Model of the violations Problem View Demo
  12. 12. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Quality Analysis Examples of rules Yearly simultaneous release Version number ends with « qualifier » Source code must use ICU4J classes The project must contain an « about.html » file Packages name should start with the plug-in ID Plug-in must not contain JARs files Plug-in should contain only one « message.properties » and « Message.java » files Mia-Software internal rules “PLUGIN_ID” variable of “Activator.java” should be initialized with the plug-in Id Plug-in Id and Project name should be equal «Bundle-Vendor» property value of « MANIFEST.MF » should be « %providerName » « plugin.properties » should declare a « providerName » property «Bundle-Name» property value of « MANIFEST.MF » should be « %pluginName » « plugin.properties » should declare a « pluginName » property
  13. 13. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Quality Analysis
  14. 14. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved E4 Plug-in 3.x Plug-in Compatibility Layer Refactoring Runs Eclipse 3.x plug-ins into E4 Strategy #1: Generate an E4 Plug-in from a 3.x Plug-in Problem: The new plug-in can’t run in 3.x => 2 plug-ins to maintain Strategy #2: Use the backward compatibility layer Problem: The compatibility layer doesn’t support all the existing plug-ins A solution : Refactor the E3 plug-in for the backward compatibility layer 3.x
  15. 15. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Refactoring Example: To be visible in E4, menus must be explicitly created by an ActionProvider • Java source code => New ActionProvider subclass to create the menu • Plugin.xml => New extension (org.eclipse.ui.navigator.navigatorContent ) • MANIFEST.MF => New required bundle (org.eclipse.ui.navigator) Transformed Plug-in Existing Plug-in Model of the existing Plug-in Model of the migrated Plug-in  The transformed plug-in still runs in E3  The menus are now visible in E4
  16. 16. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Information Mining Initialize B3 models B3 Model (build configuration) Plug-ins to build Model of plugins to build Team information (CVS, SVN, etc) Update sites (p2) Model of update sites content Resolved plug-ins dependencies Build resolution strategies (constraints solver) Cartography IDM++ Research Project (ANR) -> Sept 2011
  17. 17. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Thank you ! Eclipse projects http://www.eclipse.org/MoDisco/ http://www.eclipse.org/modeling/emft/facet/ Company http://www.mia-software.com/ http://www.sodifrance.fr/ Blog http://fmadiot.blogspot.com/

×