Migration Eclipse 3 -> 4



Documents pareils
Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

Projet de développement

Bases Java - Eclipse / Netbeans

Environnements de développement (intégrés)

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Celui qui vous parle. Yann Vigara

[Projet S9] Rédacteurs & Contributeurs Entité Rédacteurs Contributeurs Imededdine HOSNI Olivier MARTY. Validation du document Nom Date Visa

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Générer du code à partir d une description de haut niveau

SITE WEB E-COMMERCE ET VENTE A DISTANCE

BIRT (Business Intelligence and Reporting Tools)

ECLIPSE RCP. Introduction

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

Introduction MOSS 2007

Installation et prise en main

JOnAS Day 5.1. Outils de développements

Gestion de tests et tests de performance avec Salomé-TMF & CLIF

Configuration Interface for MEssage ROuting

TP Git. Author : Cedric Dumoulin Date : 2 déc Rev : 9 Dec. 2014

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

TP au menu «UI ANDROID»

Applications distribuées: le retour du client "riche"

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Nouveautés de Drupal 8. Léon

Livre Blanc WebSphere Transcoding Publisher

Intégration de l interface graphique de Ptidej dans Eclipse

Ingénierie des Modèles. Méta-modélisation

1 JBoss Entreprise Middleware

1. Installation d'un serveur d'application JBoss:

ECLIPSE ET PDT (Php development tools)

JOnAS 5. Serveur d application d

Iphone vs. Android. Mardi 17 Novembre 2009 Paris, la Défense. Xavier PARADON, Directeur Technique Valtech Training

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

FreeAnalysis. Schema Designer. Cubes

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Pratique de la prémétrologie à Orange Labs à travers l'utilisation de la plate forme de test en charge CLIF

Nouveautés joomla 3 1/14

Dafoe Présentation de la plate-forme UIMA

Nuxeo 5.4 : les nouveautés

Mercredi 05/10/2011. Forges logicielles. Olivier Berger, Telecom SudParis. Introduction Avant-propos À propos de COCLICO. Panorama des forges

Découvrir le CMS. et l utiliser dans une approche pro!

Présentation du Framework BootstrapTwitter

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

Etude de cas : PGE JEE V2

GRIDKIT: Pluggable Overlay Networks for Grid Computing

Le stockage local de données en HTML5

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Annexe : La Programmation Informatique

EXA1415 : Annotations

Un serveur d'archivage

Guide des Développeurs SITools2 V3

Joomla! Création et administration d'un site web - Version numérique

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

GANTTPROJECT. Julien TENDERO

Catalogue Formation «Vanilla»

LemonLDAP::NG. LemonLDAP::NG 1.2. Clément OUDOT RMLL 9 juillet 2012

Qu'est-ce que le BPM?

Maîtrisez la modernisation de votre patrimoine applicatif

D E S C R I P T I O N D E S É L É M E N T S C L E F S D ' U I M A

1 Actuate Corporation de données. + d analyses. + d utilisateurs.

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

TP1 : Initiation à Java et Eclipse

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Analyse comparative entre différents outils de BI (Business Intelligence) :

JOnAS 5 Enterprise OSGi javaee compliant

Fonctions avancées de document dans Word 2003 Options de collaboration dans Word 2003

Vérifier la qualité de vos applications logicielle de manière continue

Refonte front-office / back-office - Architecture & Conception -

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Le Framework.Net. Introduction. Pourquoi.Net?

Maarch V1.4

SQL Server Installation Center et SQL Server Management Studio

Migration vers le Libre

Sébastien Sougnez 24/12/ / s.sougnez@areaprog.com 2 ans et demi d expérience

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

1.3 Gestion d'une application

Un business model d éditeur open source

JASMINe. Outils de gestion et supervision d'infrastructure intergicielle.

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

Android 4 Les fondamentaux du développement d'applications Java

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Projet Active Object

09 nov Retour d'expérience sur l'implémentation d'une plateforme Drupal / Drupal Commerce

Stage : Développement du contenu Web

Avignon 2010 Université virtuelle. Mohamed Morchid & Mickael Meynaud

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

AngularJS pour une application d'entreprise

Web Application Models

Transcription:

Migration Eclipse 3 -> 4 Demo Camp Eclipse Toulouse, 28 novembre 2013 OPC 13 DEM PRE EC4 01 A OPCOACH 2013

E3 to E4 migration. I - I Agenda Différences entre Eclipse 3 et 4 Concepts d'eclipse 4 Pourquoi et quoi migrer? Quand migrer? Qui peut faire une migration? Comment s'organiser? OPCoach Olivier Prouvost, expert XML, Java, Eclipse SARL créée en juin 2009 http://www.opcoach.com Membre de la fondation Eclipse (Solution Member) OPCoach propose sur Eclipse : Formation sur mesure : RCP, E4, Modeling,... Expertise : réponse appel d'offre, architecture, audit, expertise à l'heure sur skype Twitter : @OPCoach_Eclipse, mailing liste sur la page d'accueil du site. Références Demo Camp Eclipse Toulouse Nov 2013 3

Image 1 Demo Camp Eclipse Toulouse Nov 2013 4

Les raisons du changement Les avantages d'eclipse 3.X / RCP : architecture basée sur OSGi outillage avancé (JDT, PDE, EMF,...) définition de point extensions open source and EPL license Les raisons du changement Les inconvénients d'eclipse 3.X : une souche logicielle de 8 ans d'age et plus beaucoup de points d'extensions et d'extensions dispersés une forte liaison au framework (héritage, dépendances...) API peu uniformes et beaucoup de singletons Les mécanismes d'injection ne sont pas implémentés Pas de séparation du contenant et de l'apparence (pas de renderer) Difficulté de 'styler' l'application Pas d'utilisation des services OSGi Concepts d'eclipse 4 Application model Injection Couche de compatibilité Le modèle d'application E4 C'est un modèle global qui rassemble les points d'extensions habituels : vue, perspective, menus (visuels) commande, handlers, key bindings (non visuels) Il décrit simplement la structure de l'ihm sans détailler son contenu Sa structure est définie par un méta modèle décrit en Ecore Il peut s'éditer avec un éditeur dédié Il peut être modifié et l'ihm est remise à jour Ce modèle est indépendant de l'affichage un 'renderer' spécifique permet de l'afficher (swt et javafx) Les classes référencées dans le modèle d'application sont alors des POJOS annotés Application model Demo Camp Eclipse Toulouse Nov 2013 5

Introduction / Principe Image 2 Application Model L'injection consiste à déléguer à un framework l'initialisation des valeurs des champs ou des paramètres L'injection fonctionne en utilisant un contexte qui contient les instances On utilise l'annotation @Inject (javax.inject) pour injecter les valeurs Elle peut s'appliquer sur un constructeur, une méthode ou un champ L'injecteur introspecte les classes pour gérer les artefacts qui ont une annotation @Inject 6 Demo Camp Eclipse Toulouse Nov 2013

Règle de base de l'injecteur E4 Image 3 Sample injected class Si un objet est modifié dans le contexte, il sera automatiquement réinjecté : dans le champ concerné dans la méthode le recevant en paramètre et la méthode sera réinvoquée Ceci permet de simplifier le code et de supprimer de nombreux listeners! Image 4 @Inject @Named @Optional Demo Camp Eclipse Toulouse Nov 2013 7

Contextes d'une application Context explorer Image 5 Contexts in application Le context explorer permet de consulter le contenu des contextes Il est disponible sur github : https://github.com/opcoach/contextexplorer Il sera très prochainement intégré dans les E4 tools (Cf bug #442543) Couche de compatibilité La couche de compatibilité utilise le moteur E4 pour exécuter une application E3 Elle fournit un modèle d'application par défaut : le LegacyIDE.e4.xmi Elle transforme les concepts E3 en concepts E4 : une extension de vue devient un MPart dans le modèle une extension de perspective devient une MPerspective etc... Eclipse Juno 4.2, Kepler 4.3 sont lancés avec la couche de compatibilité Lancer une application E3 sur E4 L'application ne doit avoir aucun code utilisant des 'internal' Il faut simplement créer une nouvelle launch configuration Et s'assurer que les plugins suivants soient présents : org.eclipse.equinox.ds org.eclipse.equinox.event org.eclipse.equinox.util org.eclipse.e4.ui.workbench.addons.swt org.eclipse.e4.tools.emf.liveeditor (éventuellement -> Alt Shift F9) C'est une première étape pour commencer un portage. 8 Demo Camp Eclipse Toulouse Nov 2013

Les raison d'une migration Depuis Juin 2012, Eclipse 4 est l'architecture officielle pour les nouveaux développements! Le modèle d'application est dynamique et UI agnostique (SWT, Java FX) L'injection est super cool et elle réduit le volume de code Le système d'événements d'e4 (IEventBroker) est très concis et adapté à l'injection Vous pourrez utiliser les CSS d'e4 Votre application va continuer à vivre et évoluer plusieurs années. Les nouveautés dans Eclipse seront développées sur cette architecture. Les conditions d'une migration Votre application doit être bien architecturée et propre! Il ne doit y avoir aucune utilisation de package 'internal' les UI et core plugins doivent être clairement séparés Les features doivent être clairement définies Les couplages avec E3 doivent être identifiés Les packages dans ui plugins doivent être bien nommés et identifiés : views, handlers... Quels types de migrations peut on effectuer? Migration totale Objectifs : tous les plugins sont portés sur E4 le modèle d'application est géré par votre application la couche de compatibilité n'est plus utilisée Conditions : votre application est bien architecturée : séparation core/ui les couplages avec E3 sont bien identifiés (extensions utilisées, code...) il n'y a pas de vues standard d'eclipse E3 : console, properties... Exemples d'applications candidates : application de simulation application frontal de BDD... Migration partielle Objectifs : seulement certaines features de votre application sont migrées chaque feature propose un fragment de modèle pour contribuer au modèle legacy la couche de compatibilité reste présente Conditions : l'application est architecturée en features bien isolées qui peuvent se migrer facilement vous envisagez de faire évoluer l'application Exemples d'applications candidates : Applications bien architecturées continuant à évoluer Demo Camp Eclipse Toulouse Nov 2013 9

Pas de migration Ne pas migrer est aussi une solution! Il peut y avoir plusieurs raisons pour ne pas migrer : votre application est ancienne et n'évoluera plus trop l'application n'est pas bien architecturée (il vaut mieux tout refaire!) l'application utilise trop de code E3 non encore migrable (console,...) vous n'avez pas de budget et la plate forme E3 vous suffit. Que faut il migrer? Que faut il migrer? Ce qu'il faut migrer : Tous les plugins UI Les plugins sans UI si on veut utiliser l'injection certains fragments de test les features (qui référencent les nouveaux plugins UI) Le fichiers pom parent (pour la target platform) Ce qu'il ne faut pas migrer : les plugins sans UI qui n'utilisent pas l'injection les fragments de plugin contenant du code natif ou de l'i18n certains fragments de tests les fichiers pom de chaque artifact Qu'est ce qu'e4 offre et n'offre pas par rapport à E3? Eclipse 3 n'est pas entièrement porté mais JFace fonctionne sans portage... Ce qu'on peut utiliser dans E4 tout le code SWT et JFace de base : treeviewer, table viewer, composites... les wizards et les pages de propriété, mais sans le point d'extension les pages de préference (cf hack : github opcoach training e4) la partie non IHM de l'update manager Ce qu'on ne peut pas utiliser facilement dans E4 : les vues standard : console, log, error! disponibles dans Luna la partie IHM de l'update manager l'aide en ligne le common navigator framework Quand migrer? Quand commencer la migration? Si on décide de migrer, on peut commencer dès maintenant : En préparant son application pour la migration rearchitecture si nécessaire suppression des 'internal' 10 Demo Camp Eclipse Toulouse Nov 2013

identifier les parties à migrer En se formant à cette nouvelle architecture manipuler l'application model et les fragments bien maitriser l'injection en commençant à migrer les features les plus simples Si on décide de migrer, comment procéder? Exemple de plan d'action Faire un état des lieux pour voir l'architecture : features, identifier les couplages e3... Utiliser Kepler (voire Luna Mx) et les dernières versions d'outils E4 Lancer l'application E3 avec la couche de compatibilité Pour chaque feature à migrer recopier les plugins à migrer et faire la migration par partie : vue, handler, wizard... créer un fragment de modèle ou un processor qui complète le legacy Une fois toutes les features migrées, créer le plugin eap avec l'application model intégrer les fragments de modèle dans le modèle global si nécessaire Utiliser git pour gérer votre code et pour créer vos branches! Qui doit se charger de la migration? Les acteurs de la migration Un équipe qui : connaît les concepts E4 a une vue globale de l'application à migrer a des compétences d'architecture logicielle est curieuse et motivée! :) A. Trucs et astuces Quelques astuces pour votre migration Vous cherchez une des nombreuses dépendances à utiliser pour votre migration : Cf : http://www.opcoach.com/2013/04/les-dependances-pour-utiliser-eclipse-4/ Votre application semble mal se comporter alors qu'elle marchait bien avant : effacer complétement le runtime workspace Le @PostConstruct n'est pas appelé : Vérifier si java.annotation est utilisé en required-bundle au lieu de import-package Cf : FAQ Eclipse 4 ( 4.1) : http://wiki.eclipse.org/eclipse4/rcp/faq 1 Bug 348123 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=348123 1 - http://wiki.eclipse.org/eclipse4/rcp/faq#why_isn.27t_my_.40inject-able.2f.40postconstruct_methods_being_injected.3f Demo Camp Eclipse Toulouse Nov 2013 11

D'autres liens pour vous aider Interview de Paul Webster sur les évolutions E4 : http://www.infoq.com/interviews/paul-webster-eclipse-platform-ui Les raisons de migrer selon Wim Jongman http://industrial-tsi-wim.blogspot.fr/2012/10/why-eclipse-e4-egg-laying-woolmilkpig.html Quelques tutorials de migration : from lars : http://www.vogella.com/articles/eclipse4migrationguide/article.html from eclipse source : http://developer.eclipsesource.com/tutorials/#eclipse4 Le forum Eclipse 4 : http://www.eclipse.org/forums/index.php/f/12 Mon email : olivier.prouvost@opcoach.com Pour récupérer cette présentation Inscrivez vous sur la mailing list -> http://www.opcoach.com Questions? 12 Demo Camp Eclipse Toulouse Nov 2013