Skip to content

Plugins

Introduction

Il est possible d'étendre les fonctionnalités du moteur au moyen de plugins. Un plugin est une classe java qui fournit des librairies et des méthodes utilisables depuis un script ewts.

Un plugin peut alors être chargé dynamiquement au moyen de la méthode $plugin.load.

Création d'un plugin

Pour qu'une classe soit un plugin utilisable dans Ewt, elle doit impérativement être annotée avec l'annotation @EwtScriptLibrary. Les méthodes mises à disposition par le plugin doivent quant à elle respecter les quatre conditions suivantes:

  1. Elles doivent porter l'annotation @EwtScriptMethod
  2. Elles doivent être statiques
  3. Le premier paramètre doit être du type EwtScriptProcessor
  4. Elles doivent retourner un objet du type EwtTypeObject

Le code suivant donne un exemple basique de plugin valide:

package plugin;

import ch.epilogic.ewt.scripts.EwtScriptLibrary;
import ch.epilogic.ewt.scripts.EwtScriptMethod;
import ch.epilogic.ewt.scripts.EwtScriptProcessor;
import ch.epilogic.ewt.types.EwtTypeObject;
import ch.epilogic.ewt.types.EwtTypeString;

@EwtScriptLibrary(name = "test")
public class TestPlugin {
    @EwtScriptMethod(name = "hello")
    public static EwtTypeObject execute(EwtScriptProcessor processor, String name) {
        return new EwtTypeString("Hello " + name);
    }
}

La classe TestPlugin ci-dessus est déclarée comme librairie test via l'annotation @EwtScriptLibrary.

Elle fournit une méthode qui est déclarée comme méthode hello via l'annotation EwtScriptMethod.

En plus du paramètre EwtScriptProcessor obligatoire, la méthode attend un second paramètre du type String. Elle retourne en réponse une chaîne de caractère composée du préfixe "Hello " suivi du paramètre reçu.

Utilisation d'un plugin

À supposer que le plugin est compilé dans une archive monPlugin.jar, il peut être utilisé dans un script ewts de la manière suivante:

1
2
3
var foo = $plugin.load("/path/to/monPlugin.jar");

$logger.info(foo.test.hello("World !"));

L'exemple ci-dessus aura pour effet d'inscrire "Hello World !" dans le log.