Title: Eclipse une plateforme universelle pour outils intgrs
1Eclipseune plateforme universelle pour outils
intégrés
- Philippe Mulet
- Object Technology International, Inc.
- ParisLab, IBM France
2Sommaire
- Introduction
- La plateforme Eclipse
- Les extensions SDK JDT PDE
- Open Source
- Conclusion
3Introduction
4Dans la presse
- In its most significant announcement in
2001 IBM Corp yesterday donated a claimed 40
million of software to a new open source
application development community called
eclipse.org. - Computergram
- Suddenly IBM is cool
- slashdot post
5Eclipse, cest quoi ?
- Un ensemble doutils Java et une plateforme pour
bâtir des outils et des applications - Un environnement de développement Java
- un environnement pour lui-même
- Un projet Open Source
- outils permettant le développement OS
6Motivation
- Augmenter la productivité des développeurs
- infrastructure puissante et réutilisable
- intégration par construction
- interface utilisateur consistente
- apprentissage des nouveaux outils plus aisé
- Encourager linnovation
- moins de temps à réinventer la roue
- extensible via des plug-ins
- Garantir la fiabilité
- conception robuste pour lindustrie
- customizable via open source
- dirigé par une communauté ouverte
7En quoi cela vous concerne ?
- En tant que concepteur doutils
- plus besoin de réinventer la roue
- intégration automatique
- fertilisation croisée
- le middleware des outils
- En tant que développeur Java
- vous bénéficiez dun environnement de pointe, que
vous pouvez étendre et modifier - En tant quutilisateur
- vous pouvez assembler des outils livrés
séparément pour obtenir un environnement qui
réponde à vos besoins - une plateforme portable pour lindustrie
8La plateforme Eclipse
9Un peu dhistoire
- 1996 - VisualAge for Java
- implémenté en Smalltalk
- technologie propriétaire de repository Envy
- granularité de la méthode
- exécution du programme cible dans lenvironnement
- hot code replace
- API outil réduite pour applications clientes
- 1999 - VisualAge MicroEdition (VAME-SWING,
VAME-SWT) - implémenté purement en Java
- technologie de repository Rapier
- mécanisme de plug-ins
- pas dAPI publiée
10Constat
- Les différents outils sur le marché ne marchent
pas toujours bien ensemble - Les développeurs ont mieux à faire quintégrer
des outils - Les vendeurs doutils ont mieux à faire que de
réinventer la roue - Personne ne peut tout faire bien
- Mais, une plateforme ouverte et extensible
permettra à tous - daller plus loin
- daller plus vite
11Eclipse
- Une plateforme neutre du point de vue langage
- les outils Web manipulent Java, HTML, XML, JSPs,
langages de scripts, - Implémenté depuis la base sur des APIs publiées
- Mécanisme dextension à base de plug-ins
- Ouvert à différents repository (CVS in 1.0)
- prédominance du système de fichiers
- Attirer un maximum de fournisseurs doutils
- supporte les outils graphiques et ligne de
commande - fonctionne sur un large ensemble de systèmes
- Windows, Linux, ...
- Exploiter la technologie Java
- productivité, portabilité, popularité
12Vue densemble
Autre outil
Eclipse Platform
Help
Workbench
JFace
Java Development Tooling (JDT)
SWT
Votre outil
VCM
Workspace
Plug-inDevelopmentEnvironment(PDE)
Leur outil
Platform Runtime
Eclipse SDK
13Mécanisme dextension les Plug-ins
- Objectifs
- Tout est plug-in
- Plateforme runtime
- découverte de plug-ins au démarrage
- Virtuellement extensible à linfini
- activation et chargement paresseux des plug-ins
- tout plugin est décrit par un manifeste
(plugin.xml) - les interconnexions entre plug-ins sont
explicites - Extensibilité contrôlée
- définition de points dextension (boîtes noires)
- ajout de services, pas remplacement
- Recherche de classes efficace (lookup)
- les plug-ins déclarent leurs prérequis
- Support pour étendre des plug-ins existants
- fragments
Extensions
plug-in
Point dextension
Interface dextension
14Manifeste de plug-in
Identification du plugin, classe exécutable,
version
ltplugin nameMyPlugin" class"com.example.
Plugin ltrequiresgt ltimport
pluginorg.eclipse.core.resources"/gt ltimport
pluginorg.eclipse.ui "/gt lt/requiresgt
ltruntimegt ltlibrary nameyourApp.jar"/gt
lt/runtimegt ltextension-point nameExample"
idfoo"/gt ltextension point"org.eclipse.ui.pre
ferencepages"gt ltpage idcom.example.myprefpage
" icon"icons/image.gif" titleMy
title" classcom.example.mywizard"gt
lt/pagegt lt/extensiongt lt/plugingt
Liste des plug-ins prérequis. Extension dynamique
du classpath
Classpath local pour ce plug-in
Définition dun point dextension
Configuration dune extension de page de
préférences
15Eclipse SDK 1.0
- Workbench
- Gestion de resources
- Projets dotés de natures
- Modèle de programmation en équipe
- Synchronization du workspace
- Toolkit de Widgets
- Framework dinterface utilisateur
- Framework extensible dédition de texte
- Framework de déboguage
- Outils de développement Java
- Outils de développement de plug-ins
- Système daide
- Exemples
- Adaptateur VCM pour CVS
- Scriptage dinterface utilisateur
- NLS
- Latin Enablement (Group 1 locales)
- DBCS Enablement (Japanese, TC, SC, Korean) on Win
2000, 98, NT - Initial BiDi Enablement (Hebrew, Arabic) on Win
2000
16Eclipse SDK 2.0
- Enrichissement des outils de développement Java,
incluant - Support Hot code replace
- AST API jusqu à lexpression
- Nouveau builder incrémental, compatibilité 1.4
- Recherche opérationnelle partout
- CodeAssist et CodeSelect plus performants
- API team VCM
- Debug pour langages procéduraux
- Ressources distantes modulables
- Installation/Mise à jour automatisée
- Améliorations PDE
- Adaptateur WebDAV (sans versionage)
- Améliorations de localisation Unicode, GB 18030
- Améliorations du système daide
- Moteur de recherche Lucene
- Amélioration de laccessibilité
- Résolution des problèmes de performance et
mémoire - Progrès Linux Globalization et accessibilité
- Progrès du portage GTK 2.0
17Gestion des ressources
- Modèle du système de fichier local
- workspace
- projets
- répertoires, fichiers
- Notification des modifications
- deltas
- Natures
- builders transformation des resources
- Partage de resources (VCM)
- CVS, ClearCase
- extensible
18Pourquoi SWT?
- I have been using the Java IDEs. They have
major performance issues. I have seen similar
problems with other large swing apps having huge
memory footprints and being dog-slow at
everything. Where are the bottlenecks? Is the JVM
just a big memory eater, or could it be swing
that is at fault?" - --B. Madigan, member, programming theory
practice http//www.javaworld.com
19(No Transcript)
20SWTun toolkit pour interface utilisateur
- Un ensemble de widgets portables
- accéder aux widgets natifs avec une API
OS-indépendante - simple et efficace
- faire moins pour faire plus
- Plateformes supportées
- win32
- linux/motif, solaris/motif, aix/motif
- qnx/photon, linux/gtk,
- winCE, palmsOS
- En cours
- MacOS X
21Comparaison Swing/AWT et SWT
22JFaceun framework pour interface utilisateur
- Un framework UI bâti au-dessus de SWT
- viewers adaptateurs de modèles pour widgets SWT
- tree, tables, list, styled text, ...
- texte support dédition de texte structuré
- coloration, code assist, réconciliation
- frameworks de dialogue, préférence et wizard
- actions
23Workbench
- Une interface utilisateur commune
- plug-in workbench
- vues navigation, propriétés
- éditeurs edit files, e.g. Java Editor
- perspectives arrangement de vues et d éditeurs
- layouts mosaïque, empilées, détachées
- Etendu par contributions
- vues, éditeurs, pages de préférences, wizards,
24Workbench Composants standards
25Démo
26Les extensions SDK JDT PDE
27Java Development Tools
- Défis
- outils Java bâtis au-dessus dune infrastructure
fondée sur un système de fichiers - structure logique dun programme, au lieu de
fichiers et no. de ligne - préserver les fonctionalités existantes dans
VA/Java - Objectifs
- supporter la programmation exploratoire
- compilation incrémentale
- exécuter/déboguer du code avec erreurs de
compilations - historique au niveau de la méthode
- refactoring
- hot code replace
- rendre la programmation Java fun
- code assist, support de génération de code
generation
28JDT
- Ensemble de plug-ins pour services Java
- Extensible
- API JDT
- points dextension
- Prérequis pour WSAD, PDE
- Perspectives
- standard, hiérarchie, à la VAJ
- Modulable Core Debug UI
29JDT/Core
- Infrastructure (non UI)
- builder Java incrémental
- JCK 1.3a / 1.4
- Java Model
- navigation dans arbre déléments Java
- manipulation déléments Java
- hiérarchie de types
- CodeAssist et CodeSelect
- moteur de recherche précis, indexage
- évaluation de fragments de source
- formattage de source
- DOM Java
30JDT/UI
- Extensions du workbench spécifique à Java
- vue des packages
- vue des hiérarchies de type
- navigation dans arbre déléments Java
- hiérarchie de types
- vue Outline Java
- wizards pour créer des éléments Java
- éditeur Java
- coloration du source
- partitions dans le texte (codeAssist, codeSelect)
- granularité de la méthode
- annotations dans la marge
- refactoring
- comparaisons structurelles
31JDT/Debug
- Support Debug Java
- breakpoint, watchpoint,
- lancer un VM Java en mode Run/Debug
- sattacher à une VM active
- évaluation dexpression dans contexte dexécution
- page scrapbook
- hot code replace
32Les contributions des plug-ins Java
Java Perspective
Packages View Type Hierarchy View
Java Editor
Workbench
Wizards New Project,Package, Class, Interface,
...
PreferencesCode Formatter, coloring, templates
...
Java Nature
Core
Java Builder
Java Build Errors
points dextension
33Perspective Java
34PDE aide à la conception de plug-ins
- Extension du JDT
- Projet plug-in
- ajoute la notion de plug-ins sur des projets Java
- plug-ins, fragments, features
- vue du manifeste
- dépendances
- Automatise
- création
- maintenance
- import
- déboguage
- déploiement
35Démo
36Un projet Open Source
37Eclipse en Open Source
- Open Source depuis le 7 novembre 2001
- CPL (common public license)
- Processus dassemblage OS
- assemblages étagés nocturne ? intégration ?
stable - Développement OS signifie communication intense
- listes de mailing lists, groupe de news,
bugzilla - nous sommes devenus plus lent
- mais notre développement est devenu plus
transparent
38eclipse.org une méritocratie
- eclipse.org cimente une communauté qui contribue
- conseil de délégués
- définissent les projets
- nomment les chefs de projets
- examinent les projets
- chefs de projets
- gèrent le projet
- établissent les règles de conduite
- Chacun peut faire avancer Eclipse
- groupes de discussion
- design, code, documentation
- Responsabilité f (contribution)
39Direction dEclipse
- Conseil de délégués venant des sociétés engagées
à - utiliser la plateforme Eclipse en interne
- concevoir des offres commerciales
- contribuer et soutenir publiquement eclipse.org
- Régie par la Common Public License
- gratuité du code source
- droits de redistribution pour le monde entier
- permet lutilisation dans produits dérivés
- détails sur http//www.eclipse.org
40Whos on Board?
- Wide range of software vendors on Eclipse board
- Represent various development tool markets
September 2002
41Conclusion
42Status
- version 1.0 livrée
- version 2.0 en cours, builds disponibles sur
www.eclipse.org quotidiennement - 150 sociétés signataires
- 1200 développeurs
- gt 1.000.000 téléchargements
43Whos Shipping on Eclipse?
- Rational XDE Professional v2002 Java Platform
Edition - Rational Clearcase Plug-in for Eclipse Windows
- Instantiations CodePro Studio V1.1
- Parasoft Jtest 4.5a
- Versant enJin 2.2.3
- Merant PVCS Version Manager 6.8
- Serena ChangeMan DS
- Starbase StarTeam WebSphere Studio Integration
Version 1.0 - Telelogic Technologies North America, Telelogic
CM Synergy 6.2
44Whos Shipping on Eclipse?
- IBM uses eclipse for WebSphere Studio product
line - IBM WebSphere Studio Application Developer,
Version 4.0.3 - IBM WebSphere Studio Application Developer
Integration Edition for Windows, v4.1 - IBM WebSphere Studio Site Developer Advanced for
Windows, V4.0.3 - IBM WebSphere Studio Device Developer 4.0
- IBM WebSphere Development Studio for iSeries
V5R2 - IBM WebSphere Studio Enterprise Developer (in
beta)
September 2002
45Venez nous rejoindre