У меня есть приложение, которое можно расширить с помощью вызовов defmethod
.Приложение должно быть расширено во время выполнения путем добавления новых пространств имен в classpath, которые содержат дополнительные вызовы defmethod
.
Я ищу решение для внедрения зависимостей.Вопрос заключается в следующем: как мое приложение узнает, какие пространства имен оно должно require
, чтобы могли defmethod
вызовы вступать в силу?
Одним из решений является наличие файла центральной конфигурации, который содержитимена пространств имен, которые могут потребоваться.Недостатком является то, что мне нужно редактировать конфигурации вручную, когда я хочу включить плагин.
Другой способ - каким-то образом динамически сканировать путь к классам для поиска дополнительных пространств имен и требовать их на основепредикат (например, префикс namespce name).
Я нашел только эти два решения, но мне интересно, какие еще могут быть способы внедрения зависимости во время выполнения в Clojure.А какие библиотеки обычно используются для этой цели?
Заранее спасибо.