Предполагая, что вы используете сервер Confluence Server, вам понадобится install the Atlassian SDK на вашей машине разработки и создать Confluence add-on.
Сделав все это, у вас должно быть скелетное дополнение Confluence.
Далее, вам нужно добавить слушатель события component
и eventPublisher
component-import
в файл atlassian-plugin.xml
так:
<atlassian-plugin key="${project.groupId}.${project.artifactId}" name="${project.name}" plugins-version="2">
<plugin-info>
<description>${project.description}</description>
<version>${project.version}</version>
<vendor name="${project.organization.name}" url="${project.organization.url}" />
</plugin-info>
<component
key="scroll-versions-event-listener"
class="me.davidsimpson.confluence.addons.example.listener.ScrollVersionsPublishEventListener"
name="Scroll Versions Publish Event Listener"
>
</component>
<component-import key="eventPublisher" interface="com.atlassian.event.api.EventPublisher" />
</atlassian-plugin>
Далее, вам нужно создать файл класса для слушателя событий. Вот отправная точка:
package me.davidsimpson.confluence.addons.example.listener;
import com.atlassian.event.api.EventPublisher;
import org.springframework.beans.factory.DisposableBean;
public class ScrollVersionsPublishEventListener implements DisposableBean
{
protected final EventPublisher eventPublisher;
public ScrollVersionsPublishEventListener(EventPublisher eventPublisher)
{
this.eventPublisher = eventPublisher;
eventPublisher.register(this);
}
/**
* Unregister the listener if the plugin is uninstalled or disabled.
*/
public void destroy() throws Exception
{
eventPublisher.unregister(this);
}
@com.atlassian.event.api.EventListener
public void onVersionPublishEvent(Object event) {
String eventName = event.getClass().getCanonicalName(); // will work for other people's events, not just Atlassian's
// Spit out all events - just to prove the point
System.out.println(" ++ an event happened: " + eventName);
if (eventName.equals("com.k15t.scroll.platform.event.space.VersionPublishEvent")) {
System.out.println(" ++++ Found the right event ");
// Do your stuff here...
}
}
}
Обратите внимание, в этом примере, все события выводится на консоль, но мы проверка для конкретного нестандартного события в этом примере.
Изменить if (eventName.equals(...))
на интересующее вас мероприятие, и вы должны быть готовы к работе.
Привет, возможно ли перерисовать страницу, если происходит определенное событие? – JayBee
Просьба привести пример того, что вы имеете в виду. Вы имеете в виду какое-то событие javascript на стороне клиента? Или серверное событие Confluence? В нормальных событиях слияния не будет понятия о том, кто может открыть страницу в триггерное время. – dvdsmpsn