Marco de descubrimiento de servicio Java simple

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 enchufable, básicamente.

Encontré algunas soluciones para esto:

  • Use SPI: esto no es muy flexible: me gustaría algo que tal vez funcione con anotaciones, o simplemente busque una interfaz que se extienda, sin tener que agregar también archivos de texto externos.
  • Use Commons Discovery : parece un callejón sin salida, ya que la última versión es 0.4 desde 2005
  • Utilice Java Simple Plugin Framework. 5 minutos y funciona. Sin XML - Esto parece muy inmaduro.

¿Hay alguna otra solución ampliamente utilizada para esto?

Actualización: no hay necesidad de separación de código, y OSGi parece ser demasiado complejo para mis necesidades simples en este momento. También agregué "Simple" al título de esta pregunta para aclarar mis intenciones.

Respuesta 1

Es un poco pesado, pero debes considerar Apache Felix o Eclipse Equinox , ambas son implementaciones de OSGi que están muy vivas y emocionantes, pero posiblemente exageran para tus necesidades. Sin embargo, este es uno de los problemas que OSGi está diseñado para resolver.

Respuesta: 2

Podrías probar el servicio de descubrimiento del río Apache (anteriormente Jini)

http://river.apache.org/

Descubre los servicios a través de una interfaz remota y descarga el proxy por usted, que actualmente es un código auxiliar de RMI.

Respuesta: 3

Necesito ejecutar este sql: select * from (select nt. *, Rank () over (partición por feld0 orden por feld1 desc) como clasificación de (seleccione bla de prueba) nt) donde clasificación <3 orden por 1,2. ..

Tengo una aplicación de arranque de primavera y quiero leer algunas variables de mi archivo application.properties. De hecho, los siguientes códigos hacen eso. Pero creo que hay un buen método para esta alternativa. Propiedades ...

Tengo varios archivos de texto que contienen información sobre la popularidad de diferentes lenguajes de programación en diferentes países basados ​​en las búsquedas de Google. Tengo un archivo de texto para cada año desde 2004 ...

Cómo leer un archivo de registro del servidor web en Java. Este archivo se actualiza todo el tiempo. Si abro un nuevo FileInputStream, ¿leerá el registro en tiempo real? Saludos