... |
... |
@@ -1,6 +1,5 @@ |
1 |
1 |
{{content/}} |
2 |
2 |
|
3 |
|
-== Plugins für zusätzliche Funktionalitäten == |
4 |
4 |
|
5 |
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 |
6 |
|
... |
... |
@@ -76,7 +76,7 @@ |
76 |
76 |
Alle Abhängigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren! |
77 |
77 |
{{/info}} |
78 |
78 |
|
79 |
|
-Ausgangspunkt für die Entwicklung von Plugin ist das Maven-Artefakt //fc-plugin-common//. Dieses enthält die einzelnen Plugin-Schnittstellen und steht auch auf [[unserere Downloadseite zur Verfügung>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common/]]. |
|
78 |
+Ausgangspunkt für die Entwicklung von Plugin ist das Maven-Artefakt //fc-plugin-common//. Dieses enthält die einzelnen Plugin-Schnittstellen und steht auch auf [[unserere Downloadseite zur Verfügung>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common||target="_blank"]]. |
80 |
80 |
|
81 |
81 |
In der //pom.xml// des Plugin-Projekts kann diese Abhängigkeit wie folgt eingebunden werden: |
82 |
82 |
|
... |
... |
@@ -193,11 +193,16 @@ |
193 |
193 |
|
194 |
194 |
== Maven-Archetypes == |
195 |
195 |
|
196 |
|
-{{figure image="eclipse-archetype.png"}} |
|
195 |
+{{figure image="eclipse-archetype.png" width="500"}} |
|
196 |
+ Hinzufügen des Archetypes-Katalogs in Eclipse |
197 |
197 |
{{/figure}} |
198 |
198 |
|
199 |
|
-Für einige häufig verwendete Plugin-Typen stehen [[Maven-Archetypes>>url:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html#:~:text=In%20short%2C%20Archetype%20is%20a,means%20of%20generating%20Maven%20projects.]] bereits, um schnell ein Maven-Projekt aufsetzen zu können. |
|
199 |
+{{figure image="eclipse-archetype-select.png" width="500"}} |
|
200 |
+ Auswahl eines Archetypes beim Erstellen eines Maven-Projekts in Eclipse |
|
201 |
+{{/figure}} |
200 |
200 |
|
|
203 |
+Für einige häufig verwendete Plugin-Typen stehen [[Maven-Archetypes>>url:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html||target="_blank"]] bereits, um schnell ein Maven-Projekt aufsetzen zu können. |
|
204 |
+ |
201 |
201 |
Voraussetzung für die Verwendung ist, dass in den //~~/.m2/settings.xml// wie oben beschrieben das XIMA-Artifactory eingerichtet wurde. Dann kann etwa über die Kommandozeile wie folgt eine Archetype generiert werden: |
202 |
202 |
|
203 |
203 |
{{code}} |
... |
... |
@@ -206,18 +206,63 @@ |
206 |
206 |
|
207 |
207 |
Es werden dann einige wenige Informationen wie die gewünschten Maven-Koordinaten des neuen Plugin-Projekts abgefragt und anschließend ein neues vorkonfiguriertes Projekt erstellt. |
208 |
208 |
|
209 |
|
-Alle vorhandenen Archetypes und deren Versionen können im [[Archetype-Katalog>>doc:https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml]] eingesehen werden. |
|
213 |
+Alle vorhandenen Archetypes und deren Versionen können im [[Archetype-Katalog>>url:https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml||target="_blank"]] eingesehen werden. |
210 |
210 |
|
211 |
|
-In Eclipse kann der Archetype-Katalog in den Einstellungen hinzugefügt werden. Bei der Erstellung eines neuen Maven-Projekt werden dann alle verfügbaren Archetypes angezeigt. |
|
215 |
+In Eclipse kann der Archetype-Katalog in den Einstellungen hinzugefügt werden. Bei der Erstellung eines neuen Maven-Projekt werden dann alle verfügbaren Archetypes angezeigt: |
212 |
212 |
|
213 |
|
-Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, [[bieten wir auf unserer Downloadseite>>url:https://customer.formcycle.eu/index.php/s/PgdMrNOvbYEzhmr]] |
|
217 |
+{{code language="plaintext"}}https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml{{/code}} |
214 |
214 |
|
215 |
215 |
== Deploy-Plugin |
216 |
216 |
|
217 |
|
-TODO |
|
221 |
+Um beim Entwickeln nicht jedes Mal eine neue Plugin-Version manuell über die Oberfläche hochladen zu müssen, kann das Deploy-Plugin verwendet werden. Dieses besteht aus 2 Teilen: |
218 |
218 |
|
219 |
|
-== FC-Server-Plugin |
|
223 |
+* Ein Maven-Plugin, welches nach dem Bauen das Plugin via HTTP an einen laufenden {{formcycle/}}-Server sendet |
|
224 |
+* Ein Plugin für {{formcycle/}}, welche die Gegenstelle in {{formcycle/}} bereitstellt und das Plugin aus dem HTTP-Request in {{formcycle/}} installiert. |
220 |
220 |
|
221 |
|
-TODO |
|
226 |
+Weitere Details können im [[Hilfe-Artikel zum Deploy-Plugin>>doc:Formcycle.PluginDocumentation.FormcycleDeployPluginPlugin]] nachgelesen werden. Für die meisten Fälle reicht folgende Konfiguration in der //pom.xml// des Plugin-Projekts aus: |
222 |
222 |
|
|
228 |
+{{code language="xml"}} |
|
229 |
+ <properties> |
|
230 |
+ <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version/> |
|
231 |
+ <build> |
|
232 |
+ <plugins> |
|
233 |
+ <plugin> |
|
234 |
+ <groupId>de.xima.fc.maven.plugin</groupId> |
|
235 |
+ <artifactId>fc-deploy-plugin-maven-plugin</artifactId> |
|
236 |
+ <version>${fc-deploy-plugin-maven-plugin.version}</version> |
|
237 |
+ <executions> |
|
238 |
+ <execution> |
|
239 |
+ <id>upload</id> |
|
240 |
+ <phase>install</phase> |
|
241 |
+ <goals> |
|
242 |
+ <goal>deploy</goal> |
|
243 |
+ </goals> |
|
244 |
+ </execution> |
|
245 |
+ </executions> |
|
246 |
+ </plugin> |
|
247 |
+ </plugins> |
|
248 |
+ </build> |
|
249 |
+{{/code}} |
223 |
223 |
|
|
251 |
+Sofern das Deploy-Plugin bereits in {{formcycle/}} installiert ist, kann das Plugin-Projekt dann beim Bauen wie folgt hochgeladen werden: |
|
252 |
+ |
|
253 |
+{{code language="bash"}} |
|
254 |
+mvn clean install -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin |
|
255 |
+{{/code}} |
|
256 |
+ |
|
257 |
+Wird Eclipse benutzt, kann auch eine Launch-Configuration mit den //fcDeployUrl// und dem //fcDeployToken// angelegt werden. |
|
258 |
+ |
|
259 |
+== FC-Server-Plugin == |
|
260 |
+ |
|
261 |
+Zum Testen eines Plugins ist es erforderlich, einen laufenden {{formcycle/}}-Server zu haben. Zur Vereinfachung der Entwicklung gibt es das //fc-server-maven-plugin//, welches mittels eines einzigen Befehls ein fertig eingerichtetes {{formcycle/}} lokal startet, wo auch bereits das Deploy-Plugin vorinstalliert ist. |
|
262 |
+ |
|
263 |
+Sofern wie oben beschrieben in //~~/.m2/settings.xml// die //pluginGroup// hinterlegt wurde, kann in einem beliebiegen Verzeichnis wie folgt ein {{formcycle/}}-Server per Maven gestartet werden: |
|
264 |
+ |
|
265 |
+{{code language="bash"}} |
|
266 |
+mvn fc-server:run-ms-war -DxfcVersion=7.0.10 |
|
267 |
+{{/code}} |
|
268 |
+ |
|
269 |
+Nach kurzer Wartezeit (beim ersten Mal kann es länger dauern) ist dann ein {{formcycle/}}-Server gestartet. Die URL steht am Ende in der Kommandozeile, standardmäßig http://localhost:8080/xima-formcycle |
|
270 |
+ |
|
271 |
+Dies funktioniert auch in einem Ordner ohne Maven-Projekt. Falls keine {{formcycle/}} angegeben ist, wird eine Standard-Version genommen. Wird der Befehl innerhalb eines Plugin-Maven-Projekts ausgeführt, wird versucht, die Version von {{formcycle/}} aus dem Plugin-Projekt auszulesen. |
|
272 |
+ |