Skip to content

$plugin.load

Description

Charge un plugin en mémoire et rend ses librairies de méthodes disponibles dans la réponse de la méthode.

Par exemple, le fait d'invoquer

var monPlugin = $plugin.load("path/to/plugin.jar");

charge les librairies du plugin plugin.jar et les places dans l'objet monPlugin. Ainsi devient possible d'invoquer les méthodes du plugin via cette variable. Par exemple si le plugin déclare une librairie exemple qui contient une méthode foo(), on pourra invoquer cette dernière à l'aide de la commande monPlugin.exemple.foo().

Syntaxe

$plugin.load( jarPath [ , options ] )

Paramètres

jarPath file / string

Fichier ou path du plugin. Le path peut désigner soit un fichier jar unique, soit un dossier contenant plusieurs fichiers jar (typiquement dans le cas où le plugin nécessite des dépendances externes).

Lorsque le path désigne un dossier, le moteur charge les fichiers jar de toute l'arborescence.

options map

Map d'options liées au chargement du plugin.

reload boolean

Flag true/false indiquant de forcer le rechargement du plugin. Attention, cette option ne devrait pas être activée en production car elle peut sensiblement ralentir l'application.

L'option est false par défaut.

persistent boolean

Flag true/false indiquant de charger la plugin de façon persistante. Dans ce cas, le plugin ne sera jamais déchargé ni rechargé.

L'option est false par défaut. L'option n'est pas compatible avec l'option reload et annule cette dernière.

Il est généralement recommandé de charger les plugins avec cette option à false, toutefois dans certains cas il peut être nécessaire d'activer l'option. Par exemple si le plugin doit charger des librairies natives externes (des .dll, .so ou .dylib par exemple), il est nécessaire de charger le plugin de façon persistante sinon le plugin risque de ne plus être utilisable après un reset de l'application. En effet, le reset décharge le plugin et clôture le classloader alloué au plugin. Si le plugin doit être rechargé par la suite dans un nouveau classloader, les librairies natives nécessaires au plugin risquent de ne pas pouvoir être chargées une seconde fois par la JVM.

Retour

Retourne un objet contenant les librairies incluses dans le plugin.

Exemple

Voir description