Я работаю над AEM 6.2 и создал специальный модуль репликации. У меня есть некоторые свойства в дочерних узлах моей страницы под jcr: content, значениями которых является поле пути к другим страницам на одном сайте. Когда я активирую страницу, мне нужно активировать страницы, на которые ссылаются свойства. Например, мой путь к странице «/ content/project/family/subfamily/TestPage» Мне нужно активировать путь страницы в свойстве node «pathVal» под »/ content/project/family/subfamily/TestPage/abc123/JCR: содержание». Как это сделать?AEM- Активация ссылок на страницы в свойствах узла вместе со страницей
0
A
ответ
0
Я не уверен, что вы подразумеваете под
пользовательский модуль репликации
Написание репликации Preprocessor
(см docs) может быть путь. Процесс репликации собирает все реализации этого интерфейса с использованием шаблона доски, а затем циклически запускает их, вызывая каждую из них.
@Component
@Service
public class ReferencedPagePreprocessor implements Preprocessor {
@Reference
private Replicator replicator;
@Reference
private ResourceResolverFactory resolverFactory;
public void preprocess(ReplicationAction action, ReplicationOptions options) {
// some extra filtering to avoid the calculation if it's not the expected page type
String resourcePath = action.getPath();
ResourceResolver resolver = getResolver();
Resource resource = resolver.resolve(resourcePath);
String referencedResourcePath = resource.adaptTo(ValueMap.class).get("pathVal", String.class);
replicator.replicate(resolver.adaptTo(Session.class), ReplicationActionType.ACTIVATE, referencedResourcePath);
}
private ResourceResolver getResolver() {
...
}
}
также рассмотрим в примере реализации в ACS AEM Commons
0
Если я правильно понимаю, либо вы реализовали свой собственный рабочий процесс, который активизирует страницу или следовал бы подход Preprocessor
, как это изложено Mateusz Chromiński.
В случае, если вы написали свой собственный рабочий процесс, который вызывает Replicator
API вы могли бы эффективно добавить логику, чтобы получить ссылки пути и вызов активировать на них с помощью Replicator
API