Я работал как разработчик AEM, основанный на OSGI, и именно отсюда вытекает моя рудиментарная (и немного устаревшая) идея. Вот что мне нужно сделать на новом проекте, полностью связанном с AEM.
- Создание библиотеки служб на основе сторонней библиотеки, совместимой с JDK8
- Развертывание их как весеннее веб-приложение на tomcat, работающее на JDK9 или новее.
Сторонняя библиотека является лицензионным программным обеспечением и не может быть обновлена из-за определенного юридического тупика. Прямое развертывание на JDK9 завершается неудачно из-за проблем Java API.
Теория заключается в том, чтобы включить всю среду выполнения JDK8 в виде связанной зависимости и развернуть ее как пакет OSGI на JDK9 +. совместимая среда выполнения OSGI.
Вот небольшая диаграмма, которую я создал, чтобы отразить основную идею:
Может ли это сработать? Теоретически это верно, потому что каждый пакет OSGI использует свой собственный загрузчик классов, поэтому сторонняя библиотека не должна ломаться из-за проблем Java API. Кроме того, планируется использовать maven для создания толстой (убер) банки.
Еще один вопрос, мучающий меня: действительно ли создание супер-jar, включая JDK, вообще вещь? Я создавал Uber-Jars и раньше, но не уверен, как бы я включил JDK. Некоторая часть этого кажется неправильной. Любое предложение?
Спасибо всем!