Я хочу начать разрабатывать крауд-плагин. Плагин должен подключиться к AD для поиска пользователя и получить определенное свойство AD. Поэтому я начал следить за этим. У меня уже был установлен Atlassian-SDK для плагина JIRA, который я разработал в прошлом. Поэтому я создал новый плагин с
atlas-create-crowd-plugin
и после того, как я стер класс, созданный командой create, и скопировал его в код примера, но это не сработало (проблемы компиляции). Поэтому я немного изменил файл pom.xml.
<? xml version="1.0" encoding="UTF-8"?>
<project xmlns=http://maven.apache.org/POM/4.0.0
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>myGroupId</groupId>
<artifactId>myArtifactId</artifactId>
<version>1.0-SNAPSHOT</version>
<organization>
<name>Example Company</name>
<url>http://www.example.com/</url>
</organization>
<name>event-listener-example</name>
<description>This is an event listener plugin for Atlassian Crowd.</description>
<packaging>atlassian-plugin</packaging>
<dependencies>
<dependency>
<groupId>com.atlassian.crowd</groupId>
<artifactId>crowd-events</artifactId>
<version>${crowd.version}</version>
<cope>provided</scope>
<dependency>
<dependency>
<groupId>com.atlassian.event</groupId>
<artifactId>atlassian-event</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.atlassian.maven.plugins</groupId>
<artifactId>maven-crowd-plugin</artifactId>
<version>6.2.1</version>
<extensions>true</extensions>
<configuration>
<productVersion>${crowd.version}</productVersion>
<productDataVersion>${crowd.data.version}</productDataVersion>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<configuration>
</plugin>
</plugins>
</build>
<properties>
<crowd.version>2.8.4</crowd.version>
<crowd.data.version>2.8.4</crowd.data.version>
<atlassian.plugin.key>${project.groupId}.${project.artifactId} </atlassian.plugin.key>
</properties>
</project>
Здесь вы можете видеть, что я немного изменил его (версии и добавил зависимость от atlassian-event).
Затем я изменил atlassian-plugin.xml:
<atlassian-plugin key="${atlassian.plugin.key}" 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}" />
<param name="plugin-icon">images/pluginIcon.png</param>
<param name="plugin-logo">images/pluginLogo.png</param>
</plugin-info>
<resource type="i18n" name="i18n" location="kgSynchro" />
<listener name="User Created Listener" key="usercreatedlistener"
class="myPackage.NewUserEventListener">
<description>Will listen for user creation
events.</description>
</listener>
</atlassian-plugin>
И в конце мой класс:
package myPackage.events;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.atlassian.crowd.event.user.UserCreatedEvent;
import com.atlassian.event.api.EventListener;
public class NewUserEventListener {
private final Logger log = LoggerFactory.getLogger (NewUserEventListener.class);
@EventListener public void printUserCreatedEvent(
UserCreatedEvent event) {
System.out.println("User " + event.getUser ().getDisplayName() + " has been created.");
log.error("new User is CREATED");
}
}
То же, что и в примере, но я добавил Logger для регистрации вызова метода.
Затем я запустил среду crod с помощью atlas-run (также попробовал atlas-debug), перешел в пользовательский интерфейс и попытался добавить нового пользователя. Пользователь был создан правильно, но в журнале ничего не отображается о моем методе. У меня много ошибок:
The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has passed through its servlet filter, which initializes the Struts dispatcher needed for this tag. - [unknown location]
Но это происходит на каждой странице, по которой я перемещаюсь по толпе..... тогда я думаю, что это не имеет отношения к тому факту, что мой метод никогда не вызывается.
Есть ли у каждого несколько советов о том, что попытаться выяснить проблему?
Танк очень заранее