2.4. Проектное перекрытие¶
Проектное перекрытие (переопределение) прикладного кода позволяет выполнить замену классов, из базовой поставки решения, на классы, разработанные под нужды конкретного проекта.
Переопределены могут быть следующие классы:
Для объявления перекрытия, в ресурсах прикладного модуля необходимо создать файл META-INF/overrides.xml.
<?xml version="1.0" encoding="UTF-8"?>
<overrides xmlns="http://www.global-system.ru/xsd/global3-overrides-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.global-system.ru/xsd/global3-overrides-1.0">
<replace-with class="{override_class_name}">
<when-type-is class="{base_class_name}"/>
</replace-with>
</overrides>
где:
{override_class_name}- каноническое имя перекрывающего класса.{base_class_name}- каноническое имя базового (перекрываемого) класса.
Файлы META-INF/overrides.xml считываются сервером приложений в момент загрузки образа решения.
2.4.1. Приоритет перекрытия¶
Приоритет перекрытия определяет какое из перекрытий будет применено, если в нескольких прикладных модулях содержатся перекрытия одного класса из базовой поставки.
В файлах META-INF/overrides.xml приоритеты указываются в атрибутах:
<overrides default-priority="{int}"- значение по умолчанию для для всех вложенных<replace-with/>.<replace-with `priority="{int}"- значение для конкретного перекрытия.
{int} - значение приоритета
See also
Overrides.default-priority
2.4.1.1. Диапазоны приоритетов:¶
до
10резерв10по умолчаниюдо
50может быть использовано базовыми модулямиот
10до100у партнеровxмодули, если партнеры хотят гарантировано перекрывать базовые модули, они должны использовать приоритет50и выше.100и выше у заказчиковzмодули