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> |