Я написал собственный Processor и ControllerService, используя структуру структуры из превосходного примера на https://github.com/bbende/nifi-dependency-example. В дополнение к этому у меня есть третий модуль, содержащий модель моих данных и служебные классы для работы с моделью. И Processor, и ControllerService зависят от модуля модели.
Это прекрасно работает, если Processor и ControllerService имеют одинаковую версию модели. Но если они используют разные версии, у меня возникают проблемы, потому что служебные классы всегда загружаются из ControllerService nar. Могу ли я как-нибудь заставить Processor и ControllerService загружать служебные классы из их «собственной» зависимости?
В ModelUtil. java Я добавил код:
static {
System.err.println(ModelUtil.class.getClassLoader());
}
Который распечатывает следующее: ... NarClassLoader [./work / nar / extensions / myservice-api-nar-1.0.nar-unpacked]
Я бы ожидал, что вместо одной будут напечатаны две строки , Один, когда Процессор загружает ModelUtil, и один, когда это делает ControllerService.
myservice-api-nar не содержит зависимости от модели, но myservice-api делает.
Спасибо