Die Seite beschreibt Step By Step das Erstellen eines Atlassian Crowd – Plugins.
Erstellen der Plugin-Skelletons
Atlassian Plugin SDK
Der einfachste Weg, um die Struktur für das Plugin zu erstellen, ist das Atlassian Plugin SDK zu verwenden. Atlassian Plugin SDK 3.2 – Download
Die Verwendung dieses SDKs wird hier beschrieben.
klassisch
Eclipse Projekt und pom.xml
Der klassische Weg besteht darin, die Ordnerstruktur händisch anzulegen. Dazu muss ein Java Projekt z.B. in Eclipse erstellt und mit einer pom.xml versehen werden.
Die pom.xml könnte wie folgt aussehen:
<?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>com.atlassian.plugins.company</groupId> <artifactId>my-new-plugin</artifactId> <version>1.0-SNAPSHOT</version> <name>my-new-plugin</name> <description>My description.</description> <packaging>atlassian-plugin</packaging> <build> <plugins> <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-crowd-plugin</artifactId> <version>3.3-m2</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.5</source> <target>1.5</target> </configuration> </plugin> </plugins> <resources> <resource> <directory>/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build> <properties> <crowd.version>2.0.7</crowd.version> <crowd.data.version>2.0.7</crowd.data.version> <package.path>de.communardo.crowd.plugins.myplugin</package.path> </properties> <dependencies> <dependency> <groupId>com.atlassian.crowd</groupId> <artifactId>crowd-api</artifactId> <version>${crowd.version}</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> <scope>provided</scope> </dependency> </dependencies> </project>
In diesem konkreten Fall sollen die Libs der crowd-api sowie der servlet-api importiert werden.
Achtung Das maven-crowd-plugin benötigt Zugriff auf das JDK. Bei mir war es notwendig Eclipse mit dem Parameter -vm "C:\Programme\Java\jdk1.5.0_22\bin" zu starten. |
Ordnerstruktur
Es bietet sich an die folgende Ordnerstruktur anzulegen:
für die Java Klassen: src/main/java
für die Resourcen: src/main/resources
atlassian-plugin.xml
Im root-Verzeichnis des Resourcenordners die Datei atlassian-plugin.xml anlegen. Den Aufbau der XML Datei kann hier entnommen werden.
Achtung Damit die Plugins von Atlassian Crowd vernünftig geladen werden, muss als Attribut in der root-Node atlassian-plugin das Attribut plugins-version="2" gesetzt werden! |
atlassian-plugin.xml Module konfigurieren
XWork Action
Für das Erstellen einer eigenen Action-Klasse empfiehlt es sich die Klasse com.atlassian.crowd.console.action.BaseAction zu erweitern. Letztens muss die neue Action nur noch wie folgt in der atlassian-plugin.xml registriert werden.
<xwork name="New Action Name" key="newactionkey"> <package name="newpackage" extends="console" namespace="/console/secure/newcontext"> <default-interceptor-ref name="defaultStack" /> <action name="inactiveusercsvexport" class="class.path.for.new.Action" method="execute"> <!-- list of possible results? --> </action> </package> </xwork>
weitere atlassian-plugin.xml Module
- Password Encoders
- Web menu items and sections
- Event listeners
- Servlets
- Spring components
- Crowd Applications
- REST plugin modules
Referenz: http://confluence.atlassian.com/display/CROWDDEV/Developing+Plugins+for+Crowd
Plugin bauen
Mittels mvn package wird die Plugin jar gebaut. Sollten andere Plugins Referenzen zu diesem Plugin haben, dann muss mvn install ausgeführt werden.
Plugin installieren
Damit die Erweiterung in Crowd wirksam wird, muss die Plugin jar in das Crowd data – Verzeichnis plugins kopiert werden. Im Gegensatz zu Atlassian Confluence ermöglicht es Atlassian Crowd nicht, dass zur Laufzeit neue Plugins installiert werden können. Aus diesem Grund muss der Crowd Server neugestartet werden.
The post Crowd – Erstellen eines Plugins appeared first on Communardo Techblog.