Użyj deskryptorów wdrażania Java EE do zdefiniowania odwołań do środowiska

Ta reguła powoduje oznaczenie flagą elementów Context <Environment> w pliku META-INF/context.xml, które muszą zostać transformowane w elementy <env-entry> w pliku WEB-INF/web.xml.

Produkt Apache Tomcat umożliwia definiowanie elementów Context <Environment> w następujących miejscach:

Ponieważ narzędzie do migracji nie ma dostępu do katalogu konfiguracyjnego Tomcat, oznacza flagą tylko element Context <Environment> w pliku META-INF/context.xml. Informacje Context <Environment> zdefiniowane w innych miejscach mogą zostać skopiowane do pliku META-INF/context.xml, aby zostały przetworzone przez to narzędzie.

Jeśli w projekcie WWW istnieje plik WEB-INF/web.xml:

Elementy Context <Environment> zostaną oznaczone flagą w przypadku spełnienia dowolnego z następujących warunków:

Szybka poprawka dla tej reguły jest dostępna w skanerze źródła. Szybka poprawka doda nowy element <env-entry> w pliku web.xml, który reprezentuje element Context <Environment>, jeśli nie istnieje on jeszcze w pliku web.xml. Jeśli wpis istnieje, zostanie zaktualizowany.

Jeśli plik WEB-INF/web.xml nie istnieje:

Wszystkie elementy Context <Environment> zostaną oznaczone flagą.

Szybka poprawka utworzy plik WEB-INF/web.xml, który zawiera odpowiednie elementy <env-entry>, jeśli projekt WWW jest w wersji Java EE 5 lub nowszej. Szybka poprawka zgłosi błąd, jeśli projekt WWW będzie w wersji J2EE 1.4 lub starszej.

Jako przykład można rozważyć plik META-INF/context.xml o następującej zawartości:
<Environment
description="Wyzwól, ponieważ nie istnieje"
name="newEntry"
override="false"
type="java.lang.String" value="abc123"/>
<Environment
description="Wyzwól z powodu innej wartości"
name="contextEnvString_1"
override="false"
type="java.lang.String"
value="new Value"/>
<Environment
description="Wyzwól z powodu innego typu"
name="contextEnvString_2"
override="false"
type="java.lang.Integer"
value="123"/>
<Environment
description="nie wyzwalaj, ponieważ wartość override jest ustawiona na true."
name="contextEnvString_3"
override="true"
type="java.lang.Integer"
value="123"/>

z następującym plikiem web.xml w aplikacji:

<env-entry>
<description>Wyzwól z powodu innej wartości</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>Wyzwól z powodu innego typu</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>nie wyzwalaj, ponieważ wartość override jest ustawiona na 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>

Po zastosowaniu szybkiej poprawki plik web.xml zostanie zaktualizowany tak, aby jego zawartość była następująca:

<env-entry>
<description>Wyzwól z powodu innej wartości</description>
<env-entry-name>contextEnvString_1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>new Value</env-entry-value>
</env-entry>

<env-entry>
<description>Wyzwól z powodu innego typu</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>nie wyzwalaj, ponieważ wartość override jest ustawiona na 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>Wyzwól, ponieważ nie istnieje</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>