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
модули