| ... | 
        ... | 
                @@ -1,18 +1,17 @@ | 
      
              
                    | 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 | 
            | 
        
              
                    | 7 | 
          7 | 
           == API-Dokumentation == | 
        
              
                    | 8 | 
          8 | 
            | 
        
              
                    | 9 | 
           | 
          -Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[Javadocs>>https://docs.formcycle.eu/]] | 
        
              
                     | 
          8 | 
          +Die API-Dokumentation für {{formcycle/}} findet sich hier auf unserer Seite: [[JavaScript und JavaDocs>>https://docs.formcycle.eu/]] | 
        
              
                    | 10 | 
          10 | 
            | 
        
              
                    | 11 | 
          11 | 
           == Maven-Setup == | 
        
              
                    | 12 | 
          12 | 
            | 
        
              
                    | 13 | 
           | 
          -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. | 
        
              
                    | 14 | 
          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. | 
        
              
                     | 
          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 prinzipiell auch genutzt werden, hier können wir aber keine Hilfe bereitstellen. | 
        
              
                    | 16 | 
          16 | 
            | 
        
              
                    | 17 | 
          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. | 
        
              
                    | 18 | 
          18 | 
            | 
        
                      
        | ... | 
        ... | 
                @@ -34,7 +34,7 @@ | 
      
              
                    | 34 | 
          34 | 
                       <enabled>false</enabled> | 
        
              
                    | 35 | 
          35 | 
                     </snapshots> | 
        
              
                    | 36 | 
          36 | 
                     <id>xima</id> | 
        
              
                    | 37 | 
           | 
          -          <name>libs-release</name> | 
        
              
                     | 
          36 | 
          +          <name>fc-plugin-dev</name> | 
        
              
                    | 38 | 
          38 | 
                     <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url> | 
        
              
                    | 39 | 
          39 | 
                   </repository> | 
        
              
                    | 40 | 
          40 | 
                 </repositories> | 
        
                      
        | ... | 
        ... | 
                @@ -45,7 +45,7 @@ | 
      
              
                    | 45 | 
          45 | 
                       <enabled>false</enabled> | 
        
              
                    | 46 | 
          46 | 
                     </snapshots> | 
        
              
                    | 47 | 
          47 | 
                     <id>xima</id> | 
        
              
                    | 48 | 
           | 
          -          <name>plugins-release</name> | 
        
              
                     | 
          47 | 
          +          <name>fc-plugin-dev</name> | 
        
              
                    | 49 | 
          49 | 
                     <url>https://artifactory.xima-services.de/artifactory/fc-plugin-dev</url> | 
        
              
                    | 50 | 
          50 | 
                   </pluginRepository> | 
        
              
                    | 51 | 
          51 | 
                 </pluginRepositories> | 
        
                      
        | ... | 
        ... | 
                @@ -66,18 +66,20 @@ | 
      
              
                    | 66 | 
          66 | 
           {{/code}} | 
        
              
                    | 67 | 
          67 | 
           {{/panel}} | 
        
              
                    | 68 | 
          68 | 
            | 
        
              
                    | 69 | 
           | 
          -== Maven-Projekteinrichtung | 
        
              
                     | 
          68 | 
          +== Maven-Projekteinrichtung == | 
        
              
                    | 70 | 
          70 | 
            | 
        
              
                    | 71 | 
          71 | 
           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"]]. | 
        
              
                    | 72 | 
          72 | 
            | 
        
              
                    | 73 | 
           | 
          -=== Artekfakte und Abhängigkeiten | 
        
              
                     | 
          72 | 
          +=== Artekfakte und Abhängigkeiten === | 
        
              
                    | 74 | 
          74 | 
            | 
        
              
                    | 75 | 
          75 | 
           {{info}} | 
        
              
                    | 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 | 
          +Eine fertige einfache //pom.xml// können Sie [[hier herunterladen>>attach:pom.xml||rel="__blank"]]. | 
        
              
                    | 80 | 
          80 | 
            | 
        
              
                     | 
          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 | 
          + | 
        
              
                    | 81 | 
          81 | 
           In der //pom.xml// des Plugin-Projekts kann diese Abhängigkeit wie folgt eingebunden werden: | 
        
              
                    | 82 | 
          82 | 
            | 
        
              
                    | 83 | 
          83 | 
           {{code language="xml"}} | 
        
                      
        | ... | 
        ... | 
                @@ -95,7 +95,7 @@ | 
      
              
                    | 95 | 
          95 | 
             </dependencies> | 
        
              
                    | 96 | 
          96 | 
           {{/code}} | 
        
              
                    | 97 | 
          97 | 
            | 
        
              
                    | 98 | 
           | 
          -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: | 
        
              
                     | 
          99 | 
          +Ferner steht je nach Tiefe der Integration in die bestehende Umgebung von {{formcycle case="dat"/}} und deren Benutzung als höchste Implementierung das Artefakt //fc-logic// zur Verfügung. Dieses wird wie folgt als weitere (oder einzige) Abhängigkeit definiert: | 
        
              
                    | 99 | 
          99 | 
            | 
        
              
                    | 100 | 
          100 | 
           {{code language="xml"}} | 
        
              
                    | 101 | 
          101 | 
             <dependency> | 
        
                      
        | ... | 
        ... | 
                @@ -106,23 +106,44 @@ | 
      
              
                    | 106 | 
          106 | 
             </dependency> | 
        
              
                    | 107 | 
          107 | 
           {{/code}} | 
        
              
                    | 108 | 
          108 | 
            | 
        
              
                    | 109 | 
           | 
          -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"]]. | 
        
              
                     | 
          110 | 
          +Eine entsprechende Benutzung ist vor allem bei der Verwendung der Datenbankschnittstelle sowie bei der Implementierung von eigenen Verarbeitungen nötig. | 
        
              
                    | 110 | 
          110 | 
            | 
        
              
                    | 111 | 
           | 
          -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). | 
        
              
                     | 
          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: | 
        
              
                    | 112 | 
          112 | 
            | 
        
              
                    | 113 | 
           | 
          -=== Manifest und Fat JAR | 
        
              
                     | 
          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}} | 
        
              
                    | 114 | 
          114 | 
            | 
        
              
                     | 
          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 | 
          + | 
        
              
                    | 115 | 
          115 | 
           In der //META-INF/MANIFEST.MF// in der Plugin-JAR-Datei sollten folgende Informationen stehen: | 
        
              
                    | 116 | 
          116 | 
            | 
        
              
                    | 117 | 
          117 | 
           ; formcycle-version-requirement | 
        
              
                    | 118 | 
           | 
          -: Erforderlich. Version von {{formcycle/}}, für die das Plugin gedacht ist.Ist erforderlich, damit {{formcycle/}} bei der Installation die Kompatibilität prüfen kann. | 
        
              
                     | 
          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. | 
        
              
                    | 119 | 
          119 | 
           ; Implementation-Version | 
        
              
                    | 120 | 
           | 
          -: Erforderlich. Version des Plugins, wird etwa in der Oberfläche angezeigt. | 
        
              
                     | 
          138 | 
          +: Erforderlich. Version des Plugins; Diese wird z.B. in der Oberfläche angezeigt. | 
        
              
                     | 
          139 | 
          +; Plugin-Key | 
        
              
                     | 
          140 | 
          +: Erforderlch. Wird zur Identifizierung des Plugin innherhalb von {{formcycle/}} verwendet, und auch von etwa dem Deploy-Plugin oder Server-Plugin. Empfohlener Wert ist {{code}}${project.groupId}:${project.artifactId}{{/code}}. | 
        
              
                    | 121 | 
          121 | 
           ; Build-Time oder Build-Timestamp | 
        
              
                    | 122 | 
           | 
          -: Optional, wird bei SNAPSHOT-Versionen mit angezeigt, um den SNAPSHOT zu identifizieren. | 
        
              
                    | 123 | 
           | 
          -; Implementation-Title | 
        
              
                    | 124 | 
           | 
          -: Optional, wird standardmäßig etwa vom Deploy-Plugin verwendet, um das Plugin zu identifzieren. | 
        
              
                     | 
          142 | 
          +: Optional. Wird bei SNAPSHOT-Versionen mit angezeigt, um den SNAPSHOT zu identifizieren. | 
        
              
                    | 125 | 
          125 | 
            | 
        
              
                     | 
          144 | 
          +{{info}} | 
        
              
                     | 
          145 | 
          +Bis einschließlich Version 7.x von {{formcycle/}} ist noch {{code}}Implementation-Title{{/code}} mit dem gleichen Wert wie {{code}}Plugin-Key{{/code}} erforderlich. | 
        
              
                     | 
          146 | 
          +{{/info}} | 
        
              
                     | 
          147 | 
          + | 
        
              
                    | 126 | 
          126 | 
           Diese Informationen können wie unten beschrieben mittels des //maven-assembly-plugin// in die Manifest-Datei geschrieben werden. | 
        
              
                    | 127 | 
          127 | 
            | 
        
              
                    | 128 | 
          128 | 
           Weiterhin ist beim Bauen zu beachten, dass eine sogenannte Fat-JAR gebaut werden muss. Abhängigkeiten zu {{formcycle case="dat"/}} sowie anderen Bibliotheken, welche bereits durch {{formcycle case="acc"/}} mitgeliefert werden, sollten wie bereits erwähnt im scope //provided// eingebunden werden. Falls im Plugin aber noch andere Abhängigkeiten benutzt werden, müssen diese in der JAR-Datei inkludiert werden (Fat JAR). | 
        
                      
        | ... | 
        ... | 
                @@ -137,7 +137,7 @@ | 
      
              
                    | 137 | 
          137 | 
               <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> | 
        
              
                    | 138 | 
          138 | 
             </properties> | 
        
              
                    | 139 | 
          139 | 
             <build> | 
        
              
                    | 140 | 
           | 
          -    <finalName>${project.parent.artifactId}</finalName> | 
        
              
                     | 
          162 | 
          +    <finalName>${project.artifactId}</finalName> | 
        
              
                    | 141 | 
          141 | 
               <plugins> | 
        
              
                    | 142 | 
          142 | 
                 <plugin> | 
        
              
                    | 143 | 
          143 | 
                   <groupId>org.apache.maven.plugins</groupId> | 
        
                      
        | ... | 
        ... | 
                @@ -151,7 +151,7 @@ | 
      
              
                    | 151 | 
          151 | 
                         <goal>single</goal> | 
        
              
                    | 152 | 
          152 | 
                       </goals> | 
        
              
                    | 153 | 
          153 | 
                       <configuration> | 
        
              
                    | 154 | 
           | 
          -              <finalName>${project.parent.artifactId}</finalName> | 
        
              
                     | 
          176 | 
          +              <finalName>${project.artifactId}</finalName> | 
        
              
                    | 155 | 
          155 | 
                         <appendAssemblyId>false</appendAssemblyId> | 
        
              
                    | 156 | 
          156 | 
                         <descriptorRefs> | 
        
              
                    | 157 | 
          157 | 
                           <descriptorRef>jar-with-dependencies</descriptorRef> | 
        
                      
        | ... | 
        ... | 
                @@ -194,11 +194,15 @@ | 
      
              
                    | 194 | 
          194 | 
           == Maven-Archetypes == | 
        
              
                    | 195 | 
          195 | 
            | 
        
              
                    | 196 | 
          196 | 
           {{figure image="eclipse-archetype.png" width="500"}} | 
        
              
                    | 197 | 
           | 
          -  Hinzufügen des Archetypes-Katalogs in Eclipse: https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml | 
        
              
                     | 
          219 | 
          +  Hinzufügen des Archetypes-Katalogs in Eclipse | 
        
              
                    | 198 | 
          198 | 
           {{/figure}} | 
        
              
                    | 199 | 
          199 | 
            | 
        
              
                    | 200 | 
           | 
          -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. | 
        
              
                     | 
          222 | 
          +{{figure image="eclipse-archetype-select.png" width="500"}} | 
        
              
                     | 
          223 | 
          +  Auswahl eines Archetypes beim Erstellen eines Maven-Projekts in Eclipse | 
        
              
                     | 
          224 | 
          +{{/figure}} | 
        
              
                    | 201 | 
          201 | 
            | 
        
              
                     | 
          226 | 
          +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. | 
        
              
                     | 
          227 | 
          + | 
        
              
                    | 202 | 
          202 | 
           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: | 
        
              
                    | 203 | 
          203 | 
            | 
        
              
                    | 204 | 
          204 | 
           {{code}} | 
        
                      
        | ... | 
        ... | 
                @@ -207,18 +207,84 @@ | 
      
              
                    | 207 | 
          207 | 
            | 
        
              
                    | 208 | 
          208 | 
           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. | 
        
              
                    | 209 | 
          209 | 
            | 
        
              
                    | 210 | 
           | 
          -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. | 
        
              
                     | 
          236 | 
          +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. | 
        
              
                    | 211 | 
          211 | 
            | 
        
              
                    | 212 | 
           | 
          -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. | 
        
              
                     | 
          238 | 
          +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: | 
        
              
                    | 213 | 
          213 | 
            | 
        
              
                    | 214 | 
           | 
          -Um einen besseren Einstieg in die Plugin-Entwicklung zu finden, [[bieten wir auf unserer Downloadseite>>url:https://customer.formcycle.eu/index.php/s/PgdMrNOvbYEzhmr]]  | 
        
              
                     | 
          240 | 
          +{{code language="plaintext"}} | 
        
              
                     | 
          241 | 
          +https://artifactory.xima-services.de/artifactory/libs-release-local/archetype-catalog.xml | 
        
              
                     | 
          242 | 
          +{{/code}} | 
        
              
                    | 215 | 
          215 | 
            | 
        
              
                    | 216 | 
           | 
          -== Deploy-Plugin | 
        
              
                     | 
          244 | 
          +== Deploy-Plugin == | 
        
              
                    | 217 | 
          217 | 
            | 
        
              
                    | 218 | 
           | 
          -TODO  | 
        
              
                     | 
          246 | 
          +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: | 
        
              
                    | 219 | 
          219 | 
            | 
        
              
                    | 220 | 
           | 
          -== FC-Server-Plugin | 
        
              
                     | 
          248 | 
          +* Ein Maven-Plugin, welches nach dem Bauen das Plugin via HTTP an einen laufenden {{formcycle/}}-Server sendet | 
        
              
                     | 
          249 | 
          +* Ein Plugin für {{formcycle/}}, welche die Gegenstelle in {{formcycle/}} bereitstellt und das Plugin aus dem HTTP-Request in {{formcycle/}} installiert. | 
        
              
                    | 221 | 
          221 | 
            | 
        
              
                    | 222 | 
           | 
          -TODO  | 
        
              
                     | 
          251 | 
          +Weitere Details können im [[Hilfe-Artikel zum Deploy-Plugin>>doc:Formcycle.PluginDocumentation.FormcycleDeployPluginPlugin]] nachgelesen werden. Für die meisten Fälle ist kene Konfiguration in der //pom.xml// erforderlich. Es empfiehlt sich aber, wenigstens die Version festzusetzen: | 
        
              
                    | 223 | 
          223 | 
            | 
        
              
                     | 
          253 | 
          +{{code language="xml"}} | 
        
              
                     | 
          254 | 
          +  <properties> | 
        
              
                     | 
          255 | 
          +    <fc-deploy-plugin-maven-plugin.version>7.0.1<fc-deploy-plugin-maven-plugin.version></fc-deploy-plugin-maven-plugin> | 
        
              
                     | 
          256 | 
          +  <build> | 
        
              
                     | 
          257 | 
          +    <plugins> | 
        
              
                     | 
          258 | 
          +   <plugin> | 
        
              
                     | 
          259 | 
          +        <groupId>de.xima.fc.maven.plugin</groupId> | 
        
              
                     | 
          260 | 
          +        <artifactId>fc-deploy-plugin-maven-plugin</artifactId> | 
        
              
                     | 
          261 | 
          +        <version>${fc-deploy-plugin-maven-plugin.version}</version> | 
        
              
                     | 
          262 | 
          +      </plugin> | 
        
              
                     | 
          263 | 
          +    </plugins> | 
        
              
                     | 
          264 | 
          +  </build> | 
        
              
                     | 
          265 | 
          +{{/code}} | 
        
              
                    | 224 | 
          224 | 
            | 
        
              
                     | 
          267 | 
          +Sofern das Deploy-Plugin bereits in {{formcycle/}} installiert ist, kann das Plugin-Projekt dann wie folgt gebaut und hochgeladen werden: | 
        
              
                     | 
          268 | 
          + | 
        
              
                     | 
          269 | 
          +{{code language="bash"}} | 
        
              
                     | 
          270 | 
          +mvn fc-deploy:deploy | 
        
              
                     | 
          271 | 
          +{{/code}} | 
        
              
                     | 
          272 | 
          + | 
        
              
                     | 
          273 | 
          +Es wird hierbei davon ausgegangen, dass {{formcycle/}} unter der Standard-URL {{code}}http://localhost:8080/xima-formcycle{{/code}} läuft und das Standard-Passwort "admin" für das Deploy-Plugin verwendet wird. Ist dies nicht der Fall, können die Werte auch angepasst werden: | 
        
              
                     | 
          274 | 
          + | 
        
              
                     | 
          275 | 
          +{{code language="bash"}} | 
        
              
                     | 
          276 | 
          +mvn package fc-deploy:deploy -DfcDeployUrl=http://localhost:8080/xima-formcycle -DfcDeployToken=admin | 
        
              
                     | 
          277 | 
          +{{/code}} | 
        
              
                     | 
          278 | 
          + | 
        
              
                     | 
          279 | 
          +{{info}} | 
        
              
                     | 
          280 | 
          +Bis einschließlich Version 7.x von {{formcycle/}} und dem Maven-Plugin ist es noch erforderlich, die package-Phase explizit aufzuführen. Zudem müssen die URL und das Passwort angegeben werden. Ab Version 8.x sind die Standardwerte gesetzt und die package-Phase wird automatisch ausgeführt. | 
        
              
                     | 
          281 | 
          +{{/info}} | 
        
              
                     | 
          282 | 
          + | 
        
              
                     | 
          283 | 
          +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. | 
        
              
                     | 
          284 | 
          + | 
        
              
                     | 
          285 | 
          +== FC-Server-Plugin == | 
        
              
                     | 
          286 | 
          + | 
        
              
                     | 
          287 | 
          +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. | 
        
              
                     | 
          288 | 
          + | 
        
              
                     | 
          289 | 
          +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: | 
        
              
                     | 
          290 | 
          + | 
        
              
                     | 
          291 | 
          +{{code language="bash"}} | 
        
              
                     | 
          292 | 
          +# Aktuelle Version starten | 
        
              
                     | 
          293 | 
          +mvn fc-server:run-ms-war | 
        
              
                     | 
          294 | 
          + | 
        
              
                     | 
          295 | 
          +# Spezifische Version starten | 
        
              
                     | 
          296 | 
          +mvn de.xima.fc.maven.plugin:fc-server-maven-plugin:7.0.4:run-ms-war -DxfcVersion=7.0.16 | 
        
              
                     | 
          297 | 
          +{{/code}} | 
        
              
                     | 
          298 | 
          + | 
        
              
                     | 
          299 | 
          +{{info}} | 
        
              
                     | 
          300 | 
          +Wir empfehlen die Nutzung von Java 11. Bei Nutzung von Java 17 kann es aktuell zu Problemen beim Starten von {{formcycle/}} kommen. | 
        
              
                     | 
          301 | 
          +{{/info}} | 
        
              
                     | 
          302 | 
          + | 
        
              
                     | 
          303 | 
          +{{info}} | 
        
              
                     | 
          304 | 
          +Bis einschließlich Version 7.x von {{formcycle/}} und dem Maven-Plugin ist es noch erforderlich, die package-Phase explizit aufzuführen: {{code}}mvn package fc-server:run-ms-war{{/code}}. Ab Version 8.x geschieht dies automatisch. | 
        
              
                     | 
          305 | 
          +{{/info}} | 
        
              
                     | 
          306 | 
          + | 
        
              
                     | 
          307 | 
          +{{info}} | 
        
              
                     | 
          308 | 
          +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. | 
        
              
                     | 
          309 | 
          +{{/info}} | 
        
              
                     | 
          310 | 
          + | 
        
              
                     | 
          311 | 
          +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}}). | 
        
              
                     | 
          312 | 
          + | 
        
              
                     | 
          313 | 
          +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. | 
        
              
                     | 
          314 | 
          + | 
        
              
                     | 
          315 | 
          +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. | 
        
              
                     | 
          316 | 
          + |