lundi 14 mai 2012

Développement plugin de A à Z pour HomeAutomate Pachube/Cosm Partie 1

Passons maintenant aux choses sérieuses. L'écriture d'un plugin pour HomeAutomate.
Ce plugin aura pour but de remonter automatiquement les valeurs des différentes unités vers Cosm.

On commence donc sous notre IDE préféré : Eclipse Java.

Après s'être connecté au SVN Homeautomate on descend le projet template plugin. On va donc faire un simple copier/coller du projet :




Ici, je le nomme donc HomeAutomateCosmPlugin. Jusque là rien de difficile.
Regardons maintenant l'arborescence de notre nouveau projet, on va faire un peu de ménage... et paramétrer quelques fichiers.

Notre plugin sera en fait un manager 'Aware' : à l'écoute de n'importe quelle modification faite sur une unité (ici nos THN132 ou autres Unit peu importe). 






Etre Aware se concrétisera dans notre cas par l'implémentation d'une interface IUnitAware. (Rappel il existe également un IMediatorAware). Commençons donc par supprimer les packages qui ne nous intéressent pas (mediator & unit).







Ensuite, on regarde ce qu'il y a dans notre package manager, une classe MyManager est déjà présente.



Renommons donc cette classe en CosmManager. Et passons à la configuration de 2 fichiers :
    
       pom.xml : permettra de spécifier les dépendances maven avec d'autres          
                      librairies.
       plugin.xml : fichier SPRING déclarant les beans SPRING et leurs injections   
                      de dépendances.

Commençons par le POM : Rien de plus simple quelques balises à compléter, le fichier étant déjà configuré pour les dépendances.


   Vous noterez la dépendance ci dessous vers HomeAutomateCore, indispensable pour être reconnu par le système.






   Puis enfin, le fichier plugin.xml, déjà rempli partiellement, il faudra juste mettre  à jour quelques balises et indiquer en rouge le package et notre classe CosmManager.



   Il est également possible de déposer un petit logo du plugin sous resource (même endroit que plugin.xml). Le logo devra s'appeler bien entendu cosm.png du nom de la valeur indiquée dans imagePath dans le fichier plugin.xml



   Voilà pour la première partie. Rien de bien méchant. On a donc un projet sous Eclipse s'appelant HomeAutomateCosmPlugin, avec 1 seule classe à l'intérieur CosmManager.



Aucun commentaire:

Enregistrer un commentaire