В настоящее время мы изучаем использование OneJar в нашем приложении (по ряду причин ), но наше приложение использует ряд пользовательских URLClassloader
для загрузки расширений приложения.
При сборке в виде Jar "OneJar" мы получаем ClassNotFound
исключений. Рассматриваемые классы находятся в связанном Jar, и мы просто полагаемся на механизм загрузчика классов для разрешения отношений родитель/потомок.
То есть. У нас есть общий interface
, который хранится в связанном Jar (, который должен быть в контексте родительского загрузчика классов ). Расширение реализует этоinterface
(позволяет нам вызывать расширение )и зависит от способности дочернего загрузчика классов использовать возможности поиска ресурсов родительского загрузчика классов.
Кто-нибудь имел какой-либо опыт с этим или пролил свет на то, как мы могли бы решить эту проблему.
Я был бы заинтересован в других подобных механизмах (для объединения файлов Jar нашей библиотеки в один ресурс Jar, который не требует использования для распаковки всего и Jar в один файл)