ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/webapps/docs/config/automatic-deployment.xml

Path
ttomcat-1778514358873.zip-extract/apache-tomcat-11.0.18-src/webapps/docs/config/automatic-deployment.xml
Status
scanned
Type
file
Name
automatic-deployment.xml
Extension
.xml
Programming language

      
    
Mime type
text/xml
File type
XML 1.0 document, ASCII text, with CRLF line terminators
Tag

      
    
Rootfs path

      
    
Size
18469 (18.0 KB)
MD5
76f045e803a012acaee7bddb9f2768c1
SHA1
90c954186aebae89764d9df4aa27a6a59dc006f2
SHA256
ccc134fe24522458ce4b5bae9173b3d82d95f9780f0dbed41b93a3f23366ec37
SHA512

      
    
SHA1_git
434401557aa247119ed4d39e1ed374a8b0966956
Is binary

      
    
Is text
True
Is archive

      
    
Is media

      
    
Is legal

      
    
Is manifest

      
    
Is readme

      
    
Is top level

      
    
Is key file

      
    
automatic-deployment.xml | 18.0 KB |

<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE document [ <!ENTITY project SYSTEM "project.xml"> ]> <document url="automatic-deployment.html"> &project; <properties> <title>Automatic Deployment - Use cases</title> </properties> <body> <section name="Table of Contents"> <toc/> </section> <section name="Introduction"> <p>This page defines the expected behaviour of the automatic deployer in many typical use cases. This is a complex area of Tomcat&apos;s functionality. While any difference between this document and Tomcat&apos;s behaviour is a bug, the fix may be to change this document, Tomcat&apos;s behaviour or both.</p> </section> <section name="Key"> <table class="detail-table"> <tr> <th>Term</th><th>Description</th> </tr> <tr> <td>XML</td> <td>An XML configuration file located in the Host&apos;s <em>configBase</em>. It must contain a single &lt;Context&gt; element and may contain optional nested elements. It does not define an explicit <em>docBase</em> attribute. It represents a single web application. It is often referred to as a context.xml file.</td> </tr><tr> <td>XML+EW</td> <td>An XML configuration file located in the Host&apos;s <em>configBase</em>. It must contain a single &lt;Context&gt; element and may contain optional nested elements. It includes an explicit <em>docBase</em> attribute that points to an external WAR. It represents a single web application. It is often referred to as a context.xml file.</td> </tr><tr> <td>XML+ED</td> <td>An XML configuration file located in the Host&apos;s <em>configBase</em>. It must contain a single &lt;Context&gt; element and may contain optional nested elements. It includes an explicit <em>docBase</em> attribute that points to an external directory. It represents a single web application. It is often referred to as a context.xml file.</td> </tr><tr> <td>WAR</td> <td>A WAR file located in the Host&apos;s <em>appBase</em>. The WAR does not include an embedded context.xml file.</td> </tr><tr> <td>WAR+XML</td> <td>A WAR file located in the Host&apos;s <em>appBase</em>. The WAR does include an embedded context.xml file.</td> </tr><tr> <td>DIR</td> <td>A directory located in the Host&apos;s <em>appBase</em>. The directory does not include an embedded context.xml file.</td> </tr><tr> <td>DIR+XML</td> <td>A directory located in the Host&apos;s <em>appBase</em>. The directory does include an embedded context.xml file.</td> </tr><tr> <td>redeploy</td> <td>The Context object that represents the web application is destroyed and a new Context object is created. If present and permitted by the configuration, this new Context object is created by parsing the context.xml file. The web.xml file is parsed during the application start process. Any sessions stored in the standard Manager in the default configuration will not be persisted. Any requests to the web application during the redeploy will be handled as if the web application is not deployed.</td> </tr><tr> <td>reload</td> <td>The Context object that represents the web application is stopped and then started. The web.xml file is parsed during the application start process. Any sessions stored in the standard Manager in the default configuration will not be persisted. Any requests to the web application during the reload will be held until the reload completes at which point they will continue using the reloaded web application. </td> </tr> </table> </section> <section name="New files"> <p>This section describes Tomcat&apos;s behaviour when the automatic deployment process discovers a new web application.</p> <table class="detail-table"> <tr> <th rowspan="2">Starting artifact(s)</th> <th colspan="3">Configuration Settings</th> <th colspan="4">Result</th> </tr> <tr> <th>deployXML</th><th>copyXML</th><th>unpackWARs</th> <th>XML</th><th>WAR</th><th>DIR</th><th>Notes</th> </tr> <tr> <td>XML</td> <td>either</td><td>either</td><td>either</td> <td>Y</td><td>N</td><td>N</td><td>1, 2, 3</td> </tr> <tr> <td>XML+EW</td> <td>either</td><td>either</td><td>false</td> <td>Y</td><td>N</td><td>N</td><td>1</td> </tr> <tr> <td>XML+EW</td> <td>either</td><td>either</td><td>true</td> <td>Y</td><td>N</td><td>Y</td><td>1</td> </tr> <tr> <td>XML+ED</td> <td>either</td><td>either</td><td>either</td> <td>Y</td><td>N</td><td>N</td><td>1, 2</td> </tr> <tr> <td>WAR+XML</td> <td>false</td><td>either</td><td>false</td> <td>N</td><td>Y</td><td>N</td><td>4</td> </tr> <tr> <td>WAR+XML</td> <td>false</td><td>either</td><td>true</td> <td>N</td><td>Y</td><td>Y</td><td>4</td> </tr> <tr> <td>WAR+XML</td> <td>true</td><td>false</td><td>false</td> <td>N</td><td>Y</td><td>N</td><td></td> </tr> <tr> <td>WAR+XML</td> <td>true</td><td>false</td><td>true</td> <td>N</td><td>Y</td><td>Y</td><td></td> </tr> <tr> <td>WAR+XML</td> <td>true</td><td>true</td><td>false</td> <td>Y</td><td>Y</td><td>N</td><td></td> </tr> <tr> <td>WAR+XML</td> <td>true</td><td>true</td><td>true</td> <td>Y</td><td>Y</td><td>Y</td><td></td> </tr> <tr> <td>WAR</td> <td>either</td><td>either</td><td>false</td> <td>N</td><td>Y</td><td>N</td><td></td> </tr> <tr> <td>WAR</td> <td>either</td><td>either</td><td>true</td> <td>N</td><td>Y</td><td>Y</td><td></td> </tr> <tr> <td>DIR+XML</td> <td>false</td><td>either</td><td>either</td> <td>N</td><td>N</td><td>Y</td><td>4</td> </tr> <tr> <td>DIR+XML</td> <td>true</td><td>false</td><td>either</td> <td>N</td><td>N</td><td>Y</td><td></td> </tr> <tr> <td>DIR+XML</td> <td>true</td><td>true</td><td>either</td> <td>Y</td><td>N</td><td>Y</td><td></td> </tr> <tr> <td>DIR</td> <td>false</td><td>either</td><td>either</td> <td>N</td><td>N</td><td>Y</td><td></td> </tr> </table> </section> <section name="Deleted files"> <p>This section describes Tomcat&apos;s behaviour when the automatic deployment process detects that a web application file has been deleted.</p> <p>When a file is deleted or modified any redeploy resources that are listed after the modified/deleted resource are themselves deleted (and possibly re-created). The order of redeploy resources is:</p> <ol> <li>WAR</li> <li>DIR</li> <li>XML</li> <li>global resources</li> </ol> <p>There are some exceptions to the deletion rule above:</p> <ul> <li>global resources are never deleted</li> <li>external resources are never deleted</li> <li>if the WAR or DIR has been modified then the XML file is only deleted if <em>copyXML</em> is <code>true</code> and <em>deployXML</em> is <code>true</code></li> </ul> <p>In the following table:</p> <ul> <li>'-' means "unchanged from not present". i.e. the artifact wasn't present before the change and isn't present after it either. '-' rather than 'N' is used to focus attention on what changes.</li> <li>'R' means that the directory is re-created by expanding the WAR file. This will only happen if <em>unpackWARs</em> is <code>true</code>.</li> <li>'XW' means that the if the WAR contains a META-INF/context.xml file it will be extracted and placed in the Host&apos;s <em>configBase</em>. This only happens if <em>copyXML</em> is <code>true</code> and <em>deployXML</em> is <code>true</code>.</li> <li>'XD' means that the if the directory contains a META-INF/context.xml file it will be copied to the Host&apos;s <em>configBase</em>. This only happens if <em>copyXML</em> is <code>true</code> and <em>deployXML</em> is <code>true</code>.</li> </ul> <table class="detail-table"> <tr> <th colspan="3">Artifacts present</th> <th rowspan="2">Artifact removed</th> <th colspan="4">Artifacts remaining</th> </tr> <tr> <th>XML</th><th>WAR</th><th>DIR</th> <th>XML</th><th>WAR</th><th>DIR</th><th>Notes</th> </tr> <tr> <td>N</td><td>N</td><td>Y</td> <td>DIR</td> <td>-</td><td>-</td><td>N</td><td></td> </tr> <tr> <td>N</td><td>Y</td><td>N</td> <td>WAR</td> <td>-</td><td>N</td><td>-</td><td></td> </tr> <tr> <td>N</td><td>Y</td><td>Y</td> <td>DIR</td> <td>-</td><td>Y</td><td>R</td><td></td> </tr> <tr> <td>N</td><td>Y</td><td>Y</td> <td>WAR</td> <td>-</td><td>N</td><td>N</td><td></td> </tr> <tr> <td>Y</td><td>N</td><td>N</td> <td>XML</td> <td>N</td><td>-</td><td>-</td><td></td> </tr> <tr> <td>Y</td><td>N</td><td>Y</td> <td>DIR</td> <td>N</td><td>-</td><td>N</td><td>5</td> </tr> <tr> <td>Y</td><td>N</td><td>Y</td> <td>XML</td> <td>XD</td><td>-</td><td>Y</td><td></td> </tr> <tr> <td>Y</td><td>Y</td><td>N</td> <td>WAR</td> <td>N</td><td>N</td><td>-</td><td>5</td> </tr> <tr> <td>Y</td><td>Y</td><td>N</td> <td>XML</td> <td>XW</td><td>Y</td><td>-</td><td></td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>DIR</td> <td>XW</td><td>Y</td><td>R</td><td></td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>WAR</td> <td>N</td><td>N</td><td>N</td><td></td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>XML</td> <td>XW</td><td>Y</td><td>Y</td><td></td> </tr> <tr> <td>Y</td><td>Y (external)</td><td>N</td> <td>WAR</td> <td>Y</td><td>N</td><td>-</td><td>3</td> </tr> <tr> <td>Y</td><td>Y (external)</td><td>N</td> <td>XML</td> <td>N</td><td>Y (external)</td><td>-</td><td>6</td> </tr> <tr> <td>Y</td><td>N</td><td>Y (external)</td> <td>DIR</td> <td>Y</td><td>-</td><td>N</td><td>3</td> </tr> <tr> <td>Y</td><td>N</td><td>Y (external)</td> <td>XML</td> <td>N</td><td>-</td><td>Y (external)</td><td>6</td> </tr> <tr> <td>Y</td><td>Y (external)</td><td>Y</td> <td>DIR</td> <td>Y</td><td>Y (external)</td><td>R</td><td></td> </tr> <tr> <td>Y</td><td>Y (external)</td><td>Y</td> <td>WAR</td> <td>Y</td><td>N</td><td>N</td><td>3</td> </tr> <tr> <td>Y</td><td>Y (external)</td><td>Y</td> <td>XML</td> <td>N</td><td>Y (external)</td><td>N</td><td>6</td> </tr> </table> </section> <section name="Modified files"> <p>This section describes Tomcat&apos;s behaviour when the automatic deployment process detects that a web application file has been modified.</p> <p>In the following table:</p> <ul> <li>'-' means "unchanged from not present". i.e. the artifact wasn't present before the change and isn't present after it either. '-' rather than 'N' is used to focus attention on what changes.</li> <li>'M' means that the artifact has been modified.</li> <li>'R' means that the directory is deleted and re-created by expanding the WAR file. This will only happen if <em>unpackWARs</em> is <code>true</code>.</li> </ul> <table class="detail-table"> <tr> <th colspan="3">Artifacts present</th> <th rowspan="2">Artifact modified</th> <th colspan="4">Artifacts remaining</th> </tr> <tr> <th>XML</th><th>WAR</th><th>DIR</th> <th>XML</th><th>WAR</th><th>DIR</th><th>Action</th> </tr> <tr> <td>N</td><td>N</td><td>Y</td> <td>DIR</td> <td>-</td><td>-</td><td>M</td><td>None</td> </tr> <tr> <td>N</td><td>Y</td><td>N</td> <td>WAR</td> <td>-</td><td>M</td><td>-</td><td>Redeploy</td> </tr> <tr> <td>N</td><td>Y</td><td>Y</td> <td>DIR</td> <td>-</td><td>Y</td><td>M</td><td>None</td> </tr> <tr> <td>N</td><td>Y</td><td>Y</td> <td>WAR</td> <td>-</td><td>M</td><td>R</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>N</td><td>N</td> <td>XML</td> <td>M</td><td>-</td><td>-</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>N</td><td>Y</td> <td>DIR</td> <td>Y</td><td>-</td><td>M</td><td>None</td> </tr> <tr> <td>Y</td><td>N</td><td>Y</td> <td>XML</td> <td>M</td><td>-</td><td>Y</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>Y</td><td>N</td> <td>WAR</td> <td>Y</td><td>M</td><td>-</td><td>Reload</td> </tr> <tr> <td>Y</td><td>Y</td><td>N</td> <td>XML</td> <td>M</td><td>Y</td><td>-</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>DIR</td> <td>Y</td><td>Y</td><td>M</td><td>None</td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>WAR</td> <td>Y</td><td>M</td><td>R</td><td>Reload</td> </tr> <tr> <td>Y</td><td>Y</td><td>Y</td> <td>XML</td> <td>M</td><td>Y</td><td>Y</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>Y(external)</td><td>N</td> <td>WAR</td> <td>Y</td><td>M(external)</td><td>-</td><td>Reload</td> </tr> <tr> <td>Y</td><td>Y(external)</td><td>N</td> <td>XML</td> <td>M</td><td>Y(external)</td><td>-</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>N</td><td>Y(external)</td> <td>DIR</td> <td>Y</td><td>-</td><td>M(external)</td><td>None</td> </tr> <tr> <td>Y</td><td>N</td><td>Y(external)</td> <td>XML</td> <td>M</td><td>-</td><td>Y(external)</td><td>Redeploy</td> </tr> <tr> <td>Y</td><td>Y(external)</td><td>Y</td> <td>DIR</td> <td>Y</td><td>Y(external)</td><td>M</td><td>None</td> </tr> <tr> <td>Y</td><td>Y(external)</td><td>Y</td> <td>WAR</td> <td>Y</td><td>M(external)</td><td>R</td><td>Reload</td> </tr> <tr> <td>Y</td><td>Y(external)</td><td>Y</td> <td>XML</td> <td>M</td><td>Y(external)</td><td>Y</td><td>Redeploy</td> </tr> </table> </section> <section name="Added files"> <p>This is treated as if the added file has been modified with the following additional actions:</p> <ul> <li>If a WAR is added, any DIR is removed and may be recreated depending on <em>unpackWARs</em>.</li> <li>If an XML file is added that refers to an external <em>docBase</em> any WAR or DIR in the appBase will be removed. The DIR may be recreated if the external resource is a WAR and <em>unpackWARs</em> is true.</li> <li>If a DIR is added when a WAR already exists and <em>unpackWARs</em> is <code>false</code>, the DIR will be ignored but a warning will be logged when the DIR is first detected. If the WAR is removed, the DIR will be left and may be deployed via automatic deployment.</li> <li>If a WAR is added to the <em>appBase</em> when an external WAR already exists, the WAR in the <em>appBase</em> will be ignored but a warning will be logged when the WAR in the <em>appBase</em> is first detected. If the external WAR is removed, the WAR in the <em>appBase</em> will be left and may be deployed via automatic deployment.</li> <li>If an XML file is added to the META-INF directory of an application deployed from that DIR, the application will always be redeployed. The result will be the same as for a new deployment.</li> </ul> </section> <section name="Notes"> <ol> <li><em>deployXML</em> and <em>copyXML</em> are ignored since an XML file was discovered in the <em>configBase</em>.</li> <li><em>unpackWARs</em> is ignored since there is no WAR file.</li> <li>The context will fail to start because there is no content in the expected <em>docBase</em>.</li> <li>The web application fails to deploy because it contains an embedded META-INF/context.xml, <em>deployXML</em> is <code>false</code> and an XML has not been provided in the <em>configBase</em>.</li> <li>The XML file is only deleted if <em>copyXML</em> is <code>true</code> and <em>deployXML</em> is <code>true</code>.</li> <li>Although the external resource is still present, the web application is fully undeployed as Tomcat has no knowledge of the external resource. </li> </ol> </section> </body> </document>
Detected license expression
apache-2.0
Detected license expression (SPDX)
Apache-2.0
Percentage of license text
6.86
Copyrights

      
    
Holders

      
    
Authors

      
    
License detections License expression License expression SPDX
apache_2_0-4bde3f57-78aa-4201-96bf-531cba09e7de apache-2.0 Apache-2.0
URL Start line End line
http://www.apache.org/licenses/LICENSE-2.0 10 10