Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Crowd - Erstellen eines Plugins

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>

Referenz: http://confluence.atlassian.com/display/DEVNET/Plugin+Tutorial+-+Adding+a+custom+action+to+Confluence

weitere atlassian-plugin.xml Module

  1. Password Encoders
  2. Web menu items and sections
  3. Event listeners
  4. Servlets
  5. Spring components
  6. Crowd Applications
  7. 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.

Related Posts

Pin It on Pinterest