mardi 29 mars 2011

Software : Gestion des plugins dans le projet





          Pour permettre de rendre le système évolutif, il sera possible de fournir dans un répertoire les plugins de HomeAutomateCore.

Les plugins seront représentés sous forme de jar. L'application se chargera au démarrage de "loader" dynamiquement les classes. Pour l'instant les plugins ne peuvent qu'embarquer des managers, mais il sera possible d'embarquer de nouveaux mediators ou encore de nouvelles unités.

Ici un exemple de Plugin (plugin de contrôle de température de la maison)



Règle d'écriture des plugins (Projet Java Simple JAVA tirant une dépendance vers HomeAutomateCore (pour les interfaces).




Et il faudra au minimum une classe qui étendra AbstractManager (du Core) et implémentera les interfaces nécessaires. Dans ce greffon HeatManager.java




Ici, on remarque qu'on implémente IMediatorAware ce qui signifie que dès qu'un mediateur recevra un message, le système routera le message vers ce manager (par l'intermédiaire d'un IDomoticMessage)

L'interface IUnitAware permet quant à elle de recevoir les changements de propriétés sur toutes les unités.

Ces 2 interfaces imposent des méthodes :

    onMessage : permettra d'implémenter ce que l'on veut sur la réception d'un message
    onEvent : idem.

L'interface IManager est obligatoire (implémentation du commentaire du plugin, url, status, mode de démarrage, nom ..)

Une fois le plugin terminé : Export du projet sous forme de jar que l'on colle dans le répertoire indiqué dans la table de paramètre sous la clé pluginDirectory.


Aucun commentaire:

Enregistrer un commentaire