Wiki-Quellcode von Plugin-Entwicklung


Verstecke letzte Bearbeiter
XIMA Admin 1.1 1 {{content/}}
2
3 == Plugins für zusätzliche Funktionalitäten ==
4
gru 13.1 5 {{formcycle/}} bietet ein Vielzahl von Einstiegspunkten für die Erweiterung der Standard-Funktionalitäten durch Plugins. Basierend auf den einzelnen [[Plugin-Typen>>doc:Formcycle.PluginDevelopment.Types.WebHome]] werden diese zu gewissen Zeitpunkten automatisch oder manuell angesprochen und erlauben es somit von der Ersetzung eigener Platzhalter bis hin zur Implementierung eigener Verarbeitungslogik {{formcycle/}} anzupassen. Als fundamentaler erster Schritt für die Entwicklung eigener Plugins ist hierbei das Erstellen eines entsprechenden Java-Projekts anzusehen.
XIMA Admin 1.1 6
7 == API-Dokumentation ==
8
sas 17.1 9 Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Javadocs>>https://docs.formcycle.eu/]]
XIMA Admin 1.1 10
11 == Projekt-Setup ==
12
rth 15.2 13 Zu Beginn der Entwicklung eines Plugins ist es nötig das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren. Für letzteres kommt hierbei das Build-Management-Tool [[Apache Maven>>url:https://maven.apache.org/||rel="__blank"]] zum Einsatz. Um die entsprechenden Abhängigkeiten zu {{formcycle case="dat"/}} bereitzustellen ist ein Repository unter der URL [[https:~~/~~/artifactory.xima-services.de/artifactory/fc-plugin-dev>>url:https://artifactory.xima-services.de/artifactory/fc-plugin-dev]] zu benutzen. Dieses beinhaltet alle öffentlich zur Verfügung stehenden Artefakte welche dem Plugin zur Laufzeit bereitgestellt und während der Entwicklung benötigt werden. Augangspunkt ist hierbei das Artefakt //fc-plugin-common//, welches die einzelnen Plugin-Schnittstellen beinhaltet und auch auf [[unserere Downloadseite zur Verfügung steht>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common/]]. Ein Auszug des Project Object Models (pom.xml) sieht dem entsprechend beispielhaft wie folgt aus:
XIMA Admin 1.1 14
15 {{panel title="Beispiel für pom.xml" initial="hidden" triggerable="true" fullwidth="true"}}
16 {{code language="xml"}}
17 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
18 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
19
20 ...
21
22 <properties>
23 <!-- Configuration -->
24 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
25
26 <!-- Dependencies -->
rth 15.1 27 <xfc.version>6.0.0</xfc.version>
XIMA Admin 1.1 28
29 <!-- Plugins -->
rth 16.2 30 <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
rth 15.1 31 <maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
XIMA Admin 1.1 32 </properties>
33
34 <repositories>
35 <repository>
36 <id>xima</id>
37 <name>fc-plugin-dev</name>
rth 15.1 38 <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
XIMA Admin 1.1 39 </repository>
40 </repositories>
41
42 <dependencies>
43 <dependency>
44 <groupId>de.xima.fc</groupId>
45 <artifactId>fc-plugin-common</artifactId>
rth 15.1 46 <version>${xfc.version}</version>
XIMA Admin 1.1 47 <scope>provided</scope>
48 </dependency>
49 </dependencies>
50
51 <build>
52 <plugins>
53 <plugin>
54 <groupId>org.apache.maven.plugins</groupId>
55 <artifactId>maven-compiler-plugin</artifactId>
rth 15.1 56 <version>${maven-compiler-plugin.version}</version>
XIMA Admin 1.1 57 <configuration>
rth 15.1 58 <source>1.8</source>
59 <target>1.8</target>
XIMA Admin 1.1 60 <encoding>UTF-8</encoding>
61 </configuration>
62 </plugin>
63
64 <plugin>
65 <groupId>org.apache.maven.plugins</groupId>
66 <artifactId>maven-jar-plugin</artifactId>
rth 15.1 67 <version>${maven-jar-plugin.version}</version>
XIMA Admin 1.1 68 <configuration>
69 <archive>
70 <manifest>
71 <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
72 </manifest>
73 <manifestEntries>
rth 15.1 74 <formcycle-version-requirement>${xfc.version}</formcycle-version-requirement>
awa 17.3 75 <Build-Time>${maven.build.timestamp}</Build-Time>
XIMA Admin 1.1 76 </manifestEntries>
77 </archive>
78 </configuration>
79 </plugin>
80
81 </plugins>
82 </build>
83 </project>
84
85 {{/code}}
86 {{/panel}}
87
88 Ferner steht je nach Tiefe der Integration in die bestehende Umgebung von {{formcycle case="dat"/}} 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:
89
90 {{code language="xml"}}
91 ...
92 <dependency>
93 <groupId>de.xima.fc</groupId>
94 <artifactId>fc-logic</artifactId>
rth 15.1 95 <version>${xfc.version}</version>
XIMA Admin 1.1 96 <scope>provided</scope>
97 </dependency>
98 ...
99 {{/code}}
100
101 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 [[hier>>attach:pom.xml||rel="__blank"]].
102
103 Ferner ist zu beachten, dass sämtliche Abhängigkeiten zu {{formcycle case="dat"/}} 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 {{formcycle case="dat"/}} benutzten und damit bereitstehenden Bibliotheken wiederverwendet werden (z.B. diverse Apache Commons-Implementierungen).
104
105 {{info}}
106 Alle Abhangigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren!
107 {{/info}}
108
awa 16.1 109 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>>doc:Formcycle.UserInterface.Client.Plugins]] oder [[System-Plugins>>doc:Formcycle.SystemSettings.UserInterface.SystemPlugins]].
XIMA Admin 1.1 110
111 == Demo-Plugins ==
112
awa 17.2 113 Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, [[bieten wir auf unserer Downloadseite>>url:https://customer.formcycle.eu/index.php/s/PgdMrNOvbYEzhmr]] auch für jeden Plugintyp ein kommentiertes Demo-Maven-Projekt an. Sie können diese herunterladen und in der Entwicklungsumgebung ihrer Wahl einsehen und kompilieren.
Copyright 2000-2025