Me gustaría descubrir todas las implementaciones de una interfaz durante el tiempo de ejecución en una aplicación Java, y cargar esas clases dinámicamente desde archivos JAR que el usuario puede agregar a una carpeta. Es un sistema de plug-in, básicamente.Framework de detección de servicios Java simple
He encontrado algunas soluciones para esto:
- Uso SPI - esto no es muy flexible: Me gustaría algo que a lo mejor funciona con anotaciones, o simplemente busca una interfaz que se extiende, sin tener que agregar archivos de texto externos, también.
- Uso Commons Discovery - se parece a un callejón sin salida, ya que la última versión es de 0,4 en 2005 a partir
- Uso Java Simple Plugin Framework. 5 minutes and it works. No XML. - esto parece muy inmaduro.
¿Hay alguna otra solución ampliamente utilizada para esto?
Actualización: No hay necesidad de separar el código, y OSGi parece ser demasiado complejo para mis simples necesidades en este momento. También agregué "Simple" al título de esta pregunta para aclarar mis intenciones.
OSGi puede resolver problemas como este y, además, proporciona formas de mantener los módulos separados, lo que será importante si tiene complementos que tienen dependencias en otras bibliotecas. – Jesper