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

Preview:

DESCRIPTION

Describing Tools and Methodologies used and that will be used to develop the GMF editors of Bonita Open Solution Studio. It is an eclipse RCP application awarded "Best Modeling Application" during Eclipse Community Awards 2011 and was finalists in "Best Application" category during Eclipse Community Awards 2012.

Citation preview

Tools and Methodologies for GMF

Aurélien Pupier R&D Engineer, Studio Project Leader

GMF-Runtime Committer @apupier

EclipseDay Delft , September 27, 2012

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

Agenda

Show me a GMF editor

GMF Big Picture

Methodologies

Tooling

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

GMF BIG PICTURE

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

GMF

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

GMF Basic Workflow

Semantic Model (ecore)

Diagram Model

GMF codegen

Diagram code

Mapping

Code generation

9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 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. 7

METHODOLOGIES

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

Update the model!

Straightforward

Best maintainability

Easiest solution

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

GMF Extension points

24

Classical Eclipse way

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

Extension points – Typical pattern

Custom Diagram PLUG-IN

CustomXXXEditPartProvider CustomXXXEditPart

GENERATED Diagram PLUG-IN

extends extends

XXXEditPartProvider XXXEditPart

Reference

Reference

9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 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. 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. 13

Generation aspect templates

.xpt

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

Another tip to reduce size of custom generation templates?

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

Utility plugin – why?

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

Utility plugin – how?

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

Modify Generated code

@Generated NOT

Sandbox

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

Projects Structure (1/2)

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

Projects Structure (2/2)

Generation Templates

Semantic Model

Diagram Model

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

GMF Workflow Semantic

Model (ecore)

Diagram Model

GMF codegen

Diagram code

Mapping

Code generation

Extension points

Aspect Template

Utility plugin

Model

Model

TOOLING

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

GMF-Tooling

Official tooling of GMF

● Several editors

● Wizards

● GMF Dashboard

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

SWTBot4GEF

Automated UI tests

Simple API:

click

drag

select

activateTool

9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 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. 25

OCL Editor and Interpreter

Write and Test constraints

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

Simple Mapping Editor (1/2)

9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 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. 28

EDapt

Big underlying model modifications

PoC for BOS 6.0

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

Keep in mind

Great tooling ecosystem

Proven methodologies for continuous improvement

9/29/2012 www.bonitasoft.com | © BonitaSoft S.A. 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

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