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

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, возможно, придётся изменить, чтобы разрешить конфликты.