SlideShare ist ein Scribd-Unternehmen logo
1 von 17
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
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/
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
Copyright © 2010 Mia-Software
All Rights Reserved
Copyright © 2010 Mia-Software
All Rights Reserved
Model-Driven
Reverse-Engineering
of Eclipse plug-ins
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
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)
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
the EMF model
of a plug-in ?
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
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
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
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
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
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
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/

Weitere ähnliche Inhalte

Ähnlich wie Mia-Software at Eclipse Modeling Symposium 2010

MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010fmadiot
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)David Gibbons
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara
 
MonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android ApplicationMonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android ApplicationContusQA
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyTim Pettersen
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Chinmoy Mohanty
 
SFDC Deployments
SFDC DeploymentsSFDC Deployments
SFDC DeploymentsSujit Kumar
 
Extending the Enterprise with MEF
Extending the Enterprise with MEFExtending the Enterprise with MEF
Extending the Enterprise with MEFBrian Ritchie
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)mikaelbarbero
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introductionvstorm83
 
IMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingIMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingAdobeMarketingCloud
 
EMF Facet 0.1.0 - Nantes DemoCamp 2011
EMF Facet 0.1.0 - Nantes DemoCamp 2011EMF Facet 0.1.0 - Nantes DemoCamp 2011
EMF Facet 0.1.0 - Nantes DemoCamp 2011Grégoire Dupé
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)Peter Antman
 
My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys Laurent Guérin
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthDanno Ferrin
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Pei-Hsuan Hsieh
 

Ähnlich wie Mia-Software at Eclipse Modeling Symposium 2010 (20)

MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)The Role of Python in SPAs (Single-Page Applications)
The Role of Python in SPAs (Single-Page Applications)
 
Exploring Maven SVN GIT
Exploring Maven SVN GITExploring Maven SVN GIT
Exploring Maven SVN GIT
 
James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1James Jara Portfolio 2014 Part 1
James Jara Portfolio 2014 Part 1
 
Portafolio
PortafolioPortafolio
Portafolio
 
MonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android ApplicationMonkeyTalk Automation Testing For Android Application
MonkeyTalk Automation Testing For Android Application
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)
 
Java
JavaJava
Java
 
SFDC Deployments
SFDC DeploymentsSFDC Deployments
SFDC Deployments
 
Extending the Enterprise with MEF
Extending the Enterprise with MEFExtending the Enterprise with MEF
Extending the Enterprise with MEF
 
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
Generating an Android App with Acceleo (Eclipse Summit Europe 2010)
 
eXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework IntroductioneXo Platform SEA - Play Framework Introduction
eXo Platform SEA - Play Framework Introduction
 
IMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM ToolingIMMERSE'16 Introduction to AEM Tooling
IMMERSE'16 Introduction to AEM Tooling
 
EMF Facet 0.1.0 - Nantes DemoCamp 2011
EMF Facet 0.1.0 - Nantes DemoCamp 2011EMF Facet 0.1.0 - Nantes DemoCamp 2011
EMF Facet 0.1.0 - Nantes DemoCamp 2011
 
The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)The Bespoke Software Product Factory (2007)
The Bespoke Software Product Factory (2007)
 
My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys My web application in 20 minutes with Telosys
My web application in 20 minutes with Telosys
 
Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
JavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In DepthJavaOne 2009 BOF-5189 Griffon In Depth
JavaOne 2009 BOF-5189 Griffon In Depth
 
Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development Eclipse IDE, 2019.09, Java Development
Eclipse IDE, 2019.09, Java Development
 

Mehr von fmadiot

Eclipse Party Toulouse - EEF and Acceleo
Eclipse Party Toulouse - EEF and AcceleoEclipse Party Toulouse - EEF and Acceleo
Eclipse Party Toulouse - EEF and Acceleofmadiot
 
EMF Facet EclipseCon 2011 Audition
EMF Facet EclipseCon 2011 AuditionEMF Facet EclipseCon 2011 Audition
EMF Facet EclipseCon 2011 Auditionfmadiot
 
Mia-Software at MD Day 2010
Mia-Software at MD Day 2010Mia-Software at MD Day 2010
Mia-Software at MD Day 2010fmadiot
 
EMF Facet at ESE 2010
EMF Facet at ESE 2010EMF Facet at ESE 2010
EMF Facet at ESE 2010fmadiot
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010fmadiot
 
Mia-Software Maaf MDDay2009
Mia-Software Maaf MDDay2009Mia-Software Maaf MDDay2009
Mia-Software Maaf MDDay2009fmadiot
 
Mo Disco Poster Eclipse Con 2009
Mo Disco Poster Eclipse Con 2009Mo Disco Poster Eclipse Con 2009
Mo Disco Poster Eclipse Con 2009fmadiot
 

Mehr von fmadiot (7)

Eclipse Party Toulouse - EEF and Acceleo
Eclipse Party Toulouse - EEF and AcceleoEclipse Party Toulouse - EEF and Acceleo
Eclipse Party Toulouse - EEF and Acceleo
 
EMF Facet EclipseCon 2011 Audition
EMF Facet EclipseCon 2011 AuditionEMF Facet EclipseCon 2011 Audition
EMF Facet EclipseCon 2011 Audition
 
Mia-Software at MD Day 2010
Mia-Software at MD Day 2010Mia-Software at MD Day 2010
Mia-Software at MD Day 2010
 
EMF Facet at ESE 2010
EMF Facet at ESE 2010EMF Facet at ESE 2010
EMF Facet at ESE 2010
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Mia-Software Maaf MDDay2009
Mia-Software Maaf MDDay2009Mia-Software Maaf MDDay2009
Mia-Software Maaf MDDay2009
 
Mo Disco Poster Eclipse Con 2009
Mo Disco Poster Eclipse Con 2009Mo Disco Poster Eclipse Con 2009
Mo Disco Poster Eclipse Con 2009
 

Kürzlich hochgeladen

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Mia-Software at Eclipse Modeling Symposium 2010

  • 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. 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. 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. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Model-Driven Reverse-Engineering of Eclipse plug-ins
  • 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. 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. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  • 8. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  • 9. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Demo
  • 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. 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. 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. Copyright © 2010 Mia-Software All Rights Reserved Copyright © 2010 Mia-Software All Rights Reserved Quality Analysis
  • 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. 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. 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. 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/

Hinweis der Redaktion

  1. The approach we propose with MoDisco consists in creating fine-grained models from the different kinds of artifacts which compose an existing system. From these models we can extract specific viewpoints to understand the existing system. And these models can also be used to regenerate a new version of the system.
  2. MoDisco is composed of several kinds of components. A first layer provides components which are completely independent from any legacy technology : a Discovery Manager, a Model Browser to navigate through complex models, several extensibility mechanisms to define viewpoints on models, and the implementation of OMG specification which can serve as pivot metamodels. On top these generic components Modisco provides components which are dedicated to specific legacy technologies.
  3. The last example is about building plug-ins. We have recently started to work on this problem with CEA (the french nuclear agency), IBM and Atlanmod. The problem when you build a set of plug-ins is that, depending on the content of the update sites declared in your configuration, you don’t know exactly which version of depending plug-ins will really be integrated. The default strategy takes the latest version available for each plugin. We are experimenting a solution, based on a constraint solver, to calculate build configurations depending on other strategies. Each build configuration can be converted into a B3 model or exported to a graphical cartography tool.