JEP 255: Merge Selected Xerces 2.11.0 Updates into JAXP
Перенос выбранных обновлений Xerces 2.11.0 в JAXP
| Ответственный | Joe Wang |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 9 |
| Компонент | xml / jaxp |
| Обсуждение | core dash libs dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Рецензенты | Alan Bateman, Lance Andersen, Roger Riggs |
| Одобрен | Brian Goetz |
| Создан | 2014/05/28 04:16 |
| Обновлён | 2017/05/26 01:32 |
| Задача | 8044086 |
Аннотация
Обновить версию XML-парсера Xerces, входящего в JDK, перенеся важные изменения из Xerces 2.11.0.
Что не является целью
Копия Xerces в JDK содержит много изменений и улучшений, специфичных для JDK. Полная синхронизация кодовой базы JDK с кодовой базой проекта Apache Xerces не является целью.
Критерии успеха
-
Классы в выбранных категориях полностью обновлены.
-
Несовместимости не вносятся. Любые конфликты с существующим кодом JDK разрешаются в пользу существующего кода JDK.
-
Регрессий не возникает.
Мотивация
JDK содержит более старый парсер Xerces 2.7.1. Во время разработки JDK 7 в него были перенесены все критические и многие важные изменения из Xerces 2.10.0. С тех пор вышел Xerces 2.11.0. Переход на последний выпуск поможет повысить качество реализации JDK.
Описание
Обновить JDK изменениями из Xerces 2.11.0 в следующих категориях:
- Datatypes,
- DOM L3 Serializer,
- XPointer,
- Catalog Resolver и
- XML Schema Validation (включая исправления ошибок, но без кода разработки XML Schema 1.1).
Публичный API JAXP не изменится.
Обновление будет выполняться пакетами. Не каждая ревизия может быть протестирована по отдельности.
Тестирование
-
Соответствующие тесты из Xerces могут быть перенесены в существующий набор тестов.
-
Будут разработаны новые тесты, чтобы обеспечить достаточное покрытие изменений.
-
Потребуется значительный объём тестирования, чтобы убедиться, что обновление не вносит регрессий по сравнению с существующей реализацией.
Риски и допущения
С момента интеграции Xerces 2.7.1 в JDK 6 многие специфичные для JDK исправления ошибок, улучшения и новые возможности были реализованы независимо от проекта Apache Xerces. В их числе включение парсера StAX, который использовал реализацию сканера из Xerces и изменял её. Поэтому некоторые патчи Xerces, возможно, придётся изменить, чтобы разрешить конфликты.