Bonjour,
Je voulais juste discuter de certains détails concernant l'ajout de plugins.
Le message s'adressant surtout à pseudocode.
On avait parlé une fois d'utiliser des annotations à la place du fichier de propriété afin d'avoir quelque chose du style :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @PluginShortDescription("Mon Plugin qui s'affiche dans le menu") @PluginName("Le vrai nom du plugin") @PluginCategory("Ma catégorie") public class BloomEffectPlugin extends GenericPluginFilter { }
Alors, sauf que si on veut pouvoir internationaliser le programme, il faudrait que les annotations puissent aussi utiliser quelque chose.
Par exemple : @InternationalizationClass(MaClass.class) avec une méthode du type : String getText(String key)
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @PluginShortDescription("plugin.bloom.shortdescription") @PluginName("plugin.bloom.name") @PluginCategory("plugin.bloom.category") @InternationalizationClass(MaClass.class) public class BloomEffectPlugin extends GenericPluginFilter { }
Bon, pour l'instant ça va.
Sauf que quand je charge les plugins du jar, il faut quand même que je fasse un : Class<PluginFilter> filter = (Class<PluginFilter>) pluginClassLoader.loadClass(clazz);
En utilisant un ClassLoader spécial pour les Jar.
Donc du coup, je vois pas trop d'autres possibilité que d'avoir toujours un fichier de config qui contient la liste des classes de plugins à moins de charger comme un bourrin récursivement les fichiers et de vérifier qu'il n'y en a pas dans le lot qui hérite de PluginFilter (mais, est-ce que c'est pas un peu lent ?) => il est toujours possible d'offrir les deux possibilités
Donc au final, je ne suis pas trop avancé.
A moins que quelqu'un ait une idée![]()
Partager