Index

wrapper.app.parameter.<n>

Compatibilité :1.0.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Ces propriétés permettent de spécifier les paramètres qui seront transmis à la méthode main de votre application.

Lorsque la valeur de la propriété wrapper.java.mainclass est org.tanukisoftware.wrapper.WrapperSimpleApp, le premier paramètre de l'application doit être le nom de la classe qui contient votre méthode main. Tous les autres paramètres sont ensuite transmis à la méthode main de votre application dans l'ordre. Veuillez consulter la section Intégration pour plus de détails.

Composant <n> :

Chaque élément possède un nom de propriété commençant par « wrapper.app.parameter. » et le composant « <n> » du nom de propriété est un nombre entier incrémenté à partir de « 1 ». Par défaut, la numérotation doit être séquentielle, sans lacunes. La propriété wrapper.ignore_sequence_gaps peut éventuellement être définie afin d'autoriser des lacunes dans la séquence.


Saisie de paramètre individuel :

Il est important que chaque propriété ne définisse qu'un seul paramètre.

Ceci sera interprété comme un seul paramètre :
wrapper.app.parameter.1=-c conf/myconffile.conf

Ceci sera interprété comme deux paramètres :
wrapper.app.parameter.1=-c
wrapper.app.parameter.2=conf/myconffile.conf


Guillemets :

Version 3.6.0 et ultérieures

À partir de la version 3.6.0, la gestion des caractères spéciaux a changé afin d'assurer la cohérence sur toutes les plateformes. Dans la plupart des cas, vous pouvez écrire la valeur du paramètre exactement telle que vous souhaitez qu'elle soit reçue par l'application Java.

Une exception concerne les espaces en début ou en fin de valeur, qui sont normalement supprimés des valeurs de propriété. Pour conserver ces espaces, il est nécessaire d'entourer la valeur de guillemets. Ces guillemets seront retirés si la propriété « quotable » correspondante est définie à TRUE. Pour conserver de véritables guillemets dans la valeur, échappez-les avec un caractère '\'. Les barres obliques inverses doivent également être doublées ('\\'). Aucun autre caractère ne peut être échappé.

Lors de la suppression des guillemets, seuls les changements suivants s'appliqueront :

  • '\\' deviendra '\',
  • '\"' deviendra '"'
  • '"' deviendra ''
Exemple :
wrapper.app.parameter.1="  my arg"
wrapper.app.parameter.1.quotable=TRUE

Avant la version 3.6.0

Dans les anciennes versions du Wrapper, la façon dont les guillemets sont gérés varie selon les plateformes. Sous Windows, le processus Java est créé à l'aide d'une ligne de commande où les arguments contenant des espaces doivent être mis entre guillemets. Les guillemets sont automatiquement retirés de la ligne de commande lors du lancement du processus. Sous Linux, en revanche, un tableau est utilisé et les arguments sont transmis directement.

Pour simuler le comportement de Windows et utiliser la même configuration sur toutes les plateformes, il est possible de marquer certains paramètres avec un indicateur de suppression des guillemets (propriété stripquotes = TRUE). Cet indicateur n'est utilisé que sous Unix et spécifie que les guillemets doivent être retirés avant de transmettre le ou les paramètres à la JVM.

Lors de la suppression des guillemets, tous les autres caractères, à l'exception des suivants, resteront inchangés.

  • '\\' deviendra '\',
  • '\"' deviendra '"'
  • '"' deviendra ''

wrapper.app.parameter.<n>.quotable

Compatibilité :3.6.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Si une valeur de paramètre doit inclure des espaces en début ou en fin, vous pouvez les conserver en entourant la valeur de guillemets. Ces guillemets seront retirés si vous définissez la propriété wrapper.app.parameter.<n>.quotable correspondante à TRUE.

La valeur par défaut de cette propriété est « FALSE ».

Lorsqu'une propriété « quotable » est définie à TRUE, les véritables guillemets à conserver dans la valeur correspondante doivent alors être échappés avec un caractère '\', et les barres obliques inverses doivent être doublées ('\\'). Aucun autre caractère ne peut être échappé.

Les replacements suivants seront effectués lors de la suppression des guillemets.

  • '\\' deviendra '\',
  • '\"' deviendra '"'
  • '"' deviendra ''
Exemple :
wrapper.app.parameter.1="  param1"
wrapper.app.parameter.1.quotable=TRUE
wrapper.app.parameter.2="  param2 with\"quotes\""
wrapper.app.parameter.2.quotable=TRUE

wrapper.app.parameter.<n>.stripquotes

Compatibilité :3.5.17 (No longer used as of 3.6.0)
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

AVERTISSEMENT

À partir de la version 3.6.0, cette propriété n'est plus nécessaire et devient donc invalide. Toute valeur marquée avec « stripquotes » doit être révisée afin de ne plus échapper les barres obliques inverses ('\') et les guillemets ('"').

Si une valeur wrapper.app.parameter.<n> contient des guillemets, alors le contenu des guillemets sera transmis à l'application Java comme un seul argument sous Windows. Cependant, sous UNIX, les guillemets seront également inclus dans la valeur de l'argument. Dans la plupart des cas, ce n'est pas le comportement correct sous UNIX, mais il en est ainsi pour maintenir la rétrocompatibilité.

La propriété wrapper.app.parameter.<n>.stripquotes permet d'indiquer au Wrapper de supprimer automatiquement ces guillemets supplémentaires sous UNIX. La propriété est ignorée sous Windows.

La valeur par défaut est celle de la propriété wrapper.app.parameter.default.stripquotes, qui vaut elle-même « FALSE » par défaut.

Les remplacements suivants seront effectués lors de la suppression des guillemets. Tous les autres caractères resteront inchangés.

  • '\\' deviendra '\',
  • '\"' deviendra '"'
  • '"' deviendra ''
Exemple :
wrapper.app.parameter.1="parm1"
wrapper.app.parameter.1.stripquotes=TRUE
wrapper.app.parameter.2=parm=\"value\"
wrapper.app.parameter.2.stripquotes=TRUE

wrapper.app.parameter.default.stripquotes

Compatibilité :3.5.17 (No longer used as of 3.6.0)
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

AVERTISSEMENT

À partir de la version 3.6.0, cette propriété n'est plus nécessaire et devient donc invalide. Toute valeur marquée avec « stripquotes » doit être révisée afin de ne plus échapper les barres obliques inverses ('\') et les guillemets ('"').

Permet de modifier le comportement par défaut de suppression des guillemets sous UNIX lorsque vous souhaitez le même comportement pour toutes les valeurs des propriétés wrapper.app.parameter.<n>. La valeur par défaut est « FALSE ». La propriété est ignorée sous Windows.

Exemple :
wrapper.app.parameter.default.stripquotes=FALSE

wrapper.app.parameter_file

Compatibilité :3.5.17
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété permet de spécifier un fichier pouvant contenir un ou plusieurs paramètres à transmettre à la JVM. Cela peut s'avérer très utile lorsque la liste des paramètres doit être générée dynamiquement ou via un programme d'installation.

Tous les paramètres définis dans ce fichier apparaîtront après ceux définis à l'aide des propriétés wrapper.app.parameter.<n> standard.

À partir de la version 3.5.23 du Wrapper, toutes les références aux variables d'environnement dans le fichier seront expansées.


Format du fichier :

Le format du fichier est simple.

  • Il doit commencer par une ligne de directive d'encodage tout comme le fichier de configuration du Wrapper. Cela est nécessaire pour indiquer au Wrapper quel encodage utiliser lors de la lecture du fichier. Si cette ligne est absente, le Wrapper tentera de poursuivre après avoir consigné un avertissement. L'encodage utilisé dans le fichier peut être différent de celui utilisé dans les autres fichiers de configuration.
  • Le caractère '#' est interprété comme un caractère de commentaire. Pour inclure un caractère '#' dans une valeur de propriété, la valeur doit soit être mise entre guillemets ("#"), soit être échappée par un second caractère '#'.
  • Par défaut, toute ligne non vide qui n'est pas un commentaire sera interprétée comme un paramètre dont la valeur s'étend sur toute la ligne. Ce comportement peut être modifié en définissant la propriété wrapper.app.parameter_file.quotable à TRUE. Dans ce mode, les arguments sont délimités par tout espace non mis entre guillemets. Cela permet de lister plusieurs paramètres sur la même ligne. Les valeurs contenant des espaces doivent être mises entre guillemets.

Exemple de fichier de paramètres (avec .quotable=FALSE) :
@encoding=UTF-8
# Example parameters: One parameter per line
param1
param2 with space
param3
param4

Exemple de fichier de paramètres (avec .quotable=TRUE) :
@encoding=UTF-8
# Example parameters: Multiple parameters in one line
param1 "param2 with space" param3

# More parameters
param4

NOTE

Les versions antérieures à 3.6.0 n'ont pas le mode « quotable », et plusieurs paramètres par ligne sont toujours autorisés.

Si l'une des valeurs doit inclure un espace, il est alors nécessaire d'ajouter des guillemets en suivant les règles décrites ci-dessous afin de garantir que le fichier fonctionne de manière cohérente sur toutes les plateformes.

wrapper.app.parameter_file.required

Compatibilité :3.5.36
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Spécifie si le fichier de paramètres est requis ou non. S'il est requis et introuvable, le Wrapper s'arrêtera sans démarrer la JVM. S'il n'est pas requis, le fichier sera ignoré s'il est introuvable.

La valeur par défaut est TRUE.

Exemple :
wrapper.app.parameter_file.required=FALSE

wrapper.app.parameter_file.quotable

Compatibilité :3.6.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Lorsqu'elle est définie à TRUE, les guillemets contenus dans le fichier de paramètres seront retirés. Cela vous permet d'utiliser les guillemets comme délimiteurs de valeurs et ainsi de lister plusieurs paramètres sur une seule ligne.

De plus, les guillemets peuvent être utilisés comme délimiteurs pour conserver les espaces en début ou en fin des valeurs de paramètres.

La valeur par défaut de cette propriété est « FALSE ».

AVERTISSEMENT

Les versions antérieures à 3.6.0 n'ont pas le mode « quotable », et plusieurs arguments par ligne sont toujours autorisés.

Si l'une des valeurs doit inclure un espace, il est alors nécessaire d'ajouter des guillemets en suivant les règles décrites ci-dessous afin de garantir que le fichier fonctionne de manière cohérente sur toutes les plateformes.

Dans l'exemple ci-dessous, la ligne était interprétée comme trois paramètres différents avant la version 3.6.0. Depuis la version 3.6.0, elle est interprétée comme un seul paramètre contenant des guillemets, sauf si wrapper.java.additional_file.quotable est défini à TRUE.

"parameter 1" "parameter 2" parameter3

Lorsqu'une propriété « quotable » est définie à TRUE, les véritables guillemets à conserver dans la valeur correspondante doivent alors être échappés avec un caractère '\', et les barres obliques inverses doivent être doublées ('\\'). Aucun autre caractère ne peut être échappé.

Les remplacements suivants seront effectués lors de la suppression des guillemets.

  • '\\' deviendra '\',
  • '\"' deviendra '"'
  • '"' deviendra ''
Exemple :
wrapper.app.parameter_file.quotable=TRUE
Exemple de fichier de paramètres UTF-8 :
@encoding=UTF-8
-DTEST1=Value1 -DTEST2="Test Value with spaces."

wrapper.app.parameter_file.stripquotes

Compatibilité :3.5.17 (No longer used as of 3.6.0)
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :Windows (Non pris en charge)Mac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

AVERTISSEMENT

À partir de la version 3.6.0, cette propriété n'est plus nécessaire et devient donc invalide. Toute valeur marquée avec « stripquotes » doit être révisée afin de ne plus échapper les barres obliques inverses ('\') et les guillemets ('"').

Les différentes plateformes gèrent différemment les paramètres contenant des espaces. Pour qu'une configuration donnée fonctionne de manière cohérente, vous devez toujours mettre ces valeurs entre guillemets. Elles seront utilisées telles quelles sous Windows. Cependant, sur les plateformes UNIX, les guillemets seront retirés lorsque la ligne de commande est découpée en une liste de paramètres.

Dans presque tous les cas, vous voudrez supprimer ces guillemets. La valeur par défaut est « FALSE ».

Exemple :
wrapper.app.parameter_file.stripquotes=FALSE
Exemple de fichier de paramètres UTF-8 :
@encoding=UTF-8
-DTEST1=Value1 -DTEST2="Test Value with spaces."

wrapper.app.parameter.backend

Compatibilité :3.6.0
Éditions :Édition ProfessionnelleÉdition StandardÉdition Community
Plateformes :WindowsMac OSXLinuxAlpine LinuxFreeBSDSolarisIBM z/Linux

Cette propriété peut être définie à TRUE pour transmettre les paramètres de l'application via le backend plutôt que par la ligne de commande.

L'utilisation du backend offre un avantage unique du Wrapper par rapport aux applications autonomes : elle permet une ligne de commande concise et la transmission de données sensibles sans les exposer aux outils de gestion des processus. Aucune modification n'est requise dans l'application Java : les paramètres sont toujours reçus via la méthode standard main().

La valeur par défaut est « FALSE ».

Exemple :
wrapper.app.parameter.backend=TRUE

NOTE

Si des paramètres d'application contiennent des données sensibles, le Wrapper exigera que cette propriété soit définie à TRUE afin d'empêcher que ces données n'apparaissent sur la ligne de commande.

Référence : Paramètres