Experiences from porting a commercial RCP application to Eclipse 4.x

16
Experiences from porting a commercial RCP application to Eclipse 4.x Anders Forsell, Fredrik Attebrant – FindOut Technologies 2012-03-25 11:02

Transcript of Experiences from porting a commercial RCP application to Eclipse 4.x

Page 1: Experiences from porting a commercial RCP application to Eclipse 4.x

Experiences from porting a commercial RCP application to

Eclipse 4.x

Anders Forsell, Fredrik Attebrant – FindOut Technologies2012-03-25 11:02

Page 2: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

• Products• Paipe• PrioVis

• Services• Eclipse RCP

Page 3: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

PrioVis – A Visual Project Planning Tool

Page 4: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Eclipse RCP history

2001

1.0

2003

2.1 3.0

2004

”RCP 1.0”

2008

3.4

e4

2011

3.7

4.1

OSGi services

3.6

4.0

2010

0.9

2009

First ideas to use Eclipse asgeneral application platform

2005

”tech. preview”

2012

”RCP 2.0”

4.2

3.8

Page 5: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

RCP 4.x Architecture

Java Virtual Machine

Eclipse 4.x Application Platform

Equinox EMF Core SWT, JFace

Application Model, CSS Styling, DI, Application Services

Compatibility Layer, provides 3.x APIs

RCP Legacy parts• GEF editor• EMF editor

RCPPure4.x

parts

org.eclipse.ui.workbench implemented on 4.x

Page 6: Experiences from porting a commercial RCP application to Eclipse 4.x

Migration paths

(c) FindOut Technologies AB 2012

3.x RCP

Compatibility layer 4.x RCP

Pure 4.x RCPMigrate 3.x API to 4.x

• Application Model• Dependency Injection

• 3rd party “blockers”:org.eclipse.ui.workbench

GEFEMF Editor

Recompile

Page 7: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

org.eclipse.ui.workbench

Migration story

JFaceSWT OSGiSame stuff:

IEditorPartIViewPartECommandService

ESelectionService

EPartService

Rewrite code

4.x Application Services:

……

Page 8: Experiences from porting a commercial RCP application to Eclipse 4.x

Mixed mode

(c) FindOut Technologies AB 2012

3.x RCP

Compatibility layer 4.x RCP

Pure 4.x RCPMigrate 3.x API to 4.x

• Add Application.e4xmi• Migrate menus, toolbars• Add Pure Parts• Add Dependency Injection

Recompile

Not officially supported in

4.2

Page 9: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Mixed mode

Properties Backlog

ReleasesProject

Explorer

Status

GEF editor

Page 10: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

DEMO

Page 11: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Summary

Pros:

• Modernized architecture, True RCP

• Testability, Styling

Cons:

• Lack of support for mixed mode

• Many key components still rely on 3.x

• Bug 351363 “Migration of standard views”

Page 12: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

References

• Vogella tutorials

http://www.vogella.de/eclipse.html - Eclipse 4 Development

• Tom Schindl’s forward compatibility layer

http://tomsondev.bestsolution.at/2010/06/08/e4-a-forward-compat-layer

• http://wiki.eclipse.org/Eclipse4/RCP

• e4-forum

• e4-dev mailing list

• bugs

• slideshare for our slides

Page 13: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Other talks at EclipseCon 2012

Eclipse 4 API: The Path of Least Resistance talk: • Today at 14:15-15:00 (next talk) in Grand Ballroom BC

Eclipse 4's Modeled UI: Providing you with the Tools to Chart your own Graph

• Today at 16:15 - 17:00 in Regency Ballroom B

Eclipse 4 Meets CDO: Now You See It, and So Do They!• Tomorrow at 11:45 - 12:20 in Grand Ballroom BC

Eclipse 4.2: Tips on API best practices for a 3.x plugin running on both platforms

• Tomorrow at 13:30 - 14:15 in Grand Ballroom BC

Page 14: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Q&A

Questions - contact us:

fredrik.attebrant<at>find-out.se - Twitter: @ffxxoo

anders.forsell<at>find-out.se- Twitter: @aforsell

… or let’s meet in the bar…

… or the Eclipse4 BOF at 8:30 pm

Page 15: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

Time’s up…

Thank you!

Page 16: Experiences from porting a commercial RCP application to Eclipse 4.x

(c) FindOut Technologies AB 2012

License and acknowledgements

• This presentation is licensed under the Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)

http://creativecommons.org/licenses/by-nc-nd/3.0/