Mam projekt Java, który oczekuje rejestracji modułów zewnętrznych. Te moduły:Najlepsza praktyka odwoływania się do zewnętrznego modułu w projekcie Java
- wykonania szczególnego interfejs w głównym projekcie
- są pakowane w uni-jar (wraz z wszelkimi zależnościami)
- zawierać pewne postaci czytelnej dla człowieka meta-informacje (takie jak nazwa modułu) .
Mój główny projekt musi być w stanie załadować w czasie wykonywania (np. Przy użyciu własnego programu ładującego klasy) dowolny z tych modułów zewnętrznych. Moje pytanie brzmi: jaki jest najlepszy sposób rejestracji tych modułów w głównym projekcie (wolałbym zachować tę waniliową Javę, a nie używać jakichkolwiek frameworków/bibliotek innych firm do tego wyizolowanego problemu)?
Moje obecne rozwiązanie polega na zachowaniu pojedynczego pliku .properties w głównym projekcie przy użyciu klucza = nazwa, wartość = klasa | ogranicznik | human-readable-name (lub skoordynuj dwa pliki .properties w celu uniknięcia pismowania ogranicznika). W czasie wykonywania główny projekt ładuje się do pliku .properties i wykorzystuje wszystkie znalezione wpisy do zarządzania programem ładującym klasy.
To wydaje mi się hoksem. Czy istnieje lepszy sposób na to?