Possiedo un progetto Java che prevede la registrazione di moduli esterni. Questi moduli:Best practice per referenziare un modulo esterno in un progetto Java
- implementare una particolare interfaccia nel progetto principale
- sono confezionati in un uni-vaso (insieme a tutte le dipendenze)
- contengono alcune meta-informazioni leggibile (come il nome del modulo) .
Il mio progetto principale deve essere in grado di caricare in fase di esecuzione (ad esempio utilizzando un proprio programma di caricamento classi) uno qualsiasi di questi moduli esterni. La mia domanda è: qual è il modo migliore di registrare questi moduli con il progetto principale (preferirei mantenere questo Java vanilla, e non utilizzare alcun framework/libreria di terze parti per questo problema isolato)?
La mia soluzione attuale è di mantenere un singolo file .properties nel progetto principale con key = nome, valore = class | delimiter | nome leggibile dall'uomo (o coordinare due file .properties per evitare l'analisi del delimitatore). In fase di runtime, il progetto principale viene caricato nel file .properties e utilizza qualsiasi voce trovata per guidare il programma di caricamento classi.
Questo mi sembra strano. C'è un modo migliore per questo?