Java 10 — управление версиями на основе времени выпуска
JEP 322 — Версии выпуска с привязкой ко времени
Начиная с Java 10, Oracle ввела строгую модель управления версиями на основе времени для выпусков Java. Теперь основной выпуск Java будет выпускаться каждые шесть месяцев. Java 10 была выпущена в марте 2018 года, и в дальнейшем все основные версии планируется выпустить в марте и сентябре следующих лет. Релизы подразделяются на три широкие категории.
-
Выпуск функции − Выпуск функций содержит функции, специфичные для языка, функции JVM, новые/улучшенные API, удаление/устаревшие API. Время этих выпусков функций фиксировано, и нет ограничений на включение функций в конкретный выпуск. Если разрабатываемая функция не является частью последней версии, она будет запланирована в следующей версии.
-
Выпуск обновления − Выпуск обновления включает исправления ошибок, исправления проблем безопасности, исправления регрессии и т. д. Выпуск каждого обновления планируется на квартал в январе, апреле, июле и октябре. Каждый выпуск функции получит два выпуска обновлений, прежде чем будет объявлен следующий выпуск функции.
-
Выпуск с долгосрочной поддержкой (LTS) − О выпуске с долгосрочной поддержкой будет объявляться каждые три года, начиная с сентября 2018 г. Oracle будет предоставлять поддержку и обновления для этого выпуска в течение следующих трех лет. Этот выпуск предназначен в первую очередь для корпораций, использующих Java в рабочих средах.
Формат версии
Теперь версия имеет следующий формат.
$FEATURE.$INTERIM.$UPDATE.$PATCH
Где
-
$ФУНКЦИЯ − Это число обозначает выпуск основной функции и будет увеличиваться на 1 после каждого выпуска функции. Для Java 10 это 10.
-
$ПРОМЕЖУТОЧНЫЙ − Этот номер обозначает любую нефункциональную версию без обновлений, которая содержит исправления ошибок и улучшения. В этом выпуске нет несовместимых изменений, удаления API или изменения стандартного API. Выпуск функции будет иметь этот счетчик равным 0.
-
$ОБНОВЛЕНИЕ − Этот номер обозначает выпуск обновления, сделанный после выпуска функции. Например, выпуск обновления Java в апреле 2018 г. — JDK 10.0.1, а в июле 2018 г. — JDK 10.0.2 и т. д.
-
$ПАТЧ − Этот номер обозначает любую экстренную версию, увеличенную только в случае, если критическая проблема должна быть повышена в экстренном порядке.
Пример
Следующая программа показывает сведения о версиях JAVA 10.
public class Tester { public static void main(String[] args) { Runtime.Version version = Runtime.version(); System.out.printf(" feature: %s%n interim: %s%n update: %s%n patch: %s%n", version.feature(), version.interim(), version.update(), version.patch()); } }
Вывод
Будет напечатан следующий вывод.
feature: 10 interim: 0 update: 2 patch: 0
java