Wiki-Quellcode von Plugin-Entwicklung


Zeige letzte Bearbeiter
1 {{content/}}
2
3 == Plugins für zusätzliche Funktionalitäten ==
4
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.
6
7 == API-Dokumentation ==
8
9 Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Javadocs>>https://docs.formcycle.eu/]]
10
11 == Projekt-Setup ==
12
13 Zu Beginn der Entwicklung eines Plugins ist es nötig das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren.
14
15 Für letzteres empfehlen wir hierbei das Build-Management-Tool [[Apache Maven>>url:https://maven.apache.org/||rel="__blank"]] zum Einsatz. Andere Build-Tools können prinzipiell benutzt werden, hier können wir aber keine Hilfe bereitstellen.
16
17 Um die entsprechenden Abhängigkeiten zu {{formcycle case="dat"/}} bereitzustellen, ist das 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 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>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common/]].
18
19 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//:
20
21 {{panel title="~~~~/.m2/settings.xml" fullwidth="true" initial="hidden" triggerable="true"}}
22 {{code language="xml"}}
23 <?xml version="1.0" encoding="UTF-8"?>
24 <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"
25 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
26
27 <!-- Add XIMA artifactory -->
28 <profiles>
29 <profile>
30 <!-- FORMCYCLE dependencies -->
31 <repositories>
32 <repository>
33 <snapshots>
34 <enabled>false</enabled>
35 </snapshots>
36 <id>xima</id>
37 <name>libs-release</name>
38 <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
39 </repository>
40 </repositories>
41 <!-- Maven plugins for FORMCYCLE -->
42 <pluginRepositories>
43 <pluginRepository>
44 <snapshots>
45 <enabled>false</enabled>
46 </snapshots>
47 <id>xima</id>
48 <name>plugins-release</name>
49 <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url>
50 </pluginRepository>
51 </pluginRepositories>
52 <id>xima-artifactory</id>
53 </profile>
54 </profiles>
55
56 <!-- Enable XIMA artifactory by default -->
57 <activeProfiles>
58 <activeProfile>xima-artifactory</activeProfile>
59 </activeProfiles>
60
61 <!-- FORMCYCLE specific Maven plugins provided by XIMA -->
62 <pluginGroups>
63 <pluginGroup>de.xima.fc.maven.plugin</pluginGroup>
64 </pluginGroups>
65 </settings>
66 {{/code}}
67 {{/panel}}
68
69 In der //pom.xml// des Plugin-Projekts kann die Abhängigkeit dann wie folgt eingebunden werden:
70
71 {{code language="xml"}}
72 <properties>
73 <xfc.version>7.0.10</xfc.version>
74 </properties>
75
76 <dependencies>
77 <dependency>
78 <groupId>de.xima.fc</groupId>
79 <artifactId>fc-plugin-common</artifactId>
80 <version>${xfc.version}</version>
81 <scope>provided</scope>
82 </dependency>
83 </dependencies>
84 {{/code}}
85
86 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:
87
88 {{code language="xml"}}
89 <dependency>
90 <groupId>de.xima.fc</groupId>
91 <artifactId>fc-logic</artifactId>
92 <version>${xfc.version}</version>
93 <scope>provided</scope>
94 </dependency>
95 {{/code}}
96
97 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"]].
98
99 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).
100
101 {{info}}
102 Alle Abhangigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren!
103 {{/info}}
104
105 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]].
106
107 == Archetypes ==
108
109 TODO
110
111 Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, [[bieten wir auf unserer Downloadseite>>url:https://customer.formcycle.eu/index.php/s/PgdMrNOvbYEzhmr]]