From version < 1.14 >
edited by awa
on 12.03.2020, 14:25
To version < 1.11
edited by awa
on 08.12.2020, 17:19
<
Change comment: There is no comment for this version

Summary

Details

Page properties
Default language
... ... @@ -1,0 +1,1 @@
1 +de
Content
... ... @@ -1,3 +1,5 @@
1 +[[**Plugin download**>>url:https://customer.formcycle.eu/index.php/apps/files/?dir=/FORMCYCLE%20-%20Plugins%20Customer/fc-plugin-deploy-plugin&fileid=12657||target="_blank"]] (requires login)
2 +
1 1  This is a plugin for deploying plugin to {{formcycle/}}, hence the name //FORMCYCLE deploy-plugin plugin//.
2 2  
3 3  {{content/}}
... ... @@ -12,113 +12,112 @@
12 12  The uploaded plugin may already exist in the system. In this this, you usually want to update plugin - not have it installed twice. This requires a way to identify whether a plugin exists already. The servlet action allows for four different possibilities:
13 13  
14 14  * (**recommended**) The plugin is identified based on an entry in its manifest. The manifest needs to be located at //META-INF/MANIFEST.MF// in the plugin JAR file, such as the group ID or artifact ID. Make sure you prepare the JAR file properly when building the plugin. This method is slightly harder to setup, but offers the advantage that the identifier always remains the same and does not depend on the file name or some internal ID.
15 -* The plugin is identified based on its name, i.e. the file name of the upload JAR file. This is also the named [[as it is shown in the plugin menu>>doc:Formcycle.UserInterface.Client.Plugins]].
16 -* Das Plugin wird anhand seiner internen Datenbank-ID identifiziert. Diese ist aktuell nicht an der Oberfläche zu sehen. Diese Option sollte nur von Entwicklern genutzt werden.
17 -* Das Plugin wird anhand seiner internen UUID identifiziert. Diese ist aktuell nicht an der Oberfläche zu sehen. Diese Option sollte nur von Entwicklern genutzt werden.
17 +* The plugin is identified based on its name, i.e. the file name of the upload JAR file. This is also the name [[as it is shown in the plugin menu>>doc:Formcycle.UserInterface.Client.Plugins]].
18 +* The plugin is identified based on its internal database ID. This ID is not shown in the UI currently and should only be used by developers.
19 +* The plugin is identified based on its UUID. This ID is not shown in the UI currently and should only be used by developers.
18 18  
19 -Standardmäßig ist eine Servlet-Aktion für alle frei zugänglich. Da es in der Regel unerwünscht ist, dass jeder (auch unangemeldete) Nutzer Plugins installieren kann, kann das Deploy-Plugin durch ein Passwort abgesichert werden. Dazu muss in der Plugin-Konfiguration der Passwort-Hash hinterlegt werden und das Passwort dann im HTTP-POST-Request mitgesendet werden.
21 +By default, a servlet action is accessible to everybody. Usually, you do not want anonymous users to modifying the installed plugins. To secure the servlet, you can specify a password in the plugin configuration. You then need to include this password in the HTTP POST request.
20 20  
21 -== Plugin-Konfiguration ==
23 +== Plugin configuration ==
22 22  
23 -Am Plugin selber kann konfiguriert werden, ob das Deploy-Servlet durch ein Passwort geschützt werden soll. Dieses Passwort muss dann im Klartext beim HTTP-POST-Request mit angegeben werden.
25 +You can optionally set a password for securing the access to the plugin deploy servlet. If you do, you need to include the password in the HTTP POST request to authorize that request.
24 24  
25 -Zur Konfiguration des Passworts gibt es die eine Plugin-Eigenschaft //token//, diese hat das folgende Format
27 +Specify the token by entering a value for the plugin property //token//. It must be entered in the following format:
26 26  
27 27  {{code language="none"}}
28 28  hash_method:hashed_value
29 29  {{/code}}
30 30  
31 -Folgende Hash-Methoden stehen zur Verfügung:
33 +The following hash methods are available.
32 32  
33 33  ; plain
34 -: Identitätsfunktion, das Passwort im Klartext angegeben.
36 +: Identity function. Lets you enter a plain text password.
35 35  ; sha256
36 -: SHA-256-Algorithmus.
38 +: SHA-256 algorithm.
37 37  ; sha384
38 -: SHA-384-Algorithmus.
40 +: SHA-384 algorithm.
39 39  ; sha512
40 -: SHA-512-Algorithmus.
42 +: SHA-512 algorithm.
41 41  
42 -Um das Passwort im Klartext beispielsweise auf //admin// festzulegen, wird der folgende Wert für die Plugin-Eigenschaft //token// eingegeben:
44 +To enter the password //admin// as plain text, use:
43 43  
44 44  {{code language="none"}}
45 45  plain:admin
46 46  {{/code}}
47 47  
48 -Um das Passwort mit SHA-256 beispielsweise auf //admin// festzulegen, wird der folgende Wert für die Plugin-Eigenschaft //token// eingegeben:
50 +To enter the password //admin// hashed with SHA-256, use:
49 49  
50 50  {{code language="none"}}
51 51  sha256:S+32GI3fWXwHHulUMtWmjpQ15EqMvgVYguuO9SKxfNw+ckAGQljP6tKlf1EITnU7
52 52  {{/code}}
53 53  
54 -Der Hash ist gesalzen. Ein gültiger Hash für ein bestimmtes Passwort kann mit dem //create-token//-Servlet erzeugt werden, siehe unten.
56 +The hash is salted. You can generate a valid hash for a given password via the //create-token// servlet, see below.
55 55  
58 +== Deploy servlet ==
56 56  
57 -== Deploy-Servlet ==
60 +The following describes the structure of the HTTP request you need to adhere to in order to install, update, or delete a plugin.
58 58  
59 -Im Folgenden wird der Aufbau des HTTP-Requests beschrieben, um ein Plugin zu installieren, zu aktualisieren oder zu löschen.
62 +The HTTP method must be POST, other methods will result in an error. The [[endpoint URL is as follows>>doc:Formcycle.PluginDevelopment.Types.IPluginServletAction]] (change the name of the FORMCYCLE server and the client ID):
60 60  
61 -Es muss immer ein HTTP-Post-Request verwendet werden und [[sich an folgende URL richten>>doc:Formcycle.PluginDevelopment.Types.IPluginServletAction]] (Namen des FORMCYCLE-Servers entsprechend anpassen):
62 -
63 63  {{code language="none"}}
64 64  POST http://localhost:8080/formcycle/plugin?name=deploy-plugin&client-id=154 HTTP/1.1
65 65  {{/code}}
66 66  
67 -Die //client-id// muss nicht angegeben werden, wenn das Plugin als System-Plugin installiert ist.
68 +The //client-id// is not required in case the plugin is installed as a system plugin.
68 68  
69 -=== Request-Parameter ===
70 +=== Request parameter ===
70 70  
71 -Die Parameter können direkt als URL-Parameter, als //multipart/form-data// oder als //application/x-www-form-urlencoded// übergeben werden. Folgende Parameter werden vom Deploy-Plugin unterstützt und können übergeben werden:
72 +You can specify the parameters either directly as URL parameters, or as //multipart/form-data// or //application/x-www-form-urlencoded//. The following parameters are available and supported by the plugin deploy servlet:
72 72  
73 73  ; deploy-action
74 -: Aktion, welche mit dem Plugin durchgeführt werden soll. Erlaubte Werte sind //save//, //update-properties//, //activate//, //deactivate// und //delete//. Ein Erklärung zu diesen Aktionen findet sich unten.
75 +: Action to be performed on the plugin. Allowed values are //save//, //update-properties//, //activate//, //deactivate// and //delete//. See below for a description of each method.
75 75  ; client-id
76 -: ID des Mandanten, in dem ein Plugin installiert, aktualisiert oder gelöscht werden soll. Es darf nur entweder //client-id// oder //client-uuid// angegeben werden
77 +: ID of the client where the plugin is installed, updated, or deleted. You must specify only one of //client-id// or //client-uuid//.
77 77  ; client-uuid
78 -: UUID des Mandanten, in dem ein Plugin installiert, aktualisiert oder gelöscht werden soll. Es darf nur entweder //client-id// oder //client-uuid// angegeben werden. Es ist zu beachten, dass der Aufruf eines als Mandant-Plugin installierten Servlet-Aktion immer der Parameter //client-id// erforderlich ist.
79 +: UUID of the client where the plugin is installed, updated, or deleted. You must specify only one of //client-id// or //client-uuid//. Please note that a plugin installed as a client plugin always required the parameter //client-id//.
79 79  ; jar-file
80 -: Binärdaten mit der JAR-Datei des Plugins, welches aktualisert oder installiert werden soll.
81 +: Binary data of the JAR file with the plugin (required only when installing or updating the plugin).
81 81  ; token
82 -: Das Token (Password) für die Authorisierung des Requests. Nur erforderlich, wenn in der Plugin-Konfiguration ein Token festgelegt wurde.
83 +: The token (password) for authorizing the request. Required only when the a token was set in the plugin configuration.
83 83  ; plugin-ident
84 -: Die Art, wie nach einem vorhandenen Plugin gesucht wird (siehe oben). Folgende Werte sind erlaubt:
85 +: The method used for searching an already existing plugin, see above. The following methods are supported:
85 85  :; manifest
86 -:: Identifiziert ein Plugin anhand eines Eintrags im Manifest.
87 +:: Identifies a plugin based on an entry in its manifest.
87 87  :; id
88 -:: Identifiziert ein Plugin anhand seiner Datenbank-ID.
89 +:: Identifies a plugin based on its database ID.
89 89  :; name
90 -:: Identifiziert ein Plugin anhand seines Namens (Dateiname der JAR-Datei)
91 +:: Identifies a plugin based on its name (the file name of the plugin JAR file).
91 91  :; uuid
92 -:: Identifiziert ein Plugin anhand seiner UUID.
93 +:: Identifies a plugin based on its UUID.
93 93  ; plugin-identifier
94 -: Identifikator des Plugins, welches aktualisiert oder gelöscht werden soll. Die konkrete Bedeutung dieses Parameters ist abhängig von dem Wert von //plugin-ident//:
95 +: Identifier of the plugin that should be installed, updated, or deleted. The exact meaning of this parameter depends on the chosed //plugin-ident// method:
95 95  :; plugin-ident=manifest
96 -:: //plugin-identifier// muss den Namen der Manifest-Eigenschaft und dessen Wert enthalten, im Format //ATTRIBUTE_NAME=VALUE//. Wird zum Beispiel //Implementation-Title=com.example.fc.plugin:my-plugin// übergeben wird, wird nach einem existierenden Plugin gesucht, welches im Manifest in der Eigenschaft //Implementation-Title// den Wert //com.example.fc.plugin:my-plugin// stehen hat.
97 +:: //plugin-identifier// must contain the name of the manifest property and its value, in the format //Attribute-Name=value//. For example, if this property is set to //Implementation-Title=com.example.fc.plugin:my-plugin//, this will search for a plugin with a manifest entry //Implementation-Title// set to //com.example.fc.plugin:my-plugin//.
97 97  :; plugin-ident=id
98 -:: //plugin-identifier// muss die gewünschte ID des Plugins enthalten, etwa //53// oder /893//.//
99 +:: //plugin-identifier// must contain the data base ID of the target plugin, such as //53// or /893//.//
99 99  :; plugin-ident=name
100 -:: //plugin-identifier// muss den gewünschten Names des Plugins enthalten, etwa //my-plugin.jar// oder /foobar.jar//.//
101 +:: //plugin-identifier// must contain the name of the target plugin, such as //my-plugin.jar// or //foobar.jar//.
101 101  :; plugin-ident=uuid
102 -:: //plugin-identifier// muss die gewünschte UUID des Plugins enthalten, etwa //03022599-903d-429b-9822-80a324a542fc//.
103 -Andernfalls wird das Plugin installiert, falls noch nicht vorhanden, oder aktualisiert, falls vorhanden.
103 +:: //plugin-identifier// must contain the UUID of the target plugin, such as //03022599-903d-429b-9822-80a324a542fc//.
104 104  ; clear-properties
105 -: Entweder //true// oder //false//. Wenn //true//, werden alle Plugin-Eigenschaften entfernt beziehungsweise deren Werte geleert. Dies wird ausgeführt, bevor die neu zu setzenden Plugin-Eigenschaften (Parameter ///property//) angewendet werden.
105 +: Either //true// or //false//. If set to //true//, all plugin property values are cleared. This is done before the new properties (see parameter //property//) are applied.
106 106  ; property
107 -: Name und Wert einer Plugin-Eigenschaft, die an der Plugin-Konfiguration gesetzt werden soll, im Format //key=value//. Dieser HTTP-Parameter kann mehrfach angegeben werden, um mehrere Plugin-Eigenschafte zu setzen. Wird etwa //database.username=max// übergeben, wird die Plugin-Eigenschaft //database.username// auf //max// gesetzt.
107 +: Name and value of a plugin property to set, in the format //key=value//. This HTTP parameter may be specified multiple times if you want set multiple properties. For example, if set to //database.username=john//, this sets the plugin property //database.username// to //john//.
108 108  ; disallow-install
109 -: Entweder //true// oder //false//. Ist diese Option auf //true// gesetzt und existiert das Plugin noch nicht (bezüglich der angegebenen //plugin-ident// und //plugin-identifier//), wird das Plugin nicht neu installiert und eine Fehlermeldung zurückgegeben. ; locale
110 -: Die Sprache, welche während der Installation, Aktualisierung oder Löschung des Plugins verwendet werden soll, etwa //en// oder //de//. Beeinflusst nur einige Fehlermeldungen und kann in der Regel weggelassen werden.
109 +: Either //true// or //false//. When this is set to //true// and the plugin does not exists yet (as determined by the given //plugin-ident// and //plugin-identifier// parameters), the plugin is not installed and an error is returned. Otherwise, when set to //false//, the plugin is installed if it does not exists yet and updated if it does.
110 +; locale
111 +: The language to be used when the plugin is modified, such as //en// or //de//. May affect some error messages. Usually this parameter is not neccessary.
111 111  
112 -=== Deploy-Action ===
113 +=== Deploy actions ===
113 113  
114 -Der Wert des Parameters //deploy-action// gibt an, was genau mit dem Plugin geschehen soll. Es gibt dabei die folgenden Möglichkeiten:
115 +The value of the parameter //deploy-action// specifies what should happen with the selected plugin. The following actions are available:
115 115  
116 116  ; save
117 -: Überträgt das angegebene Plugin auf das FORMCYCLE-System. Es muss hierbei eine JAR-Datei übertragen werden. Falls das Plugin noch nicht existiert (und der Parameter //disallow-install// nicht gesetzt ist), wird das Plugin neu installiert und ist dann aktiviert. Andernfalls, falls das Plugin bereits existiert, wird es aktualisiert, dabei bleibt das Plugin aktiviert oder deaktiviert.
118 +: Transmits the plugin to the {{formcycle/}} server. You need to specify a JAR file. If the plugin does not exists yet (and the parameters //disallow-install// is not set), the plugin is installed and activated. Otherwise, if the plugin exists already, it is only updated and left active or inactive. For example:
118 118  
119 119  (((
120 120  {{code language="bash"}}
121 -# Installiert oder aktualisiert das Plugin mit dem Implementation-Title com.example:plugin
122 +# Installs or updates the given plugin.
122 122   curl -X POST \
123 123   -F deploy-action=save \
124 124   -F token=admin \
... ... @@ -130,7 +130,7 @@
130 130  )))
131 131  
132 132  ; delete
133 -: Löscht das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
134 +: Deletes the given plugin. You must not specify a JAR file. If the specified plugin does not exist yet, an error is returned. For example:
134 134  
135 135  (((
136 136  {{code language="bash"}}
... ... @@ -145,11 +145,11 @@
145 145  )))
146 146  
147 147  ; activate
148 -: Aktiviert das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Ist das Plugin bereits aktiviert, wird nicht getan und ein Erfolg zurückgegeben. Beispiel:
149 +: Activates the given plugin. You must not specify a JAR file. If the specified plugin is already active, no action is performed an a success is returned. For example:
149 149  
150 150  (((
151 151  {{code language="bash"}}
152 -# Aktiviert das Plugin mit dem Implementation-Title com.example:plugin
153 +# Activates the given plugin
153 153   curl -X POST \
154 154   -F deploy-action=activate \
155 155   -F token=admin \
... ... @@ -160,11 +160,11 @@
160 160  )))
161 161  
162 162  ; deactivate
163 -: Deaktiviert das angegebene Plugin. Es darf hierbei keine JAR-Datei übertragen werden. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Ist das Plugin bereits deaktiviert, wird nicht getan und ein Erfolg zurückgegeben. Beispiel:
164 +: Deactivates the given plugin. You must not specify a JAR file. If the specified plugin is already inactive, no action is performed an a success is returned. For example:
164 164  
165 165  (((
166 166  {{code language="bash"}}
167 -# Deaktiviert oder aktualisiert das Plugin mit dem Implementation-Title com.example:plugin
168 +# Deactivates the given plugin
168 168   curl -X POST \
169 169   -F deploy-action=deactivate \
170 170   -F token=admin \
... ... @@ -175,11 +175,11 @@
175 175  )))
176 176  
177 177  ; update-properties
178 -: Aktualisiert die Eigenschaften des angegebenen Plugins. Es darf hierbei keine JAR-Datei übertragen werden. Entweder die Eigenschaft //clear-properties// oder //property// sollte gesetzt sein. Existiert das angegebene Plugin nicht, wird ein Fehler zurückgegeben. Beispiel:
179 +: Updates the properties of the given plugin. You must not specify a JAR file. You should specify at least one of //clear-properties// or //property//. If the given plugin does not exist yet, an error is returned. For example:
179 179  
180 180  (((
181 181  {{code language="bash"}}
182 -# Löscht alle vorhandenen Plugin-Eigenschaften und setzt dann die Eigenschaft "foo" auf den Wert "bar"
183 +# Delete all existing plugin properties and set the property //foo// to //bar//
183 183   curl -X POST \
184 184   -F deploy-action=update-properties \
185 185   -F token=admin \
... ... @@ -193,9 +193,9 @@
193 193  
194 194  === Response ===
195 195  
196 -Das Deploy-Plugin liefert einen Statuscode und ein JSON-Objekt mit den Details zurück. Der Status-Code ist 2xx, falls das Deploy-Plugin erfolgreich ausgeführt wurde.
197 +The plugin deploy servet returns a status code and a JSON object with the details. The status code is 2xx if (and only if) the deploy servlet was executed successfully.
197 197  
198 -Das JSON-Objekt hat dabei [[die folgende Struktur>>https://json-schema.org/]]:
199 +The JSON object that is returned adheres to the following [[JSON schema>>https://json-schema.org/]]:
199 199  
200 200  {{code language="json"}}
201 201  {
... ... @@ -296,7 +296,7 @@
296 296  }
297 297  {{/code}}
298 298  
299 -Beispiel für die Antwort beim Aktualisieren eines Plugins:
300 +Example for a response when a plugin was updated successfully:
300 300  
301 301  {{code language="json"}}
302 302  {
... ... @@ -321,7 +321,7 @@
321 321  }
322 322  {{/code}}
323 323  
324 -Beispiel für die Antwort beim Löschen, falls das angegebene Plugin nicht gefunden wurde:
325 +Example for a response when a plugin could not be deleted:
325 325  
326 326  {{code language="json"}}
327 327  {
... ... @@ -344,20 +344,20 @@
344 344  {{/code}}
345 345  
346 346  
347 -== Create-Token-Servlet ==
348 +== Create token servlet ==
348 348  
349 -Mit diesem Servlet kann ein Hash für ein bestimmtes Klartextpasswort erzeugt werden, welcher dann in der Plugin-Eigenschaft //token// hinterlegt werden kann. Es muss hierbei ein HTTP-GET-Request verwendet werden (Pfad auf den FORMCYCLE-Servet und die Mandant-ID entsprechend ersetzen):
350 +This servlet lets you create a hash for a password that you can enter in the plugin property //token//. Make an HTTP GET request to the following URL (change to path to the {{formcycle/}} server and the client ID):
350 350  
351 351  {{code language="none"}}
352 -http://localhost:8080/formcycle/plugin?client-id=1&name=create-token&token=<PASSWORT>&method=<METHOD>
353 +http://localhost:8080/formcycle/plugin?client-id=1&name=create-token&token=<PASSWORD>&method=<METHOD>
353 353  {{/code}}
354 354  
355 355  ; token
356 -: Der Klartext des Passwort, zu dem ein Hash ermittelt werden soll.
357 +: The password to hash.
357 357  ; method
358 -: Methode zum Berechnen des Hashes. Erlaubte Werte sind //plain//, //sha256//, //sha384// und //sha512//. Optional, Standardwert ist //sha256//.
359 +: Hash method, default to //sha256//. Supported values are //plain//, //sha256//, //sha384// and //sha512//.
359 359  
360 -Als Antwort wird ein JSON zurückgeliefert, welches das gleiche Format wie die Antwort des Deploy-Plugins hat. Beispiel r eine Antwort:
361 +This returns a JSON object with the same schema as returned by the plugin deploy servlet. For example:
361 361  
362 362  {{code language="json"}}
363 363  {
... ... @@ -376,11 +376,11 @@
376 376  }
377 377  {{/code}}
378 378  
379 -== Maven-Deploy-Plugin ==
380 +== Maven deploy plugin ==
380 380  
381 -Um ein Plugin nach dem Bauen über Maven in FORMCYCLE hochzuladen, gibt es auch ein Maven-Plugin, welches das Deploy-Servlet anspricht. Dieses ist über die Artifactory von XIMA erhältlich, falls man die entsprechenden Rechte hierfür hat:
382 +To upload a plugin to {{formcycle/}} after building a plugin project via Maven, you can use the maven deploy plugin. It is available from the XIMA artifactory (please note you may need the correct permissions to access this artifact).
382 382  
383 -=== Konfiguration ===
384 +=== Confguration ===
384 384  
385 385  {{code language="xml"}}
386 386  <plugin>
... ... @@ -407,41 +407,40 @@
407 407  </plugin>
408 408  {{/code}}
409 409  
410 -Das Plugin hat die folgenden Optionen zur Konfiguration:
411 +The plugin offers the following configurable settings:
411 411  
412 -; url [Standardwert: //${fcDeployUrl}//]
413 -: URL mit Kontextpfad zum FORMCYCLE-Server, etwa //{{{http://localhost:8080/formcycle}}}//
414 -; pluginName [Standardwert: //deploy-plugin//]
415 -: Der Name des Deploy-Plugins für den URL-Parameter //name//. In der Regel muss diese Option nicht gesetzt werden, der Standardwert ist ausreichend.
416 -; clientId [Standardwert: //${fcDeployClientId}//]
417 -: ID des Mandanten, für den das Plugin installiert, aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //client-id// des Deploy-Plugins, siehe oben.
413 +; url [Default value: //${fcDeployUrl}//]
414 +: URL to the {{formcycle/}} server, including the context path, such as //{{{http://localhost:8080/formcycle}}}//
415 +; pluginName [Default value: //deploy-plugin//]
416 +: Name of the deploy plugin, the value for the parameter //name//. Usually you do not need to change this.
417 +; clientId [Default value: //${fcDeployClientId}//]
418 +: ID of the client with the plugin to be installed, updated, or deleted. Corresponds to the parameter //client-id// of the plugin deploy servlet, see above.
418 418  ; clientUuid
419 -: Alternative zu //clientID//. UUID des Mandanten, für den das Plugin installiert, aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //client-uuid// des Deploy-Plugins, siehe oben.
420 +: Alternative for //clientUUID//. The UUID of the client with the plugin to be installed, updated, or deleted.Corresponds to the parameter //client-uuid// of the plugin deploy servlet, see above.
420 420  ; token [Standardwert: //${fcDeployToken}//]
421 -: Passwort für das Servlet-Plugin, falls in der Konfiguration des Deploy-Plugins ein Passwort gesetzt wurde.
422 -; deployAction [Standardwert: //save//]
423 -: Aktion, welche mit dem Plugin durchgeführt werden soll. Erlaubte Werte sind //save//, //update-properties//, //activate//, //deactivate// und //delete//. Entspricht dem Parameter //deploy-action// des Deploy-Plugins, siehe oben.
424 -; pluginIdent [Standardwert: //manifest//]
425 -: Die Art, wie nach einem vorhandenen Plugin gesucht wird. Entspricht dem Parameter //plugin-ident// des Deploy-Plugins, siehe oben.
426 -; pluginIdentifier [Standardwert: //Implementation-Title=${project.groupId}:${project.artifactId}//]
427 -: Identifikator des Plugins, welches aktualisiert oder gelöscht werden soll. Entspricht dem Parameter //plugin-identifier// des Deploy-Plugins, siehe oben.
428 -; jarFile [Standartwert: Haupt-Build-Artifakt des Maven-Projekts]
429 -: Pfad zur JAR-Datei, die hochgeladen werden soll, relativ zum Basisverzeichnis des Maven-Projekts.
430 -; disallowInstall [Standardwert: //false//]
431 -: Wenn //true// und das Plugin noch nicht existiert, wird abgebrochen und ein Fehler zurückgegeben. Entspricht dem Parameter //disallow-install// des Deploy-Plugins, siehe oben.
422 +: Password for the plugin deploy servlet, if one was set in the plugin configuration.
423 +; deployAction [Default value: //save//]
424 +: Method to be executed. Allowed values are //save//, //update-properties//, //activate//, //deactivate// and //delete//. Corresponds to the parameter //deploy-action// of the plugin deploy servlet, see above.
425 +; pluginIdent [Default value: //manifest//]
426 +: The method for identifying existing plugins. Corresponds to the parameter //plugin-ident// of the plugin deploy servlet, see above.
427 +; pluginIdentifier [Default value: //Implementation-Title=${project.groupId}:${project.artifactId}//]
428 +: Identifier of the plugin to be installed, updated, or deleted. Corresponds to the parameter //plugin-identifier// of the plugin deploy servlet, see above.
429 +; jarFile [Default value: Haupt-Build-Artifakt des Maven-Projekts]
430 +: Path to the JAR file to be uploaded, relative to the base directory of the maven project.
431 +; disallowInstall [Default value: //false//]
432 +: When set to //true// and the plugin does not exists yet, the plugin is not installed and an error is returned. Corresponds to the parameter //disallow-install// of the plugin deploy servlet, see above.
432 432  ; locale [Standardwert: //en//]
433 -: Sprache, die für die Installation, Aktualisierung oderschung des Plugins genutzt wird. Entspricht dem Parameter //locale// des Deploy-Plugins, siehe oben.
434 -; clearProperties [Standardwert: //false//]
435 -: scht die Werte aller Plugin-Eigenschaften. Entspricht dem Parameter //clear-properties// des Deploy-Plugins, siehe oben.
434 +: Language for the installations. Corresponds to the parameter //locale// of the plugin deploy servlet, see above.
435 +; clearProperties [Default value: //false//]
436 +: Clears all properties of the plugin. Corresponds to the parameter //clear-properties// of the plugin deploy servlet, see above.
436 436  ; properties
437 -: Key-Value-Paare mit Eigenschaften, die an dem Plugin gesetzt werden sollen. Entspricht dem Parameter //clear-properties// des Deploy-Plugins, siehe oben.
438 +: Key value pair with the properties to be set on the plugin. Corresponds to the parameter //property// of the plugin deploy servlet, see above.
438 438  
439 -=== Empfehlung für Plugin-Projekt ===
440 +=== Recommendations for your plugin project ===
440 440  
441 -Während das Plugin zahlreiche Einstellunsgmöglichkeiten anbietet, reichen meist die Standardwerte aus. Empfohlen wird das folgende Vorgehen bei der Entwicklung von Plugin-Projekten.
442 +While the Maven plugin offers a wide variety of options, the default settings are usually sufficient. We recommend the following steps for your plugin:
442 442  
443 -Folgendes Schnippsel sollte in der Profil-Sektion der //pom.xml// eingefügt werden:
444 -
444 +Add this code snippet to the profile section of the //pom.xml//:
445 445  {{code language="xml"}}
446 446   <properties>
447 447   <fc-deploy-plugin-maven-plugin.version>1.1.0</fc-deploy-plugin-maven-plugin.version>
... ... @@ -464,7 +464,7 @@
464 464   <executions>
465 465   <execution>
466 466   <goals>
467 - <goal>install</goal>
467 + <goal>deploy</goal>
468 468   </goals>
469 469   </execution>
470 470   </executions>
... ... @@ -475,7 +475,7 @@
475 475   </profiles>
476 476  {{/code}}
477 477  
478 -Das Plugin wird dann anhand des Eintrags //Implementation-Title// im Manifest identifiziert. Hierzu muss der Wert korrekt im Manifest gesetzt werden. Dies kann entweder über das maven-jar-plugin oder über das maven-assembly-plugin geschehen, je nachdem, welches von diesen im Plugin-Projekt genutzt wird:
478 +The plugin is identified based on the entry //Implementation-Title// in its //Manifest.MF// file. For this to work, you need to prepare the manifest correctly. You can do so either with the //maven-jar-plugin// or with the //maven-assembly-plugin//, depending on which plugin your project uses.
479 479  
480 480  {{code language="xml"}}
481 481   <properties>
... ... @@ -510,7 +510,7 @@
510 510   </configuration>
511 511   </plugin>
512 512  
513 - <!-- If using the maven-assembly-plugin -->
513 + <!-- If using the maven-assembly-plugin -->
514 514   <plugin>
515 515   <groupId>org.apache.maven.plugins</groupId>
516 516   <artifactId>maven-assembly-plugin</artifactId>
... ... @@ -547,10 +547,28 @@
547 547   </build>
548 548  {{/code}}
549 549  
550 -Nun kann das Plugin über Maven gebaut und hochgeladen werden. Die URL auf FORMCYCLE, die Mandant-ID und das Token (Passwort) wird dynamisch über Parameter an Maven übergeben:
550 +Now you can build the plugin via Maven and upload it to a {{formcycle}} server. The URL, the client ID and the token (password) can be passed to Maven via command line parameters:
551 551  
552 552  {{code language="bash"}}
553 553  mvn clean install -DfcDeployUrl="http://localhost:8080/xima-formcycle" -DfcDeployClientId="1" -DfcDeployToken="admin"
554 554  {{/code}}
555 555  
556 -Hinweis: IDE wie Eclipse und IntelliJ erlauben es, eine Build-Konfiguration für das Plugin-Projekt zu erstellen, wo die Parameter //fcDeployUrl//, //fcDeployClientId// und //fcDeployToken// hinterlegt werden können.
556 +If you do not pass these parameters, the deploy plugin is not executed and the plugin is not uploaded.
557 +
558 +On a side note: IDE such as Eclipse and IntelliJ let you create a build configuration for your plugin project, where you can enter the parameters //fcDeployUrl//, //fcDeployClientId// and //fcDeployToken//. This way you can upload the plugin simply by running the build configuration.
559 +
560 +== Changelog
561 +
562 +This is a list of available version of this plugin and which changes took place in which version.
563 +
564 +=== 1.1.0
565 +
566 +* Modifications to make the plugin work with {{formcycle/}} 6.4.
567 +
568 +=== 1.0.1
569 +
570 +* Improved error handling when an uploaded plugin is installed
571 +
572 +=== 1.0.0
573 +
574 +* Initial release
Copyright 2000-2025