Я хотел бы обнаружить все реализации интерфейса во время выполнения в приложении Java и динамически загружать эти классы из файлов JAR, которые пользователь может добавить в папку. По сути, это подключаемая система.
Я нашел несколько решений для этого:
- Используйте SPI - это не очень гибко: я бы хотел что-то, что, возможно, работает с аннотациями или просто ищет расширенный интерфейс без добавления внешних текстовых файлов.
- Используйте Commons Discovery — это выглядит как тупик, так как последняя версия — 0.4. в 2005 году
- Используйте Java Simple Plugin Framework. 5 минут и работает. Нет XML. -- это выглядит очень незрелым.
Существуют ли какие-либо другие широко используемые решения для этого?
Обновление: нет необходимости в разделении кода, а OSGi сейчас кажется слишком сложным для моих простых потребностей. Я также добавил «Простой» в заголовок этого вопроса, чтобы прояснить свои намерения.