openjdk.ruOpenJDK на русском

JEP 289: Deprecate the Applet API

Applet API получает статус Deprecated (устаревший)

ОтветственныйDaniil Titov
ТипFeature
ОбластьSE
СтатусClosed / Delivered
Выпуск9
Компонентclient-libs
Обсуждениеjdk9 dash dev at openjdk dot java dot net
ТрудоёмкостьXS
ДлительностьXS
Связан сJEP 398: Deprecate the Applet API for Removal
JEP 504: Remove the Applet API
РецензентыAndy Herrick, David Dehaven, Kevin Rushforth, Stuart Marks
ОдобренKevin Rushforth
Создан2016/02/09 22:36
Обновлён2025/04/02 12:47
Задача8149502

Аннотация

Перевести в статус Deprecated Applet API, который быстро теряет актуальность, поскольку производители веб-браузеров отказываются от поддержки браузерных плагинов Java. Направить разработчиков к альтернативным технологиям, таким как Java Web Start или устанавливаемые приложения.

Мотивация

Для запуска Java-апплета в веб-браузере нужен браузерный плагин. Однако по состоянию на конец 2015 года многие производители браузеров либо уже убрали поддержку плагинов, либо объявили сроки её удаления. Когда браузерные плагины исчезнут, причин использовать Applet API не останется.

Описание

Добавить аннотацию @Deprecated(since="9") к следующим классам:

  • java.applet.AppletStub
  • java.applet.Applet
  • java.applet.AudioClip
  • java.applet.AppletContext
  • javax.swing.JApplet

Мы не намерены удалять Applet API в следующем крупном выпуске, поэтому не будем указывать forRemoval = true в этих аннотациях. Если позднее мы всё же предложим удалить этот API, то добавим forRemoval = true в эти аннотации как минимум за один крупный выпуск до этого.

Инструмент appletviewer также будет переведён в статус Deprecated. При запуске инструмента в стандартный поток ошибок будет выводиться предупреждение об устаревании.

Риски и допущения

Из-за этих аннотаций компилятор Java будет выдавать предупреждения об устаревании для всего кода, который использует этот API. Если предупреждения рассматриваются как ошибки, они приведут к сбою сборки.