Cette règle marque les éléments Context <Environment> trouvés dans le fichier META-INF/context.xml et qui doivent être transformés en éléments <env-entry> dans le fichier WEB-INF/web.xml.
Apache Tomcat permet la définition des éléments Context <Environment> aux emplacements suivants :
Etant donné que l'outil de migration n'a pas forcément accès au répertoire de configuration de Tomcat, il ne marque les éléments Context <Environment> que dans le fichier META-INF/context.xml. Vous pouvez copier les informations Context <Environment> définies à d'autres emplacements dans le fichier META-INF/context.xml pour que l'outil puisse les traiter.
Si un fichier WEB-INF/web.xml existe dans le projet Web :
Les éléments Context <Environment> sont marqués si l'une des conditions suivantes est remplie :
Un correctif rapide pour cette règle est disponible dans le scanner de source. Le correctif rapide ajoute au fichier web.xml un nouvel élément <env-entry> qui représente l'élément Context <Environment>, s'il n'existe pas déjà dans le fichier web.xml. Si l'entrée existe, elle est mise à jour.
Si le fichier WEB-INF/web.xml n'existe pas :
Tous les éléments Context <Environment> sont marqués.
Le correctif rapide crée un fichier WEB-INF/web.xml qui inclut les éléments <env-entry> appropriés si la version du projet Web est Java EE 5 ou une version ultérieure. Il signale une erreur si la version du projet Web est J2EE 1.4 ou une version ultérieure.
Par exemple, prenez un fichier META-INF/context.xml dont le contenu est le suivant :|
<Environment 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 car la valeur est différente</description> <env-entry-name>contextEnvString_1</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>ancienneValeur</env-entry-value> </env-entry> <env-entry> <description>Déclenchement car le type est 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>Pas de déclenchement car le remplacement a pour valeur 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> |
Une fois le correctif appliqué, le fichier web.xml est mis à jour et son contenu est le suivant :
|
<env-entry> <description>Déclenchement car la valeur est 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 car le type est 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>Pas de déclenchement car le remplacement a pour valeur 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>Déclenchement car il n'existe pas</description> <env-entry-name>nouvelleEntrée</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>abc123</env-entry-value> </env-entry> |