| ... | ... | @@ -5,13 +5,13 @@ | 
              
                    | 5 | 5 |  | 
              
                    | 6 | 6 | == API-Dokumentation == | 
              
                    | 7 | 7 |  | 
              
                    | 8 |  | -Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Java Script und JavaDocs>>https://docs.formcycle.eu/]] | 
              
                    |  | 8 | +Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Javadocs>>https://docs.formcycle.eu/]] | 
              
                    | 9 | 9 |  | 
              
                    | 10 | 10 | == Maven-Setup == | 
              
                    | 11 | 11 |  | 
              
                    | 12 |  | -Zu Beginn der Entwicklung eines Plugins ist es nötig ,das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren. | 
              
                    |  | 12 | +Zu Beginn der Entwicklung eines Plugins ist es nötig das entsprechende Entwicklungsprojekt aufzusetzten und zu konfigurieren. | 
              
                    | 13 | 13 |  | 
              
                    | 14 |  | -Für letzteres empfehlen wir hierbei das Build-Management-Tool [[Apache Maven>>url:https://maven.apache.org/||rel="__blank"]] zu verwenden. Andere Build-Tools können prinzipiellauch genutzt werden, hier können wir aber keine Hilfe bereitstellen. | 
              
                    |  | 14 | +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. | 
              
                    | 15 | 15 |  | 
              
                    | 16 | 16 | 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. | 
              
                    | 17 | 17 |  | 
                      
        | ... | ... | @@ -65,20 +65,18 @@ | 
              
                    | 65 | 65 | {{/code}} | 
              
                    | 66 | 66 | {{/panel}} | 
              
                    | 67 | 67 |  | 
              
                    | 68 |  | -== Maven-Projekteinrichtung  == | 
              
                    |  | 68 | +== Maven-Projekteinrichtung | 
              
                    | 69 | 69 |  | 
              
                    | 70 | 70 | Im Folgenden werden einige Punkte beschrieben, die beim Einrichten eines Maven-Projekts für ein {{formcycle/}}-Plugin beachtet werden müssen. Für den schnellen Einstieg gibt auch einige [[Maven-Archetypes>>||anchor="HMaven-Archetypes"]]. | 
              
                    | 71 | 71 |  | 
              
                    | 72 |  | -=== Artekfakte und Abhängigkeiten  === | 
              
                    |  | 72 | +=== Artekfakte und Abhängigkeiten | 
              
                    | 73 | 73 |  | 
              
                    | 74 | 74 | {{info}} | 
              
                    | 75 | 75 | Alle Abhängigkeiten zu {{formcycle case="dat"/}} sind im scope "provided" zu definieren! | 
              
                    | 76 | 76 | {{/info}} | 
              
                    | 77 | 77 |  | 
              
                    | 78 |  | - Einefertigeeinfache //pom.xml//könnenSie[[hierherunterladen>>attach:pom.xml||rel="__blank"]]. | 
              
                    |  | 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"]]. | 
              
                    | 79 | 79 |  | 
              
                    | 80 |  | -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 [[unsererer Downloadseite zur Verfügung>>url:http://artifactory.xima-services.de/artifactory/fc-plugin-dev/de/xima/fc/fc-plugin-common||rel="noopener noreferrer" target="_blank"]]. | 
              
                    | 81 |  | - | 
              
                    | 82 | 82 | In der //pom.xml// des Plugin-Projekts kann diese Abhängigkeit wie folgt eingebunden werden: | 
              
                    | 83 | 83 |  | 
              
                    | 84 | 84 | {{code language="xml"}} | 
                      
        | ... | ... | @@ -96,7 +96,7 @@ | 
              
                    | 96 | 96 | </dependencies> | 
              
                    | 97 | 97 | {{/code}} | 
              
                    | 98 | 98 |  | 
              
                    | 99 |  | -Ferner steht je nach Tiefe der Integration in die bestehende Umgebung von {{formcycle case="dat"/}} und de ren Benutzung als höchste Implementierung das Artefakt //fc-logic// zur Verfügung. Dieses wird wie folgt als weitere (oder einzige) Abhängigkeit definiert: | 
              
                    |  | 97 | +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: | 
              
                    | 100 | 100 |  | 
              
                    | 101 | 101 | {{code language="xml"}} | 
              
                    | 102 | 102 | <dependency> | 
                      
        | ... | ... | @@ -107,39 +107,22 @@ | 
              
                    | 107 | 107 | </dependency> | 
              
                    | 108 | 108 | {{/code}} | 
              
                    | 109 | 109 |  | 
              
                    | 110 |  | -Eine entsprechende Benutzung ist vor allem bei der Verwendung der Datenbankschnittstelle sowie bei der Implementierung von eigenen Verarbeitungen nötig. | 
              
                    |  | 108 | +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"]]. | 
              
                    | 111 | 111 |  | 
              
                    | 112 |  | -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).  Solche Abhängigkeit sind auch im Scope //provided// zu definieren. Eine einfache Möglichkeit, Fehler zu vermeiden, ist das Importieren der FORMCYCLE-Bom: | 
              
                    |  | 110 | +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). | 
              
                    | 113 | 113 |  | 
              
                    | 114 |  | -{{code language="xml"}} | 
              
                    | 115 |  | -	<dependencyManagement> | 
              
                    | 116 |  | -		<dependencies> | 
              
                    | 117 |  | -			<!--Import dependency versions from FORMCYCLE --> | 
              
                    | 118 |  | -			<dependency> | 
              
                    | 119 |  | -				<groupId>de.xima.fc</groupId> | 
              
                    | 120 |  | -				<artifactId>fc</artifactId> | 
              
                    | 121 |  | -				<version>${xfc.version}</version> | 
              
                    | 122 |  | -				<type>pom</type> | 
              
                    | 123 |  | -				<scope>import</scope> | 
              
                    | 124 |  | -			</dependency> | 
              
                    | 125 |  | -		</dependencies> | 
              
                    | 126 |  | -	</dependencyManagement> | 
              
                    | 127 |  | -{{/code}} | 
              
                    |  | 112 | +=== Manifest und Fat JAR | 
              
                    | 128 | 128 |  | 
              
                    | 129 |  | -Dann einfach die gewünschte Abhängigkeit ohne {{code}}<version>...</version>{{/code}} definieren. Wenn FORMCYCLE die Abhängigkeit schon enthält, gibt es keinen Build-Fehler. Andernfalls muss diese im Plugin mitgeliefert werden. In dem Fall die Version hinzufügen und den Provided-Scope entfernen. | 
              
                    | 130 |  | - | 
              
                    | 131 |  | -=== Manifest und Fat JAR === | 
              
                    | 132 |  | - | 
              
                    | 133 | 133 | In der //META-INF/MANIFEST.MF// in der Plugin-JAR-Datei sollten folgende Informationen stehen: | 
              
                    | 134 | 134 |  | 
              
                    | 135 | 135 | ; formcycle-version-requirement | 
              
                    | 136 |  | -: Erforderlich. Version von {{formcycle/}}, für die das Plugin gedacht ist.  Ist erforderlich, damit {{formcycle/}} bei der Installation die Kompatibilität prüfen kann. | 
              
                    |  | 117 | +: Erforderlich. Version von {{formcycle/}}, für die das Plugin gedacht ist.Ist erforderlich, damit {{formcycle/}} bei der Installation die Kompatibilität prüfen kann. | 
              
                    | 137 | 137 | ; Implementation-Version | 
              
                    | 138 |  | -: Erforderlich. Version des Plugins ;Diese wirdz.B.in der Oberfläche angezeigt. | 
              
                    |  | 119 | +: Erforderlich. Version des Plugins, wird etwa in der Oberfläche angezeigt. | 
              
                    | 139 | 139 | ; Build-Time oder Build-Timestamp | 
              
                    | 140 |  | -: Optional .Wird bei SNAPSHOT-Versionen mit angezeigt, um den SNAPSHOT zu identifizieren. | 
              
                    |  | 121 | +: Optional, wird bei SNAPSHOT-Versionen mit angezeigt, um den SNAPSHOT zu identifizieren. | 
              
                    | 141 | 141 | ; Implementation-Title | 
              
                    | 142 |  | -: Optional .Wird standardmäßig etwa vom Deploy-Plugin verwendet, um das Plugin zu identifzieren. | 
              
                    |  | 123 | +: Optional, wird standardmäßig etwa vom Deploy-Plugin verwendet, um das Plugin zu identifzieren. | 
              
                    | 143 | 143 |  | 
              
                    | 144 | 144 | Diese Informationen können wie unten beschrieben mittels des //maven-assembly-plugin// in die Manifest-Datei geschrieben werden. | 
              
                    | 145 | 145 |  | 
                      
        | ... | ... | @@ -219,7 +219,7 @@ | 
              
                    | 219 | 219 | Auswahl eines Archetypes beim Erstellen eines Maven-Projekts in Eclipse | 
              
                    | 220 | 220 | {{/figure}} | 
              
                    | 221 | 221 |  | 
              
                    | 222 |  | -Für einige häufig verwendete Plugin-Typen stehen [[Maven-Archetypes>>url:https://maven.apache.org/guides/introduction/introduction-to-archetypes.html|| rel="noopener noreferrer" target="_blank"]] bereits, um schnell ein Maven-Projekt aufsetzen zu können. | 
              
                    |  | 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. | 
              
                    | 223 | 223 |  | 
              
                    | 224 | 224 | 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: | 
              
                    | 225 | 225 |  | 
                      
        | ... | ... | @@ -229,15 +229,13 @@ | 
              
                    | 229 | 229 |  | 
              
                    | 230 | 230 | 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. | 
              
                    | 231 | 231 |  | 
              
                    | 232 |  | -Alle vorhandenen Archetypes und deren Versionen können im [[Archetype-Katalog>>url:https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml|| rel="noopener noreferrer" target="_blank"]] 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. | 
              
                    | 233 | 233 |  | 
              
                    | 234 | 234 | 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: | 
              
                    | 235 | 235 |  | 
              
                    | 236 |  | -{{code language="plaintext"}} | 
              
                    | 237 |  | -https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml | 
              
                    | 238 |  | -{{/code}} | 
              
                    |  | 217 | +{{code language="plaintext"}}https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml{{/code}} | 
              
                    | 239 | 239 |  | 
              
                    | 240 |  | -== Deploy-Plugin  == | 
              
                    |  | 219 | +== Deploy-Plugin | 
              
                    | 241 | 241 |  | 
              
                    | 242 | 242 | 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: | 
              
                    | 243 | 243 |  | 
                      
        | ... | ... | @@ -248,10 +248,10 @@ | 
              
                    | 248 | 248 |  | 
              
                    | 249 | 249 | {{code language="xml"}} | 
              
                    | 250 | 250 | <properties> | 
              
                    | 251 |  | -    <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version ></fc-deploy-plugin-maven-plugin> | 
              
                    |  | 230 | +    <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version/> | 
              
                    | 252 | 252 | <build> | 
              
                    | 253 | 253 | <plugins> | 
              
                    | 254 |  | -  <plugin> | 
              
                    |  | 233 | +	  <plugin> | 
              
                    | 255 | 255 | <groupId>de.xima.fc.maven.plugin</groupId> | 
              
                    | 256 | 256 | <artifactId>fc-deploy-plugin-maven-plugin</artifactId> | 
              
                    | 257 | 257 | <version>${fc-deploy-plugin-maven-plugin.version}</version> | 
                      
        | ... | ... | @@ -258,7 +258,7 @@ | 
              
                    | 258 | 258 | <executions> | 
              
                    | 259 | 259 | <execution> | 
              
                    | 260 | 260 | <id>upload</id> | 
              
                    | 261 |  | -            <phase> package</phase> | 
              
                    |  | 240 | +            <phase>install</phase> | 
              
                    | 262 | 262 | <goals> | 
              
                    | 263 | 263 | <goal>deploy</goal> | 
              
                    | 264 | 264 | </goals> | 
                      
        | ... | ... | @@ -272,11 +272,10 @@ | 
              
                    | 272 | 272 | Sofern das Deploy-Plugin bereits in {{formcycle/}} installiert ist, kann das Plugin-Projekt dann beim Bauen wie folgt hochgeladen werden: | 
              
                    | 273 | 273 |  | 
              
                    | 274 | 274 | {{code language="bash"}} | 
              
                    | 275 |  | -mvn packagefc-deploy:deploy-DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin | 
              
                    |  | 254 | +mvn clean install -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin | 
              
                    | 276 | 276 | {{/code}} | 
              
                    | 277 | 277 |  | 
              
                    | 278 |  | -Wird Eclipse benutzt, kann auch eine Launch-Configuration mit den //fcDeployUrl// und dem //fcDeployToken// angelegt werden. Das Plugin wird dann unter den System-Plugins registriert. | 
              
                    | 279 |  | -Soll das Plugin im Bereich eines bestimmten Mandanten registriert werden, so kann dies über den zusätzlichen Launch-Configuration Parameter //fcDeployClientId //erreicht werden. Dieser Parameter muss als Wert die Id des Mandanten enthalten. | 
              
                    |  | 257 | +Wird Eclipse benutzt, kann auch eine Launch-Configuration mit den //fcDeployUrl// und dem //fcDeployToken// angelegt werden. | 
              
                    | 280 | 280 |  | 
              
                    | 281 | 281 | == FC-Server-Plugin == | 
              
                    | 282 | 282 |  | 
                      
        | ... | ... | @@ -285,28 +285,10 @@ | 
              
                    | 285 | 285 | 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: | 
              
                    | 286 | 286 |  | 
              
                    | 287 | 287 | {{code language="bash"}} | 
              
                    | 288 |  | -# Aktuelle Version starten | 
              
                    | 289 |  | -mvn fc-server:run-ms-war | 
              
                    | 290 |  | - | 
              
                    | 291 |  | -# Spezifische Version starten | 
              
                    | 292 |  | -mvn de.xima.fc.maven.plugin:fc-server-maven-plugin:7.0.4:run-ms-war -DxfcVersion=7.0.16 | 
              
                    |  | 266 | +mvn fc-server:run-ms-war -DxfcVersion=7.0.10 | 
              
                    | 293 | 293 | {{/code}} | 
              
                    | 294 | 294 |  | 
              
                    | 295 |  | -{{info}} | 
              
                    | 296 |  | -Wir empfehlen die Nutzung von Java 11. Bei Nutzung von Java 17 kann es aktuell zu Problemen beim Starten von {{formcycle/}} kommen. | 
              
                    | 297 |  | -{{/info}} | 
              
                    |  | 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 | 
              
                    | 298 | 298 |  | 
              
                    | 299 |  | -{{info}} | 
              
                    | 300 |  | -Bis einschließlich Version 7.x von {{formcycle/}} und dem Maven-Plugin ist es noch erforderlich, die package-Phase explizit auszuführen: {{code}}mvn package fc-server:run-ms-war{{/code}}. Ab Version 8.x geschieht dies automatisch. | 
              
                    | 301 |  | -{{/info}} | 
              
                    |  | 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. | 
              
                    | 302 | 302 |  | 
              
                    | 303 |  | -{{info}} | 
              
                    | 304 |  | -Die Major- und Minor-Version des Maven-Plugins sollte immer der Major- und Minor-Version des zu startenden {{formcycle case="gen"/}} entsprechen. Für {{formcycle/}} 7.0.x sollte also das Maven-Plugin in Version 7.0.x verwendet werde, für {{formcycle/}} 7.1.x das Maven-Plugin in Version 7.1.x usw. | 
              
                    | 305 |  | -{{/info}} | 
              
                    | 306 |  | - | 
              
                    | 307 |  | -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 Der Zugang für den Superadmin ist {{code language="plaintext"}}sadmin{{/code}} (Passwort {{code language="plaintext"}}admin{{/code}}), der Zugang für den Mandantadministrator {{code language="plaintext"}}admin{{/code}} (Passwort {{code language="plaintext"}}/admin_{{/code}}). | 
              
                    | 308 |  | - | 
              
                    | 309 |  | -Falls der Befehl in einem Maven-Projekt eines {{formcycle/}}-Plugins ausgeführt wird, dann wird das Plugin automatisch gebaut und nach dem Starten des Servers hochgeladen und installiert. Zudem wird versucht, die {{formcycle/}}-Version aus dem Plugin-Projekt auszulesen. | 
              
                    | 310 |  | - | 
              
                    | 311 |  | -Dies funktioniert auch in einem Ordner ohne Maven-Projekt. Falls keine {{formcycle/}}-Version angegeben ist, wird eine Standard-Version genommen, abhängig von der Maven-Plugin-Version. | 
              
                    | 312 |  | - |