This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 11.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 635e169a8911c8c8bd1a431483684bbc5739c54d
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Tue Sep 10 17:02:36 2024 +0100

    Add diagram 7 that shows Context configuration process
---
 webapps/docs/architecture/startup.xml              |   8 +-
 .../startup/7_catalina_context_config.plantuml     | 109 +++++++++++++++++++++
 .../startup/7_catalina_context_config.png          | Bin 0 -> 89731 bytes
 3 files changed, 115 insertions(+), 2 deletions(-)

diff --git a/webapps/docs/architecture/startup.xml 
b/webapps/docs/architecture/startup.xml
index c96eab6632..c95e10495b 100644
--- a/webapps/docs/architecture/startup.xml
+++ b/webapps/docs/architecture/startup.xml
@@ -96,11 +96,15 @@ Clusters, Realms and Valves.
 for Context elements as it is rather more involved that the other Containers.
 </p>
 <p>
-<a href="startup/6_catalina_host_config.png">Diagram 5</a> shows how the
+<a href="startup/6_catalina_host_config.png">Diagram 6</a> shows how the
 HostConfig component responds to lifecycle events triggered by the Host to
 deploy web applications to the Host.</p>
 <p>
-Diagram 7 will show ContextConfig.
+<a href="startup/7_catalina_context_config.png">Diagram 7</a> shows how the
+ContextConfig component responds to lifecycle events triggered by the Context 
to
+parse the global and application provided configuration files to create a 
merged
+web.xml file that is then used, along with other settings, to configure the web
+application.
 </p>
 </subsection>
 
diff --git 
a/webapps/docs/architecture/startup/7_catalina_context_config.plantuml 
b/webapps/docs/architecture/startup/7_catalina_context_config.plantuml
new file mode 100644
index 0000000000..98a70cb5cd
--- /dev/null
+++ b/webapps/docs/architecture/startup/7_catalina_context_config.plantuml
@@ -0,0 +1,109 @@
+@startuml
+
+' 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.
+
+hide footbox
+skinparam style strictuml
+
+activate Context
+
+== BEFORE_START_EVENT ==
+
+Context -> ContextConfig ++:lifecycleEvent(BEFORE_START_EVENT)
+
+ContextConfig -> ContextConfig ++: beforeStart()
+
+ContextConfig -> ContextConfig: fixDocBase()
+
+ContextConfig -> ContextConfig: antiLocking()
+
+return
+
+return
+
+== CONFIGURE_START_EVENT ==
+
+Context -> ContextConfig ++:lifecycleEvent(CONFIGURE_START_EVENT)
+
+ContextConfig -> ContextConfig ++: configureStart()
+
+ContextConfig -> ContextConfig ++: webConfig()
+
+ContextConfig --> WebXmlParser **
+
+ContextConfig -> ContextConfig ++: getDefaultWebXmlFragment()
+
+ContextConfig -> WebXmlParser ++: parseWebXml(defaultWebXml)
+return
+
+return
+
+ContextConfig -> ContextConfig ++: getTomcatWebXmlFragment()
+
+ContextConfig -> WebXmlParser ++: parseWebXml(tomcatWebXml)
+return
+
+return
+
+ContextConfig --> WebXml **
+
+ContextConfig -> WebXmlParser ++: parseWebXml(contextWebXml)
+WebXmlParser -> WebXml ++
+return
+return
+
+ContextConfig -> ContextConfig: processJarsForWebFragments()
+ContextConfig -> ContextConfig: processServletContainerInitializers()
+ContextConfig -> ContextConfig: processClasses()
+
+ContextConfig -> WebXml ++: merge(orderedFragments)
+return
+
+ContextConfig -> WebXml ++: merge(tomcatWebXml)
+return
+
+ContextConfig -> WebXml ++: merge(defaultWebXml)
+return
+
+ContextConfig -> ContextConfig: convertJsps()
+ContextConfig -> ContextConfig: configureContext()
+ContextConfig -> ContextConfig: processResourceJARs()
+
+return
+
+|||
+ContextConfig -> ContextConfig: applicationAnnotationsConfig()
+
+ContextConfig -> ContextConfig: validateSecurityRoles()
+
+ContextConfig -> ContextConfig: authenticatorConfig()
+
+return
+destroy WebXmlParser
+destroy WebXml
+
+return
+
+== AFTER_START_EVENT ==
+
+Context -> ContextConfig ++:lifecycleEvent(AFTER_START_EVENT)
+
+ContextConfig -> Context ++:setDocBase(originalDocBase)
+return
+
+return
+
+@enduml
\ No newline at end of file
diff --git a/webapps/docs/architecture/startup/7_catalina_context_config.png 
b/webapps/docs/architecture/startup/7_catalina_context_config.png
new file mode 100644
index 0000000000..e8c6c48f0f
Binary files /dev/null and 
b/webapps/docs/architecture/startup/7_catalina_context_config.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to