В этом руководстве объясняется подход к включению режима слияния для пакетов AEM, режим «слияния» помогает нам объединить содержимое пакета с содержимым целевого репозитория.

По умолчанию пакеты, созданные с помощью диспетчера пакетов AEM с включенным режимом «заменить», будут перезаписывать целевые пути при установке пакета на целевой сервер — локальные изменения на целевом сервере по этому пути будут потеряны.

Доступные режимы фильтра

«заменить» — это нормальное поведение. Существующий контент полностью заменяется импортированным контентом, т. е. переопределяется или удаляется.

«объединить» — существующий контент не изменяется, т. е. добавляется только новый контент, и ни один из них не удаляется и не изменяется.

«обновить» — существующий контент обновляется, новый контент добавляется, и ни один из них не удаляется.

Режим фильтра по умолчанию — «заменить».

Действия по изменению режима фильтра

Создайте пакет с нужным путем через диспетчер пакетов AEM (http://localhost:8080/crx/packmgr/index.jsp) и загрузите в локальную файловую систему.

Разархивируйте zip-файл пакета на своем компьютере (выполните через командную строку или терминал) — jar -xvf test_mode-1.0.zip META-INF/vault/filter.xml

Откройте файл META-INF/vault/filter.xml в текстовом редакторе.

Добавьте mode="merge" в тег ‹filter …›, режим слияния должен быть добавлен ко всем необходимым фильтрам, определенным в filter.xml:

‹?xml version=”1.0” encoding=”UTF-8”?›
‹workspaceFilter version=”1.0”›
‹filter root=”xxxxx” mode=”merge ” ›
‹exclude pattern="xxxxx" /›
‹/filter›
‹filter root="xxxx" mode="merge"/›
‹/workspaceFilter›

e.g

‹?xml version=”1.0' encoding="UTF-8"?›
‹workspaceFilter version="1.0"›
‹filter root="/content/we-retail/us/ en/products/men” mode="merge" /›
‹/workspaceFilter›

Заархивируйте измененное содержимое пакета, чтобы оно включало изменения filter.xml — jar -uvf test_mode-1.0.zip META-INF/vault/filter.xml

Загрузите измененный пакет на целевой сервер через диспетчер пакетов — изменения фильтра (режим «слияния») гарантируют, что изменения целевого сервера не будут перезаписаны.

Вывод

Те же шаги можно выполнить, чтобы включить различные режимы фильтрации для пакетов AEM в зависимости от требований, это поможет при переносе содержимого (пакетов) между экземплярами AEM.

Первоначально опубликовано на https://www.albinsblog.com.