Eclipse 4 Migration Speaker

Ähnliche Dokumente
Eclipse 4 Migration Speaker

BVM-Tutorial 2010: BlueBerry A modular, cross-platform, C++ application framework

OSGI DECLARATIVE SERVICES

OSGI DECLARATIVE SERVICES

OSGI DECLARATIVE SERVICES

Java Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation

p^db=`oj===pìééçêíáåñçêã~íáçå=

NEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, Java Forum Stuttgart 2007

Ausgepackt! Erfahrungen aus meiner Einarbeitung in e4. Marc Teufel

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

p^db=`oj===pìééçêíáåñçêã~íáçå=

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

TomTom WEBFLEET Tachograph

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

ColdFusion 8 PDF-Integration

Creating OpenSocial Gadgets. Bastian Hofmann

Andreas Mösching Senior IT Architekt Hewlett-Packard (Schweiz) GmbH HP Banking Service Center Bern

Titelbild1 ANSYS. Customer Portal LogIn

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

EtherNet/IP Topology and Engineering MPx06/07/08VRS

Isabel Arnold CICS Technical Sales Germany z/os Explorer IBM Corporation

Die Datenmanipulationssprache SQL

Struts 2 Das Imperium schlägt zurück?

Restschmutzanalyse Residual Dirt Analysis

Tube Analyzer LogViewer 2.3

SAP Simple Service Request. Add-on for SAP Solution Manager by SAP Consulting SAP Deutschland SE & Co. KG

Technische Information. Toolset Software und Cosworth Geräte

WP2. Communication and Dissemination. Wirtschafts- und Wissenschaftsförderung im Freistaat Thüringen

Spring Dynamic Modules for OSGi Service Platforms

Eclipse User Interface Guidelines

How-To-Do. OPC-Server with MPI and ISO over TCP/IP Communication. Content. How-To-Do OPC-Server with MPI- und ISO over TCP/IP Communication

RCP Tutorial Th Letschert

New Forms of Risk Communication Workshop 6: Arzneimitteltherapiesicherheit (AMTS) Dr. Norbert Paeschke, BfArM

ANNEX A - PROTOCOL IMPLEMENTATION CONFORMANCE STATEMENT (NORMATIVE)

ELBA2 ILIAS TOOLS AS SINGLE APPLICATIONS

NOREA Sprachführer Norwegisch: Ein lustbetonter Sprachkurs zum Selbstlernen (German Edition)

Registration of residence at Citizens Office (Bürgerbüro)

Frontend Migration from JSP to Eclipse Scout

Wie Sie ein e3-plug-in in ein e4-plug-in migrieren. Aus Alt mach Neu

LiLi. physik multimedial. Links to e-learning content for physics, a database of distributed sources

GridMate The Grid Matlab Extension

Q-App: Backweigher light V3.0

Word-CRM-Upload-Button. User manual

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

ReadMe zur Installation der BRICKware for Windows, Version ReadMe on Installing BRICKware for Windows, Version 6.1.2

Praktikum Entwicklung Mediensysteme (für Master)

XML Template Transfer Transfer project templates easily between systems

CA_MESSAGES_ORS_HDTV_IRD_GUIDELINE

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

Die Alternative zum Web-Form Modell

Exercise (Part I) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

NVR Mobile Viewer for iphone/ipad/ipod Touch

SARA 1. Project Meeting

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Open Source. Legal Dos, Don ts and Maybes. openlaws Open Source Workshop 26 June 2015, Federal Chancellery Vienna

FEM Isoparametric Concept

Parameter-Updatesoftware PF-12 Plus

Hazards and measures against hazards by implementation of safe pneumatic circuits

FOXY ADVANCED PASSION OF MOVEMENT

Meeting and TASK TOOL. Bedienungsanleitung / Manual IQxperts GmbH. Alle Rechte vorbehalten.

Bayesian Networks. Syntax Semantics Parametrized Distributions Inference in Bayesian Networks. Exact Inference. Approximate Inference

Moderne App-Entwicklung am Beispiel waipu.tv

Electrical testing of Bosch common rail piezo injectors


Network premium POP UP Display

Username and password privileges. Rechteverwaltung. Controlling User Access. Arten von Rechten Vergabe und Entzug von Rechten DBS1 2004

Contao 4 Extension, from scratch!

From HiL to Test Vehicle:

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

DPM_flowcharts.doc Page F-1 of 9 Rüdiger Siol :28

Advanced Availability Transfer Transfer absences from HR to PPM

TracVision - Update der Tracking Frequenzen

ISO SPICE Erste Eindrücke

Release Notes BRICKware Copyright 23. March 2010 Funkwerk Enterprise Communications GmbH Version 1.0

General info on using shopping carts with Ogone

FEM Isoparametric Concept

Extract of the Annotations used for Econ 5080 at the University of Utah, with study questions, akmk.pdf.

EEX Kundeninformation

Abteilung Internationales CampusCenter

Application Frameworks

Softwareschnittstellen

Electrical testing of Bosch common rail solenoid valve (MV) injectors

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

ISO Reference Model

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Corporate Digital Learning, How to Get It Right. Learning Café

Einsatz einer Dokumentenverwaltungslösung zur Optimierung der unternehmensübergreifenden Kommunikation

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

Spring Dynamic Modules for OSGi Service Platforms

!! Um!in!ADITION!ein!HTML51Werbemittel!anzulegen,!erstellen!Sie!zunächst!ein!neues! Werbemittel!des!Typs!RichMedia.!!!!!!

Effizienz im Vor-Ort-Service

Martin Luther. Click here if your download doesn"t start automatically

Walter Buchmayr Ges.m.b.H.

GAUSS towards a common certification process for GNSS applications using the European Satellite System Galileo

Elektronische Identifikation und Vertrauensdienste für Europa

Transkript:

ECLIPSE 4 MIGRATION

Eclipse 4 Migration Speaker Dirk Fauth Software-Architect Rich Client Systeme Eclipse Committer Robert Bosch GmbH Franz-Oechsle-Straße 4 73207 Plochingen dirk.fauth@de.bosch.com www.bosch.com blog.vogella.com/author/fipro/ Twitter: fipro78 2

Eclipse 4 Migration Speaker Simon Scholz vogella GmbH Haindaalwisch 17a 22395 Hamburg simon.scholz@vogella.com www.vogella.com blog.vogella.com/author/simon/ Twitter: @simonscholz 3

MOTIVATION

Motivation No active development of 3.x since 2013 (Kepler) No bugfixes or improvements in the 3.x code base New programming model Model-Based Flat Hierarchies (POJOs) Dependency Injection Publish & Subscribe (EventBus) 5

TOOLS

Tools E34MigrationTooling http://opcoach.github.io/e34migrationtooling/ 7

Tools Model Spy e4 Tools http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/ 8

SOFT MIGRATION

Soft Migration Target Platform Updating the Target Platform to Eclipse 4 10

Soft Migration Product Configuration Feature based product configuration Add Eclipse 4 Features org.eclipse.e4.rcp org.eclipse.emf.ecore org.eclipse.emf.common Update the version of the org.eclipse.rcp feature Add -clearpersistedstate as Program Argument Only for the development time 11

Soft Migration Migration of ViewParts Class Hierarchy vs. POJO Override vs. Dependency Injection / Annotations view vs. e4view public class DescriptionView extends { ViewPart { Text description; } } @Override @PostConstruct public void createpartcontrol(composite parent) { parent.setlayout(new FillLayout()); description = new Text(parent, SWT.MULTI SWT.WRAP SWT.READ_ONLY); } @Override @Focus public void setfocus() {} @Override @PreDestroy public void dispose() {} 12

Soft Migration Migration of ViewParts Since Oxygen M3 DI support in E3 views 11

MIXED MODE

Mixed Mode e4 Legacy Model & Model Fragments Compatibility Layer creates an Eclipse 4 Legacy Application Model in the background (ID = xpath:/ or org.eclipse.e4.legacy.ide.application) Application Model can be extended via Model Fragments Model Fragments are registered via Extension Point org.eclipse.e4.workbbench.model 14

Mixed Mode Commands / Handler / MenuContributions Create Model Fragments ID = org.eclipse.e4.legacy.ide.application Feature Name commands handlers menucontributions Finding the correct feature name is not intuitive! 15

Mixed Mode Commands / Handler / MenuContributions 16

Mixed Mode Migration of Handlers Class Hierarchy vs. POJO Override vs. Dependency Injection / Annotations public class OpenDialogHandler extends { AbstractHandler implements IHandler { } } @Override @Execute public Object void execute(shell execute(executionevent s) { event) throws ExecutionException { MessageDialog.openInformation( HandlerUtil.getActiveShell(event), s, "Info", "Opened dialog via handler"); } return null; } 17

Mixed Mode Migration of Selection Handling setselection(object) ISelectionProvider IWorkbenchPartSite ESelectionService ISelectionListener via injection Provider View Consumer View Selection Listener auf Viewer @Inject @Optional @Named(IServiceConstants.ACTIVE_SELECTION) 18

Mixed Mode Migration of Selection Handling E4 Selection Listener @Inject @Optional void updatedescription( @Named(IServiceConstants.ACTIVE_SELECTION) List<Person> persons) { } // do something E4 Selection Listener (mixed mode) @Inject @Optional void updatedescription( @Named(IServiceConstants.ACTIVE_SELECTION) ISelection selection) { } if (selection instanceof IStructuredSelection) { IStructuredSelection isel = (IStructuredSelection) selection; updatedescription(list<person>) isel.tolist()); } 19

Mixed Mode Migration of Editors No technical difference between views and editors in Eclipse 4 Editors may contain unsaved state (MDirtyable) @Persist annotated methods are triggered by the Save Command Transfer the object that is edited Via dynamic (re-)injection Via MPart states transientdata vs. persistedstate public class PersonEditor { @Inject private MPart part;... part.getpersistedstate().get("..."); } @Persist public void save(mdirtyable dirtyable) {... dirtyable.setdirty(false); } 20

Mixed Mode Migration of Perspectives Eclipse 3.x Eclipse 4.x 21

Mixed Mode Migration of Perspectives In Eclipse 4 perspectives are only specified declaratively Implementing IPerspectiveFactory is not necessary Contributions in Mixed Mode via Snippets Model Fragment Element ID Model Fragment Feature Name = org.eclipse.e4.legacy.ide.application = snippets In pure Eclipse 4 a PerspectiveStack needs to be created, to which you can directly contribute via Model Fragment Parts are specified to the perspective within the Application Model No entries in the plugin.xml necessary 21

Mixed Mode Clean Up IMPORTANT!!! Remove all Eclipse 3 Extension Points from the plugin.xml that are not needed anymore! org.eclipse.ui.actionsets org.eclipse.ui.commands org.eclipse.ui.editors org.eclipse.ui.handlers org.eclipse.ui.menus org.eclipse.ui.perspectives org.eclipse.ui.perspectiveextensions org.eclipse.ui.views 22

Mixed Mode Singletons vs. Extension Points vs. OSGi DS Singleton == Anti-Pattern Tight coupling No mocking Not concurrency friendly Extension Points One-to-many Queried by ID Eclipse only Declarative Services Many-to-many Queried by type OSGi standard 23 http://www.eclipsezone.com/articles/extensions-vs-services/

MIGRATION FINISH

Migration Finish Create the e4 Application Model Create a new Application Model Move definitions from Model Fragments to the new Application Model Connect Model Fragments to the new Application Model Ensure that the IDs correspond with the Legacy Application Model 25

Migration Finish Remove the Compatibility Layer Ensure that no internal API is used Ensure that the PlatformUI singleton is not used General: Replace platform singletons with E4 services Remove legacy classes Application ApplicationActionBarAdvisor ApplicationWorkbenchAdvisor ApplicationWorkbenchWindowAdvisor Modify the hierarchy of the Activator or delete the Activator extends org.eclipse.core.runtime.plugin implements org.osgi.framework.bundleactivator 26

Migration Finish Remove the Compatibility Layer Remove the dependency to org.eclipse.ui org.eclipse.swt and org.eclipse.jface need to be added Remove Extension Point org.eclipse.core.runtime.applications In the Product Configuration Remove the feature org.eclipse.rcp Set the value for Application to org.eclipse.e4.ui.workbench.swt.e4application 27

Eclipse 4 Migration Further Information Der Weg in die neue Welt (German) Dirk Fauth & Simon Scholz Eclipse Magazin 6.15 https://jaxenter.de/tutorial-so-portieren- sie-eclipse-3-anwendungen-auf-eclipse- 4-39492 e4 cookbook migration guide Dirk Fauth & Simon Scholz https://github.com/fipro78/e4-cookbookmigration-guide 28

Further Information 29

Building Nano Services with OSGi 78