Почему приемник событий сервера слияния не инициирует событие копирования страницы, особенно при копировании страницы без дочерних элементов (иерархия)? - PullRequest
1 голос
/ 07 января 2020

-Я пишу плагин для сервера слияния для модуля прослушивания событий страницы, который синхронизирует c с пользовательской системой. Всякий раз, когда происходили события копирования страницы, мне требовалась информация об оригинальной скопированной странице.

-EventListener срабатывает при копировании страницы с дочерними элементами или иерархией. enter image description here

- Однако при копировании страницы без дочерних элементов или иерархии она попадает в категорию событий создания страницы и не может знать, откуда эта страница изначально. Мне нужно было различать создание и копирование, хотя технически они одинаковы. enter image description here

Пример кода ниже:

package com.linn.aung;

import com.atlassian.confluence.event.events.content.ContentEvent;
import com.atlassian.confluence.event.events.content.page.PageCopyEvent;
import com.atlassian.confluence.event.events.content.page.PageCreateEvent;
import com.atlassian.confluence.event.events.content.page.PageViewEvent;
import com.atlassian.confluence.event.events.content.pagehierarchy.CopyPageHierarchyFinishEvent;
import com.atlassian.confluence.event.events.content.pagehierarchy.CopyPageHierarchyStartEvent;
import com.atlassian.confluence.pages.Page;
import com.atlassian.event.Event;
import com.atlassian.event.EventListener;
import org.apache.log4j.Logger;

public class PageListener implements EventListener{

    private static final Logger log = Logger.getLogger(PageListener.class);
    private Class[] handledClasses = new Class[]{
        ContentEvent.class,
        PageViewEvent.class,
        PageCreateEvent.class,
        PageCopyEvent.class,
        CopyPageHierarchyStartEvent.class,
        CopyPageHierarchyFinishEvent.class
    };

    public void handleEvent(Event event) {

        if (event instanceof PageCreateEvent) {

            PageCreateEvent pageCreateEvent = (PageCreateEvent) event;

            Page currentPage = pageCreateEvent.getPage();
            String pageTitle = currentPage.getTitle();
log.warn("-----here page created-----");
log.warn(pageTitle);
        }
        else if(event instanceof CopyPageHierarchyStartEvent) {

            CopyPageHierarchyStartEvent copyStart = (CopyPageHierarchyStartEvent) event;

            Page destinationPage = copyStart.getDestination();
            String pageTitle = destinationPage.getTitle();
log.warn("-----here page copy start-----");
log.warn(pageTitle);

        }
        else if(event instanceof PageCopyEvent) {

            PageCopyEvent pageCopyEvent = (PageCopyEvent) event;

            Page currentPage = pageCopyEvent.getPage();
            String pageTitle = currentPage.getTitle();
log.warn("-----here page copied----");
log.warn(pageTitle);

        }
        else if(event instanceof CopyPageHierarchyFinishEvent) {

            CopyPageHierarchyFinishEvent copyFinish = (CopyPageHierarchyFinishEvent) event;

            Page destinationPage = copyFinish.getDestination();
            String pageTitle = destinationPage.getTitle();
log.warn("-----here page copy finish-----");
log.warn(pageTitle);

        }

    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...