TPOSGI

TP OSGI

VOus pouvez vous inspirer de ce Tutorial OSGI pour les TPs

TP 1 Création d'un Bundle avec Eclipse et un client pour le Bundle (Dice et DiceClient)

Le type de projet à créer est Plugin. Il faut ensuite choisir le Framework standard.

Dans Eclipse, création d'un bundle en utilisant le template HelloWorld par défaut Video support - OSGI 1 - création et exécution d'un projet

Créez un bundle fournissant une implantation de Dice (Interface et implantation). Ce bundle exporte le package contenant l'implantation et l'interface.

Créez ensuite un second bundle qui va dépendre du package exporté par ce bundle. Dans la méthode start de ce bundle vous pouvez faire appel à la méthode "roll" fournie par l'autre bundle.

Testez le client et vérifiez ce qui se passe quand vous retirez le bundle Dice.

utilisez les commandes ss, start, stop, et uninstall dans la console Equinox puis essayez avec refresh. Que constatez vous ? Essayez en particulier la séquence qui consiste à retirer le bundle fournissant l'implantation puis à faire un refresh du client.

TP 2 Création d'un Bundle qui écoute les évènements liés aux service

  • Créez une bundle qui fournir une implantation de l'interface ServiceListener et qui s'enregistre comme un listener du Framework

TP 3 Création et enregistrement d'un service (Dice)

  • Création et enregistrement du service Dice
  • Ecriture d'un client qui recherche le service et qui l'utilise (à la main). Faites un client interactif, qui peut utiliser plusieurs fois de suite le service.
  • Création et enregistrement d'une autre implantation du service Dice
  • Ecriture d'un client qui utilise le ServiceTracker pour récupérer une reférence au client.

Dans la console d'equinox, vous pouvez faire des tests de retrait et de remise ne place du service pour observer ce qui se passe.

TP 4 Création d'un service DiceGame qui utilise le service Dice

Créez le plugin DiceGame qui utilise le Dice et qui utilise son service. DiceGame implante une règle d'un jeu de dés.

TP 5 Création d'une application réagissant dynamiquement à l'apparition de nouveaux jeux.

Ce tp est à rendre et sera noté

  • Implantez une interface Swing permettant de jouer à DiceGame. Cette interface doit être dynamique et prendre en compte la disponibilité ou non du service.
  • Développez deux autres bundles fournissant le service DiceGame (autres règle du jeu)
  • Étendez l'application pour qu'elle propose à l'utilisateur l'ensemble des jeux disponibles à un moment donné. Vous pouvez tester l'application en retirant les bundles et en les ajoutant à nouveau.
  • Packagez votre application pour qu'elle fonctionne en dehors d'Eclipse (en vue d'un déploiement sur un autre poste client).

Déposez votre TP sur la plateforme ESIAL ICI

TP 6 Implantation du WhiteBoard Pattern

Cette fois, le client fait appel à tous les services Dice disponibles, quelque soit leur implantation. Chaque fois qu'un nouveau service Dice est enregistré, il est appelé par le client.

  • Faites cette implantation de façon traditionnelle
  • Faites cette implantation en utilisant le WhiteBoard Pattern (Le client est un listener)

TP 7 Utilisation du modèle déclaratif de création des services (DS)

  • Refaites l'implantation du jeu de dé en utilisant le modèle déclaratif (ds) pour automatiser l'enregistrement et la gestion des dépendances entre services