Наша компания планирует перейти на AdoptOpenJDK 11 с запущенным на нем Wildfly 10

#java #java-11 #adoptopenjdk

#java #java-11 #adoptopenjdk

Вопрос:

Наша компания планирует перейти на AdoptOpenJDK 11 от Oracle JDK8 с запущенным на нем Wildfly 10. Весь код и сервер wildfly будут одинаковыми (написаны и поддерживаются JDK8), и поскольку java обратно совместима, я думаю, что теоретически это должно работать, но есть ли какие-либо проблемы, о которых мы должны знать?

Комментарии:

1. Это очень интересная тема, но, к сожалению, противоречит правилам SO : вопросы с просьбой порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебник или другой сторонний ресурс не по теме для Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано на данный момент для ее решения.

2. Быстрый ответ: вы использовали классы Sun? Вам нужно будет провести их рефакторинг. Вы хотите использовать модули? Впереди много работы. Готовая замена? Все хорошо. (возможно, вы обнаружите, что некоторые предварительно упакованные зависимости были удалены с помощью JEE, поэтому вам нужно будет добавить их в качестве зависимостей для компиляции)

3. Java 11 не полностью обратно совместима с Java 8. Было удалено множество классов, изменилась структура JDK и JRE и многое другое. Просто просмотрите вопросы с тегом java-11 .

4. Спасибо всем за их понимание, я думаю, что знаю ответ, который ищу.

5. @Robert структура отличается, но модули не являются обязательными. Автоматические / неназванные модули работают так же, как и решение до JDK9

Ответ №1:

С JDK 8 по JDK 11 выпущено множество обновлений. Я бы рекомендовал просто перейти на AdoptOpenJDK 8 в краткосрочной перспективе. Ваш конкретный код может быть в порядке, но у вас также есть огромный набор зависимостей, которые могут использовать что-то, что нуждается в обновлении. Например, какой у вас инструмент для сборки? Gradle необходимо было обновить, поскольку для него требовалась более новая версия ASM. Используете ли вы JAX-RS? Jersey 2.27 не работает на Java 11.

JavaEE сейчас находится в странном положении, потому что Oracle фактически загрузила его в Eclipse foundation (теперь называется JakartaEE). Потребуется некоторое время, чтобы разобраться с этим.

Комментарии:

1. Это отличная идея. Я также прочитал в комментариях выше, что было удалено много классов, так что для нас это не прямое обновление JDK. Я должен дождаться, пока все библиотеки начнут их поддерживать.

Ответ №2:

Я перешел с openjdk-8 на openjdk-11.
Шаги, которые я выполняю:
1. Добавьте недостающие зависимости Java в jdk11
2. Обновите / удалите поддерживаемые плагины (необходимо обновить ASM до 7.1, cglib или других библиотек для обработки байтов)
3. Измените JAVA_OPTIONS, связанные с GC.
4. Поддержка Wildfly для java11

Более подробную информацию о версиях библиотек смотрите по ссылке