Je voudrais découvrir toutes les implémentations d'une interface lors de l'exécution d'une application Java, et charger les classes dynamiquement à partir de fichiers JAR que l'utilisateur peut ajouter à un dossier. C'est un système de plug-in, essentiellement.Simple Service Discovery Java cadre
J'ai trouvé quelques solutions pour cela:
- Utilisez SPI - ce n'est pas très flexible: Je voudrais quelque chose qui fonctionne peut-être avec des annotations, ou juste pour une regarde interface qui est prolongée, sans avoir à ajouter des fichiers texte externes, aussi.
- utilisation Commons Discovery - ressemble à une impasse, comme la dernière version est 0.4 de en 2005
- Utilisez Java Simple Plugin Framework. 5 minutes and it works. No XML. - cela ressemble très immature.
Existe-t-il d'autres solutions largement utilisées pour cela?
Mise à jour: Il n'y a pas besoin de séparation de code, et OSGi semble être beaucoup trop complexe pour mes besoins simples en ce moment. J'ai aussi ajouté "Simple" au titre de cette question pour clarifier mes intentions.
OSGi peuvent résoudre des problèmes comme celui-ci et en plus fournit des moyens de garder des modules séparés, etc., qui seront importants si vous avez des plug-ins qui ont des dépendances sur d'autres bibliothèques. – Jesper