Plugin-Entwicklung
Plugins für zusätzliche Funktionalitäten
Xima® Formcycle bietet ein Vielzahl von Einstiegspunkten für die Erweiterung der Standard-Funktionalitäten durch Plugins. Basierend auf den einzelnen Plugin-Typen werden diese zu gewissen Zeitpunkten automatisch oder manuell angesprochen und erlauben es somit von der Ersetzung eigener Platzhalter bis hin zur Implementierung eigener Verarbeitungslogik Xima® Formcycle anzupassen. Als fundamentaler erster Schritt für die Entwicklung eigener Plugins ist hierbei das Erstellen eines entsprechenden Java-Projekts anzusehen.
API-Dokumentation
Die API-Dokumentation für Xima® Formcycle findet sich hier auf unserer Seite: Javadocs
Projekt-Setup
Zu Beginn der Entwicklung eines Plugins ist es nötig das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren.
Für letzteres empfehlen wir hierbei das Build-Management-Tool Apache Maven zum Einsatz. Andere Build-Tools können prinzipiell benutzt werden, hier können wir aber keine Hilfe bereitstellen.
Um die entsprechenden Abhängigkeiten zu Xima® Formcycle bereitzustellen, ist das Repository unter der URL https://artifactory.xima-services.de/artifactory/fc-plugin-dev zu benutzen. Dieses enthält alle öffentlich zur Verfügung stehenden Artefakte, welche dem Plugin zur Laufzeit bereitgestellt und während der Entwicklung benötigt werden. Ausgangspunkt ist hierbei das Artefakt fc-plugin-common, welches die einzelnen Plugin-Schnittstellen beinhaltet und auch auf unserere Downloadseite zur Verfügung steht.
Damit das Repository auch beim Bauen mit Maven verwendet wird, sollte folgendes in die Maven-Konfigurationsdatei settings.xml geschrieben werden. Diese Datei findet sich in der Regeln im .m2-Ordner im Home-Verzeichnis des aktuellen Nutzers. Unter Linux /.m2/settings.xml und unter Windows %homepath%\.m2\settings.xml:
~/.m2/settings.xml
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Add XIMA artifactory -->
<profiles>
<profile>
<!-- FORMCYCLE dependencies -->
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>xima</id>
<name>libs-release</name>
<url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
</repository>
</repositories>
<!-- Maven plugins for FORMCYCLE -->
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>xima</id>
<name>plugins-release</name>
<url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
</pluginRepository>
</pluginRepositories>
<id>xima-artifactory</id>
</profile>
</profiles>
<!-- Enable XIMA artifactory by default -->
<activeProfiles>
<activeProfile>xima-artifactory</activeProfile>
</activeProfiles>
<!-- FORMCYCLE specific Maven plugins provided by XIMA -->
<pluginGroups>
<pluginGroup>de.xima.fc.maven.plugin</pluginGroup>
</pluginGroups>
</settings>
In der pom.xml des Plugin-Projekts kann die Abhängigkeit dann wie folgt eingebunden werden:
<xfc.version>7.0.10</xfc.version>
</properties>
<dependencies>
<dependency>
<groupId>de.xima.fc</groupId>
<artifactId>fc-plugin-common</artifactId>
<version>${xfc.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
Ferner steht je nach Tiefe der Integration in die bestehende Umgebung von Xima® Formcycle und dessen Benutzung als höchste Implementierung das Artefakt fc-logic zur Verfügung. Dieses wird wie folgt als weitere (oder einzige) Abhängigkeit definiert:
<groupId>de.xima.fc</groupId>
<artifactId>fc-logic</artifactId>
<version>${xfc.version}</version>
<scope>provided</scope>
</dependency>
Eine entsprechende Benutzung ist vor allem bei der Verwendung der Datenbankschnittstelle sowie bei der Implementierung von eigenen Verarbeitungen nötig. Eine Vorlage für ein somit entstehendes Project Object Model finden Sie .
Ferner ist zu beachten, dass sämtliche Abhängigkeiten zu Xima® Formcycle im scope provided anzugeben sind. Dies verhindert neben Classpath-Problemen auch das unnötige Anschwellen der Plugin-Größe. Ebenso sollten diesbezüglich Abhängigkeiten auf bereits von Xima® Formcycle benutzten und damit bereitstehenden Bibliotheken wiederverwendet werden (z.B. diverse Apache Commons-Implementierungen).
Basierend auf der hiermit zur Verfügung stehenden Infrastruktur steht der Entwicklung von eigenen Plugin-Implementierungen nichts mehr im Wege. Die Installation erfolgt anschließend je nach Verwendungszweck über die Oberflächen Mandant-Plugins oder System-Plugins.
Archetypes
TODO
Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, bieten wir auf unserer Downloadseite