Пишу систему, которая собирает данные из разных источников. У каждого источника есть своя база данных.
Источники могут добавляться в систему и удаляться из нее, поэтому заранее не известно, какая база данных у того или иного источника. А посему для каждой базы данных я хочу написать библиотеку, которая бы с ней работала. Предполагаю, что когда система будет запущена, библиотеки для работы с бд по-любому придется писать новые.
Вопрос, собственно, заключается в следующем: как возможно сделать подключение/отключение библиотеки в систему без перекомпиляции самой систем? Ибо заранее не известно, какой именно источник захочет добавить админ? Работу с любой библиотекой обеспечить - не проблема, а вот как подключить ее - это задача серьёзная.
У каждой библиотеки должн быть одинаковый интерфейс. Наследоваться от единого интерфейса.
Загружать библиотеку по имени
getClass().forName(name)
Имя можно брать из настроек.
Смотрите в сторону
Рефлексии и проч.