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:

Etant donné que l'outil de migration peut ne pas avoir accès au répertoire de configuration Tomcat , il marque uniquement le Context <Environment> dans le Fichier META-INF/context.xml . Context <Environment> Les informations définies dans les autres emplacements peuvent être copiées dans le fichier META-INF/context.xml afin d'être traitées par l'outil.

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

Context <Environment> les éléments seront marqués dans l'une des conditions suivantes:

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

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

Tous Context <Environment> Les éléments seront marqué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 :
< span class="Code"> < Environnement
description="Déclenchement car il n'existe pas"
name="nouvelleEntrée"
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 = "nouvelle valeur " />
<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 :

< span class="Code"> < env-entry>
<description>Déclencheur 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éclencheur 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éclenche pas car la substitution est définie sur true.</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 :

< span class="Code"> < env-entry>
<description>Déclencheur 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éclencheur 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éclenche pas car la substitution est définie sur true.</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>Le déclencheur 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>