51
Octobre [email protected] LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique Logicielle : basé sur SmartTools Didier Parigot

Octobre 2010 [email protected] LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

Embed Size (px)

Citation preview

Page 1: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

Octobre 2010 [email protected]

LES SEANCES DE TRAVAUX PRATIQUES

La Plate forme

Le Développement JSE-EclipsePlugin de base :OGSi/SmartTools

Fabrique Logicielle : basé sur SmartTools

Didier Parigot

Page 2: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Support de TP en PDF/Site Téléchargement Supports jacques.bapst.home.hefr.ch/pr1/doc/eclipse3.5_premiers_pas.pdf jacques.bapst.home.hefr.ch/links/index.htm#IDE Développement en java avec eclipse, jean michel Doudoux

Obtenir JRE ou JDK http://Java.sun.com ---- choisir la version que l’on désire java.sun.com/javase/downloads/ ---- pour Java Standard

Edition http://www.oracle.com/technetwork/java/index.html

Obtenir Eclipse http://www.eclipse.org/downloads/index.php

Les plug-ins http://marketplace.eclipse.org/ http://eclipse−plugins.2y.net/eclipse/index.jsp

Page 3: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Les Travaux Pratiques : SOMMAIRE TP N°1 :Prise en Main Eclipse

Identité, Gestion des versions, Pourquoi Eclipse, Installation, Démarrage concepts clés, Architecture, Paramétrage Eclipse, Les Plug-ins, SmartTools dans Eclipse, mise en place, navigation.

Importation de Chat & Compilation

Demos chat et Géolist

TP N°2 :Création des composants Création de deux composants

TP N°3 : Exécution en environnement distribué Application en P2P

Page 4: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Prise en Main

Commencer avec Commencer avec EclipseEclipse

Page 5: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : IdentitéIDEIDE écrit en JAVA écrit en JAVA

Auteur : Auteur : IBMIBM

Open SourceOpen Source Eclipse est au cœur de WSW (Websphere Studio Workbench)Eclipse est au cœur de WSW (Websphere Studio Workbench)

ExtensibleExtensible grâce à son concept de grâce à son concept de modulemodule appelé couramment appelé couramment Plug-Plug-insins

Le noyau de la plate-forme est nommé Le noyau de la plate-forme est nommé RuntimeRuntime. .

Eclipse = Runtime + plug-insEclipse = Runtime + plug-ins

Supporte plusieurs plate-forme Supporte plusieurs plate-forme d'exécution (Windows, Linux, MacOS, d'exécution (Windows, Linux, MacOS, ...) ...)

Exécution rapideExécution rapide

Langage de développement : Langage de développement : Java,Java, C, C++, COBOL, Python, Perl, PHP and RubyC, C++, COBOL, Python, Perl, PHP and Ruby

Page 6: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse: Gestion des versions Chaque version est constituée d'un nombre plus ou moins important de type Chaque version est constituée d'un nombre plus ou moins important de type nommé nommé "Build« "Build« ,, on a :on a :

• La La "Nihtly Builds" "Nihtly Builds" : Version en cours de développement: Version en cours de développement

• La La "Integration Builds" "Integration Builds" assemblage de projets pour la réalisation de testsassemblage de projets pour la réalisation de tests

• La La "Stable Builds" "Stable Builds" : Version testée: Version testée

• La La "Release" "Release" : version diffusée et "fiable": version diffusée et "fiable"

Les Versions d’EclipseLes Versions d’Eclipse

-La toute première release est la 1.0 en Novembre 2001 -La toute première release est la 1.0 en Novembre 2001 -De 2004-2010-De 2004-2010

• 2004 : 3.0 (Eclipse 3.0)2004 : 3.0 (Eclipse 3.0)

• 2005 : 3.1 (Eclipse 3.1)2005 : 3.1 (Eclipse 3.1)

• 2006 : 3.2 (Callitos)2006 : 3.2 (Callitos)

• 2007 : 3.3 (Europa)2007 : 3.3 (Europa)

• 2008 : 3.4 (Ganymede)2008 : 3.4 (Ganymede)

• 2009 : 3.5 (Galileo)2009 : 3.5 (Galileo)

• 2010 : 3.6 (Helios)2010 : 3.6 (Helios)

•En 2011 En 2011 (Indigo)(Indigo)

Page 7: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Eclipse : Avantages Naturellement modulaire, conséquences :

Eclipse peut être utilisé par n’importe quel développement

On peut développer des fonctionnalités qui ne sont pas fournies en standard et les greffés à Eclipse (Concept des plug-ins)

Page 8: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:TP1:EclipseEclipse : Installation : Installation

ProcéduresProcédures : Installation très facile : Il suffit de décompresser : Installation très facile : Il suffit de décompresser l'archive d'Eclipse dans un dossier.l'archive d'Eclipse dans un dossier.

1. Télécharger Eclipse : 1. Télécharger Eclipse : http://www.eclipse.org/downloads/index.phphttp://www.eclipse.org/downloads/index.php

2. Décompresser le fichier obtenu dans le répertoire 2. Décompresser le fichier obtenu dans le répertoire eclipse eclipse de votre disque dur de votre disque dur (Par exemple (Par exemple c:\eclipsec:\eclipse)--------)--------NB : la désinstallation s’est la suppression de ce NB : la désinstallation s’est la suppression de ce répertoirerépertoire

3. Lancer 3. Lancer eclipse.exe eclipse.exe qui se trouve dans le répertoire eclipse.qui se trouve dans le répertoire eclipse.

Pré-requisPré-requis1.Télécharger Java (voir 1.Télécharger Java (voir Voir http://Java.sun.com)Le fichier qui nous concerne se nomme :Le fichier qui nous concerne se nomme :

- dans le cas de Windows : jdk-6u14-windows-i586.exe (73,5 Mo)- dans le cas de Windows : jdk-6u14-windows-i586.exe (73,5 Mo)

- dans le cas de Linux : jdk-6u14-linux-i586.bin (77 Mo)- dans le cas de Linux : jdk-6u14-linux-i586.bin (77 Mo)

2. Installer JavaIl s'agit dans les deux cas d'un installateur auto-extractible : après le téléchargement il suffit Il s'agit dans les deux cas d'un installateur auto-extractible : après le téléchargement il suffit de le lancer et de suivre les instructions qui s'affichent.de le lancer et de suivre les instructions qui s'affichent.

3. Vérifier que l’installation est correct : Sous Windows via la console de 3. Vérifier que l’installation est correct : Sous Windows via la console de commande, taper : java –version commande, taper : java –version

Page 9: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : démarrage (1)

• Lorsque vous lancer eclipse vous obtenez l’écran ci-dessous Lorsque vous lancer eclipse vous obtenez l’écran ci-dessous

•Commentaires :Commentaires :WorkSpace signifie espace de travail. C’est un répertoire dans lequel sont regroupés les projets de développement que vous créés. Cette écran vous invite : Soit à accepter le répertoire de travail qu’il affiche par défaut, soit à dérouler le combo pour choisir un répertoire de travail si vous n’êtes pas à votre premier démarrage d’éclipse, soit d’en créer un (en cliquant sur Browse.. , puis choix de l’emplacement et click du bouton « nouveau dossier »)

Page 10: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : démarrage (2)NBNB : Pour des Questions d’ordre pratique : Pour des Questions d’ordre pratique 1.1.C’est bon de se fabriquer un emplacement idéal qui regroupe les C’est bon de se fabriquer un emplacement idéal qui regroupe les projets JAVA (emplacement des données), ainsi, projets JAVA (emplacement des données), ainsi, il faut se créer un il faut se créer un Workspace différent de celui proposé par défaut par Eclipse qui est Workspace différent de celui proposé par défaut par Eclipse qui est généralement de la forme c:\documents and settings\UserName\généralement de la forme c:\documents and settings\UserName\WorkSpace .WorkSpace .

2. Pour simplifier le lancement d’Eclipse, il faut créer un raccourci 2. Pour simplifier le lancement d’Eclipse, il faut créer un raccourci d’éclipse sur le bureau. d’éclipse sur le bureau. Il ne s’agit pas de copier le fichier exécutable Il ne s’agit pas de copier le fichier exécutable sur le bureau.sur le bureau.

Le WorkspaceLe Workspace

Le Workspace Le Workspace contient des contient des projets, un dossier projets, un dossier de méta-donnéesde méta-données

3.3. Exemple Exemple Le workspace nommé « workspace1 » contient « Le workspace nommé « workspace1 » contient « .metadata.metadata » et projet  » et projet testtest

Page 11: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : concepts clés•Les vuesLes vues

•PerspectivePerspective

Plan de Travail ou Workbench

•EditeurEditeur(ici)

Page 12: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : concepts clés WorkbenchWorkbench : : C’est le bureau, c’est l’interface qui s’ouvre dès qu’on lance Eclipse. Il fournit les éléments de l’ergonomie au travers des vues , des perspectives, et des éditeurs.

PerspectivesPerspectives : : c’est une organisation des vues qui permet de travailler sur un thème donné. On a par exemple la perspective Ressource qui permet de voir tout ce que contient le workspace, la perspective Java pour développer en Java, la perspective CVS pour gérer ses repositories,… Ces perspectives sont accessibles via la petite barre d'outils qui se trouve en haut à droite (par défaut)

VueVue : :C’est une fenêtre de travail; navigation, édition java, package, projet, …

Editeur : Editeur : il permet de visualiser mais aussi de modifier le contenu d'un élément. Un éditeur peut contenir plusieurs éléments, chacun étant identifié par un onglet.

Page 13: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Plate-forme Eclipse : ArchitecturePlug-insPlug-ins

Eclipse= Runtime + Plug-insEclipse= Runtime + Plug-ins

SWTSWT

•SWTSWT est une bibliothèque qui sert à construire des interfaces graphiques en Java, au même titre que les bibliothèques est une bibliothèque qui sert à construire des interfaces graphiques en Java, au même titre que les bibliothèques AWTAWT et et SwingSwing..•JFaceJFace est une surcouche de est une surcouche de SWTSWT, d’avantage orientée objet, qui amène de plus un modèle , d’avantage orientée objet, qui amène de plus un modèle MVCMVC et des fonctionnalités et des fonctionnalités supplémentaires.supplémentaires.•AntAnt est l’outil d’automatisation de tâche répétitive tout au long du cycle de vie de l’application. est l’outil d’automatisation de tâche répétitive tout au long du cycle de vie de l’application.•CVSCVS est un outil de développement collaboratif. est un outil de développement collaboratif.

Page 14: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Prise en Main

Les pluginsLes plugins

Page 15: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : Installation Plug-in

Un plug-in est un module d’extension. C’est une brique logiciel qui vient compléter Un plug-in est un module d’extension. C’est une brique logiciel qui vient compléter un logiciel hôte pour lui apporter de nouvelles fonctionnalités. un logiciel hôte pour lui apporter de nouvelles fonctionnalités.

Les Plugins sont généralement distribués sous forme de fichiers ZIP qui peuvent Les Plugins sont généralement distribués sous forme de fichiers ZIP qui peuvent contenir plusieurs fichiers mais où l'on trouve pratiquement toujours un ou contenir plusieurs fichiers mais où l'on trouve pratiquement toujours un ou plusieurs fichiers JAR ainsi qu'un fichier XML important nommé plugin.xml qui plusieurs fichiers JAR ainsi qu'un fichier XML important nommé plugin.xml qui décrit le composant et qui sera interprété par Eclipse lors de son lancement. décrit le composant et qui sera interprété par Eclipse lors de son lancement.

Comment installer un plug-ins dans Eclipse ? Comment installer un plug-ins dans Eclipse ? 1.1. Certains Plugins disposent d'une URL permettant de les installer directement à Certains Plugins disposent d'une URL permettant de les installer directement à

l'aide du gestionnaire de mise à jour (Update Manager) d'Eclipse.l'aide du gestionnaire de mise à jour (Update Manager) d'Eclipse.

Dans ce cas faire : Dans ce cas faire : Help >Software Install New Software...Help >Software Install New Software...

Ajouter l’url dans le champ word with, et cliquer sur “Add…” , Ajouter l’url dans le champ word with, et cliquer sur “Add…” , sélectionner le composant à installer et cliquer sur “Next” sélectionner le composant à installer et cliquer sur “Next”

2.2. Les Plugins ne disposent pas d'un environnement adapté au Les Plugins ne disposent pas d'un environnement adapté au gestionnaire de mise à jour .gestionnaire de mise à jour .

Il suffit généralement de décomprimer le fichier ZIP dans le sous Il suffit généralement de décomprimer le fichier ZIP dans le sous répertoire \plugins\ qui se trouve en dessous du répertoire \eclipse\ à répertoire \plugins\ qui se trouve en dessous du répertoire \eclipse\ à l'endroit où l'on a installé le logiciel Eclipsel'endroit où l'on a installé le logiciel Eclipse. Le Plugin sera . Le Plugin sera automatiquement chargé et activé lors du prochain démarrage d'Eclipse. automatiquement chargé et activé lors du prochain démarrage d'Eclipse.

NB : Attention à bien conserver l'arborescence des fichiers lors de la NB : Attention à bien conserver l'arborescence des fichiers lors de la décompression.décompression.

Page 16: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : La fabrique logicielle SmartTools (1)

•Installation de SmartToolsInstallation de SmartToolsPrérequis : On doit connaitre où se trouve le feature smartTool. Dans notre cas Prérequis : On doit connaitre où se trouve le feature smartTool. Dans notre cas il se trouve dans la clé USB (CleUSB) qui est un dossier de notre disque ou un il se trouve dans la clé USB (CleUSB) qui est un dossier de notre disque ou un dossier partager de notre intranet. On suppose qu’éclipse est lancédossier partager de notre intranet. On suppose qu’éclipse est lancé

Action 1: Help > Install Software ---On obtient l’écran nommé Action 1: Help > Install Software ---On obtient l’écran nommé (1)(1)

Action 2 Action 2 : : Cliquer sur le Cliquer sur le bouton « Add.. » Vous obtenez bouton « Add.. » Vous obtenez l’écran nommé l’écran nommé (2)(2)

11

22

Action 3 Action 3 : : cliquez sur le cliquez sur le bouton « archive… » pour bouton « archive… » pour sélectionner allez cherchez le sélectionner allez cherchez le feature dans « CleUSB » ---feature dans « CleUSB » ---Voir suiteVoir suite

Page 17: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Action 4 : Action 4 : Sélectionnez le zip Sélectionnez le zip SmartTool (la version 1.6.2) SmartTool (la version 1.6.2) et cliquez sur « ouvrir ». et cliquez sur « ouvrir ». (4)(4)

44

55

Action 5: Saisir un nom Action 5: Saisir un nom significatif(SmartTools) et significatif(SmartTools) et cliquez sur « OK ». cliquez sur « OK ». (5)(5)

Note Important Note Important : Ceci ne permet : Ceci ne permet que d’ajouter ce chemin dans la que d’ajouter ce chemin dans la liste des sites préférés . Pour liste des sites préférés . Pour continuer cliquez sur le lien continuer cliquez sur le lien « « Available software SitesAvailable software Sites » de  » de l’écran available software pour l’écran available software pour selectionner le chemin du feature.selectionner le chemin du feature.

TP1:Eclipse : La fabrique logicielle SmartTools (2)

Page 18: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

66

Action 6: Action 6: Dérouler Dérouler «Uncategorized» voir «Uncategorized» voir (6)(6) puis puis cohez la feature «SmartTools» cohez la feature «SmartTools» puis cliquez sur « Next »puis cliquez sur « Next »

AperçuAperçu

La suite c’est le lancement La suite c’est le lancement effectif de l’installation (voir effectif de l’installation (voir slide suivant)slide suivant)

TP1:Eclipse : La fabrique logicielle SmartTools (3)

Page 19: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Accepter les Accepter les termes de la termes de la licencelicence

Cliquez sur Cliquez sur ce bouton ce bouton pour pour terminerterminer

TP1:Eclipse : La fabrique logicielle SmartTools (4)

Page 20: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

La barre d’outil La barre d’outil d’eclipse a bel et bien d’eclipse a bel et bien changé. On peut voir la changé. On peut voir la présence de l’icône présence de l’icône SmartTools.SmartTools.

On a bel et bien les plug-On a bel et bien les plug-ins SmartTool dans la vue ins SmartTool dans la vue des plug-ins. Il y a dans des plug-ins. Il y a dans cette vue bien d’autres cette vue bien d’autres plug-ins.plug-ins.

TP1:Eclipse : La fabrique logicielle SmartTools (5)

Page 21: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse -Lancer Eclipse via la console

Nous allons lancer eclipse via la console. Pour cela, il suffit d’aller Nous allons lancer eclipse via la console. Pour cela, il suffit d’aller dans les accessoires de Windows puis de cliquer sur l’invite du dos.dans les accessoires de Windows puis de cliquer sur l’invite du dos.

Une fois la session dos lancée, accéder au répertoire eclipse puis Une fois la session dos lancée, accéder au répertoire eclipse puis taper la commande : eclipse.exe –console  (Voir l’Ecran ci-dessous).taper la commande : eclipse.exe –console  (Voir l’Ecran ci-dessous).

Le slide suivant vous donne le résultat obtenu.Le slide suivant vous donne le résultat obtenu.

Page 22: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse -Lancer Eclipse via la console

ObservationsObservations: Nous observons que c’est OSGi qui exécute Eclipse. Cliquons sur : Nous observons que c’est OSGi qui exécute Eclipse. Cliquons sur l’écran console pour l’amener en premier plan et lui passer quelques commandes.l’écran console pour l’amener en premier plan et lui passer quelques commandes.

Essayons les commandes : ss (qui nous donne les bundles actifs), Help (pour Essayons les commandes : ss (qui nous donne les bundles actifs), Help (pour l’aide), etc.l’aide), etc.

Note :Note : Un bundle est un composant au sens OSGi Un bundle est un composant au sens OSGi

Page 23: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : préparation environnement Action 1 Action 1 : : Windows > PreferencesWindows > Preferences Ecran des préférences à Ecran des préférences à

paramétrerparamétrer

NB NB : : Les options configurables sont très Les options configurables sont très nombreuses et il est toujours possible, par nombreuses et il est toujours possible, par domaine, de revenir à la configuration par domaine, de revenir à la configuration par défaut grâce au bouton défaut grâce au bouton « Restore « Restore Defaults ».Defaults ».

Nous allons nous intéresser beaucoup plus à Nous allons nous intéresser beaucoup plus à la configuration liée à cette formation.la configuration liée à cette formation.

Page 24: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : préparation environnement (1)Ecran des préférences à Ecran des préférences à paramétrerparamétrer

Paramétrages à EffectuerParamétrages à Effectuer

Page 25: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : préparation environnement (2)

Nous allons commencer par l’importation des Fichiers CleanUp.xml et Nous allons commencer par l’importation des Fichiers CleanUp.xml et formatter.xmlformatter.xml

Action 1 : Action 1 : Faire Faire Windows > PreferencesWindows > Preferences

Action 2 : Action 2 : Choisir Choisir Java > code style Java > code style

(voir les options clean et formatter)(voir les options clean et formatter)

Cliquez sur le bouton Cliquez sur le bouton « import » pour importer le « import » pour importer le fichier CleanUp (1).fichier CleanUp (1).

11

22

Vous obtenez l’écran (2), qui Vous obtenez l’écran (2), qui vous donne la possibilité d’aller vous donne la possibilité d’aller chercher le fichier cleanUp.xml chercher le fichier cleanUp.xml qui se trouve dans le répertoire qui se trouve dans le répertoire « Feature » du dossier « Feature » du dossier « logiciels » de notre « CleUSB » « logiciels » de notre « CleUSB »

La même procédure est utilisée La même procédure est utilisée pour importer le fichier pour importer le fichier « Formatter ».« Formatter ».

Page 26: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse : préparation environnement (3)Les paramétrages généraux se feront ainsi qu’il suit :Les paramétrages généraux se feront ainsi qu’il suit :

On doit permettre On doit permettre l’affichage des l’affichage des numéros de ligne numéros de ligne dans l’éditeurdans l’éditeur

On doit paramétrer On doit paramétrer cet option « spelling cet option « spelling à disable » c’est-à-à disable » c’est-à-dire décocher dire décocher « Enable ».« Enable ».On doit cocher On doit cocher l’option « Build l’option « Build Automatique » et Automatique » et ensuite on doit ensuite on doit choisir l’encodage choisir l’encodage « UTF- 8 »« UTF- 8 »

Page 27: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse - préparation environnement (4)

NB : Questions pratiquesNB : Questions pratiquesC’est beau de se préparer un environnement de travail, mais ce n’est pas gaie de C’est beau de se préparer un environnement de travail, mais ce n’est pas gaie de reprendre lorsqu’on en a besoin sur un autre poste de travail. Pour éviter cette reprendre lorsqu’on en a besoin sur un autre poste de travail. Pour éviter cette reprise, on doit sauvegarder son environnement de travail ou plutôt on doit reprise, on doit sauvegarder son environnement de travail ou plutôt on doit l’exporter. l’exporter. Le fichier obtenu est un «.epf »Le fichier obtenu est un «.epf » Exporter les préférencesExporter les préférences

Fichier > Export > General > Preferences Fichier > Export > General > Preferences (( Export allExport all)) Importer les préférencesImporter les préférencesFichier > Import > General > Preferences Fichier > Import > General > Preferences ((Import allImport all))

11

22

3344

Page 28: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse -préparation environnement (5)

Autres configurations standardsAutres configurations standards

Page 29: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse -Importation des sources sous eclipses

Dans ce volet nous allons importer les sources qui existent dans Dans ce volet nous allons importer les sources qui existent dans CleUSB dans l’environnement Eclipse. CleUSB dans l’environnement Eclipse. •Action 1 : Fichier > import ---> on obtient l’écran Action 1 : Fichier > import ---> on obtient l’écran (1) (1)

11 •Action2 : Action2 : Dérouler l’option «General» Dérouler l’option «General» puis sélectionner «Existing Projects into puis sélectionner «Existing Projects into Workspace » puis cliquez sur le bouton Workspace » puis cliquez sur le bouton « suivant »« suivant »

•Action 3 : Dans l’écran que vous Action 3 : Dans l’écran que vous obtenez sélectionnez le bouton obtenez sélectionnez le bouton Brower pour rechercher le fichier à Brower pour rechercher le fichier à importer. Les sources à importer sont importer. Les sources à importer sont dans : dans :

« …\CleUSB\source\workSapce ».« …\CleUSB\source\workSapce ».

Voir l’écran d’import suivant pour Voir l’écran d’import suivant pour comprendre la suite. comprendre la suite.

Page 30: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse Importation des sources sous eclipses

Cette Zone contient l’ensemble des Cette Zone contient l’ensemble des projets présents dans le dossier à projets présents dans le dossier à importer. Conséquence on doit tout importer. Conséquence on doit tout désélectionner et ne cocher que ce qu’on désélectionner et ne cocher que ce qu’on veut importer.veut importer.

•Action 4 : Action 4 : Cliquez sur le bouton Cliquez sur le bouton « Finish » pour terminer l’importation« Finish » pour terminer l’importation

Nous importons dans le cas présent Nous importons dans le cas présent « chat », et « GWT ». Les éléments à « chat », et « GWT ». Les éléments à prendre sont :prendre sont :

-gwt-gwt

-inria.smartTools.chat.gwt-inria.smartTools.chat.gwt

-inria.smartTools.chat.starter-inria.smartTools.chat.starter

-inria.smartTools.chat.swing-inria.smartTools.chat.swing

Le résultat AttenduLe résultat Attendu

Voir la suiteVoir la suite

Page 31: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse :Présentation d’une source Importée

Lancement de la Lancement de la Compilation du Compilation du code importé.code importé.

Résultats de la Résultats de la compilation voir bas compilation voir bas de l’écran doit être de l’écran doit être SUCCESSFULSUCCESSFUL

Sources Sources générée générée

CompilatioCompilation GWTn GWT

AA

AA

-Je déplace « buildST.xml » dans la vue « Ant » pour la -Je déplace « buildST.xml » dans la vue « Ant » pour la compilation. compilation. -Une fois buildST.xml dans la vue Ant, Pointer le projet Une fois buildST.xml dans la vue Ant, Pointer le projet et appuyer sur F5 pour le rafraichissement. Puis lancer et appuyer sur F5 pour le rafraichissement. Puis lancer la compilation par (B)la compilation par (B)-Pour Obtenir la perspective Ant faire :Pour Obtenir la perspective Ant faire :

Windows > Show view > AntWindows > Show view > Ant

BB

Page 32: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP1:Eclipse –Démonstation Cas Chat

•Action 1 : Action 1 : Ouvrez un terminal et lancez le script WinRunChat1.bat Ouvrez un terminal et lancez le script WinRunChat1.bat et WinRunChat2.bat . Ces Deux invites Dos s'ouvrent et exécutent et WinRunChat2.bat . Ces Deux invites Dos s'ouvrent et exécutent deux plateformes LogNet et PON en parallèle. Chacun de ces deux plateformes LogNet et PON en parallèle. Chacun de ces plateformes ont lancé un composant permettant de démarrer des plateformes ont lancé un composant permettant de démarrer des composants chat.composants chat.

L’exécutable de chat se trouve dans /CleUSB/TP1/L’exécutable de chat se trouve dans /CleUSB/TP1/

Page 33: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Démonstation : Cas Chat

•Démarre chat1Démarre chat1 •Démarre chat2Démarre chat2

•Console OSGiConsole OSGi

Page 34: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Démonstation : Cas ChatSuivre les instructions ci-dessous Suivre les instructions ci-dessous pour l’exécution de chat. Pour obtenir pour l’exécution de chat. Pour obtenir ces instructions voir : ces instructions voir : /CleUSB/TP1/Chat1.1/Chat/Index.html/CleUSB/TP1/Chat1.1/Chat/Index.html

Démarrer Chat1 :Démarrer Chat1 : Démarrer Chat2 :Démarrer Chat2 :

Page 35: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TRAVAUX PRATIQUE 2 : Création des composants -Enoncé

Création des composants

Exécution des composants Créés -Sous une même JVM

Page 36: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP2 : Création des composants -Enoncé

Le présent TP, consiste : Le présent TP, consiste :

1.1.A créer deux composants nommés « expediteur » et A créer deux composants nommés « expediteur » et « recepteur ».« recepteur ».

« « expediteur expediteur » Possède le service « message », il est chargé au travers une » Possède le service « message », il est chargé au travers une interface swing de saisie /Envoie, d’envoyer les messages au interface swing de saisie /Envoie, d’envoyer les messages au « recepteur », « recepteur », qui lui à travers une interface swing d’affichage, reçois et édite le message qui lui à travers une interface swing d’affichage, reçois et édite le message envoyé par l’expéditeur.envoyé par l’expéditeur.

PrécisionsPrécisions

-L’interface d’envoie est constitué d’une zone de Saisie et d’un bouton -L’interface d’envoie est constitué d’une zone de Saisie et d’un bouton d’envoie (send ou envoyer)d’envoie (send ou envoyer)

2. Une fois les deux composants créé, nous devons les 2. Une fois les deux composants créé, nous devons les exécuter :exécuter : A) A) D’abord sur la même JVMD’abord sur la même JVM

B) Ensuite sur les JVM différentsB) Ensuite sur les JVM différents

Page 37: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP2 : Création des composants (1)

Etape 1 Etape 1 : : Créer les composants « expediteur » et « recepteur » Créer les composants « expediteur » et « recepteur »

•File > New >OtherFile > New >Other1.1.Sélectionner « New SmartTools Sélectionner « New SmartTools

Component » puis cliquer sur « Next » (voir Component » puis cliquer sur « Next » (voir 11).).

2.2.Saisir le nom du composant et cliquer sur Saisir le nom du composant et cliquer sur « Finish » (Voir « Finish » (Voir 22))

11

22

Page 38: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2: Création des composants (2)

33

Nous avons, les Nous avons, les deux composants deux composants créés « expediteur » créés « expediteur » et « recepteur » et « recepteur »

Les deux composants créés, nous allons les Les deux composants créés, nous allons les compiler et les doter des services et métierscompiler et les doter des services et métiers

Page 39: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (3)

1. Préparation du composant « expediteur »1. Préparation du composant « expediteur »Action1 : Aller dans les sources de « expediteur » et mettre à Action1 : Aller dans les sources de « expediteur » et mettre à jour la classe « Activator »jour la classe « Activator »

Changer : Changer : « ComponentContaine« ComponentContainer » en r » en « ExpediteurContainer« ExpediteurContainer » »

Remplacer : Remplacer : « Component » « Component »

par par

« Expediteur »« Expediteur »

Action 2 Action 2 : Aller dans les sources de « expediteur.cdml » et mettre à : Aller dans les sources de « expediteur.cdml » et mettre à jour expediteur.cdml, et implémenter le service « message »jour expediteur.cdml, et implémenter le service « message »

Page 40: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (3-2)

1. Préparation du composant 1. Préparation du composant « expediteur »« expediteur »Action 2 Action 2 : Aller dans les sources de « expediteur.cdml » et mettre à jour : Aller dans les sources de « expediteur.cdml » et mettre à jour

expediteur.cdml, et implémenter le service « message »expediteur.cdml, et implémenter le service « message »

<output name="message" method="message“ <output name="message" method="message“ doc="update doc="update Label">Label">

<attribute name="message" doc="" <attribute name="message" doc="" javatype="java.lang.String" />javatype="java.lang.String" />

</output></output>Nous implémentons le service d’expédition, il s’agit de l’envoie donc Nous implémentons le service d’expédition, il s’agit de l’envoie donc outputoutput

Page 41: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (4)

1. Préparation du composant « expediteur »1. Préparation du composant « expediteur »Action 3 : implémentation du métier de l’expéditeurAction 3 : implémentation du métier de l’expéditeurNous allons implémenter Nous allons implémenter l’interfacel’interface

Swing d’envoie de Message.Swing d’envoie de Message.L’interface à droite présente le code L’interface à droite présente le code métier de l’expéditeur. Copier le contenu métier de l’expéditeur. Copier le contenu du fichier « /USB/TP2/expediteur.text » du fichier « /USB/TP2/expediteur.text » et remplacer celui que vous avez en et remplacer celui que vous avez en présence. présence.

Mise à jour ActivatorMise à jour ActivatorFaites la même chose pour le fichier Faites la même chose pour le fichier « Activator » : copier le contenu du fichier « Activator » : copier le contenu du fichier « /USB/TP2/Activator_E.txt » pour mettre « /USB/TP2/Activator_E.txt » pour mettre à jour le fichier que vous avez. à jour le fichier que vous avez.

NBNB : : Voir le contenu de la façadeVoir le contenu de la façade

«Expediteurfacade.java» de «Expediteurfacade.java» de generateur/srcgenerateur/src. La . La facadefacade implémente message et hérite de implémente message et hérite de expediteurexpediteur donc message doit être déclaré donc message doit être déclaré abstraite dans abstraite dans expediteurexpediteur . .

Page 42: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (3)

1. Préparation du composant « recepteur » 1. Préparation du composant « recepteur » Action1 : Aller dans les sources de « recepteur » et mettre à Action1 : Aller dans les sources de « recepteur » et mettre à jour la classe « Activator »jour la classe « Activator »

Changer : Changer : « ComponentContaine« ComponentContainer » en r » en « RecepteurContainer « RecepteurContainer »»

Action 2 Action 2 : Aller dans les sources de « Recepteur.cdml » et mettre à : Aller dans les sources de « Recepteur.cdml » et mettre à jour Recepteur.cdml, et implémenter le service « message »jour Recepteur.cdml, et implémenter le service « message »

Remplacer : Remplacer : « Component » « Component »

par par

« Recepteur »« Recepteur »

Page 43: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (3-2)

1. Préparation du composant 1. Préparation du composant « expediteur »« expediteur »Action 2 Action 2 : Aller dans les sources de « expediteur.cdml » et mettre à jour : Aller dans les sources de « expediteur.cdml » et mettre à jour

expediteur.cdml, et implémenter le service « message »expediteur.cdml, et implémenter le service « message »

Nous implémentons le service de reception, il s’agit de la Nous implémentons le service de reception, il s’agit de la reception donc inputreception donc input

Page 44: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Création des composants (4)

1. Préparation du composant « recepteur »1. Préparation du composant « recepteur »Action 3 : implémentation du métier de recepteurAction 3 : implémentation du métier de recepteurNous allons implémenter Nous allons implémenter l’interfacel’interface

Swing reception de Message.Swing reception de Message.L’interface à droite présente le code L’interface à droite présente le code métier de recepteur. Copier le contenu métier de recepteur. Copier le contenu du fichier « USB/TP2/recepteur.text » et du fichier « USB/TP2/recepteur.text » et remplacer celui que vous avez en remplacer celui que vous avez en présence. présence.

Mise à jour ActivatorMise à jour ActivatorFaites la même chose pour le fichier Faites la même chose pour le fichier « Activator » : copier le contenu du fichier « Activator » : copier le contenu du fichier « USB/TP2/Activator_R.txt » pour mettre à « USB/TP2/Activator_R.txt » pour mettre à jour le fichier que vous avez. jour le fichier que vous avez.

NBNB : : Voir le contenu de la façadeVoir le contenu de la façade

«Expediteurfacade.java» de «Expediteurfacade.java» de generateur/srcgenerateur/src. La . La facadefacade implémente message et hérite de implémente message et hérite de RecepteurRecepteur donc message doit être déclaré donc message doit être déclaré abstraite dans abstraite dans RecepteurRecepteur..

Page 45: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Exécution des composants

L’exécution ne se fait pas au hasard, elle se prépare. L’exécution ne se fait pas au hasard, elle se prépare.

Le principe général c’est la création d’une configuration OSGi. Cette Le principe général c’est la création d’une configuration OSGi. Cette configuration est paramétrée. Au cours du paramétrage, il faut cocher configuration est paramétrée. Au cours du paramétrage, il faut cocher les plugins (Bundles) nécessaires à l’exécution de l’application. On les plugins (Bundles) nécessaires à l’exécution de l’application. On peut les classer ses bundles d’exécution en deux catégories :peut les classer ses bundles d’exécution en deux catégories :

1.1.Les bundles liés à la plate formeLes bundles liés à la plate forme, se sont par exemple dans notre cas, se sont par exemple dans notre cas

-ComponentsManager-ComponentsManager

-inria.smarttools.core-inria.smarttools.core

-inria.smarttools.ds.local-inria.smarttools.ds.local

-inria.smarttools.lib-inria.smarttools.lib

-org.eclipse.osgi-org.eclipse.osgi

22. . Les bundles liés à notre espace de travail Les bundles liés à notre espace de travail c’est-à-dire ceux de l’application en c’est-à-dire ceux de l’application en courscours

-expéditeur-expéditeur

-Recepteur-Recepteur

Plus le bundle de démarrage : inria.starterPlus le bundle de démarrage : inria.starter

Page 46: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

11

22

TP 2 : Exécution des composants

•1. Accès à l’écran de configuration1. Accès à l’écran de configuration•2. Création d’une nouvelle 2. Création d’une nouvelle configurationconfiguration•3. Renommage de la configuration 3. Renommage de la configuration crééecréée

33

Page 47: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Exécution des composants

On coche et on On coche et on

modifie les levels icimodifie les levels ici..Le paramétrage terminé, il faut Le paramétrage terminé, il faut cliquez sur Run pour lancer cliquez sur Run pour lancer l’exécution.l’exécution.

Page 48: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 2 : Exécution des composants/ Résultats

ExpéditeurExpéditeur RécepteurRécepteur

•Exercice de Exercice de rechercherechercheModifier le présent projet de manière à produire un Modifier le présent projet de manière à produire un modèle où l’envoie et la réception se font dans les modèle où l’envoie et la réception se font dans les deux sens.deux sens.

Page 49: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

Exécution en environnement Exécution en environnement distribuédistribué

-Application au P2P--Application au P2P-

TP 3 : Création et exécution des composants (suite)

Page 50: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 3 : Création et exécution des composants (suite)

Enoncé : Enoncé : démarrage sur une JVMdémarrage sur une JVM1. Créez un modèle bidirectionnel de « expediteur » , « recepteur ».1. Créez un modèle bidirectionnel de « expediteur » , « recepteur ».

2. Créer un modèle d’envoi-réception nommé chat conforme à l’interface ci-dessous 2. Créer un modèle d’envoi-réception nommé chat conforme à l’interface ci-dessous

Zone de saisie des Zone de saisie des messagesmessages

Zone d’affichage des Zone d’affichage des messagesmessages

Zone de saisie de l’ID Zone de saisie de l’ID d’une instance à d’une instance à contactercontacter

Se connecter à une Se connecter à une instanceinstance

3. Vous avez chat.starter, 3. Vous avez chat.starter,

-importer le sous eclipse, compiler et exécuter chat sous Eclipse-importer le sous eclipse, compiler et exécuter chat sous Eclipse

Page 51: Octobre 2010 Didier.Parigot@inria.fr LES SEANCES DE TRAVAUX PRATIQUES La Plate forme Le Développement JSE-Eclipse Plugin de base :OGSi/SmartTools Fabrique

[email protected]

TP 3 : Création et exécution des composants (suite)

Enoncé Enoncé : : démarrage plusieurs JVMdémarrage plusieurs JVMIl est Question dans ce volet de créer un point de démarrage « boot » Il est Question dans ce volet de créer un point de démarrage « boot » pour permettre les connexions distribuées.pour permettre les connexions distribuées.

-Déziper « application.Zip » (voir CleUSB/TP/TP3)-Déziper « application.Zip » (voir CleUSB/TP/TP3)

-Exporter votre chat dans « application »-Exporter votre chat dans « application »

-Exécuter « chat »-Exécuter « chat »