Utiliser des descripteurs de déploiement Java EE pour définir les références d'environnement

Cette règle marque Context <Environment> éléments trouvés dans le fichier META-INF/context.xml qui doivent être transformés en éléments <env-entry> éléments dans la WEB-INF/web.xml .

Apache Tomcat autorise Context <Environment> éléments à définir dans ces emplacements:

Comme l'outil de migration peut ne pas avoir accès au répertoire de configuration de Tomcat, il ne signale que l'élément Context <Environment> dans le META-INF/context.xml dossier. Context <Environment> les informations définies dans les autres emplacements peuvent être copiées dans le META-INF/context.xml afin qu'elles soient traitées par l'outil pour qu'il soit traité par l'outil.

Si un fichier WEB-INF/web.xml existe dans le projet Web :

Context <Environment> seront signalés dans l'une ou l'autre des conditions suivantes :

Ajouter un nouveau <env-entry> dans le fichier web.xml qui représente l'élément Context <Environment> s'il n'existe pas déjà dans l'élément web.xml fichier. Si l'entrée existe, elle est mise à jour.

Si le fichier WEB-INF/web.xml n'existe pas :

Tous Context <Environment> seront signalés.

Créer un WEB-INF/web.xml fichier qui comprend le fichier <env-entry> si le projet web si le projet web se trouve à l'adresse Java EE 5 ou plus. Le correctif automatique signalera une erreur si le projet web se trouve à l'adresse J2EE 1.4 ou à une adresse inférieure.

Par exemple, prenez un fichier META-INF/context.xml dont le contenu est le suivant :
<Environnement
description="Déclenchement car il n'existe pas"
name="newEntry"
override="false"
type=" java.lang.String " value=" abc123 "/>
<Environment
description="Déclenchement car la valeur est différente"
name="contextEnvString_1"
override="false"
type="java.lang.String"
value="new Value"/>
<Environment
description="Déclenchement car le type est différent"
name="contextEnvString_2"
override="false"
type="java.lang.Integer"
value="123"/>
<Environment
description="Pas de déclenchement car le remplacement a pour valeur true."
name="contextEnvString_3"
override="true"
type="java.lang.Integer"
value="123"/>

et le fichier web.xml suivant dans l'application :

<env-entry>
<description>Déclenchement en raison d'une valeur différente</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>oldValue</env-entry-value>
</env-entry>

<env-entry>
<description>Déclenchement en raison d'un type différent</description>
<env-entry-name>contextEnvString_2</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>123</env-entry-value>
</env-entry>

<env-entry>
<description>ne se déclenchera pas en raison de la valeur "true" de l'option "override".</description>
<env-entry-name>contextEnvString_3</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123456789</env-entry-value>
</env-entry>

Après l'application du correctif automatisé, le web.xml sera mis à jour pour devenir contenir :

<env-entry>
<description>Déclenchement en raison d'une valeur différente</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>nouvelle valeur</env-entry-value>
</env-entry>

<env-entry>
<description>Déclenchement en raison d'un type différent</description>
<env-entry-name>contextEnvString_2</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123</env-entry-value>
</env-entry>

<env-entry>
<description>ne se déclenchera pas en raison de la valeur "true" de l'option "override".</description>
<env-entry-name>contextEnvString_3</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>123456789</env-entry-value>
</env-entry>

<env-entry>
<description>Déclencher parce qu'il n'existe pas</description>
<env-entry-name>newEntry</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>abc123</env-entry-value>
</env-entry>