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. Если предупреждения рассматриваются как ошибки, они приведут к сбою сборки.