Я работаю над существующим приложением, которое имеет довольно много внешних JAR-зависимостей.Мне нужно улучшить его для интеграции со сторонним приложением, которое имеет API.К сожалению, API не очень хорошо содержится, а также имеет большое количество собственных зависимостей, некоторые из которых конфликтуют с моей.
Я считаю, что должен решить эту проблему с помощью Classloaders, но я изо всех сил пытаюсь понять, какструктурируйте их правильно.
Для простоты предположим, что у нас есть myapp.jar с зависимостью hibernate3.jar, а vendor-api.jar с зависимостью hibernate2.jar (и предположим, что они несовместимы).
Мой новый кусок кода будет находиться в библиотеке myapp.jar (хотя это может быть в отдельном jar, если это поможет).Из-за того, как работает API вендора, мой новый код должен расширять класс из библиотеки vendor-api.jar.
Как я могу структурировать загрузчики классов таким образом, чтобы что-либо внутри vendor-api.jar обращалось только к своим собственным зависимостям, а все, что на моей стороне, получало доступ только к myapp.jar и зависимостям?
Спасибо, Джон