Changes for page FORMCYCLE-Deploy-Plugin-Plugin
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
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 name d[[as it is shown in the plugin menu>>doc:Formcycle.UserInterface.Client.Plugins]].16 -* DasPluginwirdanhand seinerinternenDatenbank-IDidentifiziert.Dieseistaktuellnichtander Oberflächezusehen. Diese Option solltenur vonEntwicklerngenutztwerden.17 -* DasPluginwirdanhand seinerinternenUUIDidentifiziert.Dieseistaktuellnichtander Oberflächezusehen. Diese Option solltenur vonEntwicklerngenutztwerden.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 isteineServlet-Aktionfürallefreizugänglich. DaesinderRegel unerwünschtist, dassjeder(auchunangemeldete)NutzerPluginsinstallieren kann, kanndasDeploy-PlugindurcheinPasswortabgesichertwerden.Dazumuss inderPlugin-Konfigurationder Passwort-HashhinterlegtwerdennddasPasswortdannimHTTP-POST-Requestmitgesendet 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 selberkannkonfiguriertwerden,obdasDeploy-ServletdurcheinPasswortgeschützt werdensoll.DiesesPasswort mussdannimKlartextbeimHTTP-POST-Requestmit angegebenwerden.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 - ZurKonfigurationdesPasswortsgibtsdie eine Plugin-Eigenschaft //token//,diesehatasfolgendeFormat27 +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 - FolgendeHash-MethodenstehenzurVerfügung:33 +The following hash methods are available. 32 32 33 33 ; plain 34 -: Identit ätsfunktion,dasPasswortimKlartext 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 Passwortim Klartextbeispielsweiseauf//admin//festzulegen,wird der folgendeWertfü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 - UmdasPasswortmit SHA-256 beispielsweise auf//admin//festzulegen,wird der folgende Wertfürdie 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 - DerHash istgesalzen.Ein gültigerHash füreinbestimmtesPasswortkannmitdem//create-token//-Servleterzeugt werden, sieheunten.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 - ImFolgendenwirdderAufbaudesHTTP-Requestsbeschrieben, uminzuinstallieren,zuaktualisierenoderzu 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//mussnichtangegeben werden, wenndasPlugin alsSystem-Plugin installiertist.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 - DieParameterkönnendirekt als URL-Parameter, als //multipart/form-data// oderals//application/x-www-form-urlencoded//übergebenwerden. FolgendeParameterwerdenvom Deploy-Plugin unterstütztundkö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 -: A ktion,welchemitdemPlugindurchgeführtwerdensoll. ErlaubteWertesind//save//, //update-properties//, //activate//, //deactivate//und //delete//.EinErklärungzudiesen Aktionenfindetsichunten.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 desMandanten,indemeinPlugin installiert,aktualisiert odergelöschtwerdensoll.Esdarf nurentweder//client-id// oder //client-uuid//angegeben werden77 +: 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 desMandanten,indemeinPlugin installiert,aktualisiert odergelöschtwerdensoll.Esdarf nurentweder//client-id// oder //client-uuid// angegebenwerden. Es istzu beachten,dassder AufrufeinesMandant-PlugininstalliertenServlet-Aktion immerrParameter //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 ärdatenmitderJAR-DateidesPlugins,welches aktualisertoderinstalliertwerdensoll.81 +: Binary data of the JAR file with the plugin (required only when installing or updating the plugin). 81 81 ; token 82 -: DasToken (Password) fürdie AuthorisierungdesRequests.Nurrforderlich,wenn inderPlugin-Konfigurationein 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 -: DieArt,wienacheinemvorhandenenPlugingesucht wird (sieheoben).FolgendeWerte sind erlaubt:85 +: The method used for searching an already existing plugin, see above. The following methods are supported: 85 85 :; manifest 86 -:: Identifi zierteinPlugin anhandeinesEintragsimManifest.87 +:: Identifies a plugin based on an entry in its manifest. 87 87 :; id 88 -:: Identifi zierteinPlugin anhandseinerDatenbank-ID.89 +:: Identifies a plugin based on its database ID. 89 89 :; name 90 -:: Identifi zierteinPlugin anhandseinesNamens(DateinamederJAR-Datei)91 +:: Identifies a plugin based on its name (the file name of the plugin JAR file). 91 91 :; uuid 92 -:: Identifi zierteinPlugin anhandseinerUUID.93 +:: Identifies a plugin based on its UUID. 93 93 ; plugin-identifier 94 -: Identifi katordesPlugins,welchesaktualisiertodergelöschtwerden soll.DiekonkreteBedeutungdiesesParametersistabhängig vondemWertvon//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// mus sdenNamenderManifest-EigenschaftunddessenWert enthalten, imFormat //ATTRIBUTE_NAME=VALUE//.WirdzumBeispiel//Implementation-Title=com.example.fc.plugin:my-plugin//übergeben wird,wirdnacheinem existierendenPlugingesucht,welchesimManifestin der Eigenschaft //Implementation-Title//denWert //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// mus sdie gewünschte IDdesPluginsenthalten,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// mus sdengewünschtenNamesdesPluginsenthalten,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 -: E ntweder //true// oder //false//.Wenn//true//,werdenallePlugin-EigenschaftenentferntbeziehungsweisederenWerte geleert.Dieswird ausgeführt,bevordie neuzu setzenden Plugin-Eigenschaften(Parameter ///property//) angewendetwerden.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 undWert einer Plugin-Eigenschaft,dieander Plugin-Konfigurationgesetzt werden soll, imFormat //key=value//.DieserHTTP-Parameterkannmehrfachangegebenwerden,ummehrerePlugin-Eigenschaftezusetzen.Wirdetwa //database.username=max//übergeben,wirddiePlugin-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 - DerWertdesParameters//deploy-action//gibtan,wasgenaumitdemPlugingeschehensoll. Es gibtdabeidie folgendenMö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 dasangegebenePluginaufdasFORMCYCLE-System.Es musshierbeieineJAR-Dateiübertragen werden.FallsdasPluginnochnicht existiert (undderParameter //disallow-install//nichtgesetzt ist),wirddas Pluginneuinstalliert undist dannaktiviert.Andernfalls, fallsdasPluginbereits existiert,wirdesaktualisiert,dabeibleibtdasPluginktiviertoderdeaktiviert.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 -# Install iertoderaktualisiertdasPlugin mitdemImplementation-Titlecom.example:plugin122 +# 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öschtdasangegebenePlugin.EsdarfhierbeikeineJAR-Dateiübertragenwerden. Existiertdasangegebene Plugin nicht,wirdeinFehlerzurü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 -: A ktiviert dasangegebenePlugin.EsdarfhierbeikeineJAR-Dateiübertragenwerden. Existiertdasangegebene Pluginnicht,wirdein Fehlerzurückgegeben.Ist das Pluginbereitsaktiviert, wird nichtgetanundeinErfolg 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 -# A ktiviert dasPlugin mitdemImplementation-Titlecom.example:plugin153 +# 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 -: Dea ktiviert dasangegebenePlugin.EsdarfhierbeikeineJAR-Dateiübertragenwerden. Existiertdasangegebene Pluginnicht,wirdeinFehler zurückgegeben.Ist das Pluginbereitsdeaktiviert, wird nichtgetanundeinErfolg 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 -# Dea ktiviert oderaktualisiert dasPlugin mitdemImplementation-Titlecom.example:plugin168 +# 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 -: AktualisiertdieEigenschaftendes angegebenenPlugins.EsdarfhierbeikeineJAR-Dateiübertragenwerden.EntwederdieEigenschaft//clear-properties// oder //property//sollte gesetzt sein. Existiert das angegebenePlugin nicht,wirdeinFehlerzurü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 allevorhandenenPlugin-Eigenschaftenund setztdann dieEigenschaft"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 einenStatuscodeundeinJSON-ObjektmitdenDetailszurück.DerStatus-Code ist2xx,fallsdasDeploy-Pluginerfolgreichausgeführtwurde.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 - DasJSON-Objekt hat dabei[[die folgendeStruktur>>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 - Beispielfür dieAntwortbeim Aktualisieren einesPlugins: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ürdieAntwort beim Löschen, fallsdas angegebenePluginnicht gefundenwurde: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 - Mitdiesem ServletkanneinHash fürein bestimmtes Klartextpassworterzeugtwerden,welcherdanninderPlugin-Eigenschaft //token//hinterlegtwerden kann.Es muss hierbei einHTTP-GET-Requestverwendetwerden(Pfad auf denFORMCYCLE-Servetund dieMandant-IDentsprechendersetzen):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=<PASSWOR T>&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 -: DerKlartext desPasswort, zudemeinHashermittelt werden soll.357 +: The password to hash. 357 357 ; method 358 -: MethodezumBerechnendesHashes.ErlaubteWertesind//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 - AlsAntwortwird ein JSONzurückgeliefert,welchesdasgleicheFormatwiedieAntwort desDeploy-Pluginshat. Beispielfürine 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 - UmeinPluginnachdemBauen überMaven in FORMCYCLE hochzuladen,gibtes aucheinMaven-Plugin,welchesdasDeploy-Servletanspricht.Diesesistüberdie Artifactoryvon XIMA erhältlich, falls mandie entsprechendenRechte 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 - DasPluginhatdie folgenden Optionenzur Konfiguration:411 +The plugin offers the following configurable settings: 411 411 412 -; url [ Standardwert: //${fcDeployUrl}//]413 -: URL mitKontextpfadzumFORMCYCLE-Server, etwa //{{{http://localhost:8080/formcycle}}}//414 -; pluginName [ Standardwert: //deploy-plugin//]415 -: DerNamedesDeploy-PluginsfürdenURL-Parameter //name//.In der Regelmussdiese Optionnichtgesetzt werden,der Standardwertistausreichend.416 -; clientId [ Standardwert: //${fcDeployClientId}//]417 -: ID desMandanten,für dendasPlugin installiert,aktualisiert odergelöschtwerdensoll. EntsprichtdemParameter //client-id//desDeploy-Plugins, sieheoben.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//. UUIDdesMandanten,für dendasPlugin installiert,aktualisiert odergelöschtwerdensoll. EntsprichtdemParameter //client-uuid//desDeploy-Plugins, sieheoben.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 -: Passwor tfür dasServlet-Plugin, fallsinderKonfigurationdesDeploy-Pluginsein Passwortgesetzt wurde.422 -; deployAction [ Standardwert: //save//]423 -: Aktion,welche mitdemPlugin durchgeführtwerdensoll.ErlaubteWertesind//save//, //update-properties//, //activate//, //deactivate//und //delete//.EntsprichtdemParameter //deploy-action//desDeploy-Plugins, sieheoben.424 -; pluginIdent [ Standardwert: //manifest//]425 -: DieArt,wieach einemvorhandenenPlugingesuchtwird.EntsprichtdemParameter //plugin-ident//desDeploy-Plugins, sieheoben.426 -; pluginIdentifier [ Standardwert: //Implementation-Title=${project.groupId}:${project.artifactId}//]427 -: Identifi katordesPlugins,welchesaktualisiertodergelöschtwerdensoll. EntsprichtdemParameter //plugin-identifier//desDeploy-Plugins, sieheoben.428 -; jarFile [ Standartwert: Haupt-Build-Artifakt des Maven-Projekts]429 -: P fadzurJAR-Datei,diehochgeladen werden soll, relativzumBasisverzeichnisdesMaven-Projekts.430 -; disallowInstall [ Standardwert: //false//]431 -: Wen n//true//unddasPluginnochnicht existiert,wird abgebrochenundeinFehlerzurückgegeben.EntsprichtdemParameter //disallow-install//desDeploy-Plugins, sieheoben.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,diefürdieInstallation, AktualisierungoderLöschungdesPlugins genutztwird. Entspricht demParameter //locale//desDeploy-Plugins, sieheoben.434 -; clearProperties [ Standardwert: //false//]435 -: LöschtdieWerteallerPlugin-Eigenschaften.Entspricht demParameter //clear-properties//desDeploy-Plugins, sieheoben.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-PaaremitEigenschaften,dieandemPlugingesetzt werdensollen.EntsprichtdemParameter //clear-properties//desDeploy-Plugins, sieheoben.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 -=== EmpfehlungfürPlugin-Projekt ===440 +=== Recommendations for your plugin project === 440 440 441 -W ährenddasPluginzahlreicheEinstellunsgmöglichkeitenanbietet, reichenmeistdie Standardwerteaus. Empfohlenwird dasolgendeVorgehenbeiderEntwicklungvonPlugin-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 - DasPluginwirddannanhanddesEintrags//Implementation-Title// imManifestidentifiziert.HierzumussderWertkorrektimManifestgesetzt werden.Dieskannentwederüberdasmaven-jar-plugin oderüberdasmaven-assembly-plugingeschehen,je nachdem, welches vonesen imPlugin-Projektgenutzt 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 - 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 -Nu nkanndasPluginüberMavengebautundhochgeladenwerden.Die URLauf FORMCYCLE,dieMandant-IDunddasToken (Passwort)wird dynamischüberParameteranMavenü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