.. У меня есть приложение (.war), в котором есть система плагинов, в которой каждый подключаемый модуль представляет собой .jar со своими зависимостями .jar.
А в веб-приложении через веб-интерфейс администратора плагины загружаются с помощью ClassLoader, который «загружает» .jar и его зависимости.
Но проблема в том, что, например, 2 плагина A и B могут иметь одну или несколько общих зависимостей (commons-io.jar, commons-collection.jar, ...) ... поэтому обычно я не должен загружать больше одного раза .jar, который уже загружен другим плагином или уже присутствовал в самом веб-приложении -> WEB-INF / lib /
Итак, я хотел бы знать, есть ли способ не загружать в другой раз .jar, который уже был загружен через веб-приложение или другой плагин
Если возможно, как я должен это сделать!
На самом деле, каким бы ни было доступное решение, я просто хочу избежать проблем с загрузчиком классов.
ПРИМЕЧАНИЕ: каждый плагин представляет собой файл .zip со следующей архитектурой
плагин имя /
- code/
- A.class
- B.class
- ...
- lib/
- commons-io.jar
- log4j.jar
- ....
- description.xml
- version.txt
каждый файл .class в коде каталога / загружается загрузчиком классов, также загружается каждый .jar в каталоге lib / плагина.
Но обычно я не должен перезагружать классы, присутствующие в .jar "commons-io.jar", если когда-либо он уже присутствовал ...
Надеюсь, я был достаточно ясен, заранее спасибо за внимание и помощь.