SlideShare a Scribd company logo
1 of 31
Download to read offline
Tools and Methodologies for GMF


                             Aurélien Pupier
             R&D Engineer, Studio Project Leader
                      GMF-Runtime Committer
                                      @apupier
                 EclipseDay Delft , September 27, 2012
Agenda

Show me a GMF editor
GMF Big Picture
Methodologies
Tooling




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        2
GMF BIG PICTURE


   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        3
GMF




9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     4
GMF Basic Workflow
 Semantic                                                Diagram
Model (ecore)                                             Model

                             Mapping



                       GMF codegen



                                         Code generation



                       Diagram code



9/29/2012       www.bonitasoft.com | © BonitaSoft S.A.
                                                                   5
What happens after the first
          generation?

Requirements update
Introduce specific behavior
I’m not able to do a one shot!




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         6
METHODOLOGIES


   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        7
Update the model!
Straightforward
Best maintainability
Easiest solution




    9/29/2012     www.bonitasoft.com | © BonitaSoft S.A.
                                                           8
GMF Extension points
24
Classical Eclipse way




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         9
Extension points – Typical pattern
GENERATED Diagram PLUG-IN

             XXXEditPartProvider                     Reference   XXXEditPart


                                   extends                                extends


Custom Diagram PLUG-IN


CustomXXXEditPartProvider                    Reference       CustomXXXEditPart



       9/29/2012    www.bonitasoft.com | © BonitaSoft S.A.
                                                                          10
Generation templates
When?
  Apply to a whole kind of elements
  Ultimately
Useful for:
  Regeneration
  New element introduced




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         11
Generation aspect templates

Reduce amount of code to maintain
Avoid code duplication
Down grain from class to method




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         12
Generation aspect templates




                            .xpt




 9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                      13
Another tip to reduce size of
custom generation templates?




  9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                       14
Utility plugin – why?




9/29/2012      www.bonitasoft.com | © BonitaSoft S.A.
                                                        15
Utility plugin – how?




9/29/2012      www.bonitasoft.com | © BonitaSoft S.A.
                                                        16
Modify Generated code

            @Generated NOT


               Sandbox


9/29/2012     www.bonitasoft.com | © BonitaSoft S.A.
                                                       17
Projects Structure (1/2)




9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     18
Projects Structure (2/2)

                     Generation Templates




                                 Semantic Model




                                    Diagram Model



9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                     19
GMF Workflow
 Semantic                                                Diagram       Model
Model (ecore)                                             Model
                           Model
                        Mapping


                                                      Utility plugin
                      GMF codegen



                                  Code generation                   Aspect Template


                      Diagram code


                                         Extension points
          9/29/2012        www.bonitasoft.com | © BonitaSoft S.A.
                                                                                  20
TOOLING
GMF-Tooling
Official tooling of GMF
● Several editors
● Wizards
● GMF Dashboard




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        22
SWTBot4GEF
Automated UI tests
Simple API:
  click
  drag
  select
  activateTool




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        23
Code generation Ant Task
Generate code at build time
Avoid reconcilier issues
Avoid modification of your sandbox commited




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        24
OCL Editor and Interpreter
Write and Test constraints




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        25
Simple Mapping Editor (1/2)




 9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                      26
Simple Mapping Editor (2/2)
All-in-one editor
Keep separation of concerns available
Eating your own dog food




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        27
EDapt
Big underlying model modifications
PoC for BOS 6.0




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        28
Keep in mind

Great tooling ecosystem
Proven methodologies for continuous
improvement




   9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                        29
To go further
Eclipse GMF Forum:
http://www.eclipse.org/forums/index.php/f/16/
Eclipse GMF Wiki:
http://wiki.eclipse.org/GMF
Talk together 




    9/29/2012   www.bonitasoft.com | © BonitaSoft S.A.
                                                         30
aurelien.pupier@bonitasoft.com
Twitter: @apupier
Eclipse blog: www.bonitasoft.org/blog/category/eclipse
Talk to me about Bonita, BPMN2, Eclipse Modeling and more



Company: www.bonitasoft.com
Community: www.bonitasoft.org
Twitter: @bonitasoft

More Related Content

Similar to Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027 Smart Use Cases Hogeschool Arnhem NijmegenSander Hoogendoorn
 
The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8BMC Software
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumHugo Bruneliere
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresGonzalo Rodríguez
 
KNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational ChemistryKNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational ChemistryGirinath Pillai
 
Userforum Process Visualization
Userforum Process VisualizationUserforum Process Visualization
Userforum Process Visualizationduncanseidler
 
Benefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM PlatformsBenefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM PlatformsOleg Shilovitsky
 
30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web Apps30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web AppsAmi Rotter
 
Lavacon 2014 - The state of mobile publishing
Lavacon 2014 -  The state of mobile publishingLavacon 2014 -  The state of mobile publishing
Lavacon 2014 - The state of mobile publishingVikram Verma
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligencetasmc
 
BPM with Bonita Open Solution
BPM with Bonita Open Solution BPM with Bonita Open Solution
BPM with Bonita Open Solution Bonitasoft
 
A Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive DesignA Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive DesignDori Kelner
 
Model driven code development using emf and jet
Model driven code development using emf and jetModel driven code development using emf and jet
Model driven code development using emf and jetkowost
 
Fashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to productionFashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to productionAlex Mufatti
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Davalen LLC
 
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...FIDE Master Tihomir Dovramadjiev PhD
 
Get Into Open Source
Get Into Open SourceGet Into Open Source
Get Into Open SourceJoe Sepi
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0Cogility
 

Similar to Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012) (20)

20081027 Smart Use Cases Hogeschool Arnhem Nijmegen
20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen20081027   Smart Use Cases   Hogeschool Arnhem Nijmegen
20081027 Smart Use Cases Hogeschool Arnhem Nijmegen
 
The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8The Power of Simple: Whats New in BMC Control-M 8
The Power of Simple: Whats New in BMC Control-M 8
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
 
Collaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling SymposiumCollaboro - EclipseCon Europe 2012, Modeling Symposium
Collaboro - EclipseCon Europe 2012, Modeling Symposium
 
Big Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance NightmaresBig Ball of Mud: Software Maintenance Nightmares
Big Ball of Mud: Software Maintenance Nightmares
 
KNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational ChemistryKNIME in Life Science, Cheminformatics and Computational Chemistry
KNIME in Life Science, Cheminformatics and Computational Chemistry
 
Userforum Process Visualization
Userforum Process VisualizationUserforum Process Visualization
Userforum Process Visualization
 
Benefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM PlatformsBenefits of Knowledge Graphs and AI For Enterprise PLM Platforms
Benefits of Knowledge Graphs and AI For Enterprise PLM Platforms
 
30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web Apps30+ Recent Design Elements in Web Apps
30+ Recent Design Elements in Web Apps
 
Lavacon 2014 - The state of mobile publishing
Lavacon 2014 -  The state of mobile publishingLavacon 2014 -  The state of mobile publishing
Lavacon 2014 - The state of mobile publishing
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
SAP Mobile Business Intelligence
SAP Mobile Business IntelligenceSAP Mobile Business Intelligence
SAP Mobile Business Intelligence
 
BPM with Bonita Open Solution
BPM with Bonita Open Solution BPM with Bonita Open Solution
BPM with Bonita Open Solution
 
A Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive DesignA Site for All Eyes: Considerations for Responsive Design
A Site for All Eyes: Considerations for Responsive Design
 
Model driven code development using emf and jet
Model driven code development using emf and jetModel driven code development using emf and jet
Model driven code development using emf and jet
 
Fashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to productionFashion buttons prototyping from 3D design to production
Fashion buttons prototyping from 3D design to production
 
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
Where Does IBM Web Experience Factory Fit in your Architecture? TECH-D22 from...
 
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
DrTAD Blender software. Example 8b. 3D Model of Anchor from Text. Change Font...
 
Get Into Open Source
Get Into Open SourceGet Into Open Source
Get Into Open Source
 
Dom introduction-website-v1.0
Dom introduction-website-v1.0Dom introduction-website-v1.0
Dom introduction-website-v1.0
 

More from Aurélien Pupier

How to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esHow to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esAurélien Pupier
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Aurélien Pupier
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...Aurélien Pupier
 
Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...Aurélien Pupier
 
Master your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse toolingMaster your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse toolingAurélien Pupier
 
Classic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integrationClassic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integrationAurélien Pupier
 
Fast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsFast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsAurélien Pupier
 
Functional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersAurélien Pupier
 
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.Aurélien Pupier
 
How to contribute to Eclipse
How to contribute to EclipseHow to contribute to Eclipse
How to contribute to EclipseAurélien Pupier
 
Time to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itTime to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itAurélien Pupier
 
Take advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integrationTake advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integrationAurélien Pupier
 

More from Aurélien Pupier (12)

How to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id esHow to contribute textual tooling for apache camel in several id es
How to contribute textual tooling for apache camel in several id es
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...Feedback from an eclipse plugin developer to provide support to large set of ...
Feedback from an eclipse plugin developer to provide support to large set of ...
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Adopting language server for apache camel  feedback from a java/Eclipse plugi...Adopting language server for apache camel  feedback from a java/Eclipse plugi...
Adopting language server for apache camel feedback from a java/Eclipse plugi...
 
Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...Why and how to leverage apache camel integration framework in your io t archi...
Why and how to leverage apache camel integration framework in your io t archi...
 
Master your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse toolingMaster your integration projects on premise and in the cloud with fuse tooling
Master your integration projects on premise and in the cloud with fuse tooling
 
Classic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integrationClassic middleware integration for your IoT Gateways integration
Classic middleware integration for your IoT Gateways integration
 
Fast unit tests for Eclipse Plugins
Fast unit tests for Eclipse PluginsFast unit tests for Eclipse Plugins
Fast unit tests for Eclipse Plugins
 
Functional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and TestersFunctional Testing made easy with SWTBot for Developers and Testers
Functional Testing made easy with SWTBot for Developers and Testers
 
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
 
How to contribute to Eclipse
How to contribute to EclipseHow to contribute to Eclipse
How to contribute to Eclipse
 
Time to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did itTime to build and test results 3x faster - how we did it
Time to build and test results 3x faster - how we did it
 
Take advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integrationTake advantage of memory analyzer tool inside your continuous integration
Take advantage of memory analyzer tool inside your continuous integration
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)

  • 1. Tools and Methodologies for GMF Aurélien Pupier R&D Engineer, Studio Project Leader GMF-Runtime Committer @apupier EclipseDay Delft , September 27, 2012
  • 2. Agenda Show me a GMF editor GMF Big Picture Methodologies Tooling 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 2
  • 3. GMF BIG PICTURE 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 3
  • 4. GMF 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 4
  • 5. GMF Basic Workflow Semantic Diagram Model (ecore) Model Mapping GMF codegen Code generation Diagram code 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 5
  • 6. What happens after the first generation? Requirements update Introduce specific behavior I’m not able to do a one shot! 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 6
  • 7. METHODOLOGIES 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 7
  • 8. Update the model! Straightforward Best maintainability Easiest solution 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 8
  • 9. GMF Extension points 24 Classical Eclipse way 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 9
  • 10. Extension points – Typical pattern GENERATED Diagram PLUG-IN XXXEditPartProvider Reference XXXEditPart extends extends Custom Diagram PLUG-IN CustomXXXEditPartProvider Reference CustomXXXEditPart 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 10
  • 11. Generation templates When? Apply to a whole kind of elements Ultimately Useful for: Regeneration New element introduced 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 11
  • 12. Generation aspect templates Reduce amount of code to maintain Avoid code duplication Down grain from class to method 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 12
  • 13. Generation aspect templates .xpt 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 13
  • 14. Another tip to reduce size of custom generation templates? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 14
  • 15. Utility plugin – why? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 15
  • 16. Utility plugin – how? 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 16
  • 17. Modify Generated code @Generated NOT Sandbox 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 17
  • 18. Projects Structure (1/2) 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 18
  • 19. Projects Structure (2/2) Generation Templates Semantic Model Diagram Model 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 19
  • 20. GMF Workflow Semantic Diagram Model Model (ecore) Model Model Mapping Utility plugin GMF codegen Code generation Aspect Template Diagram code Extension points 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 20
  • 22. GMF-Tooling Official tooling of GMF ● Several editors ● Wizards ● GMF Dashboard 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 22
  • 23. SWTBot4GEF Automated UI tests Simple API: click drag select activateTool 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 23
  • 24. Code generation Ant Task Generate code at build time Avoid reconcilier issues Avoid modification of your sandbox commited 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 24
  • 25. OCL Editor and Interpreter Write and Test constraints 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 25
  • 26. Simple Mapping Editor (1/2) 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 26
  • 27. Simple Mapping Editor (2/2) All-in-one editor Keep separation of concerns available Eating your own dog food 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 27
  • 28. EDapt Big underlying model modifications PoC for BOS 6.0 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 28
  • 29. Keep in mind Great tooling ecosystem Proven methodologies for continuous improvement 9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 29
  • 30. To go further Eclipse GMF Forum: http://www.eclipse.org/forums/index.php/f/16/ Eclipse GMF Wiki: http://wiki.eclipse.org/GMF Talk together  9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 30
  • 31. aurelien.pupier@bonitasoft.com Twitter: @apupier Eclipse blog: www.bonitasoft.org/blog/category/eclipse Talk to me about Bonita, BPMN2, Eclipse Modeling and more Company: www.bonitasoft.com Community: www.bonitasoft.org Twitter: @bonitasoft